diff options
author | Jafar Al-Gharaibeh <jafar@atcorp.com> | 2024-08-21 20:26:50 +0200 |
---|---|---|
committer | Jafar Al-Gharaibeh <jafar@atcorp.com> | 2024-08-21 20:26:50 +0200 |
commit | 0d2d20825e91fddb856fd34103f72a5485e04e49 (patch) | |
tree | 7da9b3a4e15ebb1597a3ed155190fbb74529a9c1 | |
parent | Merge pull request #16597 from kprovost/master (diff) | |
download | frr-0d2d20825e91fddb856fd34103f72a5485e04e49.tar.xz frr-0d2d20825e91fddb856fd34103f72a5485e04e49.zip |
Revert "Merge pull request #16439 from louis-6wind/fix-ipv4-mapped-ipv6"
This reverts commit cc0fdd3b1d1b3554896fc03eec16379b7bae2b40, reversing
changes made to 4e208087fd854e3e1528519745447f69691b04ad.
-rw-r--r-- | bgpd/bgp_nht.c | 19 | ||||
-rw-r--r-- | bgpd/bgp_updgrp_packet.c | 21 | ||||
-rw-r--r-- | tests/topotests/bgp_nexthop_mp_ipv4_6/r2/bgp_ipv6_step2.json | 5 | ||||
-rw-r--r-- | tests/topotests/bgp_nexthop_mp_ipv4_6/r3/bgp_ipv6_step2.json | 5 |
4 files changed, 5 insertions, 45 deletions
diff --git a/bgpd/bgp_nht.c b/bgpd/bgp_nht.c index 8da7521ff..504428b0d 100644 --- a/bgpd/bgp_nht.c +++ b/bgpd/bgp_nht.c @@ -351,9 +351,7 @@ int bgp_find_or_add_nexthop(struct bgp *bgp_route, struct bgp *bgp_nexthop, } return 0; } - if (afi == AFI_IP6 && p.family == AF_INET) - /* IPv4 mapped IPv6 nexthop address */ - afi = AFI_IP; + srte_color = bgp_attr_get_color(pi->attr); } else if (peer) { @@ -1080,25 +1078,14 @@ static int make_prefix(int afi, struct bgp_path_info *pi, struct prefix *p) &ipv4); p->u.prefix4 = ipv4; p->prefixlen = IPV4_MAX_BITLEN; - p->family = AF_INET; } else p->u.prefix6 = pi->attr->mp_nexthop_global; } else p->u.prefix6 = pi->attr->mp_nexthop_local; - } else { - if (IS_MAPPED_IPV6( - &pi->attr->mp_nexthop_global)) { - ipv4_mapped_ipv6_to_ipv4(&pi->attr->mp_nexthop_global, - &ipv4); - p->u.prefix4 = ipv4; - p->prefixlen = IPV4_MAX_BITLEN; - p->family = AF_INET; - } else - p->u.prefix6 = - pi->attr->mp_nexthop_global; - } + } else + p->u.prefix6 = pi->attr->mp_nexthop_global; } break; default: diff --git a/bgpd/bgp_updgrp_packet.c b/bgpd/bgp_updgrp_packet.c index 0f4738838..b7d5f6645 100644 --- a/bgpd/bgp_updgrp_packet.c +++ b/bgpd/bgp_updgrp_packet.c @@ -508,9 +508,6 @@ struct stream *bpacket_reformat_for_peer(struct bpacket *pkt, gnh_modified = 1; } } else if (IN6_IS_ADDR_UNSPECIFIED(&v6nhglobal)) { - /* the UPDATE is originating from the local router. - * Build the global nexthop. - */ mod_v6nhg = &peer->nexthop.v6_global; gnh_modified = 1; } else if ((peer->sort == BGP_PEER_EBGP) @@ -524,32 +521,18 @@ struct stream *bpacket_reformat_for_peer(struct bpacket *pkt, */ mod_v6nhg = &peer->nexthop.v6_global; gnh_modified = 1; - } else if (IS_MAPPED_IPV6(&v6nhglobal) && - !IN6_IS_ADDR_LINKLOCAL(&peer->nexthop.v6_global)) { - /* prefer a IPv6 native global address over - * an IPv4-mapped IPv6 address as nexthop when - * forwarding UPDATEs. - */ - mod_v6nhg = &peer->nexthop.v6_global; - gnh_modified = 1; } if (peer->nexthop.v4.s_addr != INADDR_ANY && (IN6_IS_ADDR_UNSPECIFIED(mod_v6nhg) || (IN6_IS_ADDR_LINKLOCAL(mod_v6nhg) && - ((peer->connection->su.sa.sa_family == AF_INET6 && - paf->afi == AFI_IP) || - (peer->connection->su.sa.sa_family == AF_INET && - paf->afi == AFI_IP6))))) { + peer->connection->su.sa.sa_family == AF_INET6 && + paf->afi == AFI_IP))) { ipv4_to_ipv4_mapped_ipv6(mod_v6nhg, peer->nexthop.v4); gnh_modified = 1; } if (IS_MAPPED_IPV6(&peer->nexthop.v6_global)) { - /* If the interface to the peer has no global IPv6 - * address, replace the nexthop in UPDATE with - * the IPv4-mapped IPv6 address if any. - */ mod_v6nhg = &peer->nexthop.v6_global; gnh_modified = 1; } diff --git a/tests/topotests/bgp_nexthop_mp_ipv4_6/r2/bgp_ipv6_step2.json b/tests/topotests/bgp_nexthop_mp_ipv4_6/r2/bgp_ipv6_step2.json index 6738d4575..21f36089b 100644 --- a/tests/topotests/bgp_nexthop_mp_ipv4_6/r2/bgp_ipv6_step2.json +++ b/tests/topotests/bgp_nexthop_mp_ipv4_6/r2/bgp_ipv6_step2.json @@ -7,11 +7,6 @@ "path": "65100", "nexthops": [ { - "ip": "::ffff:ac10:1", - "afi": "ipv6", - "scope": "global" - }, - { "afi": "ipv6", "scope": "link-local", "used": true diff --git a/tests/topotests/bgp_nexthop_mp_ipv4_6/r3/bgp_ipv6_step2.json b/tests/topotests/bgp_nexthop_mp_ipv4_6/r3/bgp_ipv6_step2.json index 807806ff8..21f36089b 100644 --- a/tests/topotests/bgp_nexthop_mp_ipv4_6/r3/bgp_ipv6_step2.json +++ b/tests/topotests/bgp_nexthop_mp_ipv4_6/r3/bgp_ipv6_step2.json @@ -7,11 +7,6 @@ "path": "65100", "nexthops": [ { - "ip": "::ffff:ac10:101", - "afi": "ipv6", - "scope": "global" - }, - { "afi": "ipv6", "scope": "link-local", "used": true |