From: Ethan Jackson <et...@nicira.com>

This patch fixes a bug introduced in Commit 43edca57 "nx-match: New
helpers.", which caused the "move" action to improperly handle bit
ranges.
---
 lib/nx-match.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/lib/nx-match.c b/lib/nx-match.c
index e698cc6..c1c4767 100644
--- a/lib/nx-match.c
+++ b/lib/nx-match.c
@@ -1467,7 +1467,7 @@ nxm_execute_reg_move(const struct nx_action_reg_move 
*action,
     /* Get the interesting bits of the source field. */
     const struct nxm_field *src = nxm_field_lookup(ntohl(action->src));
     int src_ofs = ntohs(action->src_ofs);
-    uint64_t src_data = nxm_read_field(src, flow) & (mask << src_ofs);
+    uint64_t src_data = (nxm_read_field(src, flow) >> src_ofs) & mask;
 
     nxm_reg_load(action->dst,
                  nxm_encode_ofs_nbits(ntohs(action->dst_ofs), n_bits),
-- 
1.7.4.4

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to