aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/vnet.txt
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-02-18 08:30:00 +0100
committerDmitry Vyukov <dvyukov@google.com>2020-02-18 10:31:02 +0100
commitb97f1e694a1c096eac2f48c6e3ca47e8a3c4693c (patch)
tree9bfcd027798b3ff86edb380cefa8edb77c2db099 /sys/linux/vnet.txt
parent1ce142dcc7e25341405592c66bcb7cb0d60d2b3a (diff)
sys/linux: add broadcast mac address
Code in net/ethernet/eth.c does this: __be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev) { ... if (unlikely(!ether_addr_equal_64bits(eth->h_dest, dev->dev_addr))) { if (unlikely(is_multicast_ether_addr_64bits(eth->h_dest))) { if (ether_addr_equal_64bits(eth->h_dest, dev->broadcast)) skb->pkt_type = PACKET_BROADCAST; else skb->pkt_type = PACKET_MULTICAST; } else { skb->pkt_type = PACKET_OTHERHOST; } } Multicast and broadcast are distinct and dev->broadcast seems to be ffffffffffff by default, so add another multicast mac address that will serve as PACKET_MULTICAST.
Diffstat (limited to 'sys/linux/vnet.txt')
-rw-r--r--sys/linux/vnet.txt1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/linux/vnet.txt b/sys/linux/vnet.txt
index edc38fdc5..7ad9421e7 100644
--- a/sys/linux/vnet.txt
+++ b/sys/linux/vnet.txt
@@ -62,6 +62,7 @@ mac_addr [
remote mac_addr_t[const[0xbb, int8]]
dev mac_addr_t[netdev_addr_id]
broadcast array[const[0xff, int8], 6]
+ multicast array[const[0xbb, int8], 6]
link_local mac_addr_link_local
random array[int8, 6]
]