52,35 → 52,49 |
*/ |
#define ETH_SFD 0xD5 |
|
/** Type definition of the Ethernet header with all the extensions. |
* @see eth_header_ex |
/** IEEE 802.2 unordered information control field. |
*/ |
typedef struct eth_header_ex eth_header_ex_t; |
#define IEEE_8023_2_UI 0x03 |
|
/** Type definition of the Ethernet header with all the extensions pointer. |
* @see eth_header |
/** Type definition of the Ethernet header IEEE 802.3 + 802.2 + SNAP extensions. |
* @see eth_header_snap |
*/ |
typedef eth_header_ex_t * eth_header_ex_ref; |
typedef struct eth_header_snap eth_header_snap_t; |
|
/** Type definition of the Ethernet header LSAP extension. |
/** Type definition of the Ethernet header IEEE 802.3 + 802.2 + SNAP extensions pointer. |
* @see eth_header_snap |
*/ |
typedef eth_header_snap_t * eth_header_snap_ref; |
|
/** Type definition of the Ethernet header IEEE 802.3 + 802.2 + SNAP extensions. |
* @see eth_header_lsap |
*/ |
typedef struct eth_header_lsap eth_header_lsap_t; |
|
/** Type definition of the Ethernet header LSAP extension pointer. |
/** Type definition of the Ethernet header IEEE 802.3 + 802.2 extension pointer. |
* @see eth_header_lsap |
*/ |
typedef eth_header_lsap_t * eth_header_lsap_ref; |
|
/** Type definition of the Ethernet header LSAP extension. |
* @see eth_ieee_lsap |
*/ |
typedef struct eth_ieee_lsap eth_ieee_lsap_t; |
|
/** Type definition of the Ethernet header LSAP extension pointer. |
* @see eth_ieee_lsap |
*/ |
typedef eth_ieee_lsap_t * eth_ieee_lsap_ref; |
|
/** Type definition of the Ethernet header SNAP extension. |
* @see eth_header_snap |
* @see eth_snap |
*/ |
typedef struct eth_header_snap eth_header_snap_t; |
typedef struct eth_snap eth_snap_t; |
|
/** Type definition of the Ethernet header SNAP extension pointer. |
* @see eth_header_snap |
* @see eth_snap |
*/ |
typedef eth_header_snap_t * eth_header_snap_ref; |
typedef eth_snap_t * eth_snap_ref; |
|
/** Type definition of the Ethernet header preamble. |
* @see preamble |
90,7 → 104,7 |
/** Type definition of the Ethernet header preamble pointer. |
* @see eth_preamble |
*/ |
typedef eth_preamble_t * eth_preamble_ref; |
typedef eth_preamble_t * eth_preamble_ref; |
|
/** Type definition of the Ethernet header. |
* @see eth_header |
104,7 → 118,7 |
|
/** Ethernet header Link Service Access Point extension. |
*/ |
struct eth_header_lsap{ |
struct eth_ieee_lsap{ |
/** Destination Service Access Point identifier. |
* The possible values are assigned by an IEEE committee. |
*/ |
121,7 → 135,7 |
|
/** Ethernet header SNAP extension. |
*/ |
struct eth_header_snap{ |
struct eth_snap{ |
/** Protocol identifier or organization code. |
*/ |
uint8_t protocol[ 3 ]; |
160,9 → 174,9 |
uint16_t ethertype; |
} __attribute__ ((packed)); |
|
/** Ethernet header with all the extensions. |
/** Ethernet header IEEE 802.3 + 802.2 extension. |
*/ |
struct eth_header_ex{ |
struct eth_header_lsap{ |
/** Ethernet header. |
*/ |
eth_header_t header; |
170,10 → 184,23 |
* If DSAP and SSAP are set to ETH_LSAP_SNAP the SNAP extension is being used. |
* If DSAP and SSAP fields are equal to ETH_RAW the raw Ethernet packet without any extensions is being used and the frame content starts rigth after the two fields. |
*/ |
eth_header_lsap_t lsap; |
eth_ieee_lsap_t lsap; |
} __attribute__ ((packed)); |
|
/** Ethernet header IEEE 802.3 + 802.2 + SNAP extensions. |
*/ |
struct eth_header_snap{ |
/** Ethernet header. |
*/ |
eth_header_t header; |
/** LSAP extension. |
* If DSAP and SSAP are set to ETH_LSAP_SNAP the SNAP extension is being used. |
* If DSAP and SSAP fields are equal to ETH_RAW the raw Ethernet packet without any extensions is being used and the frame content starts rigth after the two fields. |
*/ |
eth_ieee_lsap_t lsap; |
/** SNAP extension. |
*/ |
eth_header_snap_t snap; |
eth_snap_t snap; |
} __attribute__ ((packed)); |
|
/** Ethernet Frame Check Sequence. |