FreeBSD/Linux Kernel Cross Reference
sys/netatm/atm.h
1 /*
2 *
3 * ===================================
4 * HARP | Host ATM Research Platform
5 * ===================================
6 *
7 *
8 * This Host ATM Research Platform ("HARP") file (the "Software") is
9 * made available by Network Computing Services, Inc. ("NetworkCS")
10 * "AS IS". NetworkCS does not provide maintenance, improvements or
11 * support of any kind.
12 *
13 * NETWORKCS MAKES NO WARRANTIES OR REPRESENTATIONS, EXPRESS OR IMPLIED,
14 * INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY
15 * AND FITNESS FOR A PARTICULAR PURPOSE, AS TO ANY ELEMENT OF THE
16 * SOFTWARE OR ANY SUPPORT PROVIDED IN CONNECTION WITH THIS SOFTWARE.
17 * In no event shall NetworkCS be responsible for any damages, including
18 * but not limited to consequential damages, arising from or relating to
19 * any use of the Software or related support.
20 *
21 * Copyright 1994-1998 Network Computing Services, Inc.
22 *
23 * Copies of this Software may be made, however, the above copyright
24 * notice must be reproduced on all copies.
25 *
26 * @(#) $FreeBSD$
27 *
28 */
29
30 /*
31 * Core ATM Services
32 * -----------------
33 *
34 * ATM address family definitions
35 *
36 */
37
38 #ifndef _NETATM_ATM_H
39 #define _NETATM_ATM_H
40
41
42 /*
43 * The definitions in this file are intended to conform to the
44 * specifications defined in:
45 *
46 * The Open Group, Networking Services (XNS) Issue 5
47 *
48 * ATM Transport Protocol Information for Sockets
49 *
50 * which is Copyright (c) 1997, The Open Group.
51 *
52 * All extensions contained in this file to the base specification
53 * are denoted with a comment string of "XNS_EXT".
54 */
55
56 /*
57 * ATM socket protocols
58 */
59 #define ATM_PROTO_AAL5 0x5301 /* AAL type 5 protocol */
60 #define ATM_PROTO_SSCOP 0x5302 /* SSCOP protocol */
61
62
63 /*
64 * ATM address defintions
65 */
66 /*
67 * General format of an ATM address
68 */
69 #define ATM_ADDR_LEN 20 /* Size of address field (XNS_EXT) */
70
71 struct t_atm_addr {
72 int8_t address_format; /* Address format (see below) */
73 u_int8_t address_length; /* Length of address field */
74 u_int8_t address[ATM_ADDR_LEN]; /* Address field */
75 };
76 typedef struct t_atm_addr Atm_addr; /* XNS_EXT */
77
78 /*
79 * ATM address formats
80 */
81 #define T_ATM_ABSENT (-1) /* No address present */
82 #define T_ATM_ENDSYS_ADDR 1 /* ATM Endsystem */
83 #define T_ATM_NSAP_ADDR 1 /* NSAP */
84 #define T_ATM_E164_ADDR 2 /* E.164 */
85 #define T_ATM_SPANS_ADDR 3 /* FORE SPANS (XNS_EXT) */
86 #define T_ATM_PVC_ADDR 4 /* PVC (VPI,VCI) (XNS_EXT) */
87
88 /*
89 * ATM Endsystem / NSAP address format
90 */
91 struct atm_addr_nsap { /* XNS_EXT */
92 u_char aan_afi; /* Authority and Format Identifier */
93 /* (see below) */
94 u_char aan_afspec[12]; /* AFI specific fields */
95 u_char aan_esi[6]; /* End System Identifier */
96 u_char aan_sel; /* Selector */
97 };
98 typedef struct atm_addr_nsap Atm_addr_nsap;
99
100 /*
101 * AFI codes
102 */
103 #define AFI_DCC 0x39 /* DCC ATM Format (XNS_EXT) */
104 #define AFI_ICD 0x47 /* ICD ATM Format (XNS_EXT) */
105 #define AFI_E164 0x45 /* E.164 ATM Format (XNS_EXT) */
106
107 /*
108 * E.164 address format
109 */
110 struct atm_addr_e164 { /* XNS_EXT */
111 u_char aae_addr[15]; /* E.164 address */
112 };
113 typedef struct atm_addr_e164 Atm_addr_e164;
114
115 /*
116 * SPANS address format
117 */
118 struct atm_addr_spans { /* XNS_EXT */
119 u_char aas_addr[8]; /* See SPANS code for specific fields */
120 };
121 typedef struct atm_addr_spans Atm_addr_spans;
122
123 /*
124 * PVC address format
125 */
126 struct atm_addr_pvc { /* XNS_EXT */
127 u_int8_t aap_vpi[2]; /* VPI */
128 u_int8_t aap_vci[2]; /* VCI */
129 };
130 typedef struct atm_addr_pvc Atm_addr_pvc;
131
132 #define ATM_PVC_GET_VPI(addr) /* XNS_EXT */ \
133 ((u_int16_t)(((addr)->aap_vpi[0] << 8) | (addr)->aap_vpi[1]))
134 #define ATM_PVC_GET_VCI(addr) /* XNS_EXT */ \
135 ((u_int16_t)(((addr)->aap_vci[0] << 8) | (addr)->aap_vci[1]))
136 #define ATM_PVC_SET_VPI(addr,vpi) { /* XNS_EXT */ \
137 (addr)->aap_vpi[0] = ((vpi) >> 8) & 0xff; \
138 (addr)->aap_vpi[1] = (vpi) & 0xff; \
139 }
140 #define ATM_PVC_SET_VCI(addr,vci) { /* XNS_EXT */ \
141 (addr)->aap_vci[0] = ((vci) >> 8) & 0xff; \
142 (addr)->aap_vci[1] = (vci) & 0xff; \
143 }
144
145
146 /*
147 * ATM service access point (SAP)
148 *
149 * A SAP address consists of SAP Vector Elements (SVE). Each SVE consists
150 * of the following fields:
151 * o tag - defines the interpretation of the SVE;
152 * o length - the length of the SVE value field;
153 * o value - the value associated with the SVE;
154 *
155 * All of the possible SAP field values are either defined below
156 * or in the corresponding option value definitions.
157 */
158
159 /*
160 * ATM Address and Selector SVE
161 */
162 struct t_atm_sap_addr {
163 int8_t SVE_tag_addr; /* SVE tag (address) */
164 int8_t SVE_tag_selector; /* SVE tag (selector) */
165 /* Address/selector value */
166 int8_t address_format; /* Address format */
167 u_int8_t address_length; /* Length of address field */
168 u_int8_t address[ATM_ADDR_LEN]; /* Address field */
169 };
170
171 /*
172 * B-LLI Layer 2 SVE
173 */
174 struct t_atm_sap_layer2 {
175 int8_t SVE_tag; /* SVE tag */
176 u_int8_t ID_type; /* Layer 2 protocol discriminator */
177 union { /* Layer 2 protocol */
178 u_int8_t simple_ID; /* ITU */
179 u_int8_t user_defined_ID;/* User-defined */
180 } ID;
181 };
182
183 /*
184 * B-LLI Layer 3 SVE
185 */
186 struct t_atm_sap_layer3 {
187 int8_t SVE_tag; /* SVE tag */
188 u_int8_t ID_type; /* Layer 3 protocol discriminator */
189 union { /* Layer 3 protocol */
190 u_int8_t simple_ID; /* ITU */
191 u_int8_t IPI_ID; /* ISO IPI */
192 struct { /* IEEE 802.1 SNAP ID */
193 u_int8_t OUI[3];
194 u_int8_t PID[2];
195 } SNAP_ID;
196 u_int8_t user_defined_ID;/* User-defined */
197 } ID;
198 };
199
200 /*
201 * B_HLI SVE
202 */
203 struct t_atm_sap_appl {
204 int8_t SVE_tag; /* SVE tag */
205 u_int8_t ID_type; /* High Layer type discriminator */
206 union { /* High Layer type */
207 u_int8_t ISO_ID[8]; /* ISO */
208 struct { /* Vendor-specific */
209 u_int8_t OUI[3];
210 u_int8_t app_ID[4];
211 } vendor_ID;
212 u_int8_t user_defined_ID[8];/* User-defined */
213 } ID;
214 };
215
216 /*
217 * ATM SAP (protocol) address structure
218 */
219 struct t_atm_sap {
220 struct t_atm_sap_addr t_atm_sap_addr;
221 struct t_atm_sap_layer2 t_atm_sap_layer2;
222 struct t_atm_sap_layer3 t_atm_sap_layer3;
223 struct t_atm_sap_appl t_atm_sap_appl;
224 };
225
226 /*
227 * SVE Tag values
228 */
229 #define T_ATM_ABSENT (-1) /* Value field invalid; match none */
230 #define T_ATM_PRESENT (-2) /* Value field valid; match value */
231 #define T_ATM_ANY (-3) /* Value field invalid; match any */
232
233
234 /*
235 * ATM socket address
236 */
237 struct sockaddr_atm { /* XNS_EXT */
238 #if (defined(BSD) && (BSD >= 199103))
239 u_char satm_len; /* Length of socket structure */
240 u_char satm_family; /* Address family */
241 #else
242 u_short satm_family; /* Address family */
243 #endif
244 struct t_atm_sap satm_addr; /* Protocol address */
245 };
246
247
248 /*
249 * ATM socket options for use with [gs]etsockopt()
250 */
251 #define T_ATM_SIGNALING 0x5301 /* Option level */
252
253 #define T_ATM_AAL5 1 /* ATM adaptation layer 5 */
254 #define T_ATM_TRAFFIC 2 /* ATM traffic descriptor */
255 #define T_ATM_BEARER_CAP 3 /* ATM service capabilities */
256 #define T_ATM_BHLI 4 /* Higher-layer protocol */
257 #define T_ATM_BLLI 5 /* Lower-layer protocol */
258 #define T_ATM_DEST_ADDR 6 /* Call responder's address */
259 #define T_ATM_DEST_SUB 7 /* Call responder's subaddress */
260 #define T_ATM_ORIG_ADDR 8 /* Call initiator's address */
261 #define T_ATM_ORIG_SUB 9 /* Call initiator's subaddress */
262 #define T_ATM_CALLER_ID 10 /* Caller's ID attributes */
263 #define T_ATM_CAUSE 11 /* Cause of disconection */
264 #define T_ATM_QOS 12 /* Quality of service */
265 #define T_ATM_TRANSIT 13 /* Choice of public carrier */
266 #define T_ATM_ADD_LEAF 14 /* Add leaf to connection */
267 #define T_ATM_DROP_LEAF 15 /* Remove leaf from connection */
268 #define T_ATM_LEAF_IND 16 /* Indication of leaf status */
269 #define T_ATM_NET_INTF 17 /* Network interface XNS_EXT */
270 #define T_ATM_LLC 18 /* LLC multiplexing XNS_EXT */
271 #define T_ATM_APP_NAME 19 /* Application name XNS_EXT */
272
273
274 /*
275 * Common socket option values
276 *
277 * See API specification for individual option applicability/meaning
278 */
279 #define T_ATM_ABSENT (-1) /* No option value present */
280 #define T_ATM_NULL 0 /* Option value is null */
281 #define T_NO 0 /* Option is not requested */
282 #define T_YES 1 /* Option is requested */
283
284
285 /*
286 * T_ATM_AAL5 option value structure
287 */
288 struct t_atm_aal5 {
289 int32_t forward_max_SDU_size;
290 int32_t backward_max_SDU_size;
291 int32_t SSCS_type;
292 };
293
294 /*
295 * T_ATM_AAL5 option values
296 */
297 /* SSCS_type */
298 #define T_ATM_SSCS_SSCOP_REL 1 /* SSCOP assured operation */
299 #define T_ATM_SSCS_SSCOP_UNREL 2 /* SSCOP non-assured operation */
300 #define T_ATM_SSCS_FR 4 /* Frame relay */
301
302
303 /*
304 * T_ATM_TRAFFIC option value structure
305 */
306 struct t_atm_traffic_substruct {
307 int32_t PCR_high_priority;
308 int32_t PCR_all_traffic;
309 int32_t SCR_high_priority;
310 int32_t SCR_all_traffic;
311 int32_t MBS_high_priority;
312 int32_t MBS_all_traffic;
313 int32_t tagging;
314 };
315
316 struct t_atm_traffic {
317 struct t_atm_traffic_substruct forward;
318 struct t_atm_traffic_substruct backward;
319 u_int8_t best_effort;
320 };
321
322
323 /*
324 * T_ATM_BEARER_CAP option value structure
325 */
326 struct t_atm_bearer {
327 u_int8_t bearer_class;
328 u_int8_t traffic_type;
329 u_int8_t timing_requirements;
330 u_int8_t clipping_susceptibility;
331 u_int8_t connection_configuration;
332 };
333
334 /*
335 * T_ATM_BEARER_CAP option values
336 */
337 /* bearer_class */
338 #define T_ATM_CLASS_A 0x01 /* Bearer class A */
339 #define T_ATM_CLASS_C 0x03 /* Bearer class C */
340 #define T_ATM_CLASS_X 0x10 /* Bearer class X */
341
342 /* traffic_type */
343 #define T_ATM_CBR 0x01 /* Constant bit rate */
344 #define T_ATM_VBR 0x02 /* Variable bit rate */
345 #define T_ATM_ABR 0x03 /* Available bit rate */
346 #define T_ATM_UBR 0x04 /* Unspecified bit rate */
347
348 /* timing_requirements */
349 #define T_ATM_END_TO_END 0x01 /* End-to-end timing required */
350 #define T_ATM_NO_END_TO_END 0x02 /* End-to-end timing not required */
351
352 /* connection_configuration */
353 #define T_ATM_1_TO_1 0x00 /* Point-to-point connection */
354 #define T_ATM_1_TO_MANY 0x01 /* Point-to-multipoint connection */
355
356
357 /*
358 * T_ATM_BHLI option value structure
359 */
360 struct t_atm_bhli {
361 int32_t ID_type;
362 union {
363 u_int8_t ISO_ID[8];
364 struct {
365 u_int8_t OUI[3];
366 u_int8_t app_ID[4];
367 } vendor_ID;
368 u_int8_t user_defined_ID[8];
369 } ID;
370 };
371
372 /*
373 * T_ATM_BHLI option values
374 */
375 /* ID_type */
376 #define T_ATM_ISO_APP_ID 0 /* ISO codepoint */
377 #define T_ATM_USER_APP_ID 1 /* User-specific codepoint */
378 #define T_ATM_VENDOR_APP_ID 3 /* Vendor-specific codepoint */
379
380 /*
381 * T_ATM_BLLI option value structure
382 */
383 struct t_atm_blli {
384 struct {
385 int8_t ID_type;
386 union {
387 u_int8_t simple_ID;
388 u_int8_t user_defined_ID;
389 } ID;
390 int8_t mode;
391 int8_t window_size;
392 } layer_2_protocol;
393 struct {
394 int8_t ID_type;
395 union {
396 u_int8_t simple_ID;
397 int32_t IPI_ID;
398 struct {
399 u_int8_t OUI[3];
400 u_int8_t PID[2];
401 } SNAP_ID;
402 u_int8_t user_defined_ID;
403 } ID;
404 int8_t mode;
405 int8_t packet_size;
406 int8_t window_size;
407 } layer_3_protocol;
408 };
409
410
411 /*
412 * T_ATM_BLLI option values
413 */
414 /* layer_[23]_protocol.ID_type */
415 #define T_ATM_SIMPLE_ID 1 /* ID via ITU encoding */
416 #define T_ATM_IPI_ID 2 /* ID via ISO/IEC TR 9577 */
417 #define T_ATM_SNAP_ID 3 /* ID via SNAP */
418 #define T_ATM_USER_ID 4 /* ID via user codepoints */
419
420 /* layer_[23]_protocol.mode */
421 #define T_ATM_BLLI_NORMAL_MODE 1
422 #define T_ATM_BLLI_EXTENDED_MODE 2
423
424 /* layer_2_protocol.simple_ID */
425 #define T_ATM_BLLI2_I1745 1 /* I.1745 */
426 #define T_ATM_BLLI2_Q921 2 /* Q.921 */
427 #define T_ATM_BLLI2_X25_LINK 6 /* X.25, link layer */
428 #define T_ATM_BLLI2_X25_MLINK 7 /* X.25, multilink */
429 #define T_ATM_BLLI2_LAPB 8 /* Extended LAPB */
430 #define T_ATM_BLLI2_HDLC_ARM 9 /* I.4335, ARM */
431 #define T_ATM_BLLI2_HDLC_NRM 10 /* I.4335, NRM */
432 #define T_ATM_BLLI2_HDLC_ABM 11 /* I.4335, ABM */
433 #define T_ATM_BLLI2_I8802 12 /* I.8802 */
434 #define T_ATM_BLLI2_X75 13 /* X.75 */
435 #define T_ATM_BLLI2_Q922 14 /* Q.922 */
436 #define T_ATM_BLLI2_I7776 17 /* I.7776 */
437
438 /* layer_3_protocol.simple_ID */
439 #define T_ATM_BLLI3_X25 6 /* X.25 */
440 #define T_ATM_BLLI3_I8208 7 /* I.8208 */
441 #define T_ATM_BLLI3_X223 8 /* X.223 */
442 #define T_ATM_BLLI3_I8473 9 /* I.8473 */
443 #define T_ATM_BLLI3_T70 10 /* T.70 */
444 #define T_ATM_BLLI3_I9577 11 /* I.9577 */
445
446 /* layer_3_protocol.packet_size */
447 #define T_ATM_PACKET_SIZE_16 4
448 #define T_ATM_PACKET_SIZE_32 5
449 #define T_ATM_PACKET_SIZE_64 6
450 #define T_ATM_PACKET_SIZE_128 7
451 #define T_ATM_PACKET_SIZE_256 8
452 #define T_ATM_PACKET_SIZE_512 9
453 #define T_ATM_PACKET_SIZE_1024 10
454 #define T_ATM_PACKET_SIZE_2048 11
455 #define T_ATM_PACKET_SIZE_4096 12
456
457
458 /*
459 * T_ATM_CALLER_ID option value structure
460 */
461 struct t_atm_caller_id {
462 int8_t presentation;
463 u_int8_t screening;
464 };
465
466 /*
467 * T_ATM_CALLER_ID option values
468 */
469 /* presentation */
470 #define T_ATM_PRES_ALLOWED 0
471 #define T_ATM_PRES_RESTRICTED 1
472 #define T_ATM_PRES_UNAVAILABLE 2
473 /* screening */
474 #define T_ATM_USER_ID_NOT_SCREENED 0
475 #define T_ATM_USER_ID_PASSED_SCREEN 1
476 #define T_ATM_USER_ID_FAILED_SCREEN 2
477 #define T_ATM_NETWORK_PROVIDED_ID 3
478
479
480 /*
481 * T_ATM_CAUSE option value structure
482 */
483 struct t_atm_cause {
484 int8_t coding_standard;
485 u_int8_t location;
486 u_int8_t cause_value;
487 u_int8_t diagnostics[4];
488 };
489
490 /*
491 * T_ATM_CAUSE option values
492 */
493 /* coding_standard */
494 #define T_ATM_ITU_CODING 0
495 #define T_ATM_NETWORK_CODING 3
496
497 /* location */
498 #define T_ATM_LOC_USER 0
499 #define T_ATM_LOC_LOCAL_PRIVATE_NET 1
500 #define T_ATM_LOC_LOCAL_PUBLIC_NET 2
501 #define T_ATM_LOC_TRANSIT_NET 3
502 #define T_ATM_LOC_REMOTE_PUBLIC_NET 4
503 #define T_ATM_LOC_REMOTE_PRIVATE_NET 5
504 #define T_ATM_LOC_INTERNATIONAL_NET 7
505 #define T_ATM_LOC_BEYOND_INTERWORKING 10
506
507 /* cause_value */
508 #define T_ATM_CAUSE_UNALLOCATED_NUMBER 1
509 #define T_ATM_CAUSE_NO_ROUTE_TO_TRANSIT_NETWORK 2
510 #define T_ATM_CAUSE_NO_ROUTE_TO_DESTINATION 3
511 #define T_ATM_CAUSE_NORMAL_CALL_CLEARING 16
512 #define T_ATM_CAUSE_USER_BUSY 17
513 #define T_ATM_CAUSE_NO_USER_RESPONDING 18
514 #define T_ATM_CAUSE_CALL_REJECTED 21
515 #define T_ATM_CAUSE_NUMBER_CHANGED 22
516 #define T_ATM_CAUSE_ALL_CALLS_WITHOUT_CALLER_ID_REJECTED 23
517 #define T_ATM_CAUSE_DESTINATION_OUT_OF_ORDER 27
518 #define T_ATM_CAUSE_INVALID_NUMBER_FORMAT 28
519 #define T_ATM_CAUSE_RESPONSE_TO_STATUS_ENQUIRY 30
520 #define T_ATM_CAUSE_UNSPECIFIED_NORMAL 31
521 #define T_ATM_CAUSE_REQUESTED_VPCI_VCI_NOT_AVAILABLE 35
522 #define T_ATM_CAUSE_VPCI_VCI_ASSIGNMENT_FAILURE 36
523 #define T_ATM_CAUSE_USER_CELL_RATE_NOT_AVAILABLE 37
524 #define T_ATM_CAUSE_NETWORK_OUT_OF_ORDER 38
525 #define T_ATM_CAUSE_TEMPORARY_FAILURE 41
526 #define T_ATM_CAUSE_ACCESS_INFO_DISCARDED 43
527 #define T_ATM_CAUSE_NO_VPCI_VCI_AVAILABLE 45
528 #define T_ATM_CAUSE_UNSPECIFIED_RESOURCE_UNAVAILABLE 47
529 #define T_ATM_CAUSE_QUALITY_OF_SERVICE_UNAVAILABLE 49
530 #define T_ATM_CAUSE_BEARER_CAPABILITY_NOT_AUTHORIZED 57
531 #define T_ATM_CAUSE_BEARER_CAPABILITY_UNAVAILABLE 58
532 #define T_ATM_CAUSE_SERVICE_OR_OPTION_UNAVAILABLE 63
533 #define T_ATM_CAUSE_BEARER_CAPABILITY_NOT_IMPLEMENTED 65
534 #define T_ATM_CAUSE_INVALID_TRAFFIC_PARAMETERS 73
535 #define T_ATM_CAUSE_AAL_PARAMETERS_NOT_SUPPORTED 78
536 #define T_ATM_CAUSE_INVALID_CALL_REFERENCE_VALUE 81
537 #define T_ATM_CAUSE_IDENTIFIED_CHANNEL_DOES_NOT_EXIST 82
538 #define T_ATM_CAUSE_INCOMPATIBLE_DESTINATION 88
539 #define T_ATM_CAUSE_INVALID_ENDPOINT_REFERENCE 89
540 #define T_ATM_CAUSE_INVALID_TRANSIT_NETWORK_SELECTION 91
541 #define T_ATM_CAUSE_TOO_MANY_PENDING_ADD_PARTY_REQUESTS 92
542 #define T_ATM_CAUSE_MANDITORY_INFO_ELEMENT_MISSING 96
543 #define T_ATM_CAUSE_MESSAGE_TYPE_NOT_IMPLEMENTED 97
544 #define T_ATM_CAUSE_INFO_ELEMENT_NOT_IMPLEMENTED 99
545 #define T_ATM_CAUSE_INVALID_INFO_ELEMENT_CONTENTS 100
546 #define T_ATM_CAUSE_MESSAGE_INCOMPATIBLE_WITH_CALL_STATE 101
547 #define T_ATM_CAUSE_RECOVERY_ON_TIMER_EXPIRY 102
548 #define T_ATM_CAUSE_INCORRECT_MESSAGE_LENGTH 104
549 #define T_ATM_CAUSE_UNSPECIFIED_PROTOCOL_ERROR 111
550
551
552 /*
553 * T_ATM_QOS option value structure
554 */
555 struct t_atm_qos_substruct {
556 int32_t qos_class;
557 };
558
559 struct t_atm_qos {
560 int8_t coding_standard;
561 struct t_atm_qos_substruct forward;
562 struct t_atm_qos_substruct backward;
563 };
564
565 /*
566 * T_ATM_QOS option values
567 */
568 /* qos_class */
569 #define T_ATM_QOS_CLASS_0 0
570 #define T_ATM_QOS_CLASS_1 1
571 #define T_ATM_QOS_CLASS_2 2
572 #define T_ATM_QOS_CLASS_3 3
573 #define T_ATM_QOS_CLASS_4 4
574
575
576 /*
577 * T_ATM_TRANSIT structure
578 */
579 #define T_ATM_MAX_NET_ID 4 /* XNS_EXT */
580 struct t_atm_transit {
581 u_int8_t length;
582 u_int8_t network_id[T_ATM_MAX_NET_ID];
583 };
584
585
586 /*
587 * T_ATM_ADD_LEAF option value structure
588 */
589 struct t_atm_add_leaf {
590 int32_t leaf_ID;
591 struct t_atm_addr leaf_address;
592 };
593
594
595 /*
596 * T_ATM_DROP_LEAF option value structure
597 */
598 struct t_atm_drop_leaf {
599 int32_t leaf_ID;
600 int32_t reason;
601 };
602
603 /*
604 * T_ATM_LEAF_IND option value structure
605 */
606 struct t_atm_leaf_ind {
607 int32_t status;
608 int32_t leaf_ID;
609 int32_t reason;
610 };
611
612 /*
613 * T_ATM_LEAF_IND option values
614 */
615 /* status */
616 #define T_LEAF_NOCHANGE 0
617 #define T_LEAF_CONNECTED 1
618 #define T_LEAF_DISCONNECTED 2
619
620 /*
621 * T_ATM_NET_INTF option value structure (XNS_EXT)
622 */
623 struct t_atm_net_intf { /* XNS_EXT */
624 char net_intf[IFNAMSIZ];
625 };
626
627 /*
628 * T_ATM_LLC option value structure (XNS_EXT)
629 */
630 #define T_ATM_LLC_MIN_LEN 3
631 #define T_ATM_LLC_MAX_LEN 8
632
633 struct t_atm_llc { /* XNS_EXT */
634 u_int8_t flags; /* LLC flags (see below) */
635 u_int8_t llc_len; /* Length of LLC information */
636 u_int8_t llc_info[T_ATM_LLC_MAX_LEN]; /* LLC information */
637 };
638
639 /*
640 * T_ATM_LLC option values
641 */
642 /* flags */
643 #define T_ATM_LLC_SHARING 0x01 /* LLC sharing allowed */
644
645 /*
646 * T_ATM_APP_NAME option value structure (XNS_EXT)
647 */
648 #define T_ATM_APP_NAME_LEN 8
649 struct t_atm_app_name { /* XNS_EXT */
650 char app_name[T_ATM_APP_NAME_LEN];
651 };
652
653 #endif /* _NETATM_ATM_H */
Cache object: d2fe26d361e637c0f446fe9a12a8acc5
|