]> git.proxmox.com Git - mirror_frr.git/commitdiff
bgpd: add BGP_ATTR_MP_NEXTHOP_LEN_IP6 macro
authorTrey Aspelund <taspelund@nvidia.com>
Sun, 17 Jul 2022 02:13:43 +0000 (02:13 +0000)
committerTrey Aspelund <taspelund@nvidia.com>
Thu, 4 Aug 2022 17:54:42 +0000 (17:54 +0000)
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>
bgpd/bgp_route.h

index 8072b83b49c779e62a55738eed23c8b6ceaa4535..3e46c7043e15dd521f86742f237004f8f1c241c2 100644 (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))