Linux-2.6.12-rc2
[safe/jmp/linux-2.6] / include / linux / x25.h
1 /*
2  * These are the public elements of the Linux kernel X.25 implementation.
3  *
4  *      History
5  *      mar/20/00       Daniela Squassoni Disabling/enabling of facilities 
6  *                                        negotiation.
7  */
8
9 #ifndef X25_KERNEL_H
10 #define X25_KERNEL_H
11
12 #define SIOCX25GSUBSCRIP        (SIOCPROTOPRIVATE + 0)
13 #define SIOCX25SSUBSCRIP        (SIOCPROTOPRIVATE + 1)
14 #define SIOCX25GFACILITIES      (SIOCPROTOPRIVATE + 2)
15 #define SIOCX25SFACILITIES      (SIOCPROTOPRIVATE + 3)
16 #define SIOCX25GCALLUSERDATA    (SIOCPROTOPRIVATE + 4)
17 #define SIOCX25SCALLUSERDATA    (SIOCPROTOPRIVATE + 5)
18 #define SIOCX25GCAUSEDIAG       (SIOCPROTOPRIVATE + 6)
19
20 /*
21  *      Values for {get,set}sockopt.
22  */
23 #define X25_QBITINCL            1
24
25 /*
26  *      X.25 Packet Size values.
27  */
28 #define X25_PS16                4
29 #define X25_PS32                5
30 #define X25_PS64                6
31 #define X25_PS128               7
32 #define X25_PS256               8
33 #define X25_PS512               9
34 #define X25_PS1024              10
35 #define X25_PS2048              11
36 #define X25_PS4096              12
37
38 /*
39  * An X.121 address, it is held as ASCII text, null terminated, up to 15
40  * digits and a null terminator.
41  */
42 struct x25_address {
43         char x25_addr[16];
44 };
45
46 /*
47  *      Linux X.25 Address structure, used for bind, and connect mostly.
48  */
49 struct sockaddr_x25 {
50         sa_family_t        sx25_family;         /* Must be AF_X25 */
51         struct x25_address sx25_addr;           /* X.121 Address */
52 };
53
54 /*
55  *      DTE/DCE subscription options.
56  *
57  *      As this is missing lots of options, user should expect major
58  *      changes of this structure in 2.5.x which might break compatibilty.
59  *      The somewhat ugly dimension 200-sizeof() is needed to maintain
60  *      backward compatibility.
61  */
62 struct x25_subscrip_struct {
63         char device[200-sizeof(unsigned long)];
64         unsigned long   global_facil_mask;      /* 0 to disable negotiation */
65         unsigned int    extended;
66 };
67
68 /* values for above global_facil_mask */
69
70 #define X25_MASK_REVERSE        0x01    
71 #define X25_MASK_THROUGHPUT     0x02
72 #define X25_MASK_PACKET_SIZE    0x04
73 #define X25_MASK_WINDOW_SIZE    0x08
74
75
76
77 /*
78  *      Routing table control structure.
79  */
80 struct x25_route_struct {
81         struct x25_address address;
82         unsigned int       sigdigits;
83         char               device[200];
84 };
85
86 /*
87  *      Facilities structure.
88  */
89 struct x25_facilities {
90         unsigned int    winsize_in, winsize_out;
91         unsigned int    pacsize_in, pacsize_out;
92         unsigned int    throughput;
93         unsigned int    reverse;
94 };
95
96 /*
97  *      Call User Data structure.
98  */
99 struct x25_calluserdata {
100         unsigned int    cudlength;
101         unsigned char   cuddata[128];
102 };
103
104 /*
105  *      Call clearing Cause and Diagnostic structure.
106  */
107 struct x25_causediag {
108         unsigned char   cause;
109         unsigned char   diagnostic;
110 };
111
112 #endif