With these additions, flow_metadata actually contains all of the metadata fields in a struct flow.
Signed-off-by: Ben Pfaff <b...@nicira.com> --- lib/flow.c | 2 ++ lib/flow.h | 2 ++ lib/ofp-util.c | 10 ++++++++++ 3 files changed, 14 insertions(+) diff --git a/lib/flow.c b/lib/flow.c index 680b3230..ac3c32b 100644 --- a/lib/flow.c +++ b/lib/flow.c @@ -497,6 +497,8 @@ flow_get_metadata(const struct flow *flow, struct flow_metadata *fmd) fmd->metadata = flow->metadata; memcpy(fmd->regs, flow->regs, sizeof fmd->regs); fmd->in_port = flow->in_port; + fmd->skb_priority = flow->skb_priority; + fmd->skb_mark = flow->skb_mark; } char * diff --git a/lib/flow.h b/lib/flow.h index 6d8615b..40f5968 100644 --- a/lib/flow.h +++ b/lib/flow.h @@ -121,6 +121,8 @@ struct flow_metadata { ovs_be64 metadata; /* OpenFlow 1.1+ metadata field. */ uint32_t regs[FLOW_N_REGS]; /* Registers. */ uint32_t in_port; /* OpenFlow port or zero. */ + uint32_t skb_priority; /* Packet priority for QoS. */ + uint32_t skb_mark; /* Packet mark. */ }; void flow_extract(struct ofpbuf *, uint32_t priority, uint32_t mark, diff --git a/lib/ofp-util.c b/lib/ofp-util.c index 658b541..da9af72 100644 --- a/lib/ofp-util.c +++ b/lib/ofp-util.c @@ -2445,6 +2445,8 @@ ofputil_decode_packet_in_finish(struct ofputil_packet_in *pin, pin->fmd.tunnel = match->flow.tunnel; pin->fmd.metadata = match->flow.metadata; memcpy(pin->fmd.regs, match->flow.regs, sizeof pin->fmd.regs); + pin->fmd.skb_priority = match->flow.skb_priority; + pin->fmd.skb_mark = match->flow.skb_mark; } enum ofperr @@ -2560,6 +2562,14 @@ ofputil_packet_in_to_match(const struct ofputil_packet_in *pin, } match_set_in_port(match, pin->fmd.in_port); + + if (pin->fmd.skb_priority) { + match_set_skb_priority(match, pin->fmd.skb_priority); + } + + if (pin->fmd.skb_mark) { + match_set_skb_priority(match, pin->fmd.skb_mark); + } } /* Converts abstract ofputil_packet_in 'pin' into a PACKET_IN message -- 1.7.10.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev