diff --git a/bgpd/bgp_label.c b/bgpd/bgp_label.c index 30090e0590b7..87b61c4d29c4 100644 --- a/bgpd/bgp_label.c +++ b/bgpd/bgp_label.c @@ -99,6 +99,10 @@ mpls_label_t bgp_adv_label(struct bgp_dest *dest, struct bgp_path_info *pi, PEER_FLAG_FORCE_NEXTHOP_SELF)) return remote_label; + if (from->sort == BGP_PEER_IBGP && + !CHECK_FLAG(to->af_flags[afi][safi], PEER_FLAG_NEXTHOP_SELF)) + return remote_label; + if (CHECK_FLAG(to->af_flags[afi][safi], PEER_FLAG_NEXTHOP_UNCHANGED)) return remote_label;