📄 dlpi.h
字号:
ulong dl_reason; /*normal, abnormal, perm. or transient*/
ulong dl_correlation; /* association with connect_ind */
} dl_disconnect_req_t;
/*
* DL_DISCONNECT_IND, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_DISCONNECT_IND */
ulong dl_originator; /* USER or PROVIDER */
ulong dl_reason; /* permanent or transient */
ulong dl_correlation; /* association with connect_ind */
} dl_disconnect_ind_t;
/*
* DL_RESET_REQ, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_RESET_REQ */
} dl_reset_req_t;
/*
* DL_RESET_IND, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_RESET_IND */
ulong dl_originator; /* Provider or User */
ulong dl_reason; /* flow control, link error or resynch*/
} dl_reset_ind_t;
/*
* DL_RESET_RES, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_RESET_RES */
} dl_reset_res_t;
/*
* DL_RESET_CON, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_RESET_CON */
} dl_reset_con_t;
/*
* CONNECTIONLESS SERVICE PRIMITIVES
*/
/*
* DL_UNITDATA_REQ, M_PROTO type, with M_DATA block(s)
*/
typedef struct {
ulong dl_primitive; /* DL_UNITDATA_REQ */
ulong dl_dest_addr_length; /* DLSAP length of dest. user */
ulong dl_dest_addr_offset; /* offset from beg. of block */
dl_priority_t dl_priority; /* priority value */
} dl_unitdata_req_t;
/*
* DL_UNITDATA_IND, M_PROTO type, with M_DATA block(s)
*/
typedef struct {
ulong dl_primitive; /* DL_UNITDATA_IND */
ulong dl_dest_addr_length; /* DLSAP length of dest. user */
ulong dl_dest_addr_offset; /* offset from beg. of block */
ulong dl_src_addr_length; /* DLSAP addr length of sending user*/
ulong dl_src_addr_offset; /* offset from beg. of block */
ulong dl_group_address; /* set to one if multicast/broadcast*/
} dl_unitdata_ind_t;
/*
* DL_UDERROR_IND, M_PROTO type
* (or M_PCPROTO type if LLI-based provider)
*/
typedef struct {
ulong dl_primitive; /* DL_UDERROR_IND */
ulong dl_dest_addr_length; /* Destination DLSAP */
ulong dl_dest_addr_offset; /* Offset from beg. of block */
ulong dl_unix_errno; /* unix system error code*/
ulong dl_errno; /* DLPI error code */
} dl_uderror_ind_t;
/*
* DL_UDQOS_REQ, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_UDQOS_REQ */
ulong dl_qos_length; /* length in bytes of requested qos*/
ulong dl_qos_offset; /* offset from beg. of block */
} dl_udqos_req_t;
/*
* Primitives to handle XID and TEST operations
*/
/*
* DL_TEST_REQ, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_TEST_REQ */
ulong dl_flag; /* poll/final */
ulong dl_dest_addr_length; /* DLSAP length of dest. user */
ulong dl_dest_addr_offset; /* offset from beg. of block */
} dl_test_req_t;
/*
* DL_TEST_IND, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_TEST_IND */
ulong dl_flag; /* poll/final */
ulong dl_dest_addr_length; /* dlsap length of dest. user */
ulong dl_dest_addr_offset; /* offset from beg. of block */
ulong dl_src_addr_length; /* dlsap length of source user */
ulong dl_src_addr_offset; /* offset from beg. of block */
} dl_test_ind_t;
/*
* DL_TEST_RES, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_TEST_RES */
ulong dl_flag; /* poll/final */
ulong dl_dest_addr_length; /* DLSAP length of dest. user */
ulong dl_dest_addr_offset; /* offset from beg. of block */
} dl_test_res_t;
/*
* DL_TEST_CON, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_TEST_CON */
ulong dl_flag; /* poll/final */
ulong dl_dest_addr_length; /* dlsap length of dest. user */
ulong dl_dest_addr_offset; /* offset from beg. of block */
ulong dl_src_addr_length; /* dlsap length of source user */
ulong dl_src_addr_offset; /* offset from beg. of block */
} dl_test_con_t;
/*
* DL_XID_REQ, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_XID_REQ */
ulong dl_flag; /* poll/final */
ulong dl_dest_addr_length; /* dlsap length of dest. user */
ulong dl_dest_addr_offset; /* offset from beg. of block */
} dl_xid_req_t;
/*
* DL_XID_IND, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_XID_IND */
ulong dl_flag; /* poll/final */
ulong dl_dest_addr_length; /* dlsap length of dest. user */
ulong dl_dest_addr_offset; /* offset from beg. of block */
ulong dl_src_addr_length; /* dlsap length of source user */
ulong dl_src_addr_offset; /* offset from beg. of block */
} dl_xid_ind_t;
/*
* DL_XID_RES, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_XID_RES */
ulong dl_flag; /* poll/final */
ulong dl_dest_addr_length; /* DLSAP length of dest. user */
ulong dl_dest_addr_offset; /* offset from beg. of block */
} dl_xid_res_t;
/*
* DL_XID_CON, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_XID_CON */
ulong dl_flag; /* poll/final */
ulong dl_dest_addr_length; /* dlsap length of dest. user */
ulong dl_dest_addr_offset; /* offset from beg. of block */
ulong dl_src_addr_length; /* dlsap length of source user */
ulong dl_src_addr_offset; /* offset from beg. of block */
} dl_xid_con_t;
/*
* ACKNOWLEDGED CONNECTIONLESS SERVICE PRIMITIVES
*/
/*
* DL_DATA_ACK_REQ, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_DATA_ACK_REQ */
ulong dl_correlation; /* User's correlation token */
ulong dl_dest_addr_length; /* length of destination addr */
ulong dl_dest_addr_offset; /* offset from beginning of block */
ulong dl_src_addr_length; /* length of source address */
ulong dl_src_addr_offset; /* offset from beginning of block */
ulong dl_priority; /* priority */
ulong dl_service_class; /* DL_RQST_RSP or DL_RQST_NORSP */
} dl_data_ack_req_t;
/*
* DL_DATA_ACK_IND, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_DATA_ACK_IND */
ulong dl_dest_addr_length; /* length of destination addr */
ulong dl_dest_addr_offset; /* offset from beginning of block */
ulong dl_src_addr_length; /* length of source address */
ulong dl_src_addr_offset; /* offset from beginning of block */
ulong dl_priority; /* priority for data unit transm. */
ulong dl_service_class; /* DL_RQST_RSP or DL_RQST_NORSP */
} dl_data_ack_ind_t;
/*
* DL_DATA_ACK_STATUS_IND, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_DATA_ACK_STATUS_IND */
ulong dl_correlation; /* User's correlation token */
ulong dl_status; /* success or failure of previous req*/
} dl_data_ack_status_ind_t;
/*
* DL_REPLY_REQ, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_REPLY_REQ */
ulong dl_correlation; /* User's correlation token */
ulong dl_dest_addr_length; /* length of destination address */
ulong dl_dest_addr_offset; /* offset from beginning of block */
ulong dl_src_addr_length; /* source address length */
ulong dl_src_addr_offset; /* offset from beginning of block */
ulong dl_priority; /* priority for data unit transmission*/
ulong dl_service_class;
} dl_reply_req_t;
/*
* DL_REPLY_IND, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_REPLY_IND */
ulong dl_dest_addr_length; /* length of destination address */
ulong dl_dest_addr_offset; /* offset from beginning of block*/
ulong dl_src_addr_length; /* length of source address */
ulong dl_src_addr_offset; /* offset from beginning of block */
ulong dl_priority; /* priority for data unit transmission*/
ulong dl_service_class; /* DL_RQST_RSP or DL_RQST_NORSP */
} dl_reply_ind_t;
/*
* DL_REPLY_STATUS_IND, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_REPLY_STATUS_IND */
ulong dl_correlation; /* User's correlation token */
ulong dl_status; /* success or failure of previous req*/
} dl_reply_status_ind_t;
/*
* DL_REPLY_UPDATE_REQ, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_REPLY_UPDATE_REQ */
ulong dl_correlation; /* user's correlation token */
ulong dl_src_addr_length; /* length of source address */
ulong dl_src_addr_offset; /* offset from beginning of block */
} dl_reply_update_req_t;
/*
* DL_REPLY_UPDATE_STATUS_IND, M_PROTO type
*/
typedef struct {
ulong dl_primitive; /* DL_REPLY_UPDATE_STATUS_IND */
ulong dl_correlation; /* User's correlation token */
ulong dl_status; /* success or failure of previous req*/
} dl_reply_update_status_ind_t;
union DL_primitives {
ulong dl_primitive;
dl_info_req_t info_req;
dl_info_ack_t info_ack;
dl_attach_req_t attach_req;
dl_detach_req_t detach_req;
dl_bind_req_t bind_req;
dl_bind_ack_t bind_ack;
dl_unbind_req_t unbind_req;
dl_subs_bind_req_t subs_bind_req;
dl_subs_bind_ack_t subs_bind_ack;
dl_subs_unbind_req_t subs_unbind_req;
dl_ok_ack_t ok_ack;
dl_error_ack_t error_ack;
dl_connect_req_t connect_req;
dl_connect_ind_t connect_ind;
dl_connect_res_t connect_res;
dl_connect_con_t connect_con;
dl_token_req_t token_req;
dl_token_ack_t token_ack;
dl_disconnect_req_t disconnect_req;
dl_disconnect_ind_t disconnect_ind;
dl_reset_req_t reset_req;
dl_reset_ind_t reset_ind;
dl_reset_res_t reset_res;
dl_reset_con_t reset_con;
dl_unitdata_req_t unitdata_req;
dl_unitdata_ind_t unitdata_ind;
dl_uderror_ind_t uderror_ind;
dl_udqos_req_t udqos_req;
dl_enabmulti_req_t enabmulti_req;
dl_disabmulti_req_t disabmulti_req;
dl_promiscon_req_t promiscon_req;
dl_promiscoff_req_t promiscoff_req;
dl_phys_addr_req_t physaddr_req;
dl_phys_addr_ack_t physaddr_ack;
dl_set_phys_addr_req_t set_physaddr_req;
dl_get_statistics_req_t get_statistics_req;
dl_get_statistics_ack_t get_statistics_ack;
dl_test_req_t test_req;
dl_test_ind_t test_ind;
dl_test_res_t test_res;
dl_test_con_t test_con;
dl_xid_req_t xid_req;
dl_xid_ind_t xid_ind;
dl_xid_res_t xid_res;
dl_xid_con_t xid_con;
dl_data_ack_req_t data_ack_req;
dl_data_ack_ind_t data_ack_ind;
dl_data_ack_status_ind_t data_ack_status_ind;
dl_reply_req_t reply_req;
dl_reply_ind_t reply_ind;
dl_reply_status_ind_t reply_status_ind;
dl_reply_update_req_t reply_update_req;
dl_reply_update_status_ind_t reply_update_status_ind;
};
#define DL_INFO_REQ_SIZE sizeof(dl_info_req_t)
#define DL_INFO_ACK_SIZE sizeof(dl_info_ack_t)
#define DL_ATTACH_REQ_SIZE sizeof(dl_attach_req_t)
#define DL_DETACH_REQ_SIZE sizeof(dl_detach_req_t)
#define DL_BIND_REQ_SIZE sizeof(dl_bind_req_t)
#define DL_BIND_ACK_SIZE sizeof(dl_bind_ack_t)
#define DL_UNBIND_REQ_SIZE sizeof(dl_unbind_req_t)
#define DL_SUBS_BIND_REQ_SIZE sizeof(dl_subs_bind_req_t)
#define DL_SUBS_BIND_ACK_SIZE sizeof(dl_subs_bind_ack_t)
#define DL_SUBS_UNBIND_REQ_SIZE sizeof(dl_subs_unbind_req_t)
#define DL_OK_ACK_SIZE sizeof(dl_ok_ack_t)
#define DL_ERROR_ACK_SIZE sizeof(dl_error_ack_t)
#define DL_CONNECT_REQ_SIZE sizeof(dl_connect_req_t)
#define DL_CONNECT_IND_SIZE sizeof(dl_connect_ind_t)
#define DL_CONNECT_RES_SIZE sizeof(dl_connect_res_t)
#define DL_CONNECT_CON_SIZE sizeof(dl_connect_con_t)
#define DL_TOKEN_REQ_SIZE sizeof(dl_token_req_t)
#define DL_TOKEN_ACK_SIZE sizeof(dl_token_ack_t)
#define DL_DISCONNECT_REQ_SIZE sizeof(dl_disconnect_req_t)
#define DL_DISCONNECT_IND_SIZE sizeof(dl_disconnect_ind_t)
#define DL_RESET_REQ_SIZE sizeof(dl_reset_req_t)
#define DL_RESET_IND_SIZE sizeof(dl_reset_ind_t)
#define DL_RESET_RES_SIZE sizeof(dl_reset_res_t)
#define DL_RESET_CON_SIZE sizeof(dl_reset_con_t)
#define DL_UNITDATA_REQ_SIZE sizeof(dl_unitdata_req_t)
#define DL_UNITDATA_IND_SIZE sizeof(dl_unitdata_ind_t)
#define DL_UDERROR_IND_SIZE sizeof(dl_uderror_ind_t)
#define DL_UDQOS_REQ_SIZE sizeof(dl_udqos_req_t)
#define DL_ENABMULTI_REQ_SIZE sizeof(dl_enabmulti_req_t)
#define DL_DISABMULTI_REQ_SIZE sizeof(dl_disabmulti_req_t)
#define DL_PROMISCON_REQ_SIZE sizeof(dl_promiscon_req_t)
#define DL_PROMISCOFF_REQ_SIZE sizeof(dl_promiscoff_req_t)
#define DL_PHYS_ADDR_REQ_SIZE sizeof(dl_phys_addr_req_t)
#define DL_PHYS_ADDR_ACK_SIZE sizeof(dl_phys_addr_ack_t)
#define DL_SET_PHYS_ADDR_REQ_SIZE sizeof(dl_set_phys_addr_req_t)
#define DL_GET_STATISTICS_REQ_SIZE sizeof(dl_get_statistics_req_t)
#define DL_GET_STATISTICS_ACK_SIZE sizeof(dl_get_statistics_ack_t)
#define DL_XID_REQ_SIZE sizeof(dl_xid_req_t)
#define DL_XID_IND_SIZE sizeof(dl_xid_ind_t)
#define DL_XID_RES_SIZE sizeof(dl_xid_res_t)
#define DL_XID_CON_SIZE sizeof(dl_xid_con_t)
#define DL_TEST_REQ_SIZE sizeof(dl_test_req_t)
#define DL_TEST_IND_SIZE sizeof(dl_test_ind_t)
#define DL_TEST_RES_SIZE sizeof(dl_test_res_t)
#define DL_TEST_CON_SIZE sizeof(dl_test_con_t)
#define DL_DATA_ACK_REQ_SIZE sizeof(dl_data_ack_req_t)
#define DL_DATA_ACK_IND_SIZE sizeof(dl_data_ack_ind_t)
#define DL_DATA_ACK_STATUS_IND_SIZE sizeof(dl_data_ack_status_ind_t)
#define DL_REPLY_REQ_SIZE sizeof(dl_reply_req_t)
#define DL_REPLY_IND_SIZE sizeof(dl_reply_ind_t)
#define DL_REPLY_STATUS_IND_SIZE sizeof(dl_reply_status_ind_t)
#define DL_REPLY_UPDATE_REQ_SIZE sizeof(dl_reply_update_req_t)
#define DL_REPLY_UPDATE_STATUS_IND_SIZE sizeof(dl_reply_update_status_ind_t)
#ifdef __cplusplus
}
#endif
#endif /* _SYS_DLPI_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -