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] xen-netfront does not properly transmit forwarded packets

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] xen-netfront does not properly transmit forwarded packets
From: Rafal Wojtczuk <rafal@xxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 28 Feb 2011 11:18:51 +0100
Delivery-date: Mon, 28 Feb 2011 02:21:20 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
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/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.21 (2010-09-15)
Hello,

There is a very weird issue with xen-netfront (I think it is the frontend
problem, not backend). The problem manifests itself with drivers from the SUSE 
kernel-xen-2.6.34.1; I don't know whether it affects vanilla code as well.
For completeness, xen is 3.4.3, all 64bit.

The problem seems to be - xen-netfront does not properly transmit forwarded
packets (locally generated packets are txed fine).

The network looks like this (of course eth0s are xen-netfront) :

testVM             FirewallVM                NetVM
|  eth0  | <---> | vifF.0 eth0 | <---> | vifN.0 wlan0 | <---> Internet

If I do "ping someInternetIP" in FirewallVM, "tcpdump -n -i eth0" 
running in FirewallVM shows outgoing icmp packets, and "tcpdump -n -i vifN.0"
running in NetVM shows incoming packets - all fine.

If I do "ping someInternetIP" in testVM, packets arrive fine on vifF.0 and
are SNATed. Then "tcpdump -n -i eth0" running in FirewallVM shows outgoing icmp 
packets, BUT "tcpdump -n -i vifN.0" running in NetVM shows NOTHING.

The important thing is that during the latter experiment, the /proc/interrupts
line for vifN.0 shows one new interrupt per second - so vifN.0 is notified by
FirewallVM's eth0 about packet transmission, yet packets are not seen by
vifN.0. The TX bytes counter for FirewallVM's eth0 increases normally; no errors
reported by any interface; nothing in the logs.

In case it matters: there is no bridging used at all, just "bare" vifX.Y. Proxy 
arp is activated for both vifs. No IP is assigned to vifs. Turning SNAT off
in FirewallVM does not change anything. The issue has been reproduced by two
different persons on two different machines.

Does anyone have an idea why this is happening ? What is the difference in
frontend's handling of forwarded packets in comparison to locally generated
ones ? Maybe some function does not work properly in interrupt context ?
I guess not many people use netfront in a router machine, so this issue may
have survived unnoticed for a long time.

Regards,
RW

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

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