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