[ovs-dev] [PATCH] datapath-windows: Fix various Geneve bugs

Guru Shetty guru at ovn.org
Thu Jul 21 18:28:03 UTC 2016


On 13 July 2016 at 20:21, Yin Lin <linyi at vmware.com> wrote:

> Signed-off-by: Yin Lin <linyi at 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 at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>



More information about the dev mailing list