Jesse, Does this make sense? Thanks, Ravi
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. > > 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