RFC: connectionless Data Link Metalanguage Burkhard Daniel

Size: px
Start display at page:

Download "RFC: connectionless Data Link Metalanguage Burkhard Daniel"

Transcription

1 RFC: connectionless Data Link Metalanguage Burkhard Daniel This RFC details a specification draft for a UDI metalanguage interfacing UDI Network Protocol drivers to UDI Data Link drivers. The metalanguage proposed here provides connectionless data link service to the network protocol driver. cldl Metalanguage Model This document identifies two entities: The Data Link Provider (DLP) and the Data Link Service User (DLU) (usually the network protocol driver). A DLP provides connectionless Data Link functionality above the MAC level. DLUs are children of the DLP. Any DLP can have multiple children, and any DLU can have multiple parents. A DLP instance enumerates all its children at the time it is instantiated by the MA. A DLU can then bind to the DLP by issuing the udi_dlp_bind_req operation over the initial bind channel established by the MA between the DLU and the DLP. A DLP acts as or using a separate communication mechanism -- interfaces with the NSR (Network Service Requestor) as defined by the UDI Network Interface Metalanguage. There is one DLP instance per network interface for any one distinct Data Link protocol. There is one DLU instance for any one distinct network protocol (or entity providing network-level protocol functionality). Any network protocol for which operation over a given data link protocol is defined and desirable can be bound to the corresponding DLP. Consequently, a DLU can utilize various DLPs, according to the desired operation (i.e. IP over Ethernet vs. IP over Wireless LAN). Likewise, one DLP can be used by various DLUs (i.e. IP over Ethernet vs. IPX over Ethernet on the same interface). An external configuration mechanism is needed to set up legal bindings between DLPs and DLUs. Each DLP instance will enumerate one child for each such binding. These bindings shall be based on a system-specific description of the network-level protocol entities (DLUs). DLPs and DLUs implicitly agree on an addressing format for the udi_dl_tx_req operation by binding to one another. The addr_type enumeration attribute contains a description of the addressing format a DLP understands. If the DLU understands the same addressing format, they can bind and that addressing format is used to describe destination endpoints. The addressing format also determines the format of the SAP address that the DLU specifies in the udi_dlp_rx_chan_req operation. During the bind operation, the DLP informs the DLU about the QoS guarantees it can make. When creating a transmit channel, the DLU can then specify a default set of QoS constraints to be used for transmission over that channel. However, each packet can also carry its own set of QoS constraints. The Data Link Metalanguage exposes a subset of the network device control operations defined in the UDI NIC metalanguage to the DLU in order to allow for protocols that need specific hardware support. The DLP can handle these control operations itself, if the NIC device does not support them or if the DLP provides overloaded functionality for these operations, or it can pass the operations to the ND for execution. Flow control is achieved in a manner similar to that of the NIC Metalanguage. The DLP allocates a pool of control blocks to be used for packet transmission, which it then passes to the DLU using the udi_dlu_tx_rdy operation. Similarly, the DLU allocates a supply of control blocks to be used for packet reception, which is made available to the DLP using the udi_dlp_rx_rdy operation. Page 1 of 35

2 Connectionless DL Metalanguage Definitions NAME udi_dlp_ctrl_ops_t typedef const struct { udi_channel_event_ind_op_t *channel_event_ind_op; udi_dlp_bind_req_op_t *dlp_bind_req_op; udi_dlp_unbind_req_op_t *dlp_unbind_req_op; udi_dlp_unbind_ack_op_t *dlp_unbind_ack_op; udi_dlp_rx_chan_req_op_t *dlp_rx_chan_req_op; udi_dlp_tx_chan_req_op_t *dlp_tx_chan_req_op; udi_dlp_ctrl_req_op_t *dlp_ctrl_req_opt; } udi_dlp_ctrl_ops_t; /* DLP control Ops Vector Number */ #define UDI_DLP_CTRL_OPS_NUM 1 DESCRIPTION A Data Link Driver uses the udi_dlp_ctrl_ops_t structure in a udi_dlp_ctrl_ops_t in a udi_ops_init_t as part of its udi_init_info in order to register its entry points for the Data Link Metalanguage operations delivered via the initial bind channel between the DLU and the DLP. Page 2 of 35

3 NAME udi_dlp_tx_ops_t typedef const struct { udi_channel_event_ind_op_t *channel_event_ind_op; udi_dlp_tx_req_op_t *dlp_tx_req_op; udi_dlp_tx_qos_req_op_t *dlp_tx_qos_req_op; udi_dlp_qos_modify_req_op_t *dlp_tx_qos_modify_req_op; } udi_dlp_tx_ops_t; /* DLP TX Ops Vector Number */ #define UDI_DLP_TX_OPS_NUM 2 DESCRIPTION A Data Link Driver uses the udi_dlp_tx_ops_t structure in a udi_ops_init_t as part of its udi_init_info in order to register its entry points for operations over a Data Link Metalanguage transmit channel. Page 3 of 35

4 NAME udi_dlp_rx_ops_t typedef const struct { udi_channel_event_ind_op_t *channel_event_ind_op; udi_dlp_rx_rdy_op_t *dlp_rx_rdy_op; } udi_dlp_rx_ops_t; /* DLP TX Ops Vector Number */ #define UDI_DLP_RX_OPS_NUM 3 DESCRIPTION A Data Link Driver uses the udi_dlp_rx_ops_t structure in a udi_ops_init_t as part of its udi_init_info in order to register its entry points for operations over a Data Link Metalanguage receive channel. Page 4 of 35

5 NAME udi_dlu_ctrl_ops_t typedef const struct { udi_channel_event_ind_op_t *channel_event_ind_op; udi_dlu_bind_ack_op_t *dlu_bind_ack_op; udi_dlu_unbind_ack_op_t *dlu_unbind_ack_op; udi_dlu_unbind_req_op_t *dlu_unbind_req_op; udi_dlu_rx_chan_ack_op_t *dlu_rx_chan_ack_op; udi_dlu_tx_chan_ack_op_t *dlu_tx_chan_ack_op; udi_dlu_ctrl_ack_op_t *dlu_ctrl_ack_op; } udi_dlu_ctrl_ops_t; /* DLU control Ops Vector Number */ #define UDI_DLU_CTRL_OPS_NUM 4 DESCRIPTION A Network Protocol Driver uses the udi_dlu_ctrl_ops_t structure in a udi_dlp_ctrl_ops_t in a udi_ops_init_t as part of its udi_init_info in order to register its entry points for the Data Link Metalanguage control operations. Page 5 of 35

6 NAME udi_dlu_tx_ops_t typedef const struct { udi_channel_event_ind_op_t *channel_event_ind_op; udi_dlu_tx_rdy_op_t *dlu_tx_rdy_op; udi_dlu_tx_qos_modify_ack_op_t *dlu_tx_qos_modify_ack_op; } udi_dlu_tx_ops_t; /* DLU TX Ops Vector Number */ #define UDI_DLU_TX_OPS_NUM 5 DESCRIPTION A Network Protocol Driver uses the udi_dlu_tx_ops_t structure in a udi_ops_init_t as part of its udi_init_info in order to register its entry points for operations over a Data Link Metalanguage transmit channel. Page 6 of 35

7 NAME udi_dlu_rx_ops_t typedef const struct { udi_channel_event_ind_op_t *channel_event_ind_op; udi_dlu_rx_ind_op_t *dlu_rx_ind_op; } udi_dlu_tx_ops_t; /* DLP RX Ops Vector Number */ #define UDI_DLU_RX_OPS_NUM 6 DESCRIPTION A Network Protocol Driver uses the udi_dlu_rx_ops_t structure in a udi_ops_init_t as part of its udi_init_info in order to register its entry points for operations over a Data Link Metalanguage receive channel. Page 7 of 35

8 NAME udi_dl_cb_t typedef struct { udi_cb_t gcb; } udi_dl_cb_t; /* Data Link Standard Control Block Number */ #define UDI_DL_STD_CB_NUM 1 DESCRIPTION The udi_dl_cb_t structure is used for channel operations between a child (DLU) and its parent (DLP) where there is no additional metalanguage information needed in the control block. This control block must be declared by specifying the control block index value UDI_DL_STD_CB_NUM in a udi_cb_init_t in the driver s udi_init_info. Page 8 of 35

9 NAME udi_dl_bind_cb_t typedef struct { udi_cb_t gcb; udi_ubit32_t min_dlpdu_size; udi_ubit32_t max_dlpdu_size; udi_ubit8_t max_perfect_multicast; udi_ubit8_t max_total_multicast; udi_ubit8_t mac_addr_len; void *qos_caps; } udi_dl_bind_cb_t; /* Data Link Bind Control Block Number */ #define UDI_DL_BIND_CB_NUM 2 MEMBERS gcb is the generic control block header which includes a pointer to the scratch space associated with this block and the channel context for the associated channel. The driver may use the scratch space while it owns the control block, but the values are not guaranteed to persist across channel operations. min_dlpdu_size is the minimum size of a Data Link Protocol Data Unit. This represents the minimum number of bytes that make up one packet sent or received by the DLP, including the data link header attached by the DLP. The DLP sets this value in the bind ack operation. max_dlpdu_size is the maximum size of a Data Link Protocol Data Unit. This represents the maximum number of bytes that make up one packet sent or received by the DLP, including the data link header attached by the DLP. The DLP sets this value in the bind ack operation. max_total_multicast is the maximum number of multicast addresses that can be matched by the Network Driver and associated hardware. This is used to allow the DLU to determine how to handle situations where more multicast addresses are desired beyond hardware capabilities. The DLU not, in any situation, issue a DLP trol request that would set the total number of multicast addresses to be matched above this number. mac_addr_len is the number of bytes to be used for MAC addresses for the network adapter hardware. The DLU needs to know the size of hardware MAC addresses if it intends to change or query the MAC addresses of the interface using DLP control operations. qos_caps is a pointer to an inline memory structure specifying the quality of service parameters the DLP supports. The DLP sets the contents of this structure before calling the bind ack operation. If NULL, the DLP does not make any Quality-of-Service guarantees and any constraints specified for packet transmission will be ignored by the DLP. The pointer itself is set by the environment and must not be modified by either the DLP or the DLU. Page 9 of 35

10 DESCRIPTION The udi_dl_bind_cb_t structure is used for the udi_dlp_bind_req and udi_dlu_bind_ack operations between a child (DLU) and its parent (DLP). This structure is empty for the udi_dlp_bind_req operation, and its members are filled in by the DLP for the corresponding udi_dlu_bind_ack operation. This control block must be declared by specifying the control block index value UDI_DL_BIND_CB_NUM in a udi_cb_init_t in the driver s udi_init_info. The qos_caps member points to a structure of type udi_qos_capabilities_t, which is defined in the UDI Quality of Service Library. Page 10 of 35

11 NAME udi_dl_ctrl_cb_t typedef struct { udi_cb_t gcb; udi_ubit8_t command; udi_ubit32_t indicator; udi_buf_t *data_buf; } udi_dl_ctrl_cb_t; /* Data Link Control Op Control Block Number */ #define UDI_DL_CTRL_CB_NUM 3 MEMBERS gcb is the generic control block header which includes a pointer to the scratch space associated with this block and the channel context for the associated channel. The driver may use the scratch space while it owns the control block, but the values are not guaranteed to persist across channel operations. command is the control command the DLP must execute or forward to the NIC driver for processing, as appropriate for the protocol implementation. The following control commands have been identified: UDI_NIC_ADD_MULTI Configures the multicast addresses specified in the supplied buffer. The data_buf contains the array of MAC addresses to be added to the existing filter (the number of addresses being specified is indicated by the indicator field). The remaining portion of the data_buf contains the new filter table including the newly added addresses. Devices which can modify their address filtering simply by knowing the addresses which are to be added or removed can use the initial indicator number of addresses to modify their filter. Other devices require access to the full table of addresses to be filtered to recompute the filter and may use the latter portion of the data_buf. It is possible for the DLU to register multiple times for a specific multicast address, and the DLP is responsible for handling this redundancy. The DLP must also validate the multicast addresses. The contents of the data buffer are guaranteed to be preserved across a channel for the request but not for the response. UDI_NIC_DEL_MULTI Removes the multicast addresses specified in the supplied buffer. In a manner similar to the UDI_NIC_ADD_MULTI operation, the initial indicator number of addresses in the data_buf lists the addresses to be removed, and the latter portion of the data_buf lists the new filter set after removing the specified addresses. The contents of the data buffer are guaranteed to be preserved across a channel Page 11 of 35

12 for the request but not for the response. UDI_NIC_ALLMULTI_ON Instructs the DLP to enable the network adapter to receive all multicast addressed packets. The indicator field is unused and the data_buf field must be NULL. This operation additionally indicates that any specific multicast addresses registered (via UDI_NIC_ADD_MULTI) must be removed. UDI_NIC_ALLMULTI_OFF Disables the reception of all multicast addresses. The indicator and data_buf arguments are used in the same manner as in the UDI_NIC_ADD_MULTI operation to specify the new list of specific multicast addresses (if any) that are to be passed to the DLP. The DLP must ensure that the adapter hardware is returned to the standard reception mode with no multicast addresses being received unless UDI_PROMISC_ON is in effect or unless specifically registered via this operation. The contents of the data buffer are guaranteed to be preserved across a channel for the request but not for the response. UDI_NIC_GET_CURR_MAC Reads the network adapter card s current physical MAC address or addresses. The array of MAC addresses is placed into the data_buf and the number of MAC addresses is placed into the indicator field in the same manner as described for the UDI_NIC_SET_CURR_MAC command. The buf_size in the data_buf divided by the indicator value should yield the same MAC address size as specified in the bind operation. The contents of the data buffer are guaranteed to be preserved across a channel for the response but not for the request. UDI_NIC_SET_CURR_MAC Configures the network adapter card s current physical MAC address or addresses. A typical card will have only a single unicast MAC address, but some configurations and hardware support the registration of multiple unicast MAC addresses for a network interface. The DLP may be instructed to register for multiple unicast MAC addresses by specifying an array of addresses in the associated buffer. All unicast addresses beyond the first address will be accrued against the NIC driver s max_perfect_multicast address count limit as specified in the bind operation; the total number of multicast and unicast addresses (excluding the first) registered by the DLU must not exceed the max_perfect_multicast value. The array of MAC addresses to be set is contained in the data_buf and the number of MAC addresses is in the indicator field. The buf_size in the data_buf divided by the indicator value should yield the same MAC address size as specified in the bind operation. The contents of the data buffer are guaranteed to be preserved across a channel for the request but not for the response. UDI_NIC_GET_FACT_MAC Reads the network adapter card s factory installed physical MAC address. The factory MAC address is specified as the single Page 12 of 35

13 element array in the data_buf in the same manner as for the UDI_NIC_GET_CURR_MAC command. This is the initial MAC address used to operate the NIC until changed via UDI_NIC_SET_CURR_MAC. The contents of the data buffer are guaranteed to be preserved across a channel for the response but not for the request. UDI_NIC_PROMISC_ON Instructs the DLP to enable the promiscuous mode on the network adapter card. The indicator field is unused and the data_buf field must be NULL. When promiscuous mode is enabled, the hardware should be configured such that no destination address matching is performed and all packets should be received and sent to the DLU. Error packets will still be discarded by the DLP. UDI_NIC_PROMISC_OFF Disables the promiscuous mode on the network adapter card. The indicator field is unused and the data_buf field must be NULL. The DLU must now be passed only unicast addresses specific to this adapter or any multicast addresses enabled by any previous UDI_NIC_ADD_MULTI or UDI_NIC_ALLMULTI_ON operations. UDI_NIC_HW_RESET Resets the network adapter card. The indicator field is unused and the data_buf field must be NULL. This operation should cause the hardware to be physically reset if possible. Any operations pending on the hardware should be cancelled and cleaned up; any operations pending in the driver that have not yet been delivered to the hardware (or which have already been completed by the hardware) should be processed as normal following the reset. All other activity should be suspended during the reset operation and the driver should restore the hardware to the same operational state that it had before the reset was issued with the following exceptions: promiscuous mode is disabled, no multicast addresses are registered, the current MAC address must be reprogrammed (i.e. the factory MAC address does not override the current setting), and link status should be established if the NIC driver s state is ENABLED or ACTIVE when this request is received. DESCRIPTION The udi_dl_ctrl_cb_t structure is used by the DLU to configure the NIC driver and the hardware via the DLP. The DLU must fill in its fields prior to initiating a udi_dlp_ctrl_req operation over the initial bind channel between the DLU and the DLP according to the requested operation. The commands that can be used with this control block are those available in the UDI NIC metalanguage. In executing (or forwarding) a control command as specified above, the DLP assumes the role of the NSR, i.e. it acts as the initiator for device control operations. Control functionality is exposed to the DLU to enable protocol-specific features that need special support from the underlying hardware. Page 13 of 35

14 NAME udi_dlp_bind_req void udi_dlp_bind_req ( udi_dl_bind_cb_t *cb); is a pointer to a Data Link Metalanguage bind control block. The fields of this control block are to be initialized by the binding DLP, which will return the control block to the DLU in a subsequent udi_dlu_bind_ack operation. TARGET CHANNEL The udi_dlp_bind_req operation is issued over the Data Link Metalanguage control channel, which is also the primary channel initially established by the MA to bind the primary region of the DLP to the primary region of the DLU. DESCRIPTION udi_dlp_bind_req is used to associate, or bind a channel between the DLU and the DLP. Page 14 of 35

15 NAME udi_dlu_bind_ack void udi_dlu_bind_ack ( udi_dl_bind_cb_t *cb, udi_status_t status); is a pointer to a Data Link Metalanguage bind control block. status indicates the success or failure of the data link bind request. TARGET CHANNEL The udi_dlu_bind_ack operation is issued over the Data Link Metalanguage control channel over which the corresponding udi_dlp_bind_req operation was received. DESCRIPTION Response to a udi_dlp_bind_req operation. The DLP uses this to acknowledge the bind operation to the DLU and to signal the success of the bind operation. TODO: Explain Status codes. Page 15 of 35

