All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rafal Wojtczuk <rafal@invisiblethingslab.com>
To: xen-devel@lists.xensource.com
Subject: xen-netfront does not properly transmit forwarded packets
Date: Mon, 28 Feb 2011 11:18:51 +0100	[thread overview]
Message-ID: <20110228101851.GD4253@email> (raw)

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

             reply	other threads:[~2011-02-28 10:18 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-28 10:18 Rafal Wojtczuk [this message]
2011-02-28 10:52 ` xen-netfront does not properly transmit forwarded packets Jean Baptiste Favre
2011-02-28 11:10   ` Rafal Wojtczuk
2011-02-28 11:33 ` Rafal Wojtczuk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110228101851.GD4253@email \
    --to=rafal@invisiblethingslab.com \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.