From ea5b796615ddbde24284c0c25900e8605469cf83 Mon Sep 17 00:00:00 2001 From: melifaro Date: Mon, 10 Nov 2014 23:10:01 +0000 Subject: [PATCH] Remove kernel handling of ICMP_SOURCEQUENCH. It hasn't been used for a very long time. Additionally, it was deprecated by RFC 6633. --- sys/netinet/ip_fastfwd.c | 1 - sys/netinet/ip_icmp.c | 7 +------ sys/netinet/ip_input.c | 25 ------------------------- sys/netinet/tcp_subr.c | 8 -------- sys/sys/protosw.h | 4 ++-- tools/tools/sysdoc/tunables.mdoc | 9 --------- 6 files changed, 3 insertions(+), 51 deletions(-) diff --git a/sys/netinet/ip_fastfwd.c b/sys/netinet/ip_fastfwd.c index 36d9985ea593..e9196cc05921 100644 --- a/sys/netinet/ip_fastfwd.c +++ b/sys/netinet/ip_fastfwd.c @@ -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 diff --git a/sys/netinet/ip_icmp.c b/sys/netinet/ip_icmp.c index 23f7a567c74e..25ccb4f71b9f 100644 --- a/sys/netinet/ip_icmp.c +++ b/sys/netinet/ip_icmp.c @@ -486,12 +486,6 @@ icmp_input(struct mbuf **mp, int *offp, int proto) 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; } diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c index 1ad020a21146..6f48d935cbcb 100644 --- a/sys/netinet/ip_input.c +++ b/sys/netinet/ip_input.c @@ -104,12 +104,6 @@ SYSCTL_INT(_net_inet_ip, IPCTL_SENDREDIRECTS, redirect, CTLFLAG_VNET | CTLFLAG_R &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) diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index b5152d246e72..5b845f097056 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -1429,11 +1429,6 @@ tcp_ctlinput(int cmd, struct sockaddr *sa, void *vip) */ 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 @@ -1539,9 +1534,6 @@ tcp6_ctlinput(int cmd, struct sockaddr *sa, void *d) 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) { diff --git a/sys/sys/protosw.h b/sys/sys/protosw.h index ba45f946196f..2d98a4c25edd 100644 --- a/sys/sys/protosw.h +++ b/sys/sys/protosw.h @@ -274,8 +274,8 @@ int pru_sopoll_notsupp(struct socket *so, int events, struct ucred *cred, #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) */ diff --git a/tools/tools/sysdoc/tunables.mdoc b/tools/tools/sysdoc/tunables.mdoc index 6d88856cfd00..12b6f4651c80 100644 --- a/tools/tools/sysdoc/tunables.mdoc +++ b/tools/tools/sysdoc/tunables.mdoc @@ -1346,15 +1346,6 @@ See .Xr inet 4 for more information. ---- -net.inet.ip.sendsourcequench -bool - -This -.Nm -enables or disables the transmission of -source quench packets. - --- net.inet.ip.sourceroute bool -- 2.39.5