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 <free...@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
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to