Re: [PATCH v11 13/17] Add mp(mediate passthru) device.
From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2010-09-28 14:49:40
Also in:
kvm, lkml
From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2010-09-28 14:49:40
Also in:
kvm, lkml
On Tue, Sep 28, 2010 at 04:39:59PM +0200, Arnd Bergmann wrote:
On Tuesday 28 September 2010, Michael S. Tsirkin wrote:quoted
quoted
quoted
+ skb_reserve(skb, NET_IP_ALIGN); + skb_put(skb, len); + + if (skb_copy_datagram_from_iovec(skb, 0, iov, 0, len)) { + kfree_skb(skb); + return -EAGAIN; + } + + skb->protocol = eth_type_trans(skb, mp->dev);Why are you calling eth_type_trans() on transmit?So that GSO can work. BTW macvtap does: skb_set_network_header(skb, ETH_HLEN); skb_reset_mac_header(skb); skb->protocol = eth_hdr(skb)->h_proto; and I think this is broken for vlans. Arnd?Hmm, that code (besides set_network_header) was added by Sridhar for GSO support. I believe I originally did eth_type_trans but had to change it before that time because it broke something. Unfortunately, my memory on that is not very good any more. Can you be more specific what the problem is? Do you think it breaks when a guest sends VLAN tagged frames or when macvtap is connected to a VLAN interface that adds another tag (or only the combination)? Arnd
I expect the protocol value to be wrong when guest sends vlan tagged frames as 802.1q frames have a different format. -- MST