diff options
author | Alin Serdean <aserdean@cloudbasesolutions.com> | 2016-12-20 19:42:19 +0000 |
---|---|---|
committer | Gurucharan Shetty <guru@ovn.org> | 2016-12-20 12:22:48 -0800 |
commit | cd30b3460ac53719a6b8aaaba89b29c0304ac335 (patch) | |
tree | ddf8a6e75efbdf59ef999bba6ded22eff01be3c1 /datapath-windows/ovsext/Vxlan.c | |
parent | da467899ab6e67b645840195a64600d1484d0dce (diff) | |
download | openvswitch-cd30b3460ac53719a6b8aaaba89b29c0304ac335.tar.gz |
datapath-windows: Add multiple switch internal ports
This patch adds multiple internal ports support to the windows datapath.
All tunnels types have been updated to accommodate this new functionality.
Signed-off-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com>
Co-authored-by: Sorin Vinturis <svinturis@cloudbasesolutions.com>
Signed-off-by: Sorin Vinturis <svinturis@cloudbasesolutions.com>
Acked-by: Paul Boca <pboca@cloudbasesolutions.com>
Acked-by: Sairam Venugopal <vsairam@vmware.com>
Signed-off-by: Gurucharan Shetty <guru@ovn.org>
Diffstat (limited to 'datapath-windows/ovsext/Vxlan.c')
-rw-r--r-- | datapath-windows/ovsext/Vxlan.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/datapath-windows/ovsext/Vxlan.c b/datapath-windows/ovsext/Vxlan.c index db452483a..949e069b7 100644 --- a/datapath-windows/ovsext/Vxlan.c +++ b/datapath-windows/ovsext/Vxlan.c @@ -334,7 +334,7 @@ ret_error: *---------------------------------------------------------------------------- * OvsEncapVxlan -- * Encapsulates the packet if L2/L3 for destination resolves. Otherwise, - * enqueues a callback that does encapsulatation after resolution. + * enqueues a callback that does encapsulation after resolution. *---------------------------------------------------------------------------- */ NDIS_STATUS @@ -343,15 +343,15 @@ OvsEncapVxlan(POVS_VPORT_ENTRY vport, OvsIPv4TunnelKey *tunKey, POVS_SWITCH_CONTEXT switchContext, POVS_PACKET_HDR_INFO layers, - PNET_BUFFER_LIST *newNbl) + PNET_BUFFER_LIST *newNbl, + POVS_FWD_INFO switchFwdInfo) { NTSTATUS status; OVS_FWD_INFO fwdInfo; - status = OvsLookupIPFwdInfo(tunKey->dst, &fwdInfo); + status = OvsLookupIPFwdInfo(tunKey->src, tunKey->dst, &fwdInfo); if (status != STATUS_SUCCESS) { OvsFwdIPHelperRequest(NULL, 0, tunKey, NULL, NULL, NULL); - // return NDIS_STATUS_PENDING; /* * XXX: Don't know if the completionList will make any sense when * accessed in the callback. Make sure the caveats are known. @@ -362,6 +362,8 @@ OvsEncapVxlan(POVS_VPORT_ENTRY vport, return NDIS_STATUS_FAILURE; } + RtlCopyMemory(switchFwdInfo->value, fwdInfo.value, sizeof fwdInfo.value); + return OvsDoEncapVxlan(vport, curNbl, tunKey, &fwdInfo, layers, switchContext, newNbl); } |