LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: IPVS & KTCPVS

To: "LinuxVirtualServer.org users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: IPVS & KTCPVS
From: Horms <horms@xxxxxxxxxxxx>
Date: Fri, 30 Apr 2004 19:41:00 +0900
On Thu, Apr 29, 2004 at 12:45:06AM +0200, Sebastien BRIZE wrote:
> Hi,
> 
> I'm looking, like many people, for a nice kerneled L7 switch,
> and LVS seems to be not so far from this goal...
> 
> My idea is :
> KTCPVS uses schedulers :
> tcp_vs_chttp_schedule(struct tcp_vs_conn *conn, struct tcp_vs_service *svc)
> which seem to be very near of the IPVS schedulers :
> ip_vs_wrr_schedule(struct ip_vs_service *svc, struct iphdr *iph)
> 
> But KTCPVS doesn't seem to spoof packets with the client source IP,
> unlike IPVS (am I wrong ?...).
> 
> My question is : would it be hard to make the KTCPVS schedulers
> match the IPVS scheduler's structure and integrate them in the IPVS code ?
> 
> /"LVS takes the decision at the first packet arrived (SYN/-, no data).
> When the packet containing data arrives it is too late to take a 
> load-balancing decision." is from :
> http://marc.theaimsgroup.com/?l=linux-virtual-server&m=100136373311795&w=2
> /Is that assertion still true ? It would close that discussion right here.

Yes that certainly is true. However I don't think it would exclude
KTCPVS from using IPVS schedulers. Scheduling the packet when the first
packet arrives is a property of the LVS core code, not its schedulers.

That said, LVS schedulers only care about IP addresses and ports.
For L7 you would likely want to examine the payload. This would
require extending the LVS sheduler API. Just passing the entire skb
to the scheduler is an obvious choice to me.

Actually, now I think about it. If you are using any of the existing LVS
schedulers, then you are only using L4 information. What would be the
value of hooking them into L7?

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