#define T_LEAFCHANGE 0x0400 /* status of a leaf has changed */
/*
* The following are new XTI library functions:
*/
/* XTI Library Function: t_addleaf - add a leaf */
extern int t_addleaf(int32_t, int32_t, struct netbuf *);
/* XTI Library Function: t_removeleaf - remove a leaf */
extern int t_removeleaf(int32_t, int32_t, int32_t);
/* XTI Library Function: t_rcvleafchange - acknowledge */
/* receipt of a leaf change indication */
extern int t_rcvleafchange(int32_t, struct t_leaf_status *);
#define AF_ATM /* ATM transport sockets */
#include <_atm_common.h>
/*
* ATM Levels
*/
#define T_ATM_SIGNALING 0x5301 /* options signalled across UNI */
/* value is not mandatory */
#include <_atm_common.h>
/*
* First, the protocol constants.
*/
#define ATM_PROTO_AAL5 0x5301 /* AAL type 5 protocol */
#define ATM_PROTO_SSCOP 0x5302 /* SSCOP protocol */
/*
* ATM commonly used constants
*/
#define T_YES 1
#define T_NO 0
#define T_LEAF_NOCHANGE 0 /* value not mandatory */
#define T_LEAF_CONNECTED 1 /* value not mandatory */
#define T_LEAF_DISCONNECTED 2 /* value not mandatory */
/* ATM-SPECIFIC OPTIONS */
/*
* ATM signalling-level options
*/
#define T_ATM_SIGNALING 0x5301 /* options signalled across UNI */
/* value is not mandatory */
#define T_ATM_ADD_LEAF 0x21 /* add leaf to connection */
/* value is not mandatory */
#define T_ATM_DROP_LEAF 0x22 /* remove leaf from connection */
/* value is not mandatory */
#define T_ATM_LEAF_IND 0x23 /* indication of leaf status */
/* value is not mandatory */
/*
* ATM data structures used for point-to-multipoint connection support
*/
struct t_atm_add_leaf {
int32_t leaf_ID;
struct t_atm_addr leaf_address;
};
struct t_atm_drop_leaf {
int32_t leaf_ID;
int32_t reason;
};
struct t_atm_leaf_ind {
int32_t status;
int32_t leaf_ID;
int32_t reason;
};
/*
* For the purposes of conformance testing, it may be assumed that any
* constant values defined in these header files are mandatory, unless
* the constant:
* 1. defines an option or options level
* 2. is accompanied by a comment that specifies the value is
* not mandatory.
*/
/*
* Leaf status structure.
*/
struct t_leaf_status {
int32_t leafid; /* leaf identifier */
int32_t status; /* current status */
int32_t reason; /* reason for leaf removal */
};
/*
* ATM commonly used constants
*/
#define T_ATM_ABSENT (-1)
#define T_ATM_PRESENT (-2)
#define T_ATM_ANY (-3)
/*
* In the 3 constants defined immediately above, the specific value
* is not mandatory, but any conformin g value must be negative.
*/
#define T_ATM_NULL 0
#define T_ATM_ENDSYS_ADDR 1 /* value is not mandatory */
#define T_ATM_NSAP_ADDR 2 /* value is not mandatory */
#define T_ATM_E164_ADDR 3 /* value is not mandatory */
#define T_ATM_ITU_CODING 0
#define T_ATM_NETWORK_CODING 3
/* ATM-SPECIFIC ADDRESSES */
/*
* ATM protocol address structure
*/
struct t_atm_sap {
struct t_atm_sap_addr {
int8_t SVE_tag_addr;
int8_t SVE_tag_selector;
uint8_t address_format;
uint8_t address_length;
uint8_t address [20];
} t_atm_sap_addr;
struct t_atm_sap_layer2 {
int8_t SVE_tag;
uint8_t ID_type;
union {
uint8_t simple_ID;
uint8_t user_defined_ID;
} ID;
} t_atm_sap_layer2;
struct t_atm_sap_layer3 {
int8_t SVE_tag;
uint8_t ID_type;
union {
uint8_t simple_ID;
int32_t IPI_ID;
struct {
uint8_t OUI [3];
uint8_t PID [2];
} SNAP_ID;
uint8_t user_defined_ID;
} ID;
} t_atm_sap_layer3;
struct t_atm_sap_appl {
int8_t SVE_tag;
uint8_t ID_type;
union {
uint8_t ISO_ID [8];
struct {
uint8_t OUI [3];
uint8_t app_ID [4];
} vendor_ID;
uint8_t user_defined_ID [8];
} ID;
} t_atm_sap_appl;
}
/* ATM-SPECIFIC OPTIONS */
/*
* ATM signalling-level options
*/
#define T_ATM_AAL5 0x1 /* ATM adaptation layer 5 */
#define T_ATM_TRAFFIC 0x2 /* data traffic descriptor */
#define T_ATM_BEARER_CAP 0x3 /* ATM service capabilities */
#define T_ATM_BHLI 0x4 /* higher-layer protocol */
#define T_ATM_BLLI 0x5 /* lower-layer protocol */
#define T_ATM_DEST_ADDR 0x6 /* call responder's address */
#define T_ATM_DEST_SUB 0x7 /* call responder's subaddress */
#define T_ATM_ORIG_ADDR 0x8 /* call initiator's address */
#define T_ATM_ORIG_SUB 0x9 /* call initiator's subaddress */
#define T_ATM_CALLER_ID 0xa /* caller's ID attributes */
#define T_ATM_CAUSE 0xb /* cause of disconnection */
#define T_ATM_QOS 0xc /* desired quality of service */
#define T_ATM_TRANSIT 0xd /* choice of public carrier */
/*
* T_ATM_AAL5 structure
*/
struct t_atm_aal5 {
int32_t forward_max_SDU_size;
int32_t backward_max_SDU_size;
int32_t SSCS_type;
};
/*
* T_ATM_AAL5 values
*/
#define T_ATM_SSCS_SSCOP_REL 1
#define T_ATM_SSCS_SSCOP_UNREL 2
#define T_ATM_SSCS_FR 4
/*
* T_ATM_TRAFFIC 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;
uint8_t best_effort;
}
/*
* T_ATM_BEARER_CAP structure
*/
struct t_atm_bearer {
uint8_t bearer_class;
uint8_t traffic_type;
uint8_t timing_requirements;
uint8_t clipping_susceptibility;
uint8_t connection_configuration;
}
/*
* T_ATM_BEARER_CAP values
*/
#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 */
#define T_ATM_CBR 0x01 /* constant bit rate */
#define T_ATM_VBR 0x02 /* variable bit rate */
#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 */
#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 structure
*/
struct t_atm_bhli {
int32_t ID_type;
union {
uint8_t ISO_ID [8];
struct {
uint8_t OUI [3];
uint8_t app_ID [4];
} vendor_ID;
uint8_t user_defined_ID [8];
} ID;
}
/*
* T_ATM_BHLI values
*/
#define T_ATM_ISO_APP_ID 0 /* ISO codepoint */
#define T_ATM_VENDOR_APP_ID 3 /* vendor-specific codepoint */
#define T_ATM_USER_APP_ID 1 /* user-specific codepoint */
/*
* T_ATM_BLLI structure
*/
struct t_atm_blli {
struct {
int8_t ID_type;
union {
uint8_t simple_ID;
uint8_t user_defined_ID;
} ID;
int8_t mode;
int8_t window_size;
} layer_2_protocol;
struct {
int8_t ID_type;
union {
uint8_t simple_ID;
int32_t IPI_ID;
struct {
uint8_t OUI [3];
uint8_t PID [2];
} SNAP_ID;
uint8_t user_defined_ID;
} ID;
int8_t mode;
int8_t packet_size;
int8_t window_size;
} layer_3_protocol;
}
/*
* T_ATM_BLLI values
*/
#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 */
/* Constant values in the above 4 definitions are not mandatory */
#define T_ATM_BLLI_NORMAL_MODE 1
#define T_ATM_BLLI_EXTENDED_MODE 2
#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 */
#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 */
#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
/*
* ATM network address structure
*/
struct t_atm_addr {
int8_t address_format;
uint8_t address_length;
uint8_t address [20];
}
/*
* T_ATM_CALLER_ID structure
*/
struct t_atm_caller_id {
int8_t presentation;
uint8_t screening;
}
/*
* T_ATM_CALLER_ID values
*/
#define T_ATM_PRES_ALLOWED 0
#define T_ATM_PRES_RESTRICTED 1
#define T_ATM_PRES_UNAVAILABLE 2
#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 structure
*/
struct t_atm_cause {
int8_t coding_standard;
uint8_r location;
uint8_r cause_value;
uint8_r diagnostics [4];
}
/*
* T_ATM_CAUSE values
*/
#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
#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 structure
*/
struct t_atm_qos_substruct {
int32_t coding_standard;
}
struct t_atm_qos {
int8_t coding_standard;
struct t_atm_qos_substruct forward;
struct t_atm_qos_substruct backward;
}
/*
* T_ATM_QOS values
*/
#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
*/
struct t_atm_transit {
uint8_t length;
uint8_t network_id[]; /* variable-sized array */
}
Contents | Next section | Index |