Solstice X.25 9.2 Developer's Guide

12.7.2.18 Non-X.25 Facilities

These are for expert use only. Solstice X.25 permits a maximum of 64 (MAX_PRIVATE) bytes of non-X.25 facilities. These are not looked at by Solstice X.25, but just passed through. Non-X.25 facilities consist of a sequence of facility blocks, where each block begins with a facility marker indicating non-X.25 facilities supported by either the local or remote network, or some arbitrary facility marker. This is set as follows:

typedef struct private_fact_s {
    u_char   p_len;   /* total length of facilities*/
 #define MAX_PRIVATE  64
    u_char   p_fact[MAX_PRIVATE];
       /* facilities exactly as they
        * are present in Call Request or
        * Call Accept packets
        */
 } PRIVATE_FACT;

 PRIVATE_FACT  private;
 /* set the p_len and p_fact fields */
 f.type = T_PRIVATE;
 f.f_private = private;
 error = ioctl(s, X25_SET_FACILITY, &f);

It is read as follows:

f.type = T_PRIVATE;
 error = ioctl(s, X25_GET_FACILITY, &f);
 private = f.f_private;