From 15b527e2dc03e2caad4c0fa3a00afd63131707e1 Mon Sep 17 00:00:00 2001 From: Anand Kumar Date: Thu, 15 Aug 2019 09:39:06 -0700 Subject: 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 Acked-by: Alin Gabriel Serdean Signed-off-by: Alin Gabriel Serdean --- datapath-windows/ovsext/Conntrack.c | 1 + 1 file changed, 1 insertion(+) (limited to 'datapath-windows') 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)); -- cgit v1.2.1