svn commit: r277077 - head/sys/netinet

Gleb Smirnoff glebius at FreeBSD.org
Mon Jan 12 18:06:24 UTC 2015


Author: glebius
Date: Mon Jan 12 18:06:22 2015
New Revision: 277077
URL: https://svnweb.freebsd.org/changeset/base/277077

Log:
  Do not go one layer down to check ifqueue length. First, not all drivers
  use ifqueue at all. Second, there is no point in this lockless check.
  Either positive or negative result of the check could be incorrect after
  a tick.
  
  Reviewed by:	tuexen
  Sponsored by:	Nginx, Inc.

Modified:
  head/sys/netinet/sctp_output.c

Modified: head/sys/netinet/sctp_output.c
==============================================================================
--- head/sys/netinet/sctp_output.c	Mon Jan 12 16:18:34 2015	(r277076)
+++ head/sys/netinet/sctp_output.c	Mon Jan 12 18:06:22 2015	(r277077)
@@ -7958,22 +7958,6 @@ again_one_more_time:
 		} else {
 			skip_data_for_this_net = 0;
 		}
-		if ((net->ro.ro_rt) && (net->ro.ro_rt->rt_ifp)) {
-			/*
-			 * if we have a route and an ifp check to see if we
-			 * have room to send to this guy
-			 */
-			struct ifnet *ifp;
-
-			ifp = net->ro.ro_rt->rt_ifp;
-			if ((ifp->if_snd.ifq_len + 2) >= ifp->if_snd.ifq_maxlen) {
-				SCTP_STAT_INCR(sctps_ifnomemqueued);
-				if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_MAXBURST_ENABLE) {
-					sctp_log_maxburst(stcb, net, ifp->if_snd.ifq_len, ifp->if_snd.ifq_maxlen, SCTP_MAX_IFP_APPLIED);
-				}
-				continue;
-			}
-		}
 		switch (((struct sockaddr *)&net->ro._l_addr)->sa_family) {
 #ifdef INET
 		case AF_INET:


More information about the svn-src-head mailing list