|
1 /* |
|
2 * These are the public elements of the Linux kernel AX.25 code. A similar |
|
3 * file netrom.h exists for the NET/ROM protocol. |
|
4 */ |
|
5 |
|
6 #ifndef AX25_KERNEL_H |
|
7 #define AX25_KERNEL_H |
|
8 |
|
9 #include <linux/socket.h> |
|
10 |
|
11 #define AX25_MTU 256 |
|
12 #define AX25_MAX_DIGIS 8 |
|
13 |
|
14 #define AX25_WINDOW 1 |
|
15 #define AX25_T1 2 |
|
16 #define AX25_N2 3 |
|
17 #define AX25_T3 4 |
|
18 #define AX25_T2 5 |
|
19 #define AX25_BACKOFF 6 |
|
20 #define AX25_EXTSEQ 7 |
|
21 #define AX25_PIDINCL 8 |
|
22 #define AX25_IDLE 9 |
|
23 #define AX25_PACLEN 10 |
|
24 #define AX25_IAMDIGI 12 |
|
25 |
|
26 #define AX25_KILL 99 |
|
27 |
|
28 #define SIOCAX25GETUID (SIOCPROTOPRIVATE+0) |
|
29 #define SIOCAX25ADDUID (SIOCPROTOPRIVATE+1) |
|
30 #define SIOCAX25DELUID (SIOCPROTOPRIVATE+2) |
|
31 #define SIOCAX25NOUID (SIOCPROTOPRIVATE+3) |
|
32 #define SIOCAX25OPTRT (SIOCPROTOPRIVATE+7) |
|
33 #define SIOCAX25CTLCON (SIOCPROTOPRIVATE+8) |
|
34 #define SIOCAX25GETINFOOLD (SIOCPROTOPRIVATE+9) |
|
35 #define SIOCAX25ADDFWD (SIOCPROTOPRIVATE+10) |
|
36 #define SIOCAX25DELFWD (SIOCPROTOPRIVATE+11) |
|
37 #define SIOCAX25DEVCTL (SIOCPROTOPRIVATE+12) |
|
38 #define SIOCAX25GETINFO (SIOCPROTOPRIVATE+13) |
|
39 |
|
40 #define AX25_SET_RT_IPMODE 2 |
|
41 |
|
42 #define AX25_NOUID_DEFAULT 0 |
|
43 #define AX25_NOUID_BLOCK 1 |
|
44 |
|
45 typedef struct { |
|
46 char ax25_call[7]; /* 6 call + SSID (shifted ascii!) */ |
|
47 } ax25_address; |
|
48 |
|
49 struct sockaddr_ax25 { |
|
50 sa_family_t sax25_family; |
|
51 ax25_address sax25_call; |
|
52 int sax25_ndigis; |
|
53 /* Digipeater ax25_address sets follow */ |
|
54 }; |
|
55 |
|
56 #define sax25_uid sax25_ndigis |
|
57 |
|
58 struct full_sockaddr_ax25 { |
|
59 struct sockaddr_ax25 fsa_ax25; |
|
60 ax25_address fsa_digipeater[AX25_MAX_DIGIS]; |
|
61 }; |
|
62 |
|
63 struct ax25_routes_struct { |
|
64 ax25_address port_addr; |
|
65 ax25_address dest_addr; |
|
66 unsigned char digi_count; |
|
67 ax25_address digi_addr[AX25_MAX_DIGIS]; |
|
68 }; |
|
69 |
|
70 struct ax25_route_opt_struct { |
|
71 ax25_address port_addr; |
|
72 ax25_address dest_addr; |
|
73 int cmd; |
|
74 int arg; |
|
75 }; |
|
76 |
|
77 struct ax25_ctl_struct { |
|
78 ax25_address port_addr; |
|
79 ax25_address source_addr; |
|
80 ax25_address dest_addr; |
|
81 unsigned int cmd; |
|
82 unsigned long arg; |
|
83 unsigned char digi_count; |
|
84 ax25_address digi_addr[AX25_MAX_DIGIS]; |
|
85 }; |
|
86 |
|
87 /* this will go away. Please do not export to user land */ |
|
88 struct ax25_info_struct_deprecated { |
|
89 unsigned int n2, n2count; |
|
90 unsigned int t1, t1timer; |
|
91 unsigned int t2, t2timer; |
|
92 unsigned int t3, t3timer; |
|
93 unsigned int idle, idletimer; |
|
94 unsigned int state; |
|
95 unsigned int rcv_q, snd_q; |
|
96 }; |
|
97 |
|
98 struct ax25_info_struct { |
|
99 unsigned int n2, n2count; |
|
100 unsigned int t1, t1timer; |
|
101 unsigned int t2, t2timer; |
|
102 unsigned int t3, t3timer; |
|
103 unsigned int idle, idletimer; |
|
104 unsigned int state; |
|
105 unsigned int rcv_q, snd_q; |
|
106 unsigned int vs, vr, va, vs_max; |
|
107 unsigned int paclen; |
|
108 unsigned int window; |
|
109 }; |
|
110 |
|
111 struct ax25_fwd_struct { |
|
112 ax25_address port_from; |
|
113 ax25_address port_to; |
|
114 }; |
|
115 |
|
116 #endif |