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 45typedef struct { 46 char ax25_call[7]; /* 6 call + SSID (shifted ascii!) */ 47} ax25_address; 48 49struct 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 58struct full_sockaddr_ax25 { 59 struct sockaddr_ax25 fsa_ax25; 60 ax25_address fsa_digipeater[AX25_MAX_DIGIS]; 61}; 62 63struct 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 70struct ax25_route_opt_struct { 71 ax25_address port_addr; 72 ax25_address dest_addr; 73 int cmd; 74 int arg; 75}; 76 77struct 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 */ 88struct 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 98struct 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 111struct ax25_fwd_struct { 112 ax25_address port_from; 113 ax25_address port_to; 114}; 115 116#endif 117