summaryrefslogtreecommitdiff
path: root/datapath-windows/ovsext/Flow.c
diff options
context:
space:
mode:
authorSorin Vinturis <svinturis@cloudbasesolutions.com>2016-03-25 14:49:27 +0000
committerBen Pfaff <blp@ovn.org>2016-03-25 08:24:36 -0700
commit245eedef9519d8b75db7a7c36bc2ed1005938f81 (patch)
tree58470d50d932fe6e1ad9f72c3a05aef5927f3eba /datapath-windows/ovsext/Flow.c
parentc7b46d8a0f58a61a28b1c626d2a7c61e5bec7651 (diff)
downloadopenvswitch-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.c14
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;
}