Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Oct 2019 17:48:32 +0000 (UTC)
From:      Conrad Meyer <cem@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r353689 - head/sys/net
Message-ID:  <201910171748.x9HHmWm3031490@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: cem
Date: Thu Oct 17 17:48:32 2019
New Revision: 353689
URL: https://svnweb.freebsd.org/changeset/base/353689

Log:
  debugnet: Respond to broadcast ARP requests
  
  The in-tree netdump code has always ignored non-directed ARP requests, and
  that seems to work most of the time for netdump.
  
  In my work and testing on NetGDB, it seems like sometimes the remote FreeBSD
  conversant (the non-panic system) will send broadcast-destination ARP
  requests to the debugnet kernel; without this change, those are dropped and
  the remote will see EHOSTDOWN "Host is down" errors from the userspace
  interface of the network stack.
  
  Discussed with:	markj

Modified:
  head/sys/net/debugnet.c

Modified: head/sys/net/debugnet.c
==============================================================================
--- head/sys/net/debugnet.c	Thu Oct 17 17:19:16 2019	(r353688)
+++ head/sys/net/debugnet.c	Thu Oct 17 17:48:32 2019	(r353689)
@@ -434,7 +434,8 @@ debugnet_pkt_in(struct ifnet *ifp, struct mbuf *m)
 		goto done;
 	}
 	if (memcmp(ifr.ifr_addr.sa_data, eh->ether_dhost,
-	    ETHER_ADDR_LEN) != 0) {
+	    ETHER_ADDR_LEN) != 0 &&
+	    (etype != ETHERTYPE_ARP || !ETHER_IS_BROADCAST(eh->ether_dhost))) {
 		DNETDEBUG_IF(ifp,
 		    "discard frame with incorrect destination addr\n");
 		goto done;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201910171748.x9HHmWm3031490>