Skip to content

Commit

Permalink
Revert "Merge pull request FRRouting#16439 from louis-6wind/fix-ipv4-…
Browse files Browse the repository at this point in the history
…mapped-ipv6"

This reverts commit cc0fdd3, reversing
changes made to 4e20808.
  • Loading branch information
Jafaral committed Aug 21, 2024
1 parent d9775c6 commit 0d2d208
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 45 deletions.
19 changes: 3 additions & 16 deletions bgpd/bgp_nht.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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:
Expand Down
21 changes: 2 additions & 19 deletions bgpd/bgp_updgrp_packet.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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;
}
Expand Down
5 changes: 0 additions & 5 deletions tests/topotests/bgp_nexthop_mp_ipv4_6/r2/bgp_ipv6_step2.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,6 @@
"bestpath": true,
"path": "65100",
"nexthops": [
{
"ip": "::ffff:ac10:1",
"afi": "ipv6",
"scope": "global"
},
{
"afi": "ipv6",
"scope": "link-local",
Expand Down
5 changes: 0 additions & 5 deletions tests/topotests/bgp_nexthop_mp_ipv4_6/r3/bgp_ipv6_step2.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,6 @@
"bestpath": true,
"path": "65100",
"nexthops": [
{
"ip": "::ffff:ac10:101",
"afi": "ipv6",
"scope": "global"
},
{
"afi": "ipv6",
"scope": "link-local",
Expand Down

0 comments on commit 0d2d208

Please sign in to comment.