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