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