diff options
author | Gurucharan Shetty <gshetty@nicira.com> | 2013-08-03 13:46:26 +0000 |
---|---|---|
committer | Gurucharan Shetty <gshetty@nicira.com> | 2013-08-05 13:12:40 -0700 |
commit | de8d2ef9dd141f4a96d4b79afbfadb3c4eb042c7 (patch) | |
tree | 46355c7d4010978ae63dab497b2aaed3e8a4e032 /lib/packets.h | |
parent | b644259ff26970b841479a4e881303ad49e81abe (diff) |
bfd: Optimize BFD for Megaflows.
The current situation is that whenever any packet enters the
userspace, bfd_should_process_flow() looks at the UDP destination
port to figure out whether that is a BFD packet. This means that
UDP destination port cannot be wildcarded for all the other flows
too.
To optimize BFD for megaflows, we introduce a new
'bfd:bfd_dst_mac' field in the database. Whenever this field is set
by a controller, it is assumed that all the BFD packets to/from
this interface will have the destination mac address set as the one
specified in the bfd:bfd_dst_mac field. If this field is set, we
first look at the destination mac address of a packet and if it
does not match the mac address set in bfd:bfd_dst_mac, we do not
process that packet as bfd. If the field does match, we go ahead
and look at the UDP destination port too.
Also, change the default BFD destination mac address to
"00:23:20:00:00:01".
Feature #18850.
Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
Acked-by: Ethan Jackson <ethan@nicira.com>
Diffstat (limited to 'lib/packets.h')
-rw-r--r-- | lib/packets.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/packets.h b/lib/packets.h index e8527618..33be891f 100644 --- a/lib/packets.h +++ b/lib/packets.h @@ -44,6 +44,9 @@ static const uint8_t eth_addr_stp[ETH_ADDR_LEN] OVS_UNUSED static const uint8_t eth_addr_lacp[ETH_ADDR_LEN] OVS_UNUSED = { 0x01, 0x80, 0xC2, 0x00, 0x00, 0x02 }; +static const uint8_t eth_addr_bfd[ETH_ADDR_LEN] OVS_UNUSED + = { 0x00, 0x23, 0x20, 0x00, 0x00, 0x01 }; + static inline bool eth_addr_is_broadcast(const uint8_t ea[6]) { return (ea[0] & ea[1] & ea[2] & ea[3] & ea[4] & ea[5]) == 0xff; |