diff options
author | Yin Lin <linyi@vmware.com> | 2016-07-13 20:21:19 -0700 |
---|---|---|
committer | Gurucharan Shetty <guru@ovn.org> | 2016-07-21 11:26:54 -0700 |
commit | 9e23ac209520d1ca1ac30746ec1d63bc2c37e471 (patch) | |
tree | 348af1da192034d0c4feda905612384f94b3eef0 /datapath-windows/ovsext | |
parent | ff188ad1db6ac9dba746093a1c464f17b542a880 (diff) | |
download | openvswitch-9e23ac209520d1ca1ac30746ec1d63bc2c37e471.tar.gz |
datapath-windows: Fix various Geneve bugs
Signed-off-by: Yin Lin <linyi@vmware.com>
Acked-by: Nithin Raju <nithin@vmware.com>
Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com>
Signed-off-by: Gurucharan Shetty <guru@ovn.org>
Diffstat (limited to 'datapath-windows/ovsext')
-rw-r--r-- | datapath-windows/ovsext/Flow.c | 2 | ||||
-rw-r--r-- | datapath-windows/ovsext/Vport.c | 3 | ||||
-rw-r--r-- | 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 bc0bb37fb..7a57f96ba 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 146245345..22741db0a 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 f0a9acd9e..1f4968ee7 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"); } |