LVS
lvs-devel
Google
 
Web LinuxVirtualServer.org

Re: [RFC v2] ipvs: allow transmit of GRO aggregated skbs

To: Simon Horman <horms@xxxxxxxxxxxx>
Subject: Re: [RFC v2] ipvs: allow transmit of GRO aggregated skbs
Cc: lvs-devel@xxxxxxxxxxxxxxx, netdev@xxxxxxxxxxxxxxx
From: Julian Anastasov <ja@xxxxxx>
Date: Sat, 6 Nov 2010 16:18:21 +0200 (EET)

        Hello,

On Sat, 6 Nov 2010, Simon Horman wrote:

This is a first attempt at allowing LVS to transmit
skbs of greater than MTU length that have been aggregated by GRO.

I have lightly tested the ip_vs_dr_xmit() portion of this patch and
although it seems to work I am unsure that netif_needs_gso() is the correct
test to use.

        ip_forward() uses !skb_is_gso(skb), so may be it is
enough to check for GRO instead of using netif_needs_gso?

Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>

---

* LRO is still an outstanding issue, but as its deprecated in favour
 of GRO perhaps it doesn't need to be solved.

* v1
 - Based on 2.6.35

* v2
 - Rebase on current nf-next-2.6 tree (~2.6.37-rc1)

--- lvs-test-2.6.orig/net/netfilter/ipvs/ip_vs_xmit.c   2010-10-30 
11:43:37.000000000 +0900
+++ lvs-test-2.6/net/netfilter/ipvs/ip_vs_xmit.c        2010-11-06 
08:09:17.000000000 +0900

@@ -1008,7 +1012,8 @@ ip_vs_dr_xmit(struct sk_buff *skb, struc

        /* MTU checking */
        mtu = dst_mtu(&rt->dst);
-       if ((iph->frag_off & htons(IP_DF)) && skb->len > mtu) {
+       if ((iph->frag_off & htons(IP_DF)) && skb->len > mtu &&
+           !netif_needs_gso(rt->dst.dev, skb)) {
                icmp_send(skb, ICMP_DEST_UNREACH,ICMP_FRAG_NEEDED, htonl(mtu));
                ip_rt_put(rt);
                IP_VS_DBG_RL("%s(): frag needed\n", __func__);

Regards

--
Julian Anastasov <ja@xxxxxx>
--
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>