Add the no SACK route option feature
Implement querying and acting upon the no sack bit in the features field. Signed-off-by: Gilad Ben-Yossef <gilad@codefidence.com> Sigend-off-by: Ori Finkelman <ori@comsleep.com> Sigend-off-by: Yony Amit <yony@comsleep.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
0c3adfb8ec
commit
1aba721eba
@@ -464,6 +464,7 @@ static unsigned tcp_syn_options(struct sock *sk, struct sk_buff *skb,
|
||||
struct tcp_md5sig_key **md5) {
|
||||
struct tcp_sock *tp = tcp_sk(sk);
|
||||
unsigned size = 0;
|
||||
struct dst_entry *dst = __sk_dst_get(sk);
|
||||
|
||||
#ifdef CONFIG_TCP_MD5SIG
|
||||
*md5 = tp->af_specific->md5_lookup(sk, sk);
|
||||
@@ -498,7 +499,8 @@ static unsigned tcp_syn_options(struct sock *sk, struct sk_buff *skb,
|
||||
opts->options |= OPTION_WSCALE;
|
||||
size += TCPOLEN_WSCALE_ALIGNED;
|
||||
}
|
||||
if (likely(sysctl_tcp_sack)) {
|
||||
if (likely(sysctl_tcp_sack &&
|
||||
!dst_feature(dst, RTAX_FEATURE_NO_SACK))) {
|
||||
opts->options |= OPTION_SACK_ADVERTISE;
|
||||
if (unlikely(!(OPTION_TS & opts->options)))
|
||||
size += TCPOLEN_SACKPERM_ALIGNED;
|
||||
|
Reference in New Issue
Block a user