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

Reply via email to