1*53ee8cc1Swenshuai.xi /* 2*53ee8cc1Swenshuai.xi * These are the public elements of the Linux kernel Rose implementation. 3*53ee8cc1Swenshuai.xi * For kernel AX.25 see the file ax25.h. This file requires ax25.h for the 4*53ee8cc1Swenshuai.xi * definition of the ax25_address structure. 5*53ee8cc1Swenshuai.xi */ 6*53ee8cc1Swenshuai.xi 7*53ee8cc1Swenshuai.xi #ifndef ROSE_KERNEL_H 8*53ee8cc1Swenshuai.xi #define ROSE_KERNEL_H 9*53ee8cc1Swenshuai.xi 10*53ee8cc1Swenshuai.xi #define ROSE_MTU 251 11*53ee8cc1Swenshuai.xi 12*53ee8cc1Swenshuai.xi #define ROSE_MAX_DIGIS 6 13*53ee8cc1Swenshuai.xi 14*53ee8cc1Swenshuai.xi #define ROSE_DEFER 1 15*53ee8cc1Swenshuai.xi #define ROSE_T1 2 16*53ee8cc1Swenshuai.xi #define ROSE_T2 3 17*53ee8cc1Swenshuai.xi #define ROSE_T3 4 18*53ee8cc1Swenshuai.xi #define ROSE_IDLE 5 19*53ee8cc1Swenshuai.xi #define ROSE_QBITINCL 6 20*53ee8cc1Swenshuai.xi #define ROSE_HOLDBACK 7 21*53ee8cc1Swenshuai.xi 22*53ee8cc1Swenshuai.xi #define SIOCRSGCAUSE (SIOCPROTOPRIVATE+0) 23*53ee8cc1Swenshuai.xi #define SIOCRSSCAUSE (SIOCPROTOPRIVATE+1) 24*53ee8cc1Swenshuai.xi #define SIOCRSL2CALL (SIOCPROTOPRIVATE+2) 25*53ee8cc1Swenshuai.xi #define SIOCRSSL2CALL (SIOCPROTOPRIVATE+2) 26*53ee8cc1Swenshuai.xi #define SIOCRSACCEPT (SIOCPROTOPRIVATE+3) 27*53ee8cc1Swenshuai.xi #define SIOCRSCLRRT (SIOCPROTOPRIVATE+4) 28*53ee8cc1Swenshuai.xi #define SIOCRSGL2CALL (SIOCPROTOPRIVATE+5) 29*53ee8cc1Swenshuai.xi #define SIOCRSGFACILITIES (SIOCPROTOPRIVATE+6) 30*53ee8cc1Swenshuai.xi 31*53ee8cc1Swenshuai.xi #define ROSE_DTE_ORIGINATED 0x00 32*53ee8cc1Swenshuai.xi #define ROSE_NUMBER_BUSY 0x01 33*53ee8cc1Swenshuai.xi #define ROSE_INVALID_FACILITY 0x03 34*53ee8cc1Swenshuai.xi #define ROSE_NETWORK_CONGESTION 0x05 35*53ee8cc1Swenshuai.xi #define ROSE_OUT_OF_ORDER 0x09 36*53ee8cc1Swenshuai.xi #define ROSE_ACCESS_BARRED 0x0B 37*53ee8cc1Swenshuai.xi #define ROSE_NOT_OBTAINABLE 0x0D 38*53ee8cc1Swenshuai.xi #define ROSE_REMOTE_PROCEDURE 0x11 39*53ee8cc1Swenshuai.xi #define ROSE_LOCAL_PROCEDURE 0x13 40*53ee8cc1Swenshuai.xi #define ROSE_SHIP_ABSENT 0x39 41*53ee8cc1Swenshuai.xi 42*53ee8cc1Swenshuai.xi typedef struct { 43*53ee8cc1Swenshuai.xi char rose_addr[5]; 44*53ee8cc1Swenshuai.xi } rose_address; 45*53ee8cc1Swenshuai.xi 46*53ee8cc1Swenshuai.xi struct sockaddr_rose { 47*53ee8cc1Swenshuai.xi sa_family_t srose_family; 48*53ee8cc1Swenshuai.xi rose_address srose_addr; 49*53ee8cc1Swenshuai.xi ax25_address srose_call; 50*53ee8cc1Swenshuai.xi int srose_ndigis; 51*53ee8cc1Swenshuai.xi ax25_address srose_digi; 52*53ee8cc1Swenshuai.xi }; 53*53ee8cc1Swenshuai.xi 54*53ee8cc1Swenshuai.xi struct full_sockaddr_rose { 55*53ee8cc1Swenshuai.xi sa_family_t srose_family; 56*53ee8cc1Swenshuai.xi rose_address srose_addr; 57*53ee8cc1Swenshuai.xi ax25_address srose_call; 58*53ee8cc1Swenshuai.xi unsigned int srose_ndigis; 59*53ee8cc1Swenshuai.xi ax25_address srose_digis[ROSE_MAX_DIGIS]; 60*53ee8cc1Swenshuai.xi }; 61*53ee8cc1Swenshuai.xi 62*53ee8cc1Swenshuai.xi struct rose_route_struct { 63*53ee8cc1Swenshuai.xi rose_address address; 64*53ee8cc1Swenshuai.xi unsigned short mask; 65*53ee8cc1Swenshuai.xi ax25_address neighbour; 66*53ee8cc1Swenshuai.xi char device[16]; 67*53ee8cc1Swenshuai.xi unsigned char ndigis; 68*53ee8cc1Swenshuai.xi ax25_address digipeaters[AX25_MAX_DIGIS]; 69*53ee8cc1Swenshuai.xi }; 70*53ee8cc1Swenshuai.xi 71*53ee8cc1Swenshuai.xi struct rose_cause_struct { 72*53ee8cc1Swenshuai.xi unsigned char cause; 73*53ee8cc1Swenshuai.xi unsigned char diagnostic; 74*53ee8cc1Swenshuai.xi }; 75*53ee8cc1Swenshuai.xi 76*53ee8cc1Swenshuai.xi struct rose_facilities_struct { 77*53ee8cc1Swenshuai.xi rose_address source_addr, dest_addr; 78*53ee8cc1Swenshuai.xi ax25_address source_call, dest_call; 79*53ee8cc1Swenshuai.xi unsigned char source_ndigis, dest_ndigis; 80*53ee8cc1Swenshuai.xi ax25_address source_digis[ROSE_MAX_DIGIS]; 81*53ee8cc1Swenshuai.xi ax25_address dest_digis[ROSE_MAX_DIGIS]; 82*53ee8cc1Swenshuai.xi unsigned int rand; 83*53ee8cc1Swenshuai.xi rose_address fail_addr; 84*53ee8cc1Swenshuai.xi ax25_address fail_call; 85*53ee8cc1Swenshuai.xi }; 86*53ee8cc1Swenshuai.xi 87*53ee8cc1Swenshuai.xi #endif 88