prot_ethernet.h

Ethernet protocol definitions.

Defines

ETH_HWADDR_LEN
ETH_ADDR(b0, b1, b2, b3, b4, b5)

Initialize a struct eth_addr with its 6 bytes (takes care of correct braces)

SIZEOF_ETH_HDR
SIZEOF_VLAN_HDR
VLAN_ID(vlan_hdr)
LL_IP4_MULTICAST_ADDR_0

The 24-bit IANA IPv4-multicast OUI is 01-00-5e:

LL_IP4_MULTICAST_ADDR_1
LL_IP4_MULTICAST_ADDR_2
LL_IP6_MULTICAST_ADDR_0

IPv6 multicast uses this prefix.

LL_IP6_MULTICAST_ADDR_1
eth_addr_cmp(addr1, addr2)
eth_addr_eq(addr1, addr2)

Variables

PACK_STRUCT_BEGIN struct eth_addr PACK_STRUCT_STRUCT
struct eth_addr
#include <prot_ethernet.h>

An Ethernet MAC address.

Public Functions

PACK_STRUCT_FLD_8 (u8_t addr[ETH_HWADDR_LEN])
struct eth_hdr
#include <prot_ethernet.h>

Ethernet header.

Public Functions

PACK_STRUCT_FLD_S (struct eth_addr dest)
PACK_STRUCT_FLD_S (struct eth_addr src)
PACK_STRUCT_FIELD (u16_t type)
struct eth_vlan_hdr
#include <prot_ethernet.h>

VLAN header inserted between ethernet header and payload if ‘type’ in ethernet header is ETHTYPE_VLAN.

See IEEE802.Q

Public Functions

PACK_STRUCT_FIELD (u16_t prio_vid)
PACK_STRUCT_FIELD (u16_t tpid)