Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 4742 → Rev 4743

/branches/network/uspace/srv/net/nil/eth/eth_header.h
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.