X-Git-Url: https://git.stricted.de/?p=GitHub%2Fmt8127%2Fandroid_kernel_alcatel_ttab.git;a=blobdiff_plain;f=include%2Fnet%2Ftcp.h;h=85a69deaf091b2fa1c843588ec7554492d31bb36;hp=5bba80fbd1d9d92738d115cbc870bf0612cb0305;hb=3af310ffc12de45522183a4805875353d4e87024;hpb=36a279686bc02d340eb213a9f2a0b67e50de64b4 diff --git a/include/net/tcp.h b/include/net/tcp.h index 5bba80fbd1d9..85a69deaf091 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -61,8 +61,8 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo); */ #define MAX_TCP_WINDOW 32767U -/* Offer an initial receive window of 10 mss. */ -#define TCP_DEFAULT_INIT_RCVWND 10 +/* Offer an initial receive window of 20 mss. */ +#define TCP_DEFAULT_INIT_RCVWND 20 /* Minimal accepted MSS. It is (60+60+8) - (20+20). */ #define TCP_MIN_MSS 88U @@ -91,14 +91,14 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo); * to ~3sec-8min depending on RTO. */ -#define TCP_RETR2 15 /* +#define TCP_RETR2 10 /* * This should take at least * 90 minutes to time out. * RFC1122 says that the limit is 100 sec. * 15 is ~13-30min depending on RTO. */ -#define TCP_SYN_RETRIES 6 /* This is how many retries are done +#define TCP_SYN_RETRIES 9 /* This is how many retries are done * when active opening a connection. * RFC1122 says the minimum retry MUST * be at least 180secs. Nevertheless @@ -131,7 +131,7 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo); #define TCP_DELACK_MIN 4U #define TCP_ATO_MIN 4U #endif -#define TCP_RTO_MAX ((unsigned)(120*HZ)) +#define TCP_RTO_MAX ((unsigned)(60*HZ)) #define TCP_RTO_MIN ((unsigned)(HZ/5)) #define TCP_TIMEOUT_INIT ((unsigned)(1*HZ)) /* RFC6298 2.1 initial RTO value */ #define TCP_TIMEOUT_FALLBACK ((unsigned)(3*HZ)) /* RFC 1122 initial RTO value, now @@ -287,7 +287,11 @@ extern int sysctl_tcp_thin_dupack; extern int sysctl_tcp_early_retrans; extern int sysctl_tcp_limit_output_bytes; extern int sysctl_tcp_challenge_ack_limit; - +extern int sysctl_tcp_default_init_rwnd; +extern int sysctl_tcp_min_tso_segs; +extern int sysctl_tcp_default_init_rwnd; +extern int sysctl_tcp_rto_min; +extern int sysctl_tcp_rto_max; extern atomic_long_t tcp_memory_allocated; extern struct percpu_counter tcp_sockets_allocated; extern int tcp_memory_pressure; @@ -459,6 +463,7 @@ extern const u8 *tcp_parse_md5sig_option(const struct tcphdr *th); */ extern void tcp_v4_send_check(struct sock *sk, struct sk_buff *skb); +void tcp_v4_mtu_reduced(struct sock *sk); extern int tcp_v4_conn_request(struct sock *sk, struct sk_buff *skb); extern struct sock * tcp_create_openreq_child(struct sock *sk, struct request_sock *req, @@ -599,8 +604,8 @@ extern void tcp_init_buffer_space(struct sock *sk); static inline void tcp_bound_rto(const struct sock *sk) { - if (inet_csk(sk)->icsk_rto > TCP_RTO_MAX) - inet_csk(sk)->icsk_rto = TCP_RTO_MAX; + if (inet_csk(sk)->icsk_rto > sysctl_tcp_rto_max) + inet_csk(sk)->icsk_rto = sysctl_tcp_rto_max; } static inline u32 __tcp_set_rto(const struct tcp_sock *tp) @@ -637,7 +642,7 @@ static inline void tcp_fast_path_check(struct sock *sk) static inline u32 tcp_rto_min(struct sock *sk) { const struct dst_entry *dst = __sk_dst_get(sk); - u32 rto_min = TCP_RTO_MIN; + u32 rto_min = sysctl_tcp_rto_min; if (dst && dst_metric_locked(dst, RTAX_RTO_MIN)) rto_min = dst_metric_rtt(dst, RTAX_RTO_MIN); @@ -977,7 +982,7 @@ static inline void tcp_check_probe_timer(struct sock *sk) if (!tp->packets_out && !icsk->icsk_pending) inet_csk_reset_xmit_timer(sk, ICSK_TIME_PROBE0, - icsk->icsk_rto, TCP_RTO_MAX); + icsk->icsk_rto, sysctl_tcp_rto_max); } static inline void tcp_init_wl(struct tcp_sock *tp, u32 seq) @@ -1184,8 +1189,8 @@ static inline void tcp_mib_init(struct net *net) { /* See RFC 2012 */ TCP_ADD_STATS_USER(net, TCP_MIB_RTOALGORITHM, 1); - TCP_ADD_STATS_USER(net, TCP_MIB_RTOMIN, TCP_RTO_MIN*1000/HZ); - TCP_ADD_STATS_USER(net, TCP_MIB_RTOMAX, TCP_RTO_MAX*1000/HZ); + TCP_ADD_STATS_USER(net, TCP_MIB_RTOMIN, sysctl_tcp_rto_min*1000/HZ); + TCP_ADD_STATS_USER(net, TCP_MIB_RTOMAX, sysctl_tcp_rto_max*1000/HZ); TCP_ADD_STATS_USER(net, TCP_MIB_MAXCONN, -1); } @@ -1307,7 +1312,8 @@ struct tcp_fastopen_request { /* Fast Open cookie. Size 0 means a cookie request */ struct tcp_fastopen_cookie cookie; struct msghdr *data; /* data in MSG_FASTOPEN */ - u16 copied; /* queued in tcp_connect() */ + size_t size; + int copied; /* queued in tcp_connect() */ }; void tcp_free_fastopen_req(struct tcp_sock *tp); @@ -1389,6 +1395,8 @@ static inline void tcp_check_send_head(struct sock *sk, struct sk_buff *skb_unli { if (sk->sk_send_head == skb_unlinked) sk->sk_send_head = NULL; + if (tcp_sk(sk)->highest_sack == skb_unlinked) + tcp_sk(sk)->highest_sack = NULL; } static inline void tcp_init_send_head(struct sock *sk) @@ -1532,6 +1540,15 @@ struct tcp_iter_state { loff_t last_pos; }; +/* MTK_NET_CHANGES */ +/* + * reset tcp connection by uid + */ +struct uid_err { + int appuid; + int errNum; +}; + extern int tcp_proc_register(struct net *net, struct tcp_seq_afinfo *afinfo); extern void tcp_proc_unregister(struct net *net, struct tcp_seq_afinfo *afinfo); @@ -1550,6 +1567,11 @@ extern struct sk_buff **tcp4_gro_receive(struct sk_buff **head, extern int tcp_gro_complete(struct sk_buff *skb); extern int tcp4_gro_complete(struct sk_buff *skb); +extern int tcp_nuke_addr(struct net *net, struct sockaddr *addr); +/* MTK_NET_CHANGES */ +extern void tcp_v4_reset_connections_by_uid(struct uid_err uid_e); +extern void tcp_v4_handle_retrans_time_by_uid(struct uid_err uid_e); + #ifdef CONFIG_PROC_FS extern int tcp4_proc_init(void); extern void tcp4_proc_exit(void);