Ensure that the syn cache's syn-ack packets contain the same
ip_tos, ip_ttl, and DF bits as all other tcp packets. PR: 39141 MFC after: 2 weeks
This commit is contained in:
parent
6689fb2bbc
commit
21c3b2fc69
@ -83,7 +83,7 @@
|
||||
extern struct mbuf *m_copypack();
|
||||
#endif
|
||||
|
||||
static int path_mtu_discovery = 1;
|
||||
int path_mtu_discovery = 1;
|
||||
SYSCTL_INT(_net_inet_tcp, OID_AUTO, path_mtu_discovery, CTLFLAG_RW,
|
||||
&path_mtu_discovery, 1, "Enable Path MTU Discovery");
|
||||
|
||||
|
@ -1128,6 +1128,24 @@ syncache_respond(sc, m)
|
||||
|
||||
th = (struct tcphdr *)(ip + 1);
|
||||
}
|
||||
|
||||
ip->ip_ttl = sc->sc_tp->t_inpcb->inp_ip_ttl; /* XXX */
|
||||
ip->ip_tos = sc->sc_tp->t_inpcb->inp_ip_tos; /* XXX */
|
||||
|
||||
/*
|
||||
* See if we should do MTU discovery. We do it only if the following
|
||||
* are true:
|
||||
* 1) we have a valid route to the destination
|
||||
* 2) the MTU is not locked (if it is, then discovery has been
|
||||
* disabled)
|
||||
*/
|
||||
if (path_mtu_discovery
|
||||
&& (rt != NULL)
|
||||
&& rt->rt_flags & RTF_UP
|
||||
&& !(rt->rt_rmx.rmx_locks & RTV_MTU)) {
|
||||
ip->ip_off |= IP_DF;
|
||||
}
|
||||
|
||||
th->th_sport = sc->sc_inc.inc_lport;
|
||||
th->th_dport = sc->sc_inc.inc_fport;
|
||||
|
||||
|
@ -432,6 +432,7 @@ extern struct tcpstat tcpstat; /* tcp statistics */
|
||||
extern int tcp_mssdflt; /* XXX */
|
||||
extern int tcp_delack_enabled;
|
||||
extern int tcp_do_newreno;
|
||||
extern int path_mtu_discovery;
|
||||
extern int ss_fltsz;
|
||||
extern int ss_fltsz_local;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user