From: Ethan Jackson Date: Fri, 12 Aug 2011 18:52:57 +0000 (-0700) Subject: nx-match: Fix bug in "move" action. X-Git-Url: http://git.onelab.eu/?p=sliver-openvswitch.git;a=commitdiff_plain;h=8d5634845f9032468982c09a737a9f30c3764c3e nx-match: Fix bug in "move" action. This patch fixes a bug introduced in Commit 43edca57 "nx-match: New helpers.", which caused the "move" action to improperly handle bit ranges. --- diff --git a/lib/nx-match.c b/lib/nx-match.c index ecc284e94..cccf6fe67 100644 --- a/lib/nx-match.c +++ b/lib/nx-match.c @@ -1471,7 +1471,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),