16 NAME udi_dlp_unbind_req void udi_dlp_unbind_req ( udi_dl_cb_t *cb); is a pointer to a Data Link Metalanguage standard control block. TARGET CHANNEL The udi_dlp_unbind_req operation is issued over the Data Link Metalanguage control channel. DESCRIPTION The udi_dlp_unbind_req operation is used when the DLU wishes to close down an active binding between itself and the DLP. All data transfer ceases, any queued data is discarded, and the data channel(s) are closed. The control channel may be used to issue a subsequent udi_dlp_bind_req to the DLP if desired or it may also be closed. Page 16 of 35

17 NAME udi_dlu_unbind_ack void udi_dlu_unbind_ack ( udi_dl_cb_t *cb, udi_status_t status); is a pointer to a Data Link Metalanguage standard control block. status indicates the success or failure of the data link unbind request. TARGET CHANNEL The udi_dlu_unbind_ack operation is issued over the Data Link Metalanguage control channel over which the corresponding udi_dlp_unbind_req operation was received. DESCRIPTION Response to a udi_dlp_unbind_req operation. After this operation is performed, the DLU will no longer attempt to transmit packets or to establish additional data transfer channels between itself and the DLP unless another udi_dlp_bind_req has been issued and handshaked before. Likewise, the DLP will stop delivering incoming packets to the DLU unless it has been bound again. TODO: Explain Status codes. Page 17 of 35

18 NAME udi_dlu_unbind_req void udi_dlu_unbind_req ( udi_dl_cb_t *cb); is a pointer to a Data Link Metalanguage standard control block. TARGET CHANNEL The udi_dlu_unbind_req operation is issued over the Data Link Metalanguage control channel. DESCRIPTION The udi_dlu_unbind_req operation is used when the DLP wishes to close down an active binding between itself and the DLU. All data transfer ceases, any queued data is discarded, and the data channel(s) are closed. The control channel may be used by the DLU to issue a subsequent udi_dlp_bind_req to the DLP if desired or it may also be closed. Page 18 of 35

19 NAME udi_dlp_unbind_ack void udi_dlp_unbind_ack ( udi_dl_cb_t *cb, udi_status_t status); is a pointer to a Data Link Metalanguage standard control block. status indicates the success or failure of the data link unbind request. TARGET CHANNEL The udi_dlp_unbind_ack operation is issued over the same Data Link Metalanguage control channel through which the corresponding udi_dlu_unbind_req operation was received. DESCRIPTION Response to a udi_dlu_unbind_req operation. After this operation is performed, the DLU will no longer attempt to transmit packets or to establish additional data transfer channels between itself and the DLP unless another udi_dlp_bind_req has been issued and handshaked before. Likewise, the DLP will stop delivering incoming packets to the DLU unless it has been bound again. TODO: Explain Status codes. Page 19 of 35

20 NAME udi_dlp_ctrl_req void udi_dlp_ctrl_ack ( udi_dl_ctrl_cb_t *cb ); is a pointer to a Data Link Metalanguage control operation control block. TARGET CHANNEL The udi_dlp_ctrl_req operation is issued over the Data Link Metalanguage control channel. DESCRIPTION The udi_dlp_ctrl_req operation is used to configure operation of the DLP, the NIC driver and the network hardware. The network configuration operations are explained in more detail in the description of the udi_dl_ctrl_cb_t structure. This request cannot be aborted. Page 20 of 35

21 NAME udi_dlu_ctrl_ack void udi_dlu_ctrl_ack ( udi_dl_ctrl_cb_t *cb, udi_status_t status ); is a pointer to a Data Link Metalanguage control operation control block. status indicates success or failure of the corresponding control request. TARGET CHANNEL The udi_dlu_ctrl_ack operation is issued over the Data Link Metalanguage control channel in response to a corresponding udi_dlp_ctrl_req operation. DESCRIPTION The udi_dlu_ctrl_ack operation confirms a previous udi_dlp_ctrl_req operation and delivers status information. STATUS VALUES UDI_OK indicates that the network control operation succeeded. UDI_STAT_NOT_UNDERSTOOD indicates that the control operation parameters were invalid. UDI_STAT_RESOURCE_UNAVAIL indicates that the DLP or ND did not have and could not obtain the necessary resources to satisfy the request. UDI_STAT_HW_PROBLEM indicates that the request could not be satisfied due to hardware problems or limitations. Page 21 of 35

22 NAME udi_dlp_rx_chan_req void udi_dlp_rx_chan_req ( udi_dl_cb_t *cb, udi_index_t rx_chan_index, void *dlp_sap_addr, udi_boolean_t pass_whole_pkt ); is a pointer to a Data Link Metalanguage standard control block. rx_chan_index is the index of the data receive channel to be created between the DLP and the DLU by synchronizing via udi_channel_spawn operations. dlp_sap_addr is a protocol-specific description of a service access point address to be used for that receive channel. The service access point address specifies which data link packet should be forwarded over the requested receive channel. The pointer itself is set by the environment, and must not be modified by the driver. pass_whole_pkt is a flag that if set to TRUE instructs the DLP to pass the entire data link PDU (instead of the SDU) up to the DLU. TARGET CHANNEL The udi_dlp_rx_chan_req operation is issued over the Data Link Metalanguage control channel. DESCRIPTION The udi_dlp_rx_chan_req operation is used to establish a receive data transfer channel between the DLP and the DLU. The DLU spawns one end of the data transfer channel and then issues this request, which causes the DLP to create its end of the same channel (using the rx_chan_index parameter to identify the channel being spawned). The channel will then be used by the DLP to report incoming packets to the DLU. The dlp_sap_addr parameter encodes the address of a service access point (or service user) in a protocol-specific manner. This parameter allows the DLP to decide which incoming packets should be indicated to the service user over the receive channel. The size and layout of the dlp_sap_addr structure must be specified using the inline_size and inline_layout members of the udi_cb_init_t structure used to associate this control block to a control block index (i.e. dlp_sap_addr is a UDI_DL_INLINE_DRIVER_TYPED field). TODO: Better explain SAP address. Rename SAP address, as this is probably a misnomer. What s a better name? Page 22 of 35

23 NAME udi_dlu_rx_chan_ack void udi_dlu_rx_chan_ack ( udi_dl_cb_t *cb, udi_status_t status ); is a pointer to a Data Link Metalanguage standard control block. status indicates the success or failure of the channel allocation request. TARGET CHANNEL The udi_dlu_rx_chan_ack operation is issued over the same Data Link Metalanguage control channel that the corresponding udi_dlp_rx_chan_req was delivered over. DESCRIPTION Response to udi_dlp_rx_chan_req. The udi_dlu_rx_chan_ack operation acknowledges the channel creation request and informs the DLU about the success of the request. If the operation was successful, the DLP will henceforward deliver incoming packets over the newlybound channel that match the SAP specification identified by the dlp_sap parameter in the udi_dlp_chan_req operation. TODO: Explain Status codes. Page 23 of 35

24 NAME udi_dlp_tx_chan_req void udi_dlp_tx_chan_req ( udi_dl_cb_t *cb, udi_index_t tx_chan_index, void *default_qos ); is a pointer to a Data Link Metalanguage standard control block. tx_chan_index is the index of the data transmit channel to be created between the DLP and the DLU by synchronizing via udi_channel_spawn operations. default_qos is a pointer to a memory structure describing the default Quality-of-Service constraints to be used for transmitting on the transmit channel to be created. This parameter can be NULL, indicating that the DLU does not request default QoS constraints for this channel. TARGET CHANNEL The udi_dlp_tx_chan_req operation is issued over the Data Link Metalanguage control channel. DESCRIPTION The udi_dlp_tx_chan_req operation is used to establish a transmit data transfer channel between the DLP and the DLU. The DLU spawns one end of the data transfer channel and then issues this request, which causes the DLP to create its end of the same channel (using the tx_chan_index parameter to identify the channel). The newly created channel will then be used by the DLU to transmit data to the DLP. If non-null, the memory pointed to by the default_qos member must have been allocated as moveable, and must point to a valid structure of type udi_qos_constraints_t. Page 24 of 35

25 NAME udi_dlu_tx_chan_ack void udi_dlu_tx_chan_ack ( udi_dl_cb_t *cb, udi_status_t status ); is a pointer to a Data Link Metalanguage standard control block. status indicates the success or failure of the channel allocation request. TARGET CHANNEL The udi_dlu_tx_chan_ack operation is issued over the same Data Link Metalanguage control channel that the corresponding udi_dlp_tx_chan_req was delivered over. DESCRIPTION Response to udi_dlp_tx_chan_req. The udi_dlu_tx_chan_ack operation acknowledges the channel creation request and informs the DLU about the success of the request. If the operation was successful, the DLU can start transmitting packets over the newly-bound channel. TODO: Explain Status codes. Page 25 of 35

26 NAME udi_dl_tx_cb_t typedef struct ( udi_cb_t gcb; udi_dl_tx_cb_t *chain; udi_buf_t *tx_buf; void *tx_addr; } udi_dl_tx_cb_t; /* Data Link Transmit Control Block Group Number */ #define UDI_DL_TX_CB_NUM 4 MEMBERS gcb chain is the generic control block which includes a pointer to the scratch space associated with this block and the channel context for the associated channel. The driver may use the scratch space while it owns the control block, but the values are not guaranteed to persist across channel operations. is a pointer to the next udi_dl_tx_cb_t structure (and associated SDU buffer) for this operation. The DLP and DLU will use this field to batch a number of transmit requests or ready s into a single metalanguage operation. The DLP, DLU, or environment are free to divide a chain at any point and implement explicit operations for each resulting portion of the chain, but performance concerns would indicate that processing the entire chain as a batch is highly desirable. The end of a chain is indicated by a NULL pointer. tx_buf is the buffer describing the SDU to be transmitted. This field must be NULL for the udi_dlu_tx_rdy operation and is used only for the udi_dlp_tx_req operation, for which the contents of the buffer are guaranteed to be preserved across a channel. tx_addr is a pointer to an inline memory structure describing the address to which the attached SDU should be sent. The format of this structure is protocol-specific. The pointer itself is set by the environment when the control block is allocated, and must not be modified by the driver. DESCRIPTION The udi_dl_tx_cb_t structure is passed from the DLP to the DLU to indicate its capability for transmitting a SDU; the DLU subsequently attaches an SDU buffer to this control block and returns it to the DLP for transmission. The DLU can only pass SDUs to the DLP when it has available control blocks. This mechanism implements flow control between the DLP and the DLU by requiring the DLP to supply the DLU with all usable udi_dl_tx_cb_t structures (i.e. the DLU must not allocate structures of this type). This control block must be declared by specifying the control block index value UDI_DL_TX_CB_NUM in a udi_cb_init_t in the driver s udi_init_info. The size and layout of the tx_addr structure must be specified using the inline_size and inline_layout members of that udi_cb_init_t structure (i.e. tx_addr is a UDI_DL_INLINE_DRIVER_TYPED field). Page 26 of 35

27 NAME udi_dlu_tx_rdy void udi_dlu_tx_rdy ( udi_dl_tx_cb_t *cb ); is a pointer to a Data Link Metalanguage transmit control block. TARGET CHANNEL The udi_dlu_tx_rdy operation is issued over a Data Link Metalanguage transmit channel that was previously established using the udi_dlp_tx_chan_req and udi_dlu_tx_chan_ack operations. DESCRIPTION The udi_dlu_tx_rdy operation is used to indicate to the DLU that the DLP can transmit a SDU when the DLU has one available. The DLU maintains a pool of control blocks of type udi_dl_tx_cb_t for SDU transmission. The udi_dlu_tx_rdy operation makes an additional control block available to the DLU, which can then start or continue transmitting over the channel associated with the control block. This is used to perform flow control. Multiple udi_dl_tx_cb_t structures can be chained together (using the chain pointer). Single control blocks as well as a chain of control blocks can be passed using this operation. Page 27 of 35

28 NAME udi_dlp_tx_req void udi_dlp_tx_req ( udi_dl_tx_cb_t *cb ); is a pointer to a Data Link Metalanguage transmit control block. TARGET CHANNEL The udi_dlp_tx_req operation is issued over a Data Link Metalanguage transmit channel that was previously established using the udi_dlp_tx_chan_req and udi_dlu_tx_chan_ack operations. DESCRIPTION The udi_dlp_tx_req operation is called by the DLU to pass one or more SDU buffers to the DLP for transmission over the DLP's associated interface. Each SDU buffer is attached to a separate udi_dl_tx_cb_t control block. Multiple packet buffers may be passed by chaining control blocks together (using the chain field in the udi_dl_tx_cb_t structure). Each packet buffer represents one Data Link SDU (Service Data Unit), i.e. usually one higher-level PDU (Protocol Data Unit). The DLP will perform transmission of the packet according to the default Quality-of-Service constraints associated with the transmit channel used for the operation. If no default QoS constraints are associated with the channel, the DLP will provide an implementation-dependent suitable default service. Page 28 of 35

29 NAME udi_dlp_tx_qos_req void udi_dlp_tx_qos_req ( udi_dl_tx_cb_t *cb, void *tx_qos ); is a pointer to a Data Link Metalanguage transmit control block. tx_qos is a pointer to a memory structure describing the Quality-of-Service constraints associated with the attached SDU. For the format of this structure pointed to by this member, refer to the description of udi_dl_qos_constraints_t. Must not be NULL. TARGET CHANNEL The udi_dlp_tx_qos_req operation is issued over a Data Link Metalanguage transmit channel that was previously established using the udi_dlp_tx_chan_req and udi_dlu_tx_chan_ack operations. DESCRIPTION The udi_dlp_tx_qos_req operation is called by the DLU to pass one or more SDU buffers to the DLP for transmission over the DLP's associated interface. Each SDU buffer is attached to a separate udi_dl_tx_cb_t control block. Multiple packet buffers may be passed by chaining control blocks together (using the chain field in the udi_dl_tx_cb_t structure). Each packet buffer represents one Data Link SDU (Service Data Unit), i.e. usually one higher-level PDU (Protocol Data Unit). The DLP will perform transmission of the packet according to the Quality-of-Service constraints specified in tx_qos. The memory pointed to by tx_qos must have been allocated as moveable, and must point to a valid structure of type udi_dl_qos_constraints_t. Page 29 of 35

30 NAME udi_dlp_tx_qos_modify_req void udi_dlp_tx_qos_modify_req ( udi_dl_cb_t *cb, void *new_default_qos ); is a pointer to a Data Link Metalanguage standard control block. new_default_qos is a pointer to a memory structure describing the Quality-of-Service constraints associated with the attached SDU. For the format of the structure pointed to by this member, refer to the description of udi_dl_qos_constraints_t. Must not be NULL. TARGET CHANNEL The udi_dlp_tx_qos_modify_req operation is issued over a Data Link Metalanguage transmit channel that was previously established using the udi_dlp_tx_chan_req and udi_dlu_tx_chan_ack operations. DESCRIPTION The udi_dlp_tx_qos_modify_req operation is called by the DLU to change the default Quality-of-Service constraints associated with the transmit channel associated with the control block cb. After issuing this operation, no udi_dlp_tx_req operation should be issued over the same transmit channel until the corresponding udi_dlu_tx_qos_modify_ack operation is delivered to the DLU. The memory pointed to by new_default_qos must have been allocated as moveable, and must point to a valid structure of type udi_dl_qos_constraints_t. Page 30 of 35

31 NAME udi_dlu_tx_qos_modify_ack void udi_dlu_tx_qos_modify_ack ( udi_dl_cb_t *cb, udi_status_t status ); is a pointer to a Data Link Metalanguage standard control block. status indicates the completion status of the corresponding udi_dlp_tx_qos_modify_req operation. TARGET CHANNEL The udi_dlu_tx_qos_modify_ack operation is issued over the same Data Link Metalanguage transmit channel that was used to deliver the corresponding udi_dlp_tx_qos_modify_req operation. DESCRIPTION The udi_dlu_tx_qos_modify_ack operation is called by the DLP to complete changing the default Quality-of-Service constraints associated with the transmit channel over which the operation was delivered. The DLU can resume transmitting over the associated transmit channel as soon as this operation has been delivered. Page 31 of 35

32 NAME udi_dl_rx_cb_t typedef struct ( udi_cb_t gcb; udi_dl_rx_cb_t *chain; udi_buf_t *rx_buf; void *rx_qos; TODO: Do we need rx_status or anything else? Do we even need qos_constraints? } udi_dl_rx_cb_t; /* Data Link Transmit Control Block Group Number */ #define UDI_DL_RX_CB_NUM 5 MEMBERS gcb chain is the generic control block which includes a pointer to the scratch space associated with this block and the channel context for the associated channel. The driver may use the scratch space while it owns the control block, but the values are not guaranteed to persist across channel operations. is a pointer to the next udi_dl_rx_cb_t structure (and associated SDU buffer) for this operation. The DLP and DLU will use this field to batch a number of transmit requests or ready s into a single metalanguage operation. The DLP, DLU, or environment are free to divide a chain at any point and implement explicit operations for each resulting portion of the chain, but performance concerns would indicate that processing the entire chain as a batch is highly desirable. The end of a chain is indicated by a NULL pointer. rx_buf is the buffer containing the SDU that has been received. This field is used to pass an empty buffer to the DLP (rx_buf->buf_size == 0) in the udi_dlp_rx_rdy operation. It is filled in with the actual SDU for each udi_dlu_rx_ind operation. rx_qos is a pointer to an inline memory structure describing the Quality-of-Service constraints associated with the attached SDU. The pointer itself is set by the environment and must not be modified by the driver. This member points to a udi_qos_constraints_t structure. DESCRIPTION The udi_dl_rx_cb_t structure is passed from the DLU to the DLP to indicate a capability for receiving a SDU; the DLP subsequently attaches SDU and QoS-constraint buffers to this control block and returns it to the DLU upon valid reception of a relevant SDU. Only successfully received SDUs will be processed and reported to the DLU. This control block must be declared by specifying the control block index value UDI_DL_RX_CB_NUM in a udi_cb_init_t in the driver s udi_init_info. Page 32 of 35

33 NAME udi_dlp_rx_rdy void udi_dlp_rx_rdy ( udi_dl_rx_cb_t *cb ); is a pointer to a Data Link Metalanguage receive control block. TARGET CHANNEL The udi_dlp_rx_rdy operation is issued over a Data Link Metalanguage receive channel that was previously established using the udi_dlp_rx_chan_req and udi_dlu_rx_chan_ack operations. DESCRIPTION The udi_dlp_rx_rdy operation is used to indicate to the DLP that the DLU can process a SDU when the DLP receives one from the underlying interface. The DLP maintains a pool of control blocks of type udi_dl_rx_cb_t for SDU reception. The udi_dlp_rx_rdy operation makes an additional colntrol block available to the DLU, which can then start or continue transmitting over the channel associated with the control block. This is used to perform flow control. Multiple udi_dl_rx_cb_t structures can be chained together (using the chain pointer). Single control blocks as well as a chain of control blocks can be passed using this operation. Page 33 of 35

34 NAME udi_dlu_rx_ind void udi_dlu_rx_ind ( udi_dl_rx_cb_t *cb ); is a pointer to a Data Link Metalanguage receive control block. TARGET CHANNEL The udi_dlu_rx_ind operation is issued over a Data Link Metalanguage receive channel that was previously established using the udi_dlp_rx_chan_req and udi_dlu_rx_chan_ack operations. DESCRIPTION The udi_dlu_rx_ind operation is called by the DLP to indicate to the DLU that the data link driver has received a relevant network-level SDU. Only SDUs that match the SAP address specified when the receive channel was created will be reported over that receive channel. Only valid SDUs will be reported, erroneous data link packets will be silently dropped. The cb can point to a single udi_dl_rx_cb_t structure, or multiple structures can be chained together using the chain pointer in the structure. Once the DLU is done processing the SDU contained in this (these) control block s (blocks ) rx_buf field, the control block (blocks) are returned to the DLP using the udi_dlp_rx_rdy operation. If the pass_whole_pkt argument in the udi_dlp_rx_chan_req operation used to create the receive channel over which the packet is to be delivered was set to TRUE, the DLP will not perform any decapsulation of the data link PDU, but will pass the original PDU to the DLU. Note that this requires the DLU to understand the format of the DLP s protocol format. Page 34 of 35

35 Enumeration Attributes Note: For all attributes of type UDI_ATTR_TYPE_STRING in the following table, the size range indication includes the terminating NUL character. ATTRIBUTE NAME TYPE SIZE DESCRIPTION dl_name UDI_ATTR_STRING Name of the Data Link Protocol supported by this DLP. TODO: Define known names in this spec. dl_rev UDI_ATTR_UBIT32 4 addr_type UDI_ATTR_STRING np_name UDI_ATTR_STRING Revision of the Data Link Protocol supported by this DLP. Name identifying a format for addressing information understood by this DLP. System name of a network-level protocol entity that can be bound to this DLP. TODO: Do we need this? Shouldn t bindings be enforced through directed enumeration? if_name UDI_ATTR_STRING System Interface name this DLP is bound to. if_media UDI_ATTR_STRING 1..8 Media type string as defined in NIC meta. identifier UDI_ATTR_STRING physical_label UDI_ATTR_STRING String representation of the Factory MAC address of the interface that this DLP supports, encoded in the same way as the attribute with the same name in the NIC meta. Driver-specified string uniquely identifying this DLP instance (optional). TODO: Define Attribute Ranking. Page 35 of 35

RFC: connectionless Data Link Metalanguage (cldl) cldl Metalanguage Model. RFC for a connectionless Data Link Metalanguage

RFC: connectionless Data Link Metalanguage (cldl) cldl Metalanguage Model. RFC for a connectionless Data Link Metalanguage RFC: connectionless Data Link Metalanguage (cldl) This RFC details a specification draft for a UDI metalanguage interfacing UDI Network Protocol drivers to UDI Data Link drivers. The metalanguage proposed

More information

Open Universal Serial Bus Driver Interface (OpenUSBDI) Specification

Open Universal Serial Bus Driver Interface (OpenUSBDI) Specification Open Universal Serial Bus Driver Interface (OpenUSBDI) Specification Revision 0.9 June 21, 1999 Open USB Driver Interface (OpenUSBDI) Specification Compaq Computer Corporation, All rights reserved. 2 June

More information

Lecture 7: Ethernet Hardware Addressing and Frame Format. Dr. Mohammed Hawa. Electrical Engineering Department, University of Jordan.

Lecture 7: Ethernet Hardware Addressing and Frame Format. Dr. Mohammed Hawa. Electrical Engineering Department, University of Jordan. Lecture 7: Ethernet Hardware Addressing and Frame Format Dr. Mohammed Hawa Electrical Engineering Department University of Jordan EE426: Communication Networks MAC Addresses The shared medium in a LAN

More information

UDI NIC Test Specification

UDI NIC Test Specification UDI NIC Test Specification by Gian-Carlo Bava (SCO) Barry Feild (SCO) Change History Revision Date Description 0.6 11/05/99 DRAFT version for review Approvers: TBD 1 Introduction This document describes

More information

19: Networking. Networking Hardware. Mark Handley

19: Networking. Networking Hardware. Mark Handley 19: Networking Mark Handley Networking Hardware Lots of different hardware: Modem byte at a time, FDDI, SONET packet at a time ATM (including some DSL) 53-byte cell at a time Reality is that most networking

More information

1. Overview Ethernet FIT Module Outline of the API API Information... 5

1. Overview Ethernet FIT Module Outline of the API API Information... 5 Introduction APPLICATION NOTE R01AN2009EJ0115 Rev.1.15 This application note describes an Ethernet module that uses Firmware Integration Technology (FIT). This module performs Ethernet frame transmission

More information

Open Universal Serial Bus Driver Interface (OpenUSBDI) Specification

Open Universal Serial Bus Driver Interface (OpenUSBDI) Specification Open Universal Serial Bus Driver Interface (OpenUSBDI) Specification Revision 1.0 July 17, 2000 Revision History Rev Date Filename Comments 1.0 5-May-00 usbd10.doc Update version to 1.0, remove "Review

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

Transport Layer. The transport layer is responsible for the delivery of a message from one process to another. RSManiaol

Transport Layer. The transport layer is responsible for the delivery of a message from one process to another. RSManiaol Transport Layer Transport Layer The transport layer is responsible for the delivery of a message from one process to another Types of Data Deliveries Client/Server Paradigm An application program on the

More information

Appendix A Pseudocode of the wlan_mac Process Model in OPNET

