aboutsummaryrefslogtreecommitdiffstats
path: root/sysdep
diff options
context:
space:
mode:
authorLuiz Amaral <email@luiz.eng.br>2023-04-21 01:37:30 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2023-04-21 02:03:31 +0200
commitd61505b039bf0aa6697e28b2a4e07907c89ba1fb (patch)
tree6855a44cfceb2fcc1fafc35f1246a92e1b7f37fb /sysdep
parent335409248ea932e93ce4361564b8e92d0b83b071 (diff)
downloadbird-d61505b039bf0aa6697e28b2a4e07907c89ba1fb.tar.gz
BSD: IPv4 over IPv6 nexthop support on FreeBSD
The support for IPv4 routes with IPv6 nexthops was implemented in FreeBSD 13.1, this patch allows to import and export such routes from/to kernel. Minor change from committer.
Diffstat (limited to 'sysdep')
-rw-r--r--sysdep/bsd/krt-sock.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sysdep/bsd/krt-sock.c b/sysdep/bsd/krt-sock.c
index 1f793293..d13e20a3 100644
--- a/sysdep/bsd/krt-sock.c
+++ b/sysdep/bsd/krt-sock.c
@@ -314,7 +314,7 @@ krt_send_route(struct krt_proto *p, int cmd, rte *e)
if (ipa_is_link_local(gw))
_I0(gw) = 0xfe800000 | (i->index & 0x0000ffff);
- sockaddr_fill(&gate, af, gw, NULL, 0);
+ sockaddr_fill(&gate, (ipa_is_ip4(gw) ? AF_INET : AF_INET6), gw, NULL, 0);
msg.rtm.rtm_flags |= RTF_GATEWAY;
msg.rtm.rtm_addrs |= RTA_GATEWAY;
break;
@@ -469,7 +469,7 @@ krt_read_route(struct ks_msg *msg, struct krt_proto *p, int scan)
idst = ipa_from_sa(&dst);
imask = ipa_from_sa(&mask);
- igate = (gate.sa.sa_family == dst.sa.sa_family) ? ipa_from_sa(&gate) : IPA_NONE;
+ igate = ipa_from_sa(&gate);
#ifdef KRT_SHARED_SOCKET
if (!scan)