#include <linux/module.h>
#include <linux/sysctl.h>
#include <linux/workqueue.h>
+#include <linux/vs_limit.h>
+#include <linux/vs_socket.h>
#include <net/tcp.h>
#include <net/inet_common.h>
#include <net/xfrm.h>
}
if (paws_reject)
- NET_INC_STATS_BH(PAWSEstabRejected);
+ NET_INC_STATS_BH(LINUX_MIB_PAWSESTABREJECTED);
if(!th->rst) {
/* In this case we must reset the TIMEWAIT timer.
tw->tw_ts_recent_stamp = tp->ts_recent_stamp;
tw_dead_node_init(tw);
+ tw->tw_xid = sk->sk_xid;
+ tw->tw_vx_info = NULL;
+ tw->tw_nid = sk->sk_nid;
+ tw->tw_nx_info = NULL;
+
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
if (tw->tw_family == PF_INET6) {
struct ipv6_pinfo *np = inet6_sk(sk);
}
tcp_tw_count -= killed;
- NET_ADD_STATS_BH(TimeWaited, killed);
+ NET_ADD_STATS_BH(LINUX_MIB_TIMEWAITED, killed);
return ret;
}
out:
if ((tcp_tw_count -= killed) == 0)
del_timer(&tcp_tw_timer);
- NET_ADD_STATS_BH(TimeWaitKilled, killed);
+ NET_ADD_STATS_BH(LINUX_MIB_TIMEWAITKILLED, killed);
spin_unlock(&tw_death_lock);
}
newsk->sk_state = TCP_SYN_RECV;
/* SANITY */
+ sock_vx_init(newsk);
+ sock_nx_init(newsk);
sk_node_init(&newsk->sk_node);
tcp_sk(newsk)->bind_hash = NULL;
sock_reset_flag(newsk, SOCK_DONE);
newsk->sk_userlocks = sk->sk_userlocks & ~SOCK_BINDPORT_LOCK;
newsk->sk_backlog.head = newsk->sk_backlog.tail = NULL;
+ newsk->sk_send_head = NULL;
newsk->sk_callback_lock = RW_LOCK_UNLOCKED;
skb_queue_head_init(&newsk->sk_error_queue);
- newsk->sk_write_space = tcp_write_space;
+ newsk->sk_write_space = sk_stream_write_space;
if ((filter = newsk->sk_filter) != NULL)
sk_filter_charge(newsk, filter);
newtp->snd_cwnd = 2;
newtp->snd_cwnd_cnt = 0;
- newtp->bictcp.cnt = 0;
- newtp->bictcp.last_max_cwnd = newtp->bictcp.last_cwnd = 0;
-
newtp->frto_counter = 0;
newtp->frto_highmark = 0;
tcp_set_ca_state(newtp, TCP_CA_Open);
tcp_init_xmit_timers(newsk);
skb_queue_head_init(&newtp->out_of_order_queue);
- newtp->send_head = NULL;
newtp->rcv_wup = req->rcv_isn + 1;
newtp->write_seq = req->snt_isn + 1;
newtp->pushed_seq = newtp->write_seq;
newsk->sk_err = 0;
newsk->sk_priority = 0;
atomic_set(&newsk->sk_refcnt, 2);
+
+ set_vx_info(&newsk->sk_vx_info, sk->sk_vx_info);
+ newsk->sk_xid = sk->sk_xid;
+ vx_sock_inc(newsk);
+ set_nx_info(&newsk->sk_nx_info, sk->sk_nx_info);
+ newsk->sk_nid = sk->sk_nid;
#ifdef INET_REFCNT_DEBUG
atomic_inc(&inet_sock_nr);
#endif
newsk->sk_no_largesend = 1;
tcp_vegas_init(newtp);
- TCP_INC_STATS_BH(TcpPassiveOpens);
+ TCP_INC_STATS_BH(TCP_MIB_PASSIVEOPENS);
}
return newsk;
}
if (!(flg & TCP_FLAG_RST))
req->class->send_ack(skb, req);
if (paws_reject)
- NET_INC_STATS_BH(PAWSEstabRejected);
+ NET_INC_STATS_BH(LINUX_MIB_PAWSESTABREJECTED);
return NULL;
}
}
embryonic_reset:
- NET_INC_STATS_BH(EmbryonicRsts);
+ NET_INC_STATS_BH(LINUX_MIB_EMBRYONICRSTS);
if (!(flg & TCP_FLAG_RST))
req->class->send_reset(skb);