]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blob - include/linux/ax25.h
Linux-2.6.12-rc2
[mirror_ubuntu-artful-kernel.git] / include / linux / ax25.h
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