summaryrefslogtreecommitdiff
path: root/datapath-windows
diff options
context:
space:
mode:
authorAnand Kumar <kumaranand@vmware.com>2019-08-15 09:39:06 -0700
committerAlin Gabriel Serdean <aserdean@ovn.org>2019-08-19 01:05:01 +0300
commit15b527e2dc03e2caad4c0fa3a00afd63131707e1 (patch)
treed522b7cfcb16d2fc1ace6b3b8f10416f226534fb /datapath-windows
parent3bfc9c1c30d5470288769adc0a6a7f7f44323c8e (diff)
downloadopenvswitch-15b527e2dc03e2caad4c0fa3a00afd63131707e1.tar.gz
datapath-windows: Fix updating ct label when mask is specified
When an existing label needs to be changed by specifing bits to be updated using mask, instead of updating only the masked bits, new label was getting overridden. This patch fixes this issue. Signed-off-by: Anand Kumar <kumaranand@vmware.com> Acked-by: Alin Gabriel Serdean <aserdean@ovn.org> Signed-off-by: Alin Gabriel Serdean <aserdean@ovn.org>
Diffstat (limited to 'datapath-windows')
-rw-r--r--datapath-windows/ovsext/Conntrack.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/datapath-windows/ovsext/Conntrack.c b/datapath-windows/ovsext/Conntrack.c
index bc00b6023..ba5611697 100644
--- a/datapath-windows/ovsext/Conntrack.c
+++ b/datapath-windows/ovsext/Conntrack.c
@@ -807,6 +807,7 @@ OvsConntrackSetLabels(OvsFlowKey *key,
ovs_u128 v, m, pktMdLabel = {0};
memcpy(&v, val, sizeof v);
memcpy(&m, mask, sizeof m);
+ memcpy(&pktMdLabel, &entry->labels, sizeof(struct ovs_key_ct_labels));
pktMdLabel.u64.lo = v.u64.lo | (pktMdLabel.u64.lo & ~(m.u64.lo));
pktMdLabel.u64.hi = v.u64.hi | (pktMdLabel.u64.hi & ~(m.u64.hi));