svn commit: r189203 - in user/kmacy/releng_7_fast_net/sys: net netgraph

Kip Macy kmacy at FreeBSD.org
Sat Feb 28 20:49:43 PST 2009


Author: kmacy
Date: Sun Mar  1 04:49:42 2009
New Revision: 189203
URL: http://svn.freebsd.org/changeset/base/189203

Log:
  multiq step 4:
  enable if_transmit: adds if_transmit and if_qflush to struct ifnet to give
    high performance drivers the option of managing their own queues

Modified:
  user/kmacy/releng_7_fast_net/sys/net/if_ethersubr.c
  user/kmacy/releng_7_fast_net/sys/net/if_fddisubr.c
  user/kmacy/releng_7_fast_net/sys/net/if_fwsubr.c
  user/kmacy/releng_7_fast_net/sys/net/if_lagg.c
  user/kmacy/releng_7_fast_net/sys/net/if_tun.c
  user/kmacy/releng_7_fast_net/sys/net/if_vlan.c
  user/kmacy/releng_7_fast_net/sys/netgraph/ng_iface.c

Modified: user/kmacy/releng_7_fast_net/sys/net/if_ethersubr.c
==============================================================================
--- user/kmacy/releng_7_fast_net/sys/net/if_ethersubr.c	Sun Mar  1 04:45:37 2009	(r189202)
+++ user/kmacy/releng_7_fast_net/sys/net/if_ethersubr.c	Sun Mar  1 04:49:42 2009	(r189203)
@@ -383,7 +383,6 @@ bad:			if (m != NULL)
 int
 ether_output_frame(struct ifnet *ifp, struct mbuf *m)
 {
-	int error;
 #if defined(INET) || defined(INET6)
 	struct ip_fw *rule = ip_dn_claim_rule(m);
 
@@ -402,8 +401,7 @@ ether_output_frame(struct ifnet *ifp, st
 	 * Queue message on interface, update output statistics if
 	 * successful, and start output if interface not yet active.
 	 */
-	IFQ_HANDOFF(ifp, m, error);
-	return (error);
+	return ((ifp->if_transmit)(ifp, m));
 }
 
 #if defined(INET) || defined(INET6)

Modified: user/kmacy/releng_7_fast_net/sys/net/if_fddisubr.c
==============================================================================
--- user/kmacy/releng_7_fast_net/sys/net/if_fddisubr.c	Sun Mar  1 04:45:37 2009	(r189202)
+++ user/kmacy/releng_7_fast_net/sys/net/if_fddisubr.c	Sun Mar  1 04:49:42 2009	(r189203)
@@ -336,7 +336,7 @@ fddi_output(ifp, m, dst, rt0)
 		}
 	}
 
-	IFQ_HANDOFF(ifp, m, error);
+	error = (ifp->if_transmit)(ifp, m);
 	if (error)
 		ifp->if_oerrors++;
 

Modified: user/kmacy/releng_7_fast_net/sys/net/if_fwsubr.c
==============================================================================
--- user/kmacy/releng_7_fast_net/sys/net/if_fwsubr.c	Sun Mar  1 04:45:37 2009	(r189202)
+++ user/kmacy/releng_7_fast_net/sys/net/if_fwsubr.c	Sun Mar  1 04:49:42 2009	(r189203)
@@ -249,7 +249,7 @@ firewire_output(struct ifnet *ifp, struc
 		 */
 		enc->ul[0] = htonl(enc->ul[0]);
 
-		IFQ_HANDOFF(ifp, m, error);
+		error = (ifp->if_transmit)(ifp, m);
 		return (error);
 	} else {
 		/*
@@ -309,7 +309,7 @@ firewire_output(struct ifnet *ifp, struc
 			enc->ul[0] = htonl(enc->ul[0]);
 			enc->ul[1] = htonl(enc->ul[1]);
 
-			IFQ_HANDOFF(ifp, m, error);
+			error = (ifp->if_transmit)(ifp, m);
 			if (error) {
 				if (mtail)
 					m_freem(mtail);

Modified: user/kmacy/releng_7_fast_net/sys/net/if_lagg.c
==============================================================================
--- user/kmacy/releng_7_fast_net/sys/net/if_lagg.c	Sun Mar  1 04:45:37 2009	(r189202)
+++ user/kmacy/releng_7_fast_net/sys/net/if_lagg.c	Sun Mar  1 04:49:42 2009	(r189203)
@@ -1370,12 +1370,8 @@ out:
 int
 lagg_enqueue(struct ifnet *ifp, struct mbuf *m)
 {
-	int error = 0;
 
-	IFQ_HANDOFF(ifp, m, error);
-	if (error)
-		ifp->if_oerrors++;
-	return (error);
+	return (ifp->if_transmit)(ifp, m);
 }
 
 /*

Modified: user/kmacy/releng_7_fast_net/sys/net/if_tun.c
==============================================================================
--- user/kmacy/releng_7_fast_net/sys/net/if_tun.c	Sun Mar  1 04:45:37 2009	(r189202)
+++ user/kmacy/releng_7_fast_net/sys/net/if_tun.c	Sun Mar  1 04:49:42 2009	(r189203)
@@ -648,7 +648,7 @@ tunoutput(
 		}
 	}
 
-	IFQ_HANDOFF(ifp, m0, error);
+	error = (ifp->if_transmit)(ifp, m0);
 	if (error) {
 		ifp->if_collisions++;
 		return (ENOBUFS);

Modified: user/kmacy/releng_7_fast_net/sys/net/if_vlan.c
==============================================================================
--- user/kmacy/releng_7_fast_net/sys/net/if_vlan.c	Sun Mar  1 04:45:37 2009	(r189202)
+++ user/kmacy/releng_7_fast_net/sys/net/if_vlan.c	Sun Mar  1 04:49:42 2009	(r189203)
@@ -864,7 +864,7 @@ vlan_start(struct ifnet *ifp)
 		 * Send it, precisely as ether_output() would have.
 		 * We are already running at splimp.
 		 */
-		IFQ_HANDOFF(p, m, error);
+		error = (p->if_transmit)(p, m);
 		if (!error)
 			ifp->if_opackets++;
 		else

Modified: user/kmacy/releng_7_fast_net/sys/netgraph/ng_iface.c
==============================================================================
--- user/kmacy/releng_7_fast_net/sys/netgraph/ng_iface.c	Sun Mar  1 04:45:37 2009	(r189202)
+++ user/kmacy/releng_7_fast_net/sys/netgraph/ng_iface.c	Sun Mar  1 04:49:42 2009	(r189203)
@@ -400,7 +400,7 @@ ng_iface_output(struct ifnet *ifp, struc
 			return (ENOBUFS);
 		}
 		*(sa_family_t *)m->m_data = dst->sa_family;
-		IFQ_HANDOFF(ifp, m, error);
+		error = (ifp->if_transmit)(ifp, m);
 	} else
 		error = ng_iface_send(ifp, m, dst->sa_family);
 


More information about the svn-src-user mailing list