Link Layer Address Handling¶
Overview¶
The link layer addresses are set for network interfaces so that L2 connectivity works correctly in the network stack. Typically the link layer addresses are 6 bytes long like in Ethernet but for IEEE 802.15.4 the link layer address length is 8 bytes.
API Reference¶
-
group
net_linkaddr
Network link address library.
Defines
-
NET_LINK_ADDR_MAX_LENGTH
¶ Maximum length of the link address
Enums
-
enum
net_link_type
¶ Type of the link address. This indicates the network technology that this address is used in. Note that in order to save space we store the value into a u8_t variable, so please do not introduce any values > 255 in this enum.
Values:
-
NET_LINK_UNKNOWN
= 0¶ Unknown link address type.
-
NET_LINK_IEEE802154
¶ IEEE 802.15.4 link address.
-
NET_LINK_BLUETOOTH
¶ Bluetooth IPSP link address.
-
NET_LINK_ETHERNET
¶ Ethernet link address.
-
NET_LINK_DUMMY
¶ Dummy link address. Used in testing apps and loopback support.
-
NET_LINK_CANBUS_RAW
¶ CANBUS link address.
-
NET_LINK_CANBUS
¶ 6loCAN link address.
-
Functions
-
static bool
net_linkaddr_cmp
(struct net_linkaddr *lladdr1, struct net_linkaddr *lladdr2)¶ Compare two link layer addresses.
- Return
True if the addresses are the same, false otherwise.
- Parameters
lladdr1
: Pointer to a link layer addresslladdr2
: Pointer to a link layer address
-
static int
net_linkaddr_set
(struct net_linkaddr_storage *lladdr_store, u8_t *new_addr, u8_t new_len)¶ Set the member data of a link layer address storage structure.
- Parameters
lladdr_store
: The link address storage structure to change.new_addr
: Array of bytes containing the link address.new_len
: Length of the link address array. This value should always be <= NET_LINK_ADDR_MAX_LENGTH.
-
struct
net_linkaddr
¶ - #include <net_linkaddr.h>
Hardware link address structure.
Used to hold the link address information
-
struct
net_linkaddr_storage
¶ - #include <net_linkaddr.h>
Hardware link address structure.
Used to hold the link address information. This variant is needed when we have to store the link layer address.
Note that you cannot cast this to net_linkaddr as u8_t * is handled differently than u8_t addr[] and the fields are purposely in different order.
-