summaryrefslogtreecommitdiff
path: root/ofproto
diff options
context:
space:
mode:
Diffstat (limited to 'ofproto')
-rw-r--r--ofproto/ofproto-dpif-xlate.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
index 893c0335e..1e2957c83 100644
--- a/ofproto/ofproto-dpif-xlate.c
+++ b/ofproto/ofproto-dpif-xlate.c
@@ -4924,9 +4924,10 @@ do_xlate_actions(const struct ofpact *ofpacts, size_t ofpacts_len,
/* Set the field only if the packet actually has it. */
if (mf_are_prereqs_ok(mf, flow, wc)) {
- mf_mask_field_masked(mf, &set_field->mask, wc);
- mf_set_flow_value_masked(mf, &set_field->value,
- &set_field->mask, flow);
+ mf_mask_field_masked(mf, ofpact_set_field_mask(set_field), wc);
+ mf_set_flow_value_masked(mf, set_field->value,
+ ofpact_set_field_mask(set_field),
+ flow);
}
break;
@@ -5754,11 +5755,8 @@ xlate_send_packet(const struct ofport_dpif *ofport, bool oam,
}
if (oam) {
- struct ofpact_set_field *sf = ofpact_put_SET_FIELD(&ofpacts);
-
- sf->field = mf_from_id(MFF_TUN_FLAGS);
- sf->value.be16 = htons(NX_TUN_FLAG_OAM);
- sf->mask.be16 = htons(NX_TUN_FLAG_OAM);
+ const ovs_be16 oam = htons(NX_TUN_FLAG_OAM);
+ ofpact_put_set_field(&ofpacts, mf_from_id(MFF_TUN_FLAGS), &oam, &oam);
}
ofpact_put_OUTPUT(&ofpacts)->port = xport->ofp_port;