On Tue, May 29, 2012 at 1:32 PM, ravi kerur <rke...@gmail.com> wrote: > Thanks Jesse. What I have tested is 2 Ubuntu 11.04 and 12.04 physical > systems connected via a ethernet switch. I have tested scp downloads, > iperf + netperf. Flows are setup such that MPLS tag is pushed for > every outgoing TCP segments. I do see via tcpdump that a jumbo packet > (~15K) is sent out by scp and NIC chops the jumbo packet based on the > MTU of the NIC before sending out. On the receive side, I do see > around 10 1500 byte packets being received(having same IPID). I don't > think LRO/GRO is taking place on the receive side though. This I have > tested successfully. > > The reason I mentioned about NIC was because I was seeing messages > "checksum partial, protocol=0x8847/0x88a8..." from the driver. The > driver complains about this when it is sending out a template about > checksums offsets and other things to NIC and has to be modified to > handle new eth_types.
Drivers need to report to the network stack what types of offloading they support. Since there's no current support for MPLS, no driver reports this capability and should not receive MPLS packets that need to be offloaded. This means that even if it works the behavior is not correct. > I have looked at vport-netdev.c and tunnel.c files and modified code > to handle MPLS and QinQ tags. Can you please point me which function > to be specific for software offload emulation. I will modify if I have > not already handled it. Generally speaking the emulation code is handled by skb_gso_segment() in dev.c in the kernel code outside of OVS. This should mostly work except that it needs to be able to detect that MPLS requires emulation. This will be the easiest part to get working and is the best place to start. However, in order for this code to work on any kernel before your changes get integrated (i.e. Linux 3.6 at the earliest) you'll have to emulate it in OVS as well, like we do for vlans in vport-netdev.c. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev