Message ID | 1468466479-23000-1-git-send-email-linyi@vmware.com |
---|---|
State | Accepted |
Delegated to: | Guru Shetty |
Headers | show |
-----Original Message----- From: dev <dev-bounces@openvswitch.org> on behalf of Yin Lin <linyi@vmware.com> Date: Wednesday, July 13, 2016 at 8:21 PM To: "dev@openvswitch.org" <dev@openvswitch.org> Cc: Yin Lin <linyi@vmware.com> Subject: [ovs-dev] [PATCH] datapath-windows: Fix various Geneve bugs >Signed-off-by: Yin Lin <linyi@vmware.com> Acked-by: Nithin Raju <nithin@vmware.com>
Hi Yin, Thanks for the patch one. Just one small question from me inlined. > -----Mesaj original----- > De la: dev [mailto:dev-bounces@openvswitch.org] În numele Yin Lin > Trimis: Thursday, July 14, 2016 6:21 AM > Către: dev@openvswitch.org > Cc: Yin Lin <linyi@vmware.com> > Subiect: [ovs-dev] [PATCH] datapath-windows: Fix various Geneve bugs > > Signed-off-by: Yin Lin <linyi@vmware.com> > --- > datapath-windows/ovsext/Flow.c | 2 +- > datapath-windows/ovsext/Vport.c | 3 ++- datapath- > windows/ovsext/Vport.h | 5 +++++ > 3 files changed, 8 insertions(+), 2 deletions(-) > - if (vport->ovsType != OVS_VPORT_TYPE_VXLAN) { > + if (vport->ovsType != OVS_VPORT_TYPE_GENEVE && [Alin Gabriel Serdean: ] Shouldn't it be a || ("vport->ovsType != OVS_VPORT_TYPE_GENEVE && ||") ? > + vport->ovsType != OVS_VPORT_TYPE_VXLAN) { > continue; > } > break; > diff --git a/datapath-windows/ovsext/Vport.h b/datapath- > windows/ovsext/Vport.h index f0a9acd..1f4968e 100644 > --- a/datapath-windows/ovsext/Vport.h > +++ b/datapath-windows/ovsext/Vport.h > @@ -21,6 +21,7 @@
> -----Mesaj original----- > De la: dev [mailto:dev-bounces@openvswitch.org] În numele Alin Serdean > Trimis: Thursday, July 21, 2016 4:30 PM > Către: Yin Lin <linyi@vmware.com>; dev@openvswitch.org > Subiect: Re: [ovs-dev] [PATCH] datapath-windows: Fix various Geneve bugs > > Hi Yin, > > Thanks for the patch one. Just one small question from me inlined. > > > -----Mesaj original----- > > De la: dev [mailto:dev-bounces@openvswitch.org] În numele Yin Lin > > Trimis: Thursday, July 14, 2016 6:21 AM > > Către: dev@openvswitch.org > > Cc: Yin Lin <linyi@vmware.com> > > Subiect: [ovs-dev] [PATCH] datapath-windows: Fix various Geneve bugs > > > > Signed-off-by: Yin Lin <linyi@vmware.com> > > --- > > datapath-windows/ovsext/Flow.c | 2 +- > > datapath-windows/ovsext/Vport.c | 3 ++- datapath- > > windows/ovsext/Vport.h | 5 +++++ > > 3 files changed, 8 insertions(+), 2 deletions(-) > > - if (vport->ovsType != OVS_VPORT_TYPE_VXLAN) { > > + if (vport->ovsType != OVS_VPORT_TYPE_GENEVE && > [Alin Gabriel Serdean: ] Shouldn't it be a || ("vport->ovsType != > OVS_VPORT_TYPE_GENEVE ||") ? [Alin Gabriel Serdean: ] Small edit "vport->ovsType != OVS_VPORT_TYPE_GENEVE ||" > > + vport->ovsType != OVS_VPORT_TYPE_VXLAN) { > > continue; > > } > > break; > > diff --git a/datapath-windows/ovsext/Vport.h b/datapath- > > windows/ovsext/Vport.h index f0a9acd..1f4968e 100644 > > --- a/datapath-windows/ovsext/Vport.h > > +++ b/datapath-windows/ovsext/Vport.h > > @@ -21,6 +21,7 @@ > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev
Hi Alin, I know this can be confusing but after a second thought I think mine is correct. Your suggestion is equivalent to (abbreviated): !(port == geneve && port == vxlan) which is always TRUE because port can not be both type at the same time. Thanks, Yin On Thu, Jul 21, 2016 at 7:00 AM, Alin Serdean < aserdean@cloudbasesolutions.com> wrote: > > > > -----Mesaj original----- > > De la: dev [mailto:dev-bounces@openvswitch.org] În numele Alin Serdean > > Trimis: Thursday, July 21, 2016 4:30 PM > > Către: Yin Lin <linyi@vmware.com>; dev@openvswitch.org > > Subiect: Re: [ovs-dev] [PATCH] datapath-windows: Fix various Geneve bugs > > > > Hi Yin, > > > > Thanks for the patch one. Just one small question from me inlined. > > > > > -----Mesaj original----- > > > De la: dev [mailto:dev-bounces@openvswitch.org] În numele Yin Lin > > > Trimis: Thursday, July 14, 2016 6:21 AM > > > Către: dev@openvswitch.org > > > Cc: Yin Lin <linyi@vmware.com> > > > Subiect: [ovs-dev] [PATCH] datapath-windows: Fix various Geneve bugs > > > > > > Signed-off-by: Yin Lin <linyi@vmware.com> > > > --- > > > datapath-windows/ovsext/Flow.c | 2 +- > > > datapath-windows/ovsext/Vport.c | 3 ++- datapath- > > > windows/ovsext/Vport.h | 5 +++++ > > > 3 files changed, 8 insertions(+), 2 deletions(-) > > > - if (vport->ovsType != OVS_VPORT_TYPE_VXLAN) { > > > + if (vport->ovsType != OVS_VPORT_TYPE_GENEVE && > > [Alin Gabriel Serdean: ] Shouldn't it be a || ("vport->ovsType != > > OVS_VPORT_TYPE_GENEVE ||") ? > [Alin Gabriel Serdean: ] Small edit "vport->ovsType != > OVS_VPORT_TYPE_GENEVE ||" > > > + vport->ovsType != OVS_VPORT_TYPE_VXLAN) { > > > continue; > > > } > > > break; > > > diff --git a/datapath-windows/ovsext/Vport.h b/datapath- > > > windows/ovsext/Vport.h index f0a9acd..1f4968e 100644 > > > --- a/datapath-windows/ovsext/Vport.h > > > +++ b/datapath-windows/ovsext/Vport.h > > > @@ -21,6 +21,7 @@ > > > > _______________________________________________ > > dev mailing list > > dev@openvswitch.org > > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev >
Hi Yin, Thanks for the response, you are correct. I lost from overview what we are testing for ☺. Acked-by: Alin Gabriel Serdean aserdean@cloudbasesolutions.com<mailto:aserdean@cloudbasesolutions.com> De la: Yin Lin [mailto:yinlin10@gmail.com] Trimis: Thursday, July 21, 2016 8:02 PM Către: Alin Serdean <aserdean@cloudbasesolutions.com> Cc: Yin Lin <linyi@vmware.com>; dev@openvswitch.org Subiect: Re: [ovs-dev] [PATCH] datapath-windows: Fix various Geneve bugs Hi Alin, I know this can be confusing but after a second thought I think mine is correct. Your suggestion is equivalent to (abbreviated): !(port == geneve && port == vxlan) which is always TRUE because port can not be both type at the same time. Thanks, Yin On Thu, Jul 21, 2016 at 7:00 AM, Alin Serdean <aserdean@cloudbasesolutions.com<mailto:aserdean@cloudbasesolutions.com>> wrote: > -----Mesaj original----- > De la: dev [mailto:dev-bounces@openvswitch.org<mailto:dev-bounces@openvswitch.org>] În numele Alin Serdean > Trimis: Thursday, July 21, 2016 4:30 PM > Către: Yin Lin <linyi@vmware.com<mailto:linyi@vmware.com>>; dev@openvswitch.org<mailto:dev@openvswitch.org> > Subiect: Re: [ovs-dev] [PATCH] datapath-windows: Fix various Geneve bugs > > Hi Yin, > > Thanks for the patch one. Just one small question from me inlined. > > > -----Mesaj original----- > > De la: dev [mailto:dev-bounces@openvswitch.org<mailto:dev-bounces@openvswitch.org>] În numele Yin Lin > > Trimis: Thursday, July 14, 2016 6:21 AM > > Către: dev@openvswitch.org<mailto:dev@openvswitch.org> > > Cc: Yin Lin <linyi@vmware.com<mailto:linyi@vmware.com>> > > Subiect: [ovs-dev] [PATCH] datapath-windows: Fix various Geneve bugs > > > > Signed-off-by: Yin Lin <linyi@vmware.com<mailto:linyi@vmware.com>> > > --- > > datapath-windows/ovsext/Flow.c | 2 +- > > datapath-windows/ovsext/Vport.c | 3 ++- datapath- > > windows/ovsext/Vport.h | 5 +++++ > > 3 files changed, 8 insertions(+), 2 deletions(-) > > - if (vport->ovsType != OVS_VPORT_TYPE_VXLAN) { > > + if (vport->ovsType != OVS_VPORT_TYPE_GENEVE && > [Alin Gabriel Serdean: ] Shouldn't it be a || ("vport->ovsType != > OVS_VPORT_TYPE_GENEVE ||") ? [Alin Gabriel Serdean: ] Small edit "vport->ovsType != OVS_VPORT_TYPE_GENEVE ||" > > + vport->ovsType != OVS_VPORT_TYPE_VXLAN) { > > continue; > > } > > break; > > diff --git a/datapath-windows/ovsext/Vport.h b/datapath- > > windows/ovsext/Vport.h index f0a9acd..1f4968e 100644 > > --- a/datapath-windows/ovsext/Vport.h > > +++ b/datapath-windows/ovsext/Vport.h > > @@ -21,6 +21,7 @@ > > _______________________________________________ > dev mailing list > dev@openvswitch.org<mailto:dev@openvswitch.org> > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org<mailto:dev@openvswitch.org> http://openvswitch.org/mailman/listinfo/dev
On 13 July 2016 at 20:21, Yin Lin <linyi@vmware.com> wrote: > Signed-off-by: Yin Lin <linyi@vmware.com> > Thank you, applied. > --- > datapath-windows/ovsext/Flow.c | 2 +- > datapath-windows/ovsext/Vport.c | 3 ++- > datapath-windows/ovsext/Vport.h | 5 +++++ > 3 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/datapath-windows/ovsext/Flow.c > b/datapath-windows/ovsext/Flow.c > index bc0bb37..7a57f96 100644 > --- a/datapath-windows/ovsext/Flow.c > +++ b/datapath-windows/ovsext/Flow.c > @@ -1683,7 +1683,7 @@ OvsTunnelAttrToGeneveOptions(PNL_ATTR attr, > option = (GeneveOptionHdr *)((UINT8 *)option + len); > optLen -= len; > } > - memcpy(TunnelKeyGetOptions(tunKey), option, optLen); > + memcpy(TunnelKeyGetOptions(tunKey), NlAttrData(attr), > tunKey->tunOptLen); > if (isCritical) { > tunKey->flags |= OVS_TNL_F_CRT_OPT; > } > diff --git a/datapath-windows/ovsext/Vport.c > b/datapath-windows/ovsext/Vport.c > index 1462453..22741db 100644 > --- a/datapath-windows/ovsext/Vport.c > +++ b/datapath-windows/ovsext/Vport.c > @@ -724,7 +724,8 @@ > OvsFindTunnelVportByDstPortAndNWProto(POVS_SWITCH_CONTEXT switchContext, > if (GetPortFromPriv(vport) == dstPort) { > switch (nwProto) { > case IPPROTO_UDP: > - if (vport->ovsType != OVS_VPORT_TYPE_VXLAN) { > + if (vport->ovsType != OVS_VPORT_TYPE_GENEVE && > + vport->ovsType != OVS_VPORT_TYPE_VXLAN) { > continue; > } > break; > diff --git a/datapath-windows/ovsext/Vport.h > b/datapath-windows/ovsext/Vport.h > index f0a9acd..1f4968e 100644 > --- a/datapath-windows/ovsext/Vport.h > +++ b/datapath-windows/ovsext/Vport.h > @@ -21,6 +21,7 @@ > #include "Stt.h" > #include "Switch.h" > #include "VxLan.h" > +#include "Geneve.h" > > #define OVS_MAX_DPPORTS MAXUINT16 > #define OVS_DPPORT_NUMBER_INVALID OVS_MAX_DPPORTS > @@ -183,6 +184,7 @@ static __inline BOOLEAN > OvsIsTunnelVportType(OVS_VPORT_TYPE ovsType) > { > return ovsType == OVS_VPORT_TYPE_VXLAN || > + ovsType == OVS_VPORT_TYPE_GENEVE || > ovsType == OVS_VPORT_TYPE_STT || > ovsType == OVS_VPORT_TYPE_GRE; > } > @@ -270,6 +272,9 @@ GetPortFromPriv(POVS_VPORT_ENTRY vport) > case OVS_VPORT_TYPE_VXLAN: > dstPort = ((POVS_VXLAN_VPORT)vportPriv)->dstPort; > break; > + case OVS_VPORT_TYPE_GENEVE: > + dstPort = ((POVS_GENEVE_VPORT) vportPriv)->dstPort; > + break; > default: > ASSERT(! "Port is not a tunnel port"); > } > -- > 2.8.0.windows.1 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev >
diff --git a/datapath-windows/ovsext/Flow.c b/datapath-windows/ovsext/Flow.c index bc0bb37..7a57f96 100644 --- a/datapath-windows/ovsext/Flow.c +++ b/datapath-windows/ovsext/Flow.c @@ -1683,7 +1683,7 @@ OvsTunnelAttrToGeneveOptions(PNL_ATTR attr, option = (GeneveOptionHdr *)((UINT8 *)option + len); optLen -= len; } - memcpy(TunnelKeyGetOptions(tunKey), option, optLen); + memcpy(TunnelKeyGetOptions(tunKey), NlAttrData(attr), tunKey->tunOptLen); if (isCritical) { tunKey->flags |= OVS_TNL_F_CRT_OPT; } diff --git a/datapath-windows/ovsext/Vport.c b/datapath-windows/ovsext/Vport.c index 1462453..22741db 100644 --- a/datapath-windows/ovsext/Vport.c +++ b/datapath-windows/ovsext/Vport.c @@ -724,7 +724,8 @@ OvsFindTunnelVportByDstPortAndNWProto(POVS_SWITCH_CONTEXT switchContext, if (GetPortFromPriv(vport) == dstPort) { switch (nwProto) { case IPPROTO_UDP: - if (vport->ovsType != OVS_VPORT_TYPE_VXLAN) { + if (vport->ovsType != OVS_VPORT_TYPE_GENEVE && + vport->ovsType != OVS_VPORT_TYPE_VXLAN) { continue; } break; diff --git a/datapath-windows/ovsext/Vport.h b/datapath-windows/ovsext/Vport.h index f0a9acd..1f4968e 100644 --- a/datapath-windows/ovsext/Vport.h +++ b/datapath-windows/ovsext/Vport.h @@ -21,6 +21,7 @@ #include "Stt.h" #include "Switch.h" #include "VxLan.h" +#include "Geneve.h" #define OVS_MAX_DPPORTS MAXUINT16 #define OVS_DPPORT_NUMBER_INVALID OVS_MAX_DPPORTS @@ -183,6 +184,7 @@ static __inline BOOLEAN OvsIsTunnelVportType(OVS_VPORT_TYPE ovsType) { return ovsType == OVS_VPORT_TYPE_VXLAN || + ovsType == OVS_VPORT_TYPE_GENEVE || ovsType == OVS_VPORT_TYPE_STT || ovsType == OVS_VPORT_TYPE_GRE; } @@ -270,6 +272,9 @@ GetPortFromPriv(POVS_VPORT_ENTRY vport) case OVS_VPORT_TYPE_VXLAN: dstPort = ((POVS_VXLAN_VPORT)vportPriv)->dstPort; break; + case OVS_VPORT_TYPE_GENEVE: + dstPort = ((POVS_GENEVE_VPORT) vportPriv)->dstPort; + break; default: ASSERT(! "Port is not a tunnel port"); }
Signed-off-by: Yin Lin <linyi@vmware.com> --- datapath-windows/ovsext/Flow.c | 2 +- datapath-windows/ovsext/Vport.c | 3 ++- datapath-windows/ovsext/Vport.h | 5 +++++ 3 files changed, 8 insertions(+), 2 deletions(-)