Port-xen archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: xen vs bridges
On Sat, Jun 21, 2008 at 10:49:00AM -0400, der Mouse wrote:
> >>> Nothing in the xennet protocol prevents us from using MTU up to 2k.
> >>> The linux frontends and backends limit it to 1500 though, so we'd
> >>> need a way to know what MTU backends support.
>
> Would we? What happens if we send more than they're expecting? Does
I guess it'd just drop the packet.
> it work the way it does if you connect a vlan-capable interface to a
> non-capable one with physical interfaces? That's what I'd expect it to
> do, on the "xennet and xvif are just a crossed cable between two
> interfaces" principle.
Yes, maybe I was too conservative here.
>
> >> For my purposes, I just want it to work with NetBSD and I don't care
> >> about compatability with other domU OSes. Will it work to just
> >> patch the xennet and xvif drivers to give them ETHERCAP_VLAN_MTU,
> > Yes, it should work
>
> And it does!
>
> --- /sys/arch/xen/xen/if_xennet_xenbus.c= 2006-11-02 22:03:32.000000000
> -0500
> +++ /sys/arch/xen/xen/if_xennet_xenbus.c 2008-06-21 10:32:21.000000000
> -0400
> @@ -322,6 +322,7 @@
> ether_sprintf(sc->sc_enaddr));
> /* Initialize ifnet structure and attach interface */
> memcpy(ifp->if_xname, sc->sc_dev.dv_xname, IFNAMSIZ);
> + ((struct ethercom *)ifp)->ec_capabilities = ETHERCAP_VLAN_MTU;
> ifp->if_softc = sc;
> ifp->if_start = xennet_start;
> ifp->if_ioctl = xennet_ioctl;
>
> --- /sys/arch/xen/xen/xennetback_xenbus.c= 2006-10-15 09:34:17.000000000
> -0400
> +++ /sys/arch/xen/xen/xennetback_xenbus.c 2008-06-21 10:27:21.000000000
> -0400
> @@ -310,6 +310,7 @@
> (int)domid, (int)handle);
> printf("%s: Ethernet address %s\n", ifp->if_xname,
> ether_sprintf(xneti->xni_enaddr));
> + ((struct ethercom *)ifp)->ec_capabilities = ETHERCAP_VLAN_MTU;
> ifp->if_flags =
> IFF_BROADCAST|IFF_SIMPLEX|IFF_NOTRAILERS|IFF_MULTICAST;
> ifp->if_snd.ifq_maxlen =
>
> gives the behaviour I wanted.
>
> I actually don't know whether it passes oversized packets correctly,
> because the vlan interface I'm using in the bridge is an untagged
> interface (see the thread on tech-net about untagged vlans). Hmm, I
> should improve that so that an untagged vlan interface does not
> subtract off encapsulation overhead from its parent's MTU; that would
> have done as well in this case (but I think xennet and xvif should
> support VLAN MTUs in any case).
You can tcpdump on the xvif interface, and see if oversized packets reaches
it.
--
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
--
Home |
Main Index |
Thread Index |
Old Index