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. 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. Thanks, Ravi On Tue, May 29, 2012 at 12:47 PM, Jesse Gross <je...@nicira.com> wrote: > On Tue, May 29, 2012 at 12:12 PM, ravi kerur <rke...@gmail.com> wrote: >> Additional changes are needed here esp. in NIC driver(looked into >> e1000e driver code from Intel) as it requires handling of new >> eth_types. For these changes I probably need to work with you and >> Jesse on how best we can incorporate them. > > At this point, I wouldn't worry about getting drivers to handle MPLS > offloading. What I was talking about before was about correctness, > not performance. Specifically: > 1. Sender (say a VM) transmits a TCP packet that uses offloading. > 2. OVS inserts a MPLS tag on the packet before sending it on the wire. > 3. The NIC needs to be able to parse into the packet but doesn't > understand the MPLS tag and doesn't do anything. > 4. The packet gets dropped at some point because it's too big or the > checksum computation wasn't performed, etc. > > In order to avoid this situation you need to perform any offloading in > software before giving it to the NIC. This can be done generically > though and doesn't require any changes to the driver. Eventually you > could start updating drivers for NICs that do support MPLS but you'll > still need the software fallback path for other cards, so the software > emulation is a good place to start. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev