56
56
#define ETH_ADDR_FMT_STR "%02x:%02x:%02x:%02x:%02x:%02x"
57
57
#define ETH_ADDR_FMT_ARGS(a) ((uint8 *)a)[0], ((uint8 *)a)[1], ((uint8 *)a)[2], \
58
58
((uint8 *)a)[3], ((uint8 *)a)[4], ((uint8 *)a)[5]
60
#define ETH_MAX_EXACT_MULTICAST_ADDRS 32
62
typedef enum Eth_RxMode {
63
ETH_FILTER_UNICAST = 0x0001, // pass unicast (directed) frames
64
ETH_FILTER_MULTICAST = 0x0002, // pass some multicast frames
65
ETH_FILTER_ALLMULTI = 0x0004, // pass *all* multicast frames
66
ETH_FILTER_BROADCAST = 0x0008, // pass broadcast frames
67
ETH_FILTER_PROMISC = 0x0010, // pass all frames (ie no filter)
68
ETH_FILTER_USE_LADRF = 0x0020, // use the LADRF for multicast filtering
69
ETH_FILTER_SINK = 0x10000 // pass not-matched unicast frames
72
// filter flags printf helpers
73
#define ETH_FILTER_FLAG_FMT_STR "%s%s%s%s%s%s%s"
74
#define ETH_FILTER_FLAG_FMT_ARGS(f) (f) & ETH_FILTER_UNICAST ? " UNICAST" : "", \
75
(f) & ETH_FILTER_MULTICAST ? " MULTICAST" : "", \
76
(f) & ETH_FILTER_ALLMULTI ? " ALLMULTI" : "", \
77
(f) & ETH_FILTER_BROADCAST ? " BROADCAST" : "", \
78
(f) & ETH_FILTER_PROMISC ? " PROMISC" : "", \
79
(f) & ETH_FILTER_USE_LADRF ? " USE_LADRF" : "", \
80
(f) & ETH_FILTER_SINK ? " SINK" : ""
59
82
// Ethernet header type
61
84
ETH_HEADER_TYPE_DIX,
209
232
ETH_VMWARE_FRAME_TYPE_INVALID = 0,
210
233
ETH_VMWARE_FRAME_TYPE_BEACON = 1,
211
234
ETH_VMWARE_FRAME_TYPE_COLOR = 2,
212
ETH_VMWARE_FRAME_TYPE_HEARTBEAT = 3,
235
ETH_VMWARE_FRAME_TYPE_ECHO = 3,