LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: TCP flag NONE timer

To: "LinuxVirtualServer.org users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: TCP flag NONE timer
Cc: Wensong Zhang <wensong@xxxxxxxxxxxx>
Cc: Julian Anastasov <ja@xxxxxx>
Cc: Horms <horms@xxxxxxxxxxxx>
From: Roberto Nibali <ratz@xxxxxxxxxxxx>
Date: Wed, 22 Feb 2006 21:27:05 +0100
Nope, however I can imagine following reasons:

1. Too many proc-fs entries
2. Not too often used
3. Planned to be replaced by per-app entries through ipvsadm

It must be the last one. And we're back to the original discussion about timer settings again. Ok, none of us seems to have the time to properly implement Julian's per-app timeout framework.

+     {NET_IPV4_VS_DOS_TO_LI, "dos_timeout_listen",
+      &vs_timeout_table_dos.timeout[IP_VS_S_LISTEN],
+      sizeof(int), 0644, NULL, &proc_dointvec_jiffies},
+     {NET_IPV4_VS_DOS_TO_SA, "dos_timeout_synack",
+      &vs_timeout_table_dos.timeout[IP_VS_S_SYNACK],
+      sizeof(int), 0644, NULL, &proc_dointvec_jiffies},
+     {NET_IPV4_VS_DOS_TO_UDP, "dos_timeout_udp",
+      &vs_timeout_table_dos.timeout[IP_VS_S_UDP],
+      sizeof(int), 0644, NULL, &proc_dointvec_jiffies},
+     {NET_IPV4_VS_DOS_TO_ICMP, "dos_timeout_icmp",
      &vs_timeout_table_dos.timeout[IP_VS_S_ICMP],
      sizeof(int), 0644, NULL, &proc_dointvec_jiffies},
     {NET_IPV4_VS_CACHE_BYPASS, "cache_bypass",

The above hunk should look quite different on 2.6.
But in principle I think it looks ok.

I had a look at it tonight and it's non-trivial actually. Once I learned about the consequences of following futile attempt I surrendered:

diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h
diff --git a/net/ipv4/ipvs/ip_vs_ctl.c b/net/ipv4/ipvs/ip_vs_ctl.c
index 7f0288b..751ed21 100644
--- a/net/ipv4/ipvs/ip_vs_ctl.c
+++ b/net/ipv4/ipvs/ip_vs_ctl.c
@@ -1450,11 +1450,10 @@ static struct ctl_table vs_vars[] = {
                .mode           = 0644,
                .proc_handler   = &proc_do_defense_mode,
        },
-#if 0
        {
                .ctl_name       = NET_IPV4_VS_TO_ES,
                .procname       = "timeout_established",
- .data = &vs_timeout_table_dos.timeout[IP_VS_S_ESTABLISHED], + .data = &ip_vs_protocol_tcp.timeout_table[IP_VS_TCP_S_ESTABLISHED],
                .maxlen         = sizeof(int),
                .mode           = 0644,
                .proc_handler   = &proc_dointvec_jiffies,
@@ -1462,7 +1461,7 @@ static struct ctl_table vs_vars[] = {
        {
                .ctl_name       = NET_IPV4_VS_TO_SS,
                .procname       = "timeout_synsent",
-               .data   = &vs_timeout_table_dos.timeout[IP_VS_S_SYN_SENT],
+ .data = &ip_vs_protocol_tcp.timeout_table[IP_VS_TCP_S_SYN_SENT],
                .maxlen         = sizeof(int),
                .mode           = 0644,
                .proc_handler   = &proc_dointvec_jiffies,
@@ -1470,7 +1469,7 @@ static struct ctl_table vs_vars[] = {
        {
                .ctl_name       = NET_IPV4_VS_TO_SR,
                .procname       = "timeout_synrecv",
-               .data   = &vs_timeout_table_dos.timeout[IP_VS_S_SYN_RECV],
+ .data = &ip_vs_protocol_tcp.timeout_table[IP_VS_TCP_S_SYN_RECV],
                .maxlen         = sizeof(int),
                .mode           = 0644,
                .proc_handler   = &proc_dointvec_jiffies,
@@ -1478,7 +1477,7 @@ static struct ctl_table vs_vars[] = {
        {
                .ctl_name       = NET_IPV4_VS_TO_FW,
                .procname       = "timeout_finwait",
-               .data   = &vs_timeout_table_dos.timeout[IP_VS_S_FIN_WAIT],
+ .data = &ip_vs_protocol_tcp.timeout_table[IP_VS_TCP_S_FIN_WAIT],
                .maxlen         = sizeof(int),
                .mode           = 0644,
                .proc_handler   = &proc_dointvec_jiffies,
@@ -1486,7 +1485,7 @@ static struct ctl_table vs_vars[] = {
        {
                .ctl_name       = NET_IPV4_VS_TO_TW,
                .procname       = "timeout_timewait",
-               .data   = &vs_timeout_table_dos.timeout[IP_VS_S_TIME_WAIT],
+ .data = &ip_vs_protocol_tcp.timeout_table[IP_VS_TCP_S_TIME_WAIT],
                .maxlen         = sizeof(int),
                .mode           = 0644,
                .proc_handler   = &proc_dointvec_jiffies,
@@ -1494,7 +1493,7 @@ static struct ctl_table vs_vars[] = {
        {
                .ctl_name       = NET_IPV4_VS_TO_CL,
                .procname       = "timeout_close",
-               .data   = &vs_timeout_table_dos.timeout[IP_VS_S_CLOSE],
+ .data = &ip_vs_protocol_tcp.timeout_table[IP_VS_TCP_S_CLOSE],
                .maxlen         = sizeof(int),
                .mode           = 0644,
                .proc_handler   = &proc_dointvec_jiffies,
@@ -1502,7 +1501,7 @@ static struct ctl_table vs_vars[] = {
        {
                .ctl_name       = NET_IPV4_VS_TO_CW,
                .procname       = "timeout_closewait",
-               .data   = &vs_timeout_table_dos.timeout[IP_VS_S_CLOSE_WAIT],
+ .data = &ip_vs_protocol_tcp.timeout_table[IP_VS_TCP_S_CLOSE_WAIT],
                .maxlen         = sizeof(int),
                .mode           = 0644,
                .proc_handler   = &proc_dointvec_jiffies,
@@ -1510,7 +1509,7 @@ static struct ctl_table vs_vars[] = {
        {
                .ctl_name       = NET_IPV4_VS_TO_LA,
                .procname       = "timeout_lastack",
-               .data   = &vs_timeout_table_dos.timeout[IP_VS_S_LAST_ACK],
+ .data = &ip_vs_protocol_tcp.timeout_table[IP_VS_TCP_S_LAST_ACK],
                .maxlen         = sizeof(int),
                .mode           = 0644,
                .proc_handler   = &proc_dointvec_jiffies,
@@ -1518,7 +1517,7 @@ static struct ctl_table vs_vars[] = {
        {
                .ctl_name       = NET_IPV4_VS_TO_LI,
                .procname       = "timeout_listen",
-               .data   = &vs_timeout_table_dos.timeout[IP_VS_S_LISTEN],
+ .data = &ip_vs_protocol_tcp.timeout_table[IP_VS_TCP_S_LISTEN],
                .maxlen         = sizeof(int),
                .mode           = 0644,
                .proc_handler   = &proc_dointvec_jiffies,
@@ -1526,11 +1525,12 @@ static struct ctl_table vs_vars[] = {
        {
                .ctl_name       = NET_IPV4_VS_TO_SA,
                .procname       = "timeout_synack",
-               .data   = &vs_timeout_table_dos.timeout[IP_VS_S_SYNACK],
+ .data = &ip_vs_protocol_tcp.timeout_table[IP_VS_TCP_S_SYNACK],
                .maxlen         = sizeof(int),
                .mode           = 0644,
                .proc_handler   = &proc_dointvec_jiffies,
        },
+#if 0
        {
                .ctl_name       = NET_IPV4_VS_TO_UDP,
                .procname       = "timeout_udp",

Maybe another time, :(
Roberto Nibali, ratz
--
echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq' | dc

<Prev in Thread] Current Thread [Next in Thread>