Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/net use the CARP interface for arp/nd instead of the car...
details: https://anonhg.NetBSD.org/src/rev/6ad45e023f86
branches: trunk
changeset: 848061:6ad45e023f86
user: kardel <kardel%NetBSD.org@localhost>
date: Thu Jan 16 13:16:59 2020 +0000
description:
use the CARP interface for arp/nd instead of the carp parent interface.
this provides the correct source mac address for the packets.
there are routers out there that cache the source mac during
nd and then subsequently bypass/miss packet filters on carp
interfaces as they send to the parent interface mac instead of the
correct carp interface mac.
diffstat:
sys/net/if_ethersubr.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diffs (36 lines):
diff -r 7f619370e148 -r 6ad45e023f86 sys/net/if_ethersubr.c
--- a/sys/net/if_ethersubr.c Thu Jan 16 13:15:47 2020 +0000
+++ b/sys/net/if_ethersubr.c Thu Jan 16 13:16:59 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_ethersubr.c,v 1.280 2019/10/16 18:29:49 christos Exp $ */
+/* $NetBSD: if_ethersubr.c,v 1.281 2020/01/16 13:16:59 kardel Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -61,7 +61,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_ethersubr.c,v 1.280 2019/10/16 18:29:49 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_ethersubr.c,v 1.281 2020/01/16 13:16:59 kardel Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -243,7 +243,7 @@
} else if (m->m_flags & M_MCAST) {
ETHER_MAP_IP_MULTICAST(&satocsin(dst)->sin_addr, edst);
} else {
- error = arpresolve(ifp, rt, m, dst, edst, sizeof(edst));
+ error = arpresolve(ifp0, rt, m, dst, edst, sizeof(edst));
if (error)
return (error == EWOULDBLOCK) ? 0 : error;
}
@@ -292,7 +292,7 @@
ETHER_MAP_IPV6_MULTICAST(&satocsin6(dst)->sin6_addr,
edst);
} else {
- error = nd6_resolve(ifp, rt, m, dst, edst,
+ error = nd6_resolve(ifp0, rt, m, dst, edst,
sizeof(edst));
if (error)
return (error == EWOULDBLOCK) ? 0 : error;
Home |
Main Index |
Thread Index |
Old Index