summaryrefslogtreecommitdiffstats
path: root/libc/kernel/common/linux/atm.h
blob: c9bcd702f9c6b8be85e59d9db53b879211c55392 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _LINUX_ATM_H
#define _LINUX_ATM_H

#include <linux/compiler.h>
#include <linux/atmapi.h>
#include <linux/atmsap.h>
#include <linux/atmioc.h>

#define ATM_CELL_SIZE 53  
#define ATM_CELL_PAYLOAD 48  
#define ATM_AAL0_SDU 52  
#define ATM_MAX_AAL34_PDU 65535  
#define ATM_AAL5_TRAILER 8  
#define ATM_MAX_AAL5_PDU 65535  
#define ATM_MAX_CDV 9999  
#define ATM_NOT_RSV_VCI 32  

#define ATM_MAX_VPI 255  
#define ATM_MAX_VPI_NNI 4096  
#define ATM_MAX_VCI 65535  

#define ATM_NO_AAL 0  
#define ATM_AAL0 13  
#define ATM_AAL1 1  
#define ATM_AAL2 2  
#define ATM_AAL34 3  
#define ATM_AAL5 5  

#define __SO_ENCODE(l,n,t) ((((l) & 0x1FF) << 22) | ((n) << 16) |   sizeof(t))
#define __SO_LEVEL_MATCH(c,m) (((c) >> 22) == ((m) & 0x1FF))
#define __SO_NUMBER(c) (((c) >> 16) & 0x3f)
#define __SO_SIZE(c) ((c) & 0x3fff)

#define SO_SETCLP __SO_ENCODE(SOL_ATM,0,int)

#define SO_CIRANGE __SO_ENCODE(SOL_ATM,1,struct atm_cirange)

#define SO_ATMQOS __SO_ENCODE(SOL_ATM,2,struct atm_qos)

#define SO_ATMSAP __SO_ENCODE(SOL_ATM,3,struct atm_sap)

#define SO_ATMPVC __SO_ENCODE(SOL_ATM,4,struct sockaddr_atmpvc)

#define SO_MULTIPOINT __SO_ENCODE(SOL_ATM, 5, int)

#define ATM_HDR_GFC_MASK 0xf0000000
#define ATM_HDR_GFC_SHIFT 28
#define ATM_HDR_VPI_MASK 0x0ff00000
#define ATM_HDR_VPI_SHIFT 20
#define ATM_HDR_VCI_MASK 0x000ffff0
#define ATM_HDR_VCI_SHIFT 4
#define ATM_HDR_PTI_MASK 0x0000000e
#define ATM_HDR_PTI_SHIFT 1
#define ATM_HDR_CLP 0x00000001

#define ATM_PTI_US0 0  
#define ATM_PTI_US1 1  
#define ATM_PTI_UCES0 2  
#define ATM_PTI_UCES1 3  
#define ATM_PTI_SEGF5 4  
#define ATM_PTI_E2EF5 5  
#define ATM_PTI_RSV_RM 6  
#define ATM_PTI_RSV 7  

#define ATM_NONE 0  
#define ATM_UBR 1
#define ATM_CBR 2
#define ATM_VBR 3
#define ATM_ABR 4
#define ATM_ANYCLASS 5  

#define ATM_MAX_PCR -1  

struct atm_trafprm {
 unsigned char traffic_class;
 int max_pcr;
 int pcr;
 int min_pcr;
 int max_cdv;
 int max_sdu;

 unsigned int icr;
 unsigned int tbe;
 unsigned int frtt : 24;
 unsigned int rif : 4;
 unsigned int rdf : 4;
 unsigned int nrm_pres :1;
 unsigned int trm_pres :1;
 unsigned int adtf_pres :1;
 unsigned int cdf_pres :1;
 unsigned int nrm :3;
 unsigned int trm :3;
 unsigned int adtf :10;
 unsigned int cdf :3;
 unsigned int spare :9;
};

struct atm_qos {
 struct atm_trafprm txtp;
 struct atm_trafprm rxtp __ATM_API_ALIGN;

 unsigned char aal __ATM_API_ALIGN;
};

#define ATM_ITF_ANY -1  
#define ATM_VPI_ANY -1
#define ATM_VCI_ANY -1
#define ATM_VPI_UNSPEC -2
#define ATM_VCI_UNSPEC -2

struct sockaddr_atmpvc {
 unsigned short sap_family;
 struct {
 short itf;
 short vpi;
 int vci;
 } sap_addr __ATM_API_ALIGN;
};

#define ATM_ESA_LEN 20  
#define ATM_E164_LEN 12  

#define ATM_AFI_DCC 0x39  
#define ATM_AFI_ICD 0x47  
#define ATM_AFI_E164 0x45  
#define ATM_AFI_LOCAL 0x49   

#define ATM_AFI_DCC_GROUP 0xBD  
#define ATM_AFI_ICD_GROUP 0xC5  
#define ATM_AFI_E164_GROUP 0xC3  
#define ATM_AFI_LOCAL_GROUP 0xC7  

#define ATM_LIJ_NONE 0  
#define ATM_LIJ 1  
#define ATM_LIJ_RPJ 2  
#define ATM_LIJ_NJ 3  

struct sockaddr_atmsvc {
 unsigned short sas_family;
 struct {
 unsigned char prv[ATM_ESA_LEN];
 char pub[ATM_E164_LEN+1];

 char lij_type;
 uint32_t lij_id;
 } sas_addr __ATM_API_ALIGN;
};

typedef unsigned short atm_backend_t;
#endif