svn commit: r274359 - in head: sys/netinet sys/sys tools/tools/sysdoc

Alexander V. Chernikov melifaro at FreeBSD.org
Mon Nov 10 23:10:04 UTC 2014


Author: melifaro
Date: Mon Nov 10 23:10:01 2014
New Revision: 274359
URL: https://svnweb.freebsd.org/changeset/base/274359

Log:
  Remove kernel handling of ICMP_SOURCEQUENCH.
  It hasn't been used for a very long time.
  Additionally, it was deprecated by RFC 6633.

Modified:
  head/sys/netinet/ip_fastfwd.c
  head/sys/netinet/ip_icmp.c
  head/sys/netinet/ip_input.c
  head/sys/netinet/tcp_subr.c
  head/sys/sys/protosw.h
  head/tools/tools/sysdoc/tunables.mdoc

Modified: head/sys/netinet/ip_fastfwd.c
==============================================================================
--- head/sys/netinet/ip_fastfwd.c	Mon Nov 10 21:31:14 2014	(r274358)
+++ head/sys/netinet/ip_fastfwd.c	Mon Nov 10 23:10:01 2014	(r274359)
@@ -502,7 +502,6 @@ passout:
 	if ((ifp->if_snd.ifq_len + ip_len / ifp->if_mtu + 1) >=
 	    ifp->if_snd.ifq_maxlen) {
 		IPSTAT_INC(ips_odropped);
-		/* would send source quench here but that is depreciated */
 		goto drop;
 	}
 #endif

Modified: head/sys/netinet/ip_icmp.c
==============================================================================
--- head/sys/netinet/ip_icmp.c	Mon Nov 10 21:31:14 2014	(r274358)
+++ head/sys/netinet/ip_icmp.c	Mon Nov 10 23:10:01 2014	(r274359)
@@ -486,12 +486,6 @@ icmp_input(struct mbuf **mp, int *offp, 
 		if (code > 1)
 			goto badcode;
 		code = PRC_PARAMPROB;
-		goto deliver;
-
-	case ICMP_SOURCEQUENCH:
-		if (code)
-			goto badcode;
-		code = PRC_QUENCH;
 	deliver:
 		/*
 		 * Problem with datagram; advise higher level routines.
@@ -670,6 +664,7 @@ reflect:
 	case ICMP_TSTAMPREPLY:
 	case ICMP_IREQREPLY:
 	case ICMP_MASKREPLY:
+	case ICMP_SOURCEQUENCH:
 	default:
 		break;
 	}

Modified: head/sys/netinet/ip_input.c
==============================================================================
--- head/sys/netinet/ip_input.c	Mon Nov 10 21:31:14 2014	(r274358)
+++ head/sys/netinet/ip_input.c	Mon Nov 10 23:10:01 2014	(r274359)
@@ -104,12 +104,6 @@ SYSCTL_INT(_net_inet_ip, IPCTL_SENDREDIR
     &VNET_NAME(ipsendredirects), 0,
     "Enable sending IP redirects");
 
-static VNET_DEFINE(int, ip_sendsourcequench);
-#define	V_ip_sendsourcequench	VNET(ip_sendsourcequench)
-SYSCTL_INT(_net_inet_ip, OID_AUTO, sendsourcequench, CTLFLAG_VNET | CTLFLAG_RW,
-    &VNET_NAME(ip_sendsourcequench), 0,
-    "Enable the transmission of source quench packets");
-
 VNET_DEFINE(int, ip_do_randomid);
 SYSCTL_INT(_net_inet_ip, OID_AUTO, random_id, CTLFLAG_VNET | CTLFLAG_RW,
     &VNET_NAME(ip_do_randomid), 0,
@@ -1647,25 +1641,6 @@ ip_forward(struct mbuf *m, int srcrt)
 		break;
 
 	case ENOBUFS:
-		/*
-		 * A router should not generate ICMP_SOURCEQUENCH as
-		 * required in RFC1812 Requirements for IP Version 4 Routers.
-		 * Source quench could be a big problem under DoS attacks,
-		 * or if the underlying interface is rate-limited.
-		 * Those who need source quench packets may re-enable them
-		 * via the net.inet.ip.sendsourcequench sysctl.
-		 */
-		if (V_ip_sendsourcequench == 0) {
-			m_freem(mcopy);
-			if (ia != NULL)
-				ifa_free(&ia->ia_ifa);
-			return;
-		} else {
-			type = ICMP_SOURCEQUENCH;
-			code = 0;
-		}
-		break;
-
 	case EACCES:			/* ipfw denied packet */
 		m_freem(mcopy);
 		if (ia != NULL)

Modified: head/sys/netinet/tcp_subr.c
==============================================================================
--- head/sys/netinet/tcp_subr.c	Mon Nov 10 21:31:14 2014	(r274358)
+++ head/sys/netinet/tcp_subr.c	Mon Nov 10 23:10:01 2014	(r274359)
@@ -1430,11 +1430,6 @@ tcp_ctlinput(int cmd, struct sockaddr *s
 	else if (PRC_IS_REDIRECT(cmd))
 		return;
 	/*
-	 * Source quench is depreciated.
-	 */
-	else if (cmd == PRC_QUENCH)
-		return;
-	/*
 	 * Hostdead is ugly because it goes linearly through all PCBs.
 	 * XXX: We never get this from ICMP, otherwise it makes an
 	 * excellent DoS attack on machines with many connections.
@@ -1539,9 +1534,6 @@ tcp6_ctlinput(int cmd, struct sockaddr *
 	else if (!PRC_IS_REDIRECT(cmd) &&
 		 ((unsigned)cmd >= PRC_NCMDS || inet6ctlerrmap[cmd] == 0))
 		return;
-	/* Source quench is depreciated. */
-	else if (cmd == PRC_QUENCH)
-		return;
 
 	/* if the parameter is from icmp6, decode it. */
 	if (d != NULL) {

Modified: head/sys/sys/protosw.h
==============================================================================
--- head/sys/sys/protosw.h	Mon Nov 10 21:31:14 2014	(r274358)
+++ head/sys/sys/protosw.h	Mon Nov 10 23:10:01 2014	(r274359)
@@ -274,8 +274,8 @@ int	pru_sopoll_notsupp(struct socket *so
 #define	PRC_IFDOWN		0	/* interface transition */
 #define	PRC_ROUTEDEAD		1	/* select new route if possible ??? */
 #define	PRC_IFUP		2	/* interface has come back up */
-#define	PRC_QUENCH2		3	/* DEC congestion bit says slow down */
-#define	PRC_QUENCH		4	/* some one said to slow down */
+/* was	PRC_QUENCH2		3	DEC congestion bit says slow down */
+/* was	PRC_QUENCH		4	Deprecated by RFC 6633 */
 #define	PRC_MSGSIZE		5	/* message size forced drop */
 #define	PRC_HOSTDEAD		6	/* host appears to be down */
 #define	PRC_HOSTUNREACH		7	/* deprecated (use PRC_UNREACH_HOST) */

Modified: head/tools/tools/sysdoc/tunables.mdoc
==============================================================================
--- head/tools/tools/sysdoc/tunables.mdoc	Mon Nov 10 21:31:14 2014	(r274358)
+++ head/tools/tools/sysdoc/tunables.mdoc	Mon Nov 10 23:10:01 2014	(r274359)
@@ -1347,15 +1347,6 @@ See 
 for more information.
 
 ---
-net.inet.ip.sendsourcequench
-bool
-
-This 
-.Nm
-enables or disables the transmission of
-source quench packets.
-
----
 net.inet.ip.sourceroute
 bool
 


More information about the svn-src-head mailing list