Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Sep 2017 00:25:09 +0000 (UTC)
From:      Matt Joras <mjoras@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r323513 - head/sys/net
Message-ID:  <201709130025.v8D0P9tp008817@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mjoras
Date: Wed Sep 13 00:25:09 2017
New Revision: 323513
URL: https://svnweb.freebsd.org/changeset/base/323513

Log:
  Allow vlan interfaces to rx through netmap(4).
  
  Normally after receiving a packet, a vlan(4) interface sends the packet
  back through its parent interface's rx routine so that it can be
  processed as an untagged frame. It does this by using the parent's
  ifp->if_input. This is incompatible with netmap(4), which replaces the
  vlan(4) interface's if_input with a netmap(4) hook. Fix this by using
  the vlan(4) interface's ifp instead of the parent's directly.
  
  Reported by:	Harry Schmalzbauer <freebsd@omnilan.de>
  Reviewed by:	rstone
  Approved by:	rstone (mentor)
  MFC after:	3 days
  Sponsored by:	Dell EMC Isilon
  Differential Revision:	https://reviews.freebsd.org/D12191

Modified:
  head/sys/net/if_vlan.c

Modified: head/sys/net/if_vlan.c
==============================================================================
--- head/sys/net/if_vlan.c	Tue Sep 12 23:58:38 2017	(r323512)
+++ head/sys/net/if_vlan.c	Wed Sep 13 00:25:09 2017	(r323513)
@@ -1384,7 +1384,7 @@ vlan_input(struct ifnet *ifp, struct mbuf *m)
 	VLAN_RUNLOCK();
 
 	/* Pass it back through the parent's input routine. */
-	(*ifp->if_input)(ifv->ifv_ifp, m);
+	(*ifv->ifv_ifp->if_input)(ifv->ifv_ifp, m);
 }
 
 static void



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