blob: c7b4b184c82e7b3f337aa8cfa9207a56d9d33445 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
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