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;