Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
0002 /*
0003  * These are the public elements of the Linux kernel AX.25 code. A similar
0004  * file netrom.h exists for the NET/ROM protocol.
0005  */
0006 
0007 #ifndef AX25_KERNEL_H
0008 #define AX25_KERNEL_H
0009 
0010 #include <linux/socket.h>
0011 
0012 #define AX25_MTU    256
0013 #define AX25_MAX_DIGIS  8
0014 
0015 #define AX25_WINDOW 1
0016 #define AX25_T1     2
0017 #define AX25_N2     3
0018 #define AX25_T3     4
0019 #define AX25_T2     5
0020 #define AX25_BACKOFF    6
0021 #define AX25_EXTSEQ 7
0022 #define AX25_PIDINCL    8
0023 #define AX25_IDLE   9
0024 #define AX25_PACLEN 10
0025 #define AX25_IAMDIGI    12
0026 
0027 #define AX25_KILL   99
0028 
0029 #define SIOCAX25GETUID      (SIOCPROTOPRIVATE+0)
0030 #define SIOCAX25ADDUID      (SIOCPROTOPRIVATE+1)
0031 #define SIOCAX25DELUID      (SIOCPROTOPRIVATE+2)
0032 #define SIOCAX25NOUID       (SIOCPROTOPRIVATE+3)
0033 #define SIOCAX25OPTRT       (SIOCPROTOPRIVATE+7)
0034 #define SIOCAX25CTLCON      (SIOCPROTOPRIVATE+8)
0035 #define SIOCAX25GETINFOOLD  (SIOCPROTOPRIVATE+9)
0036 #define SIOCAX25ADDFWD      (SIOCPROTOPRIVATE+10)
0037 #define SIOCAX25DELFWD      (SIOCPROTOPRIVATE+11)
0038 #define SIOCAX25DEVCTL          (SIOCPROTOPRIVATE+12)
0039 #define SIOCAX25GETINFO         (SIOCPROTOPRIVATE+13)
0040 
0041 #define AX25_SET_RT_IPMODE  2
0042 
0043 #define AX25_NOUID_DEFAULT  0
0044 #define AX25_NOUID_BLOCK    1
0045 
0046 typedef struct {
0047     char        ax25_call[7];   /* 6 call + SSID (shifted ascii!) */
0048 } ax25_address;
0049 
0050 struct sockaddr_ax25 {
0051     __kernel_sa_family_t sax25_family;
0052     ax25_address    sax25_call;
0053     int     sax25_ndigis;
0054     /* Digipeater ax25_address sets follow */
0055 };
0056 
0057 #define sax25_uid   sax25_ndigis
0058 
0059 struct full_sockaddr_ax25 {
0060     struct sockaddr_ax25 fsa_ax25;
0061     ax25_address    fsa_digipeater[AX25_MAX_DIGIS];
0062 };
0063 
0064 struct ax25_routes_struct {
0065     ax25_address    port_addr;
0066     ax25_address    dest_addr;
0067     unsigned char   digi_count;
0068     ax25_address    digi_addr[AX25_MAX_DIGIS];
0069 };
0070 
0071 struct ax25_route_opt_struct {
0072     ax25_address    port_addr;
0073     ax25_address    dest_addr;
0074     int     cmd;
0075     int     arg;
0076 };
0077 
0078 struct ax25_ctl_struct {
0079         ax25_address            port_addr;
0080         ax25_address            source_addr;
0081         ax25_address            dest_addr;
0082         unsigned int            cmd;
0083         unsigned long           arg;
0084         unsigned char           digi_count;
0085         ax25_address            digi_addr[AX25_MAX_DIGIS];
0086 };
0087 
0088 /* this will go away. Please do not export to user land */
0089 struct ax25_info_struct_deprecated {
0090     unsigned int    n2, n2count;
0091     unsigned int    t1, t1timer;
0092     unsigned int    t2, t2timer;
0093     unsigned int    t3, t3timer;
0094     unsigned int    idle, idletimer;
0095     unsigned int    state;
0096     unsigned int    rcv_q, snd_q;
0097 };
0098 
0099 struct ax25_info_struct {
0100     unsigned int    n2, n2count;
0101     unsigned int    t1, t1timer;
0102     unsigned int    t2, t2timer;
0103     unsigned int    t3, t3timer;
0104     unsigned int    idle, idletimer;
0105     unsigned int    state;
0106     unsigned int    rcv_q, snd_q;
0107     unsigned int    vs, vr, va, vs_max;
0108     unsigned int    paclen;
0109     unsigned int    window;
0110 };
0111 
0112 struct ax25_fwd_struct {
0113     ax25_address    port_from;
0114     ax25_address    port_to;
0115 };
0116 
0117 #endif