I am using 3.18 kernel.

#uname -a
Linux Indra.asicdesigners.com 3.18.0 #11 SMP Wed Jul 1 21:49:44 IST 2015
x86_64 x86_64 x86_64 GNU/Linux
#cat /etc/issue
Red Hat Enterprise Linux Server release 6.5 (Santiago)
Kernel \r on an \m

As mentioned in my initial post, this is how I am starting the VM. How do
we enable/pass tx-udp_tnl-segmentation feature in the below command? Is
this an option while creating the VM?
*# qemu-system-x86_64 -m 4096 -smp 4 -boot c -device
virtio-net-pci,netdev=tap0,mac=00:11:22:33:44:55 -netdev
tap,id=tap0,script=no,vhost=on -drive file=/root/vdisk_rhel65.img &*

On Thu, Jul 2, 2015 at 12:37 AM, Vlad Yasevich <vyase...@redhat.com> wrote:

> On 07/01/2015 02:50 PM, Santosh R wrote:
> > Since the vxlan UDP header checksum is 0, udp_tunnel_gro_complete (called
> > via vxlan_gro_complete) is setting SKB_GSO_UDP_TUNNEL in
> > skb_shinfo(skb)->gso_type.
> > Later when bridge interface tries to forward this packet to tap interface
> > (br_dev_queue_push_xmit -> __dev_queue_xmit -> validate_xmit_skb)
> > netif_needs_gso will succeed (skb_gso_ok returns 0)
> > resulting in packet segmentation (which was earlier aggregated) as tap
> > interface doesn't have this feature. Is there a way to enable
> > tx-udp_tnl-segmentation for tap interface?
>
> No.  Those features are set by qemu when the guest is created and
> mirror any features that are supported by the guest.  So, if the guest
> virtio doesn't have that feature, neither will the tap device.
>
> Which kernel version are you using on the host?
>
> -vlad
>
> >
> > # ethtool -K tap0 tx-udp_tnl-segmentation on
> > Could not change any device features
> >
> > # ethtool -k tap0 | grep -i tnl
> > tx-udp_tnl-segmentation: off [fixed]
> >
> > On Tue, Jun 30, 2015 at 12:24 PM, Santosh R <skrasta...@gmail.com>
> wrote:
> >
> >>
> >> On Mon, Jun 29, 2015 at 9:24 PM, Santosh R <skrasta...@gmail.com>
> wrote:
> >>
> >>>
> >>> On Mon, Jun 29, 2015 at 9:04 PM, Vlad Yasevich <vyase...@redhat.com>
> >>> wrote:
> >>>
> >>>> On 06/29/2015 01:46 AM, Santosh R wrote:
> >>>>> All,
> >>>>>
> >>>>>    I am testing VxLAN performance in VM. For this I am using below
> >>>> command
> >>>>> to bring up the VM.
> >>>>> # qemu-system-x86_64 -m 4096 -smp 4 -boot c -device
> >>>>> virtio-net-pci,netdev=tap0,mac=00:11:22:33:44:55 -netdev
> >>>>> tap,id=tap0,script=no,vhost=on  -drive file=/root/vdisk_rhel65.img &
> >>>>>
> >>>>> This is resulting in lower throughput in VM. On looking further I
> found
> >>>>> that GRO is not happing on the tap interface.
> >>>>> Using tcpdump I could see GRO happeing in physcial nic, vxlan and
> >>>> bridge
> >>>>> interface. but _not_ on tap interface.
> >>>>
> >>>> I don't think this is GRO.  GRO  only happens at the lowest possible
> >>>> layer.
> >>>> For packets coming from external sources, that happens just above the
> nic
> >>>> when the packet enters the host for the first time.  From then on, the
> >>>> features
> >>>> of other devices determine if the large aggregated packet will be
> >>>> segmented
> >>>> again or not.
> >>>>
> >>>>
> >>>>>
> >>>>> So, I thought to use veth pair instead of the tap interface in VM.
> >>>> What is
> >>>>> the command to do this?
> >>>>
> >>>> veth pair will not help with this.  you need a tap or a macvtap to
> have
> >>>> VM  talk to host.
> >>>>
> >>>>> Also,
> >>>>> 1. Why is rx-checksumming off for tap interface?
> >>>>
> >>>> because tap doesn't do checksum validation.  it allows lower level
> >>>> devices or
> >>>> VM to do so.
> >>>>
> >>>>> 2. Why is GRO not happening with tap interface?
> >>>>>
> >>>>
> >>>> Again.  I don't think it's GRO.  Try capturing traffic at tap and see
> if
> >>>> you get
> >>>> large packets (more the 1 mtu long) on the tap.  If not, then someone
> >>>> else is fragmenting
> >>>> packets and you need to find who.
> >>>>
> >>> [Santosh]:  Thanks for the reply.
> >>> With VxLAN, aggregated packets are seen on physical, VxLAN and bridge
> >>> interface but _not_ on the tap interface.
> >>> Without VxLAN, I do see aggregated (GRO) packets all the way upto VM
> >>> (i.e. physical, bridge and tap interface).
> >>> As you rightly pointed, looks like VxLAN packets are getting
> fragmented.
> >>> Any pointers to look for?
> >>>
> >>>
> >> By the way, I was referring below link for VxLAN testing and ran into
> the
> >> GRO issue.
> >> This mentions "The veth0 is suppose to be connected to the VM, while the
> >> veth1 is connected to the Linux bridge".
> >> https://community.mellanox.com/docs/DOC-1473
> >>
> >
>
>

Reply via email to