Appendix A Pseudocode of the wlan_mac Process Model in OPNET Appendix A Pseudocode of the wlan_mac Process Model in OPNET static void wlan_frame_transmit () { char msg_string [120]; char msg_string1 [120]; WlanT_Hld_List_Elem* hld_ptr; const WlanT_Data_Header_Fields*

More information

CS201 - Introduction to Programming Glossary By

CS201 - Introduction to Programming Glossary By CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with

More information

CS 43: Computer Networks Switches and LANs. Kevin Webb Swarthmore College December 5, 2017

CS 43: Computer Networks Switches and LANs. Kevin Webb Swarthmore College December 5, 2017 CS 43: Computer Networks Switches and LANs Kevin Webb Swarthmore College December 5, 2017 Ethernet Metcalfe s Ethernet sketch Dominant wired LAN technology: cheap $20 for NIC first widely used LAN technology

More information

µtasker Document µtasker Multicasting and Internet Group Management Protocol (IGMP)

µtasker Document µtasker Multicasting and Internet Group Management Protocol (IGMP) Embedding it better... µtasker Document µtasker Multicasting and Internet Group Management Protocol (IGMP) utasker_igmp.doc/0.01 Copyright 2014 M.J.Butcher Consulting Table of Contents 1. Introduction...3

More information

SpiNNaker Application Programming Interface (API)

SpiNNaker Application Programming Interface (API) SpiNNaker Application Programming Interface (API) Version 2.0.0 10 March 2016 Application programming interface (API) Event-driven programming model The SpiNNaker API programming model is a simple, event-driven

More information

Chapter 6 Addressing the Network- IPv4

Chapter 6 Addressing the Network- IPv4 Chapter 6 Addressing the Network- IPv4 Objectives Explain the structure IP addressing and demonstrate the ability to convert between 8- bit binary and decimal numbers. Given an IPv4 address, classify by

More information

ez80 Webserver Write your own EMAC Driver for Metro IPWorks

ez80 Webserver Write your own EMAC Driver for Metro IPWorks Write your own EMAC Driver for Metro IPWorks Technical Article Driving an Ethernet MAC The ez80 Webserver is equipped with two Ethernet Media Access Controller EMAC drivers that control the Realtek RTL8019AS

More information

Computer Networks (Introduction to TCP/IP Protocols)

Computer Networks (Introduction to TCP/IP Protocols) Network Security(CP33925) Computer Networks (Introduction to TCP/IP Protocols) 부산대학교공과대학정보컴퓨터공학부 Network Type Elements of Protocol OSI Reference Model OSI Layers What we ll learn today 2 Definition of

More information

The MAC Address Format

The MAC Address Format Directing data is what addressing is all about. At the Data Link layer, this is done by pointing PDUs to the destination MAC address for delivery of a frame within a LAN. The MAC address is the number

More information

Configuration Commands Generic Commands Syntax description no description Context Description Default Parameters

Configuration Commands Generic Commands Syntax description no description Context Description Default Parameters Configuration Commands Generic Commands description Syntax description description-string no description Context config>qos>sap-egress config>qos>sap-egress>ip-criteria>entry config>qos>sap-ingress config>qos>sap-ingress>ip-criteria>entry

More information

Annex B UMT Peer Discovery and Tunnel Auto-Configuration

Annex B UMT Peer Discovery and Tunnel Auto-Configuration 0 Annex B UMT Peer Discovery and Tunnel Auto-Configuration B. Introduction IEEE Std. 0. Clause defines a method for delivering service data units (SDU) for higher layer protocols across a layer- network

More information

Data Link Protocols. High Level Data. Control Protocol. HDLC Framing ~~~~~~~~ Functions of a Data Link Protocol. Framing PDUs. Addressing Destination

Data Link Protocols. High Level Data. Control Protocol. HDLC Framing ~~~~~~~~ Functions of a Data Link Protocol. Framing PDUs. Addressing Destination Data Link Protocols Data Link Services Connection-less services Functions of a Data Link Protocol Framing PDUs ing Destination Error Detection / Error Recovery Link Management Ethernet (covered elsewhere)

More information

Transport Layer. Gursharan Singh Tatla. Upendra Sharma. 1

Transport Layer. Gursharan Singh Tatla.   Upendra Sharma. 1 Transport Layer Gursharan Singh Tatla mailme@gursharansingh.in Upendra Sharma 1 Introduction The transport layer is the fourth layer from the bottom in the OSI reference model. It is responsible for message

More information

User Datagram Protocol

User Datagram Protocol Topics Transport Layer TCP s three-way handshake TCP s connection termination sequence TCP s TIME_WAIT state TCP and UDP buffering by the socket layer 2 Introduction UDP is a simple, unreliable datagram

More information

IEEE 802.1Q YANG Bridge Port Interface Model in Support of 802.1AX, 802.1X, etc. Marc Holness Version Sept 2016

IEEE 802.1Q YANG Bridge Port Interface Model in Support of 802.1AX, 802.1X, etc. Marc Holness Version Sept 2016 IEEE 802.1Q YANG Port Interface Model in Support of 802.1AX, 802.1X, etc. Marc Holness Version 0.1 12 Sept 2016 IEEE 802.1Q Port Each Port is associated with one Interface, and in most situations, each

More information

Chapter 2 - Part 1. The TCP/IP Protocol: The Language of the Internet

Chapter 2 - Part 1. The TCP/IP Protocol: The Language of the Internet Chapter 2 - Part 1 The TCP/IP Protocol: The Language of the Internet Protocols A protocol is a language or set of rules that two or more computers use to communicate 2 Protocol Analogy: Phone Call Parties

More information

Multicast Communications. Slide Set were original prepared by Dr. Tatsuya Susa

Multicast Communications. Slide Set were original prepared by Dr. Tatsuya Susa Multicast Communications Slide Set were original prepared by Dr. Tatsuya Susa Outline 1. Advantages of multicast 2. Multicast addressing 3. Multicast Routing Protocols 4. Multicast in the Internet 5. IGMP

More information

USB Feature Specification: Shared Endpoints

USB Feature Specification: Shared Endpoints USB Feature Specification: Shared Endpoints SYSTEMSOFT CORPORATION INTEL CORPORATION Revision 1.0 October 27, 1999 USB Feature Specification: Shared Endpoints Revision 1.0 Revision History Revision Issue

More information

The Link Layer II: Ethernet

The Link Layer II: Ethernet Monday Recap The Link Layer II: Ethernet q Link layer services q Principles for multiple access protocols q Categories of multiple access protocols CSC 249 March 24, 2017 1 2 Recap: Random Access Protocols

More information

IPv4 Unicast Forwarding Service API Implementation Agreement

IPv4 Unicast Forwarding Service API Implementation Agreement IPv4 Unicast Forwarding Service API Implementation Agreement Revision 1.0 Editors: Hormuzd Khosravi, Intel Corporation, hormuzd.m.khosravi@intel.com Randy Worzella, IBM, worzella@us.ibm.com Copyright 2003

More information

Multicast Dissemination Protocol (MDP) Developer's Guide

Multicast Dissemination Protocol (MDP) Developer's Guide Multicast Dissemination Protocol (MDP) Developer's Guide Brian Adamson Newlink Global Engineering Corporation Joe Macker Naval Research Laboratory 1

More information

IEEE 802.1Q YANG Bridge Port Interface Model in Support of 802.1AX, 802.1X, etc. Marc Holness Version July 2016

IEEE 802.1Q YANG Bridge Port Interface Model in Support of 802.1AX, 802.1X, etc. Marc Holness Version July 2016 IEEE 802.1Q YANG Port Interface Model in Support of 802.1AX, 802.1X, etc. Marc Holness Version 0.4 28 July 2016 IEEE 802.1Q Port Each Port is associated with one Interface, and in most situations, each

More information

Process Description and Control. Chapter 3

Process Description and Control. Chapter 3 Process Description and Control Chapter 3 Contents Process states Process description Process control Unix process management Process From processor s point of view execute instruction dictated by program

More information

Data Link Layer. Our goals: understand principles behind data link layer services: instantiation and implementation of various link layer technologies

Data Link Layer. Our goals: understand principles behind data link layer services: instantiation and implementation of various link layer technologies Data Link Layer Our goals: understand principles behind data link layer services: link layer addressing instantiation and implementation of various link layer technologies 1 Outline Introduction and services

More information

Inspirel. YAMI4 Requirements. For YAMI4Industry, v page 1

Inspirel. YAMI4 Requirements. For YAMI4Industry, v page 1 YAMI4 Requirements For YAMI4Industry, v.1.3.1 www.inspirel.com info@inspirel.com page 1 Table of Contents Document scope...3 Architectural elements...3 Serializer...3 Socket...3 Input buffer...4 Output

More information

TCP/IP Protocol Suite 1

TCP/IP Protocol Suite 1 TCP/IP Protocol Suite 1 Stream Control Transmission Protocol (SCTP) TCP/IP Protocol Suite 2 OBJECTIVES: To introduce SCTP as a new transport-layer protocol. To discuss SCTP services and compare them with

More information

Using and Programming in Maestro

Using and Programming in Maestro Using and Programming in Maestro Zheng Cai Rice University Maestro is an operating system for orchestrating network control applications. Maestro provides interfaces for implementing modular network control

More information

Request for Comments: 851 Obsoletes RFC: 802. The ARPANET 1822L Host Access Protocol RFC 851. Andrew G. Malis ARPANET Mail:

Request for Comments: 851 Obsoletes RFC: 802. The ARPANET 1822L Host Access Protocol RFC 851. Andrew G. Malis ARPANET Mail: Request for Comments: 851 Obsoletes RFC: 802 The ARPANET 1822L Host Access Protocol Andrew G. Malis ARPANET Mail: malis@bbn-unix Bolt Beranek and Newman Inc. 50 Moulton St. Cambridge, MA 02238 April 1983

More information

Intended status: Standards Track Expires: April 27, 2015 Q. Zhao Huawei Technology D. King Old Dog Consulting J. Hardwick Metaswitch October 24, 2014

Intended status: Standards Track Expires: April 27, 2015 Q. Zhao Huawei Technology D. King Old Dog Consulting J. Hardwick Metaswitch October 24, 2014 PCE Working Group Internet-Draft Intended status: Standards Track Expires: April 27, 2015 A. Koushik Brocade Communications Inc. E. Stephan Orange Q. Zhao Huawei Technology D. King Old Dog Consulting J.

More information

Programming Assignment 3: Transmission Control Protocol

Programming Assignment 3: Transmission Control Protocol CS 640 Introduction to Computer Networks Spring 2005 http://www.cs.wisc.edu/ suman/courses/640/s05 Programming Assignment 3: Transmission Control Protocol Assigned: March 28,2005 Due: April 15, 2005, 11:59pm

More information

Transport Layer. -UDP (User Datagram Protocol) -TCP (Transport Control Protocol)

Transport Layer. -UDP (User Datagram Protocol) -TCP (Transport Control Protocol) Transport Layer -UDP (User Datagram Protocol) -TCP (Transport Control Protocol) 1 Transport Services The transport layer has the duty to set up logical connections between two applications running on remote

More information

Network Advertisement and Selection Proposal for IEEE 802.1af

Network Advertisement and Selection Proposal for IEEE 802.1af Network Advertisement and Selection Proposal for IEEE 802.1af 1 Introduction Network Advertisement and selection are enhancements to 802.1X defined in 802.1af to provide information about what is available

More information

Processes and Threads

Processes and Threads TDDI04 Concurrent Programming, Operating Systems, and Real-time Operating Systems Processes and Threads [SGG7] Chapters 3 and 4 Copyright Notice: The lecture notes are mainly based on Silberschatz s, Galvin

More information

Real-Time Protocol (RTP)

Real-Time Protocol (RTP) Real-Time Protocol (RTP) Provides standard packet format for real-time application Typically runs over UDP Specifies header fields below Payload Type: 7 bits, providing 128 possible different types of

More information

Configuration Commands. Generic Commands. description XRS Quality of Service Guide Page 125

Configuration Commands. Generic Commands. description XRS Quality of Service Guide Page 125 Configuration Commands Generic Commands description Syntax description description-string no description Context config>qos>shared-queue config>qos>network-queue config>qos>network config>qos>network>ingress>ipv6-criteria>entry

More information

Crit-bit Trees. Adam Langley (Version )

Crit-bit Trees. Adam Langley (Version ) Crit-bit Trees Adam Langley (agl@imperialviolet.org) (Version 20080926) 1. Introduction This code is taken from Dan Bernstein s qhasm and implements a binary crit-bit (alsa known as PATRICA) tree for NUL

More information

Networking for Data Acquisition Systems. Fabrice Le Goff - 14/02/ ISOTDAQ

Networking for Data Acquisition Systems. Fabrice Le Goff - 14/02/ ISOTDAQ Networking for Data Acquisition Systems Fabrice Le Goff - 14/02/2018 - ISOTDAQ Outline Generalities The OSI Model Ethernet and Local Area Networks IP and Routing TCP, UDP and Transport Efficiency Networking

More information

Networking interview questions

Networking interview questions Networking interview questions What is LAN? LAN is a computer network that spans a relatively small area. Most LANs are confined to a single building or group of buildings. However, one LAN can be connected

More information

ECE 650 Systems Programming & Engineering. Spring 2018

ECE 650 Systems Programming & Engineering. Spring 2018 ECE 650 Systems Programming & Engineering Spring 2018 Networking Transport Layer Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) TCP/IP Model 2 Transport Layer Problem solved:

