[ovs-dev] [PATCH v3] datapath-windows: Add a wrapper to retreive external vport

Guru Shetty guru at ovn.org
Fri Jan 27 21:59:05 UTC 2017


On 24 January 2017 at 12:37, Shashank Ram <rams at vmware.com> wrote:

> This wrapper is to simplify readability.
>
> Signed-off-by: Shashank Ram <rams at vmware.com>
>
Applied.



> ---
>  datapath-windows/ovsext/Actions.c  | 8 ++++----
>  datapath-windows/ovsext/PacketIO.c | 6 +++---
>  datapath-windows/ovsext/Vport.c    | 6 ++++++
>  datapath-windows/ovsext/Vport.h    | 2 ++
>  4 files changed, 15 insertions(+), 7 deletions(-)
>
> diff --git a/datapath-windows/ovsext/Actions.c b/datapath-windows/ovsext/
> Actions.c
> index b4a286b..df1280d 100644
> --- a/datapath-windows/ovsext/Actions.c
> +++ b/datapath-windows/ovsext/Actions.c
> @@ -290,8 +290,8 @@ OvsDetectTunnelPkt(OvsForwardingContext *ovsFwdCtx,
>           * default port.
>           */
>          BOOLEAN validSrcPort =
> -            (ovsFwdCtx->fwdDetail->SourcePortId ==
> -                 ovsFwdCtx->switchContext->virtualExternalPortId) ||
> +            (OvsIsExternalVportByPortId(ovsFwdCtx->switchContext,
> +                 ovsFwdCtx->fwdDetail->SourcePortId)) ||
>              (ovsFwdCtx->fwdDetail->SourcePortId ==
>                   NDIS_SWITCH_DEFAULT_PORT_ID);
>
> @@ -2130,8 +2130,8 @@ OvsDoRecirc(POVS_SWITCH_CONTEXT switchContext,
>          }
>          status = OvsCreateAndAddPackets(NULL, 0, OVS_PACKET_CMD_MISS,
>                                          vport, key, ovsFwdCtx.curNbl,
> -                                        vport->portId ==
> -                                        switchContext->
> virtualExternalPortId,
> +                                        OvsIsExternalVportByPortId(
> switchContext,
> +                                            vport->portId),
>                                          &ovsFwdCtx.layers,
>                                          ovsFwdCtx.switchContext,
>                                          &missedPackets, &num);
> diff --git a/datapath-windows/ovsext/PacketIO.c b/datapath-windows/ovsext/
> PacketIO.c
> index 4005589..a90b556 100644
> --- a/datapath-windows/ovsext/PacketIO.c
> +++ b/datapath-windows/ovsext/PacketIO.c
> @@ -259,13 +259,13 @@ OvsStartNBLIngress(POVS_SWITCH_CONTEXT
> switchContext,
>                  curNbl,
>                  nextNativeForwardedNbl,
>                  sendCompleteFlags,
> -                sourcePort == switchContext->virtualExternalPortId);
> +                OvsIsExternalVportByPortId(switchContext, sourcePort));
>              continue;
>          }
>  #endif /* NDIS_SUPPORT_NDIS640 */
>
>          ctx = OvsInitExternalNBLContext(switchContext, curNbl,
> -                  sourcePort == switchContext->virtualExternalPortId);
> +                  OvsIsExternalVportByPortId(switchContext, sourcePort));
>          if (ctx == NULL) {
>              RtlInitUnicodeString(&filterReason,
>                  L"Cannot allocate external NBL context.");
> @@ -345,7 +345,7 @@ OvsStartNBLIngress(POVS_SWITCH_CONTEXT switchContext,
>                  datapath->misses++;
>                  status = OvsCreateAndAddPackets(NULL, 0,
> OVS_PACKET_CMD_MISS,
>                               vport, &key, curNbl,
> -                             sourcePort == switchContext->
> virtualExternalPortId,
> +                             OvsIsExternalVportByPortId(switchContext,
> sourcePort),
>                               &layers, switchContext, &missedPackets,
> &num);
>                  if (status == NDIS_STATUS_SUCCESS) {
>                      /* Complete the packet since it was copied to user
> diff --git a/datapath-windows/ovsext/Vport.c b/datapath-windows/ovsext/
> Vport.c
> index e9e22aa..9142937 100644
> --- a/datapath-windows/ovsext/Vport.c
> +++ b/datapath-windows/ovsext/Vport.c
> @@ -909,6 +909,12 @@ OvsFindVportByPortIdAndNicIndex(POVS_SWITCH_CONTEXT
> switchContext,
>      }
>  }
>
> +BOOLEAN OvsIsExternalVportByPortId(POVS_SWITCH_CONTEXT switchContext,
> +                                   NDIS_SWITCH_PORT_ID portId)
> +{
> +    return (portId == switchContext->virtualExternalPortId);
> +}
> +
>  POVS_VPORT_ENTRY
>  OvsAllocateVport(VOID)
>  {
> diff --git a/datapath-windows/ovsext/Vport.h b/datapath-windows/ovsext/
> Vport.h
> index 4dc4e00..7d88f86 100644
> --- a/datapath-windows/ovsext/Vport.h
> +++ b/datapath-windows/ovsext/Vport.h
> @@ -134,6 +134,8 @@ POVS_VPORT_ENTRY OvsFindVportByHvNameW(POVS_SWITCH_CONTEXT
> switchContext,
>  POVS_VPORT_ENTRY OvsFindVportByPortIdAndNicIndex(POVS_SWITCH_CONTEXT
> switchContext,
>                                                   NDIS_SWITCH_PORT_ID
> portId,
>                                                   NDIS_SWITCH_NIC_INDEX
> index);
> +BOOLEAN OvsIsExternalVportByPortId(POVS_SWITCH_CONTEXT switchContext,
> +                                   NDIS_SWITCH_PORT_ID portId);
>  POVS_VPORT_ENTRY OvsFindTunnelVportByDstPortAndType(POVS_SWITCH_CONTEXT
> switchContext,
>                                                      UINT16 dstPort,
>                                                      OVS_VPORT_TYPE
> ovsPortType);
> --
> 2.6.2
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>


More information about the dev mailing list