diff options
author | Anand Kumar <kumaranand@vmware.com> | 2019-08-15 09:39:06 -0700 |
---|---|---|
committer | Alin Gabriel Serdean <aserdean@ovn.org> | 2019-08-19 01:05:01 +0300 |
commit | 15b527e2dc03e2caad4c0fa3a00afd63131707e1 (patch) | |
tree | d522b7cfcb16d2fc1ace6b3b8f10416f226534fb /datapath-windows | |
parent | 3bfc9c1c30d5470288769adc0a6a7f7f44323c8e (diff) | |
download | openvswitch-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.c | 1 |
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)); |