More information

Pretty Good Protocol - Design Specification

Pretty Good Protocol - Design Specification Document # Date effective October 23, 2006 Author(s) Ryan Herbst Supersedes Draft Revision 0.02 January 12, 2007 Document Title Pretty Good Protocol - Design Specification CHANGE HISTORY LOG Revision Effective

More information

Chapter 5: The Data Link Layer. Chapter 5 Link Layer and LANs. Ethernet. Link Layer. Star topology. Ethernet Frame Structure.

Chapter 5: The Data Link Layer. Chapter 5 Link Layer and LANs. Ethernet. Link Layer. Star topology. Ethernet Frame Structure. hapter 5 Link Layer and LNs omputer Networking: Top Down pproach 5 th edition. Jim Kurose, Keith Ross ddison-wesley, pril 2009. hapter 5: The Data Link Layer Our goals: understand principles behind data

More information

Obsoletes: 2002 January 2002 Category: Standards Track

Obsoletes: 2002 January 2002 Category: Standards Track Network Working Group C. Perkins, Ed. Request for Comments: 3220 Nokia Research Center Obsoletes: 2002 January 2002 Category: Standards Track Status of this Memo IP Mobility Support for IPv4 This document

More information

Nabto Serial Link Protocol

Nabto Serial Link Protocol Nabto Serial Link Protocol Nabto TM Nabto Serial Link Protocol Page 1 of 22 Contents Vocabulary... 4 Introduction... 5 Access Control... 5 Connection type... 5 Access Control List... 5 Protocol details...

More information

Internet Engineering Task Force (IETF)

Internet Engineering Task Force (IETF) Internet Engineering Task Force (IETF) Request for Comments: 7420 Category: Standards Track ISSN: 2070-1721 A. Koushik Brocade Communications, Inc. E. Stephan Orange Q. Zhao Huawei Technology D. King Old

More information

IPv4 and ipv6 INTEROPERABILITY

IPv4 and ipv6 INTEROPERABILITY IT2351-NPM/UNIT-4/ 1 IPv4 and ipv6 INTEROPERABILITY Till the time, IPv6 is established all over the world, there is a need for one to host dual stacks that is both IPv4 and IPv6 are running concurrently

More information

Networking Technologies and Applications

Networking Technologies and Applications Networking Technologies and Applications Rolland Vida BME TMIT Transport Protocols UDP User Datagram Protocol TCP Transport Control Protocol and many others UDP One of the core transport protocols Used

More information

Unit 2.

Unit 2. Unit 2 Unit 2 Topics Covered: 1. PROCESS-TO-PROCESS DELIVERY 1. Client-Server 2. Addressing 2. IANA Ranges 3. Socket Addresses 4. Multiplexing and Demultiplexing 5. Connectionless Versus Connection-Oriented

More information

The Link Layer and LANs: Ethernet and Swiches

The Link Layer and LANs: Ethernet and Swiches The Link Layer and LNs: Ethernet and Swiches EECS3214 2018-03-21 Link layer, LNs: outline 6.1 introduction, services 6.2 error detection, correction 6.3 multiple access protocols 6.4 LNs addressing, RP

More information

ET4254 Communications and Networking 1

ET4254 Communications and Networking 1 Topic 9 Internet Protocols Aims:- basic protocol functions internetworking principles connectionless internetworking IP IPv6 IPSec 1 Protocol Functions have a small set of functions that form basis of

More information

The Transport Layer. Part 1

The Transport Layer. Part 1 The Transport Layer Part 1 2 OVERVIEW Part 1 User Datagram Protocol Transmission Control Protocol ARQ protocols Part 2 TCP congestion control Mowgli XTP SCTP WAP 3 Transport Layer Protocols Connect applications

More information

Operating System Concepts

Operating System Concepts Chapter 9: Virtual-Memory Management 9.1 Silberschatz, Galvin and Gagne 2005 Chapter 9: Virtual Memory Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped

More information

cdma2000 High Rate Packet Data Supplemental Services

cdma2000 High Rate Packet Data Supplemental Services GPP C.S00-0 Version.0 Date: March 00 cdma000 High Rate Packet Data Supplemental Services COPYRIGHT GPP and its Organizational Partners claim copyright in this document and individual Organizational Partners

More information

OSEK/VDX. Communication. Version January 29, 2003

OSEK/VDX. Communication. Version January 29, 2003 Open Systems and the Corresponding Interfaces for Automotive Electronics OSEK/VDX Communication Version 3.0.1 January 29, 2003 This document is an official release and replaces all previously distributed

More information

CS 640 Introduction to Computer Networks Spring 2009

CS 640 Introduction to Computer Networks Spring 2009 CS 640 Introduction to Computer Networks Spring 2009 http://pages.cs.wisc.edu/~suman/courses/wiki/doku.php?id=640-spring2009 Programming Assignment 3: Transmission Control Protocol Assigned: March 26,

More information

Interlaken Look-Aside Protocol Definition

Interlaken Look-Aside Protocol Definition Interlaken Look-Aside Protocol Definition Contents Terms and Conditions This document has been developed with input from a variety of companies, including members of the Interlaken Alliance, all of which

More information

Data Communication and Synchronization

Data Communication and Synchronization Software Development Kit for Multicore Acceleration Version 3.0 Data Communication and Synchronization for Cell Programmer s Guide and API Reference Version 1.0 DRAFT SC33-8407-00 Software Development

More information

The BANDIT can also concentrate and switch multiple sources of Frame Relay traffic simultaneously.

The BANDIT can also concentrate and switch multiple sources of Frame Relay traffic simultaneously. encor! enetworks TM Version A, March 2008 2013 Encore Networks, Inc. All rights reserved. Routing with Frame Relay This chapter discusses Frame Relay routing. 4.1 Frame Relay You can configure use of synchronous

More information

THE PROCESS ABSTRACTION. CS124 Operating Systems Winter , Lecture 7

THE PROCESS ABSTRACTION. CS124 Operating Systems Winter , Lecture 7 THE PROCESS ABSTRACTION CS124 Operating Systems Winter 2015-2016, Lecture 7 2 The Process Abstraction Most modern OSes include the notion of a process Term is short for a sequential process Frequently

More information

Request for Comments: 938 February 1985

Request for Comments: 938 February 1985 Network Working Group Request for Comments: 938 Trudy Miller ACC February 1985 Functional and Interface Specification STATUS OF THIS MEMO This RFC is being distributed to members of the DARPA research

More information

Internetwork Basic. Possible causes of LAN traffic congestion are

Internetwork Basic. Possible causes of LAN traffic congestion are Internetworking 1 C H A P T E R 2 Internetworking Basics Internetworking Model The OSI Reference Model Ethernet Networking Wireless Networking Data Encapsulation Topic 3 1 Internetwork Basic 4 Possible

More information

F5 BIG-IQ Centralized Management: Local Traffic & Network. Version 5.2

F5 BIG-IQ Centralized Management: Local Traffic & Network. Version 5.2 F5 BIG-IQ Centralized Management: Local Traffic & Network Version 5.2 Table of Contents Table of Contents BIG-IQ Local Traffic & Network: Overview... 5 What is Local Traffic & Network?... 5 Understanding

More information

3. Evaluation of Selected Tree and Mesh based Routing Protocols

3. Evaluation of Selected Tree and Mesh based Routing Protocols 33 3. Evaluation of Selected Tree and Mesh based Routing Protocols 3.1 Introduction Construction of best possible multicast trees and maintaining the group connections in sequence is challenging even in

More information

Chapter 4. DataLink Layer. Reference: Computer Networking: A Top Down Approach 4 th edition. Jim Kurose, Keith Ross Addison-Wesley, July 2007.

Chapter 4. DataLink Layer. Reference: Computer Networking: A Top Down Approach 4 th edition. Jim Kurose, Keith Ross Addison-Wesley, July 2007. Chapter 4 DataLink Layer Reference: Computer Networking: A Top Down Approach 4 th edition. Jim Kurose, Keith Ross Addison-Wesley, July 2007. DataLink Layer Link Layer 4.1 Link-Layer Addressing 4.2 Ethernet

More information

Crit-bit Trees. Adam Langley (Version )

Crit-bit Trees. Adam Langley (Version ) CRITBIT CWEB OUTPUT 1 Crit-bit Trees Adam Langley (agl@imperialviolet.org) (Version 20080926) 1. Introduction This code is taken from Dan Bernstein s qhasm and implements a binary crit-bit (alsa known

More information

Chapter 7. OSI Data Link Layer. CCNA1-1 Chapter 7

Chapter 7. OSI Data Link Layer. CCNA1-1 Chapter 7 Chapter 7 OSI Data Link Layer CCNA1-1 Chapter 7 Note for Instructors These presentations are the result of a collaboration among the instructors at St. Clair College in Windsor, Ontario. Thanks must go

More information

Chapter 7. OSI Data Link Layer

Chapter 7. OSI Data Link Layer Chapter 7 OSI Data Link Layer CCNA1-1 Chapter 7 Note for Instructors These presentations are the result of a collaboration among the instructors at St. Clair College in Windsor, Ontario. Thanks must go

More information

On Distributed Communications, Rand Report RM-3420-PR, Paul Baran, August 1964

On Distributed Communications, Rand Report RM-3420-PR, Paul Baran, August 1964 The requirements for a future all-digital-data distributed network which provides common user service for a wide range of users having different requirements is considered. The use of a standard format

More information

===================================================================== Exercises =====================================================================

===================================================================== Exercises ===================================================================== ===================================================================== Exercises ===================================================================== 1 Chapter 1 1) Design and describe an application-level

More information

BlackBerry Software Development Kit

BlackBerry Software Development Kit BlackBerry Software Development Kit Version 2.5 Radio API Reference Guide (DataTAC) BlackBerry Software Development Kit Version 2.5 Radio API Reference Guide Last modified: 12 June 2002 Part number: PDF-04639-001

More information

The OpenVX User Data Object Extension

The OpenVX User Data Object Extension The OpenVX User Data Object Extension The Khronos OpenVX Working Group, Editor: Jesse Villarreal Version 1.0 (provisional), Wed, 13 Feb 2019 16:07:15 +0000 Table of Contents 1. Introduction.............................................................................................

More information

Computer Networks Principles LAN - Ethernet

Computer Networks Principles LAN - Ethernet Computer Networks Principles LAN - Ethernet Prof. Andrzej Duda duda@imag.fr http://duda.imag.fr 1 Interconnection structure - layer 3 interconnection layer 3 router subnetwork 1 interconnection layer 2

More information

Nokia Fax:

Nokia Fax: 2002-09-11 IEEE C802.16c-02/09 Project Title Date Submitted 2002-09-11 IEEE 802.16 Broadband Wireless Access Working Group Editorial instructions pertaining to comments submitted

More information

Unit C - Network Addressing Objectives Purpose of an IP Address and Subnet Mask Purpose of an IP Address and Subnet Mask

Unit C - Network Addressing Objectives Purpose of an IP Address and Subnet Mask Purpose of an IP Address and Subnet Mask 1 2 3 4 5 6 7 8 9 10 Unit C - Network Addressing Objectives Describe the purpose of an IP address and Subnet Mask and how they are used on the Internet. Describe the types of IP Addresses available. Describe

More information

Jaringan Komputer. The Transport Layer

Jaringan Komputer. The Transport Layer Jaringan Komputer Transport Layer The Transport Layer The heart of the whole protocol hierarchy Task: To provide reliable, cost-effective data transport from the source machine to the destination machine,

More information

G3 PHYSICAL LAYER API SPECIFICATION

G3 PHYSICAL LAYER API SPECIFICATION G3 PHYSICAL LAYER API SPECIFICATION Document Revision: 0.6 Issue Date: 08 August, 2011 Revision History Revision Draft Author Date Comment 0.0 Initial version Susan Yim 01/21/2010 0.1 PHY Lib release 1.0

More information

Chapter 5 End-to-End Protocols

Chapter 5 End-to-End Protocols Chapter 5 End-to-End Protocols Transport layer turns the host-to-host packet delivery service of the underlying network into a process-to-process communication channel Common properties that application

More information

Switched Multimegabit Data Service (SMDS)

Switched Multimegabit Data Service (SMDS) CHAPTER 14 Switched Multimegabit Data Service (SMDS) Background Switched Multimegabit Data Service (SMDS) is a high-speed, packet-switched, datagram-based WAN networking technology used for communication

More information

MLD. MLDv1 (defined in RFC 2710), which is derived from IGMPv2. MLDv2 (defined in RFC 3810), which is derived from IGMPv3.

MLD. MLDv1 (defined in RFC 2710), which is derived from IGMPv2. MLDv2 (defined in RFC 3810), which is derived from IGMPv3. Introduction to Multicast listener discovery protocol () is used by an IPv6 router to discover the presence of multicast listeners on directly-attached subnets. Multicast listeners are nodes wishing to

More information

BIG-IQ Centralized Management: ADC. Version 5.0

BIG-IQ Centralized Management: ADC. Version 5.0 BIG-IQ Centralized Management: ADC Version 5.0 Table of Contents Table of Contents BIG-IQ Application Delivery Controller: Overview...5 What is Application Delivery Controller?...5 Managing Device Resources...7

More information

Transport Protocols. Raj Jain. Washington University in St. Louis

Transport Protocols. Raj Jain. Washington University in St. Louis Transport Protocols Raj Jain Washington University Saint Louis, MO 63131 Jain@cse.wustl.edu These slides are available on-line at: http://www.cse.wustl.edu/~jain/cse473-05/ 16-1 Overview q TCP q Key features

More information

Communication. Distributed Systems Santa Clara University 2016

Communication. Distributed Systems Santa Clara University 2016 Communication Distributed Systems Santa Clara University 2016 Protocol Stack Each layer has its own protocol Can make changes at one layer without changing layers above or below Use well defined interfaces

More information

ETSF05/ETSF10 Internet Protocols Network Layer Protocols

ETSF05/ETSF10 Internet Protocols Network Layer Protocols ETSF05/ETSF10 Internet Protocols Network Layer Protocols 2016 Jens Andersson Agenda Internetworking IPv4/IPv6 Framentation/Reassembly ICMPv4/ICMPv6 IPv4 to IPv6 transition VPN/Ipsec NAT (Network Address

More information

SDD Advanced-User Manual Version 1.1

SDD Advanced-User Manual Version 1.1 SDD Advanced-User Manual Version 1.1 Arthur Choi and Adnan Darwiche Automated Reasoning Group Computer Science Department University of California, Los Angeles Email: sdd@cs.ucla.edu Download: http://reasoning.cs.ucla.edu/sdd

More information

Internet Protocols (chapter 18)

Internet Protocols (chapter 18) Internet Protocols (chapter 18) CSE 3213 Fall 2011 Internetworking Terms 1 TCP/IP Concepts Connectionless Operation Internetworking involves connectionless operation at the level of the Internet Protocol

More information

Research and Analysis of Flow Control Mechanism for Transport Protocols of the SpaceWire Onboard Networks

Research and Analysis of Flow Control Mechanism for Transport Protocols of the SpaceWire Onboard Networks Research and Analysis of Flow Control Mechanism for Transport Protocols of the SpaceWire Onboard Networks Nikolay Sinyov, Valentin Olenev, Irina Lavrovskaya, Ilya Korobkov {nikolay.sinyov, valentin.olenev,

More information

TCP = Transmission Control Protocol Connection-oriented protocol Provides a reliable unicast end-to-end byte stream over an unreliable internetwork.

TCP = Transmission Control Protocol Connection-oriented protocol Provides a reliable unicast end-to-end byte stream over an unreliable internetwork. Overview Formats, Data Transfer, etc. Connection Management (modified by Malathi Veeraraghavan) 1 Overview TCP = Transmission Control Protocol Connection-oriented protocol Provides a reliable unicast end-to-end

More information

6.1 Internet Transport Layer Architecture 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol) 6. Transport Layer 6-1

6.1 Internet Transport Layer Architecture 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol) 6. Transport Layer 6-1 6. Transport Layer 6.1 Internet Transport Layer Architecture 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol) 6. Transport Layer 6-1 6.1 Internet Transport Layer Architecture The

More information

An SCTP-Protocol Data Unit with several chunks

An SCTP-Protocol Data Unit with several chunks SCTP for Beginners Section 2 SCTP Packets he protocol data units (PDU) of SCTP are called SCTP packets. If SCTP runs over IP (as described in RFC2960 ), an SCTP packet forms the payload of an IP packet.

More information

TSIN02 - Internetworking

TSIN02 - Internetworking Lecture 4: Transport Layer Literature: Forouzan: ch 11-12 2004 Image Coding Group, Linköpings Universitet Lecture 4: Outline Transport layer responsibilities UDP TCP 2 Transport layer in OSI model Figure

More information

EEC-484/584 Computer Networks

EEC-484/584 Computer Networks EEC-484/584 Computer Networks Lecture 15 wenbing@ieee.org (Lecture nodes are based on materials supplied by Dr. Louise Moser at UCSB and Prentice-Hall) Outline 2 Review of last lecture The network layer

More information