bgpd: add BGP_ATTR_MP_NEXTHOP_LEN_IP6 macro

Move the logic to check the mp_nexthop_len against v6 lengths into its
own macro so we can apply that logic elsewhere on its own without always
checking for presence of BGP_ATTR_NEXT_HOP.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
This commit is contained in:
Trey Aspelund 2022-07-17 02:13:43 +00:00
parent 8bb6d4a00c
commit 109153dde8

View File

@ -469,12 +469,16 @@ struct bgp_aggregate {
? 0 \
: ((nhlen) < IPV6_MAX_BYTELEN ? AFI_IP : AFI_IP6))
#define BGP_ATTR_MP_NEXTHOP_LEN_IP6(attr) \
((attr)->mp_nexthop_len == BGP_ATTR_NHLEN_IPV6_GLOBAL || \
(attr)->mp_nexthop_len == BGP_ATTR_NHLEN_IPV6_GLOBAL_AND_LL || \
(attr)->mp_nexthop_len == BGP_ATTR_NHLEN_VPNV6_GLOBAL || \
(attr)->mp_nexthop_len == BGP_ATTR_NHLEN_VPNV6_GLOBAL_AND_LL)
#define BGP_ATTR_NEXTHOP_AFI_IP6(attr) \
(!CHECK_FLAG(attr->flag, ATTR_FLAG_BIT(BGP_ATTR_NEXT_HOP)) \
&& ((attr)->mp_nexthop_len == BGP_ATTR_NHLEN_IPV6_GLOBAL \
|| (attr)->mp_nexthop_len == BGP_ATTR_NHLEN_IPV6_GLOBAL_AND_LL \
|| (attr)->mp_nexthop_len == BGP_ATTR_NHLEN_VPNV6_GLOBAL \
|| (attr)->mp_nexthop_len == BGP_ATTR_NHLEN_VPNV6_GLOBAL_AND_LL))
(!CHECK_FLAG(attr->flag, ATTR_FLAG_BIT(BGP_ATTR_NEXT_HOP)) && \
BGP_ATTR_MP_NEXTHOP_LEN_IP6(attr))
#define BGP_PATH_COUNTABLE(BI) \
(!CHECK_FLAG((BI)->flags, BGP_PATH_HISTORY) \
&& !CHECK_FLAG((BI)->flags, BGP_PATH_REMOVED))