X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fofp-util.h;h=2f73ec2bf6f91a3479fe97858aaaec59a1cd6b8e;hb=be2b69d14692718d1569b2b6fd03594be1a0f864;hp=38e7b029d021ffa65a0d57ca7129c8267c2b812a;hpb=3ddcaf2d7de751346775b3d6183d01a0c0986ce0;p=openvswitch diff --git a/lib/ofp-util.h b/lib/ofp-util.h index 38e7b029..2f73ec2b 100644 --- a/lib/ofp-util.h +++ b/lib/ofp-util.h @@ -131,7 +131,8 @@ ovs_be16 ofputil_dl_type_from_openflow(ovs_be16 ofp_dl_type); bool ofputil_packet_in_format_is_valid(enum nx_packet_in_format); int ofputil_packet_in_format_from_string(const char *); const char *ofputil_packet_in_format_to_string(enum nx_packet_in_format); -struct ofpbuf *ofputil_make_set_packet_in_format(enum nx_packet_in_format); +struct ofpbuf *ofputil_make_set_packet_in_format(enum ofp_version, + enum nx_packet_in_format); /* NXT_FLOW_MOD_TABLE_ID extension. */ struct ofpbuf *ofputil_make_flow_mod_table_id(bool flow_mod_table_id); @@ -243,6 +244,7 @@ struct ofputil_flow_removed { uint16_t priority; ovs_be64 cookie; uint8_t reason; /* One of OFPRR_*. */ + uint8_t table_id; /* 255 if message didn't include table ID. */ uint32_t duration_sec; uint32_t duration_nsec; uint16_t idle_timeout; @@ -618,4 +620,43 @@ union ofp_action *ofputil_actions_clone(const union ofp_action *, size_t n); /* Handy utility for parsing flows and actions. */ bool ofputil_parse_key_value(char **stringp, char **keyp, char **valuep); +struct ofpbuf *ofputlil_dump_ports(enum ofp_version ofp_version, int16_t port); + +struct ofputil_port_stats { + uint16_t port_no; + struct netdev_stats stats; +}; + +struct ofpbuf *ofputil_encode_dump_ports_request(enum ofp_version ofp_version, + int16_t port); +void ofputil_append_port_stat(struct list *replies, + const struct ofputil_port_stats *ops); +size_t ofputil_count_port_stats(const struct ofp_header *); +int ofputil_decode_port_stats(struct ofputil_port_stats *, struct ofpbuf *msg); +enum ofperr ofputil_decode_port_stats_request(const struct ofp_header *request, + uint16_t *ofp10_port); + +struct ofputil_queue_stats_request { + uint16_t port_no; + uint32_t queue_id; +}; + +enum ofperr +ofputil_decode_queue_stats_request(const struct ofp_header *request, + struct ofputil_queue_stats_request *oqsr); +struct ofpbuf * +ofputil_encode_queue_stats_request(enum ofp_version ofp_version, + const struct ofputil_queue_stats_request *oqsr); + +struct ofputil_queue_stats { + uint16_t port_no; + uint32_t queue_id; + struct netdev_queue_stats stats; +}; + +size_t ofputil_count_queue_stats(const struct ofp_header *); +int ofputil_decode_queue_stats(struct ofputil_queue_stats *qs, struct ofpbuf *msg); +void ofputil_append_queue_stat(struct list *replies, + const struct ofputil_queue_stats *oqs); + #endif /* ofp-util.h */