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