On Thu, Jun 14, 2012 at 8:22 AM, Jesse Gross <je...@nicira.com> wrote: > On Jun 14, 2012, at 10:13 PM, ravi kerur <rke...@gmail.com> wrote: > >> On Thu, Jun 14, 2012 at 3:58 AM, Jesse Gross <je...@nicira.com> wrote: >>> On Thu, Jun 14, 2012 at 1:24 PM, ravi kerur <rke...@gmail.com> wrote: >>>> On Wed, Jun 13, 2012 at 7:58 PM, Jesse Gross <je...@nicira.com> wrote: >>>>> On Thu, Jun 14, 2012 at 4:51 AM, ravi kerur <rke...@gmail.com> wrote: >>>>>> There are additional things that needs to be addressed as well >>>>>> >>>>>> 1. offload code review, it's currently generic enough and getting near >>>>>> line rate performance numbers. >>>>> >>>>> You can't just take what is done for vlans and copy that. There is >>>>> far too much code that you're adding to OVS. Did you read what I >>>>> wrote earlier about where to start?: >>>> >>>> <rk> How is adding far too much code to ovs related to offload? It is >>>> handled similar to what vlan is doing for older kernel + in addition >>>> it takes care of handling copy + restore skb->protocol since >>>> skb_gso_segment relies on it and handle cases for non-gso packets to >>>> calculate checksum. I don't understand your comments, have you looked >>>> at latest patch? >>> >>> The vlan code that's there is backporting and emulation for various >>> quirks of vlans on different kernels. Most of these don't apply to >>> MPLS because no version of Linux supports MPLS. You can't start from >>> the backported version though, you need to begin with the correct way >>> to do things assuming that you have freedom to modify the upstream >>> kernel because OVS is upstream now and that's the future. Once you >>> have things working there, you can backport to older versions but if >>> you do it in the opposite order you just end up with a mess. Once >>> again, did you read what I wrote below? I know that your code isn't >>> correct just by looking at the diff stat because you didn't modify the >>> file that I told you is the place to start. >> >> <rk> comments below >>> >>>>> 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. >> >> <rk> From the above paragraph, I deciphered it as emulate in ovs since >> it needs to work with any kernel version(vport-netdev.c) and then in >> dev.c and that's what I have done. Modified vport-netdev.c to support >> mpls and qinq and for any kernel version. However, it looks like you >> wanted me to work on dev.c first and later emulate in ovs via >> vport-netdev.c? > > Yes.
<rk> ok thanks, will work on it. Just thinking about this, why do you want to modify upstream code dev.c first and not ovs? Atleast it makes sense to work on ovs first since it covers older version + current version and via macro LINUX_VERSION_CODE can be controlled on which version it's enabled and later handle upstream code(so long as it's made sure code gets in upstream on targeted version). Moreover, changes in dev.c and vport-netdev.c are completely different and cannot be treated as a backport, instead they should be treated as two separate changes. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev