summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJafar Al-Gharaibeh <jafar@atcorp.com>2024-08-21 20:26:50 +0200
committerJafar Al-Gharaibeh <jafar@atcorp.com>2024-08-21 20:26:50 +0200
commit0d2d20825e91fddb856fd34103f72a5485e04e49 (patch)
tree7da9b3a4e15ebb1597a3ed155190fbb74529a9c1
parentMerge pull request #16597 from kprovost/master (diff)
downloadfrr-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.c19
-rw-r--r--bgpd/bgp_updgrp_packet.c21
-rw-r--r--tests/topotests/bgp_nexthop_mp_ipv4_6/r2/bgp_ipv6_step2.json5
-rw-r--r--tests/topotests/bgp_nexthop_mp_ipv4_6/r3/bgp_ipv6_step2.json5
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