static inline void eth_addr_random(uint8_t ea[ETH_ADDR_LEN])
{
random_bytes(ea, ETH_ADDR_LEN);
+ ea[0] &= ~1; /* Unicast. */
+ ea[0] |= 2; /* Private. */
}
#define ETH_ADDR_FMT \
} __attribute__((packed));
BUILD_ASSERT_DECL(LLC_SNAP_HEADER_LEN == sizeof(struct llc_snap_header));
-#define VLAN_VID 0x0fff
+#define VLAN_VID_MASK 0x0fff
+#define VLAN_PCP_MASK 0xe000
#define VLAN_HEADER_LEN 4
struct vlan_header {
#define IP_IHL(ip_ihl_ver) ((ip_ihl_ver) & 15)
#define IP_IHL_VER(ihl, ver) (((ver) << 4) | (ihl))
+#define IP_TYPE_ICMP 1
#define IP_TYPE_TCP 6
#define IP_TYPE_UDP 17