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

Reply via email to