diff options
author | Sorin Vinturis <svinturis@cloudbasesolutions.com> | 2016-03-25 14:49:27 +0000 |
---|---|---|
committer | Ben Pfaff <blp@ovn.org> | 2016-03-25 08:24:36 -0700 |
commit | 245eedef9519d8b75db7a7c36bc2ed1005938f81 (patch) | |
tree | 58470d50d932fe6e1ad9f72c3a05aef5927f3eba /datapath-windows/ovsext/Flow.c | |
parent | c7b46d8a0f58a61a28b1c626d2a7c61e5bec7651 (diff) | |
download | openvswitch-245eedef9519d8b75db7a7c36bc2ed1005938f81.tar.gz |
datapath-windows: Support for OVS_ACTION_ATTR_HASH attribute
Signed-off-by: Sorin Vinturis <svinturis@cloudbasesolutions.com>
Acked-by: Sairam Venugopal <vsairam@vmware.com>
Acked-by: Nithin Raju <nithin@vmware.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'datapath-windows/ovsext/Flow.c')
-rw-r--r-- | datapath-windows/ovsext/Flow.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/datapath-windows/ovsext/Flow.c b/datapath-windows/ovsext/Flow.c index 9993e49ba..a82b51b0d 100644 --- a/datapath-windows/ovsext/Flow.c +++ b/datapath-windows/ovsext/Flow.c @@ -850,6 +850,14 @@ MapFlowKeyToNlKey(PNL_BUFFER nlBuf, goto done; } + if (flowKey->dpHash) { + if (!NlMsgPutTailU32(nlBuf, OVS_KEY_ATTR_DP_HASH, + flowKey->dpHash)) { + rc = STATUS_UNSUCCESSFUL; + goto done; + } + } + /* Ethernet header */ RtlCopyMemory(&(ethKey.eth_src), flowKey->l2.dlSrc, ETH_ADDR_LEN); RtlCopyMemory(&(ethKey.eth_dst), flowKey->l2.dlDst, ETH_ADDR_LEN); @@ -1377,6 +1385,11 @@ _MapKeyAttrToFlowPut(PNL_ATTR *keyAttrs, destKey->l2.keyLen += sizeof(destKey->recircId); } + if (keyAttrs[OVS_KEY_ATTR_DP_HASH]) { + destKey->dpHash = NlAttrGetU32(keyAttrs[OVS_KEY_ATTR_DP_HASH]); + destKey->l2.keyLen += sizeof(destKey->dpHash); + } + /* ===== L2 headers ===== */ destKey->l2.inPort = NlAttrGetU32(keyAttrs[OVS_KEY_ATTR_IN_PORT]); @@ -2269,6 +2282,7 @@ ReportFlowInfo(OvsFlow *flow, } info->key.recircId = flow->key.recircId; + info->key.dpHash = flow->key.dpHash; return status; } |