From: Joe Stringer Date: Fri, 15 Apr 2016 18:36:05 +0000 (-0700) Subject: ofproto-dpif-xlate: Tidy up ct_mark xlate code. X-Git-Url: http://git.cascardo.eti.br/?a=commitdiff_plain;h=2a754f4a0a66c24fdc6f1997a789bcf1079aabb9;p=cascardo%2Fovs.git ofproto-dpif-xlate: Tidy up ct_mark xlate code. Make the ct_mark netlink serialization more consistent with the way that ct_label is serialized. Signed-off-by: Joe Stringer Acked-by: Ben Pfaff --- diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c index 2d0d76912..7a201bde1 100644 --- a/ofproto/ofproto-dpif-xlate.c +++ b/ofproto/ofproto-dpif-xlate.c @@ -4285,17 +4285,16 @@ static void put_ct_mark(const struct flow *flow, struct ofpbuf *odp_actions, struct flow_wildcards *wc) { - struct { - uint32_t key; - uint32_t mask; - } odp_attr; - - odp_attr.key = flow->ct_mark & wc->masks.ct_mark; - odp_attr.mask = wc->masks.ct_mark; - - if (odp_attr.mask) { - nl_msg_put_unspec(odp_actions, OVS_CT_ATTR_MARK, &odp_attr, - sizeof(odp_attr)); + if (wc->masks.ct_mark) { + struct { + uint32_t key; + uint32_t mask; + } *odp_ct_mark; + + odp_ct_mark = nl_msg_put_unspec_uninit(odp_actions, OVS_CT_ATTR_MARK, + sizeof(*odp_ct_mark)); + odp_ct_mark->key = flow->ct_mark & wc->masks.ct_mark; + odp_ct_mark->mask = wc->masks.ct_mark; } }