WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Re: [Xen-users] Ethernet MTU

To: xen-users@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] Re: [Xen-users] Ethernet MTU
From: Daniele Palumbo <daniele@xxxxxxxxxxxx>
Date: Wed, 13 Sep 2006 16:55:20 +0200
Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Wed, 13 Sep 2006 07:55:01 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <20060816205306.GA15396@xxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <00c801c6c11c$a2c62ee0$2f00a8c0@ELTON> <20060816120908.GC8597@xxxxxxx> <20060816205306.GA15396@xxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: KMail/1.9.3
I have some news...

On Wednesday 16 August 2006 22:53, Dominique Rousseau wrote:
> After some tries, it looks like the vif code don't handle frames
> with size larger than 1500.

true:
http://lists.xensource.com/archives/html/xen-devel/2006-08/msg00944.html

> Looking at the code, there is the following snippet that seems to be
> the probleme (in drivers/xen/netback/netback.c) :
>
>                if (unlikely(txreq.size < ETH_HLEN) ||
>                    unlikely(txreq.size > ETH_FRAME_LEN)) {
>                        DPRINTK("Bad packet size: %d\n", txreq.size);
>                        make_tx_response(netif, txreq.id, NETIF_RSP_ERROR);
>                        netif_put(netif);
>                        continue;
>                }

./include/linux/if_vlan.h:#define VLAN_ETH_FRAME_LEN    1518    /* Max. octets 
in frame sans FCS */
./include/linux/if_ether.h:#define ETH_FRAME_LEN        1514            /* 
Max. octets in frame sans FCS */

./include/linux/if_vlan.h:#define VLAN_ETH_HLEN 18              /* Total 
octets in header.       */
./include/linux/if_ether.h:#define ETH_HLEN     14              /* Total 
octets in header.       */

netfront_vlan.patch:
---
# Node ID a5ee1cb525bbe8954dc3332ceec951e09a378b68
# parent: c097485037f7417b77db34da198b62a9c9481dc5
Make MTU rx check in netfront more permissive to allow for 8021q vlan tagging.

Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>

--- a/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c      Wed Mar 15 
12:41:58 2006 +0100
+++ b/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c      Wed Mar 15 
12:52:33 2006 +0100
@@ -845,11 +845,11 @@ static int netif_poll(struct net_device
        }

        while ((skb = __skb_dequeue(&rxq)) != NULL) {
-               if (skb->len > (dev->mtu + ETH_HLEN)) {
+               if (skb->len > (dev->mtu + ETH_HLEN + 4)) {
                        if (net_ratelimit())
                                printk(KERN_INFO "Received packet too big 
for "
                                       "MTU (%d > %d)\n",
-                                      skb->len - ETH_HLEN, dev->mtu);
+                                      skb->len - ETH_HLEN - 4, dev->mtu);
                        skb->len  = 0;
                        skb->tail = skb->data;
                        init_skb_shinfo(skb);
---

looking at all that things, maybe the solutions is to change ETH_FRAME_LEN in 
VLAN_ETH_FRAME_LEN...
or to remove that check (already done in unstable).

i'll try tomorrow.

bye
d.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

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