LVS
lvs-devel
Google
 
Web LinuxVirtualServer.org

Re: [v2 PATCH 0/4] IPVS: Backup Adding Ipv6 and Persistence support

To: Julian Anastasov <ja@xxxxxx>
Subject: Re: [v2 PATCH 0/4] IPVS: Backup Adding Ipv6 and Persistence support
Cc: Hans Schillstrom <hans.schillstrom@xxxxxxxxxxxx>, LVS-Devel <lvs-devel@xxxxxxxxxxxxxxx>, "wensong@xxxxxxxxxxxx" <wensong@xxxxxxxxxxxx>, "daniel.lezcano@xxxxxxx" <daniel.lezcano@xxxxxxx>
From: Simon Horman <horms@xxxxxxxxxxxx>
Date: Tue, 9 Nov 2010 09:43:37 +0900
On Tue, Nov 09, 2010 at 01:01:46AM +0200, Julian Anastasov wrote:
> 
>       Hello,
> 
> On Tue, 9 Nov 2010, Simon Horman wrote:
> 
> >>- backup creates template but there is no PE => cp->pe remains NULL if
> >>    we want to keep conn entry. Option 2 is that we can ignore
> >>    the conn entry if the PE module is not loaded before this step
> >
> >I think that is better to drop the entry as (at least the way PE SIP works)
> >its entirely likely that it could be used by the scheduler to use
> >the wont real server if the pe_data is missing. Or in other words,
> >it is no better than the entry being missing all together.
> 
>       Agreed.
> 
> >If later we have PE engines that behave differently, and creating
> >templates without pe_data makes sense, we can revisit this.
> >
> >>- svc is added => PE module is loaded (request_module)
> >>
> >>- next sync message comes and we bind cp->dest => if cp->pe
> >>is NULL we should set cp->pe to svc->pe. The problem here is
> >>that svc can be added without PE, then this template will not
> >>work as expected.
> >
> >I'm unsure what you mean by "svc can be added without PE"
> 
>       -A without --pe [engine] option in backup.

I think that is ok because of the change made
by "IPVS: Only match pe_data created by the same pe".
That is, the template will never match.

>From 12933de34a16c6585bd2a388ac0d48ef5c5599fa Mon Sep 17 00:00:00 2001
From: Simon Horman <horms@xxxxxxxxxxxx>
Date: Mon, 8 Nov 2010 20:06:30 +0900
Subject: [PATCH] IPVS: Only match pe_data created by the same pe

Only match persistence engine data if it was
created by the same persistence engine.

Reported-by: Julian Anastasov <ja@xxxxxx>
Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>
---
 net/netfilter/ipvs/ip_vs_conn.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/netfilter/ipvs/ip_vs_conn.c b/net/netfilter/ipvs/ip_vs_conn.c
index 44df5f0..0e0604c 100644
--- a/net/netfilter/ipvs/ip_vs_conn.c
+++ b/net/netfilter/ipvs/ip_vs_conn.c
@@ -354,7 +354,7 @@ struct ip_vs_conn *ip_vs_ct_in_get(const struct 
ip_vs_conn_param *p)
 
        list_for_each_entry(cp, &ip_vs_conn_tab[hash], c_list) {
                if (p->pe_data && p->pe->ct_match) {
-                       if (p->pe->ct_match(p, cp))
+                       if (p->pe == cp->pe && p->pe->ct_match(p, cp))
                                goto out;
                        continue;
                }
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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