diff options
| author | Hiroki Shirokura <slank.dev@gmail.com> | 2021-02-09 05:26:22 +0000 |
|---|---|---|
| committer | Mark Stapp <mjs@voltanet.io> | 2021-06-02 10:24:48 -0400 |
| commit | 7f8c7d9166317e4e65f359d72b044a9d6dfd062c (patch) | |
| tree | 7bf59d09cf868a59a60ab081eb798d276148fb9d | |
| parent | 3a0220e46a8ed0e0cbf80c42cbff7ede6846df9d (diff) | |
bgpd: ignore nexthop validation for srv6-vpn
Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
| -rw-r--r-- | bgpd/bgp_nht.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/bgpd/bgp_nht.c b/bgpd/bgp_nht.c index e94f63541d..f046235610 100644 --- a/bgpd/bgp_nht.c +++ b/bgpd/bgp_nht.c @@ -66,9 +66,20 @@ static int bgp_isvalid_nexthop(struct bgp_nexthop_cache *bnc) static int bgp_isvalid_labeled_nexthop(struct bgp_nexthop_cache *bnc) { + /* + * In the case of MPLS-VPN, the label is learned from LDP or other + * protocols, and nexthop tracking is enabled for the label. + * The value is recorded as BGP_NEXTHOP_LABELED_VALID. + * In the case of SRv6-VPN, we need to track the reachability to the + * SID (in other words, IPv6 address). As in MPLS, we need to record + * the value as BGP_NEXTHOP_SID_VALID. However, this function is + * currently not implemented, and this function assumes that all + * Transit routes for SRv6-VPN are valid. + */ return (bgp_zebra_num_connects() == 0 - || (bnc && CHECK_FLAG(bnc->flags, BGP_NEXTHOP_LABELED_VALID) - && bnc->nexthop_num > 0)); + || (bnc && bnc->nexthop_num > 0 + && (CHECK_FLAG(bnc->flags, BGP_NEXTHOP_LABELED_VALID) + || bnc->bgp->srv6_enabled))); } static void bgp_unlink_nexthop_check(struct bgp_nexthop_cache *bnc) |
