X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fofp-util.h;h=f7490a6ebdb3e917e384a900409b78fc9ffb9ed5;hb=e5b2afdbde9b7d6dc8d2f1bc641b6bcd3a1c7395;hp=2404e754802194d284fb54d9fd6f1b21c2174978;hpb=63f2140a553dbbda9f19019a03abb088c7e7fa29;p=openvswitch diff --git a/lib/ofp-util.h b/lib/ofp-util.h index 2404e754..f7490a6e 100644 --- a/lib/ofp-util.h +++ b/lib/ofp-util.h @@ -163,14 +163,27 @@ struct ofputil_flow_stats { uint32_t duration_nsec; uint16_t idle_timeout; uint16_t hard_timeout; - uint64_t packet_count; - uint64_t byte_count; + uint64_t packet_count; /* Packet count, UINT64_MAX if unknown. */ + uint64_t byte_count; /* Byte count, UINT64_MAX if unknown. */ union ofp_action *actions; size_t n_actions; }; int ofputil_decode_flow_stats_reply(struct ofputil_flow_stats *, struct ofpbuf *msg); +void ofputil_append_flow_stats_reply(const struct ofputil_flow_stats *, + struct list *replies); + +/* Aggregate stats reply, independent of flow format. */ +struct ofputil_aggregate_stats { + uint64_t packet_count; /* Packet count, UINT64_MAX if unknown. */ + uint64_t byte_count; /* Byte count, UINT64_MAX if unknown. */ + uint32_t flow_count; +}; + +struct ofpbuf *ofputil_encode_aggregate_stats_reply( + const struct ofputil_aggregate_stats *stats, + const struct ofp_stats_msg *request); /* Flow removed message, independent of flow format. */ struct ofputil_flow_removed { @@ -180,8 +193,8 @@ struct ofputil_flow_removed { uint32_t duration_sec; uint32_t duration_nsec; uint16_t idle_timeout; - uint64_t packet_count; - uint64_t byte_count; + uint64_t packet_count; /* Packet count, UINT64_MAX if unknown. */ + uint64_t byte_count; /* Byte count, UINT64_MAX if unknown. */ }; int ofputil_decode_flow_removed(struct ofputil_flow_removed *, @@ -278,6 +291,10 @@ bool action_outputs_to_port(const union ofp_action *, ovs_be16 port); int ofputil_pull_actions(struct ofpbuf *, unsigned int actions_len, union ofp_action **, size_t *); + +bool ofputil_actions_equal(const union ofp_action *a, size_t n_a, + const union ofp_action *b, size_t n_b); +union ofp_action *ofputil_actions_clone(const union ofp_action *, size_t n); /* OpenFlow vendors. *