xref: /csrg-svn/sys/netccitt/x25.h (revision 41596)
1*41596Ssklower #ifdef KERNEL
2*41596Ssklower #define PRC_IFUP	3
3*41596Ssklower #define PRC_LINKUP	4
4*41596Ssklower #define PRC_LINKDOWN	5
5*41596Ssklower #define PRC_LINKRESET	6
6*41596Ssklower #define PRC_LINKDONTCOPY	7
7*41596Ssklower #endif
8*41596Ssklower 
9*41596Ssklower #define CCITTPROTO_HDLC		1
10*41596Ssklower #define CCITTPROTO_X25		2	/* packet level protocol */
11*41596Ssklower #define IEEEPROTO_802LLC	3	/* doesn't belong here */
12*41596Ssklower 
13*41596Ssklower #define HDLCPROTO_LAP		1
14*41596Ssklower #define HDLCPROTO_LAPB		2
15*41596Ssklower #define HDLCPROTO_UNSET		3
16*41596Ssklower #define HDLCPROTO_LAPD		4
17*41596Ssklower 
18*41596Ssklower /*
19*41596Ssklower  *  X.25 Socket address structure.  It contains the  X.121 or variation of
20*41596Ssklower  *  X.121, facilities information, higher level protocol value (first four
21*41596Ssklower  *  bytes of the User Data field), and the last  12 characters of the User
22*41596Ssklower  *  Data field.
23*41596Ssklower  */
24*41596Ssklower 
25*41596Ssklower struct x25_sockaddr {		/* obsolete - use sockaddr_x25 */
26*41596Ssklower     short  xaddr_len;		/* Length of xaddr_addr.		*/
27*41596Ssklower     u_char xaddr_addr[15];	/* Network dependent or X.121 address.	*/
28*41596Ssklower     u_char xaddr_facilities;	/* Facilities information.		*/
29*41596Ssklower #define XS_REVERSE_CHARGE	0x01
30*41596Ssklower #define XS_HIPRIO		0x02
31*41596Ssklower     u_char xaddr_proto[4];	/* Protocol ID (4 bytes of user data).	*/
32*41596Ssklower     u_char xaddr_userdata[12];	/* Remaining User data field.		*/
33*41596Ssklower };
34*41596Ssklower 
35*41596Ssklower /*
36*41596Ssklower  * network configuration info
37*41596Ssklower  * this structure must be 16 bytes long
38*41596Ssklower  */
39*41596Ssklower 
40*41596Ssklower struct	x25config {
41*41596Ssklower 	u_short	xc_family;	/* always AF_CCITT */
42*41596Ssklower 	u_short	xc_net;		/* network id (usually a dnic) */
43*41596Ssklower 	char	xc_ntnlen;
44*41596Ssklower 	char	xc_ntn[5];	/* network specific address (in bcd) */
45*41596Ssklower 	/* link level parameters */
46*41596Ssklower 	u_short	xc_lproto:4,	/* link level protocol eg. CCITTPROTO_HDLC */
47*41596Ssklower 		xc_lptype:4,	/* protocol type eg. HDLCPROTO_LAPB */
48*41596Ssklower 		xc_lwsize:5,	/* link level window size */
49*41596Ssklower 		xc_ltrace:1,	/* link level tracing flag */
50*41596Ssklower 		xc_rsvd1:2;	/* for use by other link-level protocols */
51*41596Ssklower 	/* packet level parameters */
52*41596Ssklower 	u_short	xc_pwsize:3,	/* default window size */
53*41596Ssklower 		xc_psize:4,	/* default packet size 7=128, 8=256, ... */
54*41596Ssklower 		xc_type:2,	/* network type */
55*41596Ssklower #define X25_1976	0
56*41596Ssklower #define X25_1980	1
57*41596Ssklower #define X25_1984	2
58*41596Ssklower 		xc_ptrace:1,	/* packet level tracing flag */
59*41596Ssklower 		xc_rsvd2:6;
60*41596Ssklower 	u_char	xc_maxlcn;	/* max logical channels */
61*41596Ssklower 	u_char	xc_rsvd3;
62*41596Ssklower };
63*41596Ssklower 
64*41596Ssklower /*
65*41596Ssklower  *  X.25 Socket address structure.  It contains the network id, X.121
66*41596Ssklower  *  address, facilities information, higher level protocol value (first four
67*41596Ssklower  *  bytes of the User Data field), and up to 12 characters of User Data.
68*41596Ssklower  */
69*41596Ssklower 
70*41596Ssklower struct	sockaddr_x25 {
71*41596Ssklower 	short	x25_family;	/* must be AF_CCITT */
72*41596Ssklower 	short	x25_net;	/* network id code (usually a dnic) */
73*41596Ssklower 	struct	x25opts {
74*41596Ssklower 		char	op_flags;	/* miscellaneous options */
75*41596Ssklower #define X25_REVERSE_CHARGE	0x01	/* remote DTE pays for call */
76*41596Ssklower #define X25_DBIT		0x02	/* not yet supported */
77*41596Ssklower #define X25_MQBIT		0x04	/* prepend M&Q bit status byte to packet data */
78*41596Ssklower #define X25_OLDSOCKADDR		0x08	/* uses old sockaddr structure */
79*41596Ssklower 		char	op_psize;	/* requested packet size */
80*41596Ssklower #define X25_PS128		7
81*41596Ssklower #define X25_PS256		8
82*41596Ssklower #define X25_PS512		9
83*41596Ssklower 		char	op_wsize;	/* window size (1 .. 7) */
84*41596Ssklower 		char	op_speed;	/* throughput class */
85*41596Ssklower 	} x25_opts;
86*41596Ssklower 	char	x25_addr[16];	/* X.121 address (null terminated) */
87*41596Ssklower 	short	x25_udlen;	/* user data field length */
88*41596Ssklower 	char	x25_udata[16];	/* user data field */
89*41596Ssklower };
90