Thanks Jesse, I will check the code in vport-netdev.c file and get back with the diffs. I did modify the code to get earlier version working. Anyways will get back to you.
On Tue, May 29, 2012 at 3:32 PM, Jesse Gross <je...@nicira.com> wrote: > 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 setnsup 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