Acked-by: Alin Gabriel Serdean <aserd...@cloudbasesolutions.com> Tested-by: Alin Gabriel Serdean <aserd...@cloudbasesolutions.com>
-----Mesaj original----- De la: dev [mailto:dev-boun...@openvswitch.org] În numele Nithin Raju Trimis: Friday, October 24, 2014 3:33 AM Către: dev@openvswitch.org Subiect: [ovs-dev] [PATCH 7/7] datapath-windows: OvsFindVportByPortIdAndNicIndex() and external port We use OvsFindVportByPortIdAndNicIndex() to lookup the vport for a packte received from the Hyper-V switch. If a packet was indeed received from the virtual external NIC, we should flag it. Validation: 1. Install and Uninstall the OVS EXT Driver (without enabling the OVS extension on the Hyper-V switch). 2. Install and Uninstall the OVS EXT Driver (with enabling the OVS extension on the Hyper-V switch). Hyper-V switch had a few ports. 3. Install and Uninstall the OVS EXT Driver (with enabling the OVS extension on the Hyper-V switch). Added a few ports before uninstalling. 4. Install the OVS EXT driver, and test the following functionality: a) ping between 2 VMs on the same host b) ping between 2 VMs on 2 Hyper-Vs - one physical and another virtual backed by VLAN (patch port between br-pif and br-int). c) ping between 2 VMs on 2 Hyper-Vs - one physical and another virtual backed by VXLAN. d) Successful uninstallation after these tests. Signed-off-by: Nithin Raju <nit...@vmware.com> --- datapath-windows/ovsext/Vport.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/datapath-windows/ovsext/Vport.c b/datapath-windows/ovsext/Vport.c index 1e8154e..d951d08 100644 --- a/datapath-windows/ovsext/Vport.c +++ b/datapath-windows/ovsext/Vport.c @@ -552,9 +552,13 @@ OvsFindVportByPortIdAndNicIndex(POVS_SWITCH_CONTEXT switchContext, NDIS_SWITCH_PORT_ID portId, NDIS_SWITCH_NIC_INDEX index) { - if (portId == switchContext->virtualExternalPortId) { + if (switchContext->virtualExternalVport && + portId == switchContext->virtualExternalPortId && + index == switchContext->virtualExternalVport->nicIndex) { return (POVS_VPORT_ENTRY)switchContext->virtualExternalVport; - } else if (switchContext->internalPortId == portId) { + } else if (switchContext->internalVport && + portId == switchContext->internalPortId && + index == switchContext->internalVport->nicIndex) { return (POVS_VPORT_ENTRY)switchContext->internalVport; } else { PLIST_ENTRY head, link; -- 1.7.4.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev