Remove kernel handling of ICMP_SOURCEQUENCH.
It hasn't been used for a very long time. Additionally, it was deprecated by RFC 6633.
This commit is contained in:
parent
6435a0dc1b
commit
d1f79a3bfc
@ -502,7 +502,6 @@ ip_fastforward(struct mbuf *m)
|
||||
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
|
||||
|
@ -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 @@ icmp_input(struct mbuf **mp, int *offp, int proto)
|
||||
case ICMP_TSTAMPREPLY:
|
||||
case ICMP_IREQREPLY:
|
||||
case ICMP_MASKREPLY:
|
||||
case ICMP_SOURCEQUENCH:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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) {
|
||||
|
@ -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) */
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user