On Fri, May 05, 2006 at 09:47:56AM +0900, Horms wrote: > On Thu, May 04, 2006 at 04:11:16PM -0400, Andy Gospodarek wrote: > > > > Instead of using the default timeout of 3 minutes, this uses the timeout > > specific to the protocol used for the connection. The 3 minute timeout > > seems somewhat arbitrary (though I know it is used other places in the > > ipvs code) and when failing over it would be much nicer to use one of > > the configured timeout values. > > Hi Andy, > > I agree that the current value is somewhat arbitary, > however I'm more in favour of setting it idependantly > of other timeouts, perhaps via proc. In any case, > won't pp->timeout_table[cp->state] be rather long in > the ESTABLISHED case? >
Horms, I agree that there could be a long timeout for ESTABLISHED connections, but I've run across a situation where I need exactly that. When testing failover from master to backup I realize that all of my interactive sessions get dropped much sooner than the timeout I've configured (mine is currently set for much longer than 3 minutes). If I wanted established connections to timeout quickly I would set the timeout to be a small value. -andy > > Signed-off-by: Andy Gospodarek <[EMAIL PROTECTED]> > > --- > > > > ip_vs_sync.c | 5 +++-- > > 1 files changed, 3 insertions(+), 2 deletions(-) > > > > diff --git a/net/ipv4/ipvs/ip_vs_sync.c b/net/ipv4/ipvs/ip_vs_sync.c > > --- a/net/ipv4/ipvs/ip_vs_sync.c > > +++ b/net/ipv4/ipvs/ip_vs_sync.c > > @@ -67,7 +67,6 @@ struct ip_vs_sync_conn_options { > > struct ip_vs_seq out_seq; /* outgoing seq. struct */ > > }; > > > > -#define IP_VS_SYNC_CONN_TIMEOUT (3*60*HZ) > > #define SIMPLE_CONN_SIZE (sizeof(struct ip_vs_sync_conn)) > > #define FULL_CONN_SIZE \ > > (sizeof(struct ip_vs_sync_conn) + sizeof(struct ip_vs_sync_conn_options)) > > @@ -279,6 +278,7 @@ static void ip_vs_process_message(const > > struct ip_vs_sync_conn *s; > > struct ip_vs_sync_conn_options *opt; > > struct ip_vs_conn *cp; > > + struct ip_vs_protocol *pp; > > char *p; > > int i; > > > > @@ -337,7 +337,8 @@ static void ip_vs_process_message(const > > p += SIMPLE_CONN_SIZE; > > > > atomic_set(&cp->in_pkts, sysctl_ip_vs_sync_threshold[0]); > > - cp->timeout = IP_VS_SYNC_CONN_TIMEOUT; > > + pp = ip_vs_proto_get(s->protocol); > > + cp->timeout = pp->timeout_table[cp->state]; > > ip_vs_conn_put(cp); > > > > if (p > buffer+buflen) { > > -- > Horms > http://www.vergenet.net/~horms/ > > - > To unsubscribe from this list: send the line "unsubscribe netdev" in > the body of a message to [EMAIL PROTECTED] > More majordomo info at http://vger.kernel.org/majordomo-info.html - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html