Subversion Repositories shark

Rev

Rev 422 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
422 giacomo 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
 
42
typedef struct {
43
        char            rose_addr[5];
44
} rose_address;
45
 
46
struct 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
 
54
struct 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
 
62
struct 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
 
71
struct rose_cause_struct {
72
        unsigned char   cause;
73
        unsigned char   diagnostic;
74
};
75
 
76
struct 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