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

source code of linux/include/uapi/linux/ax25.h