* The handling of cookies across multiple versions of OpenFlow is a bit
* confusing. See DESIGN for the details. */
struct ofputil_flow_mod {
+ struct list list_node; /* For queuing flow_mods. */
+
struct match match;
unsigned int priority;
/* Abstract packet-in message. */
struct ofputil_packet_in {
+ struct list list_node; /* For queueing packet_ins. */
+
const void *packet;
size_t packet_len;
struct ofputil_queue_stats {
ofp_port_t port_no;
uint32_t queue_id;
- struct netdev_queue_stats stats;
+
+ /* Values of unsupported statistics are set to all-1-bits (UINT64_MAX). */
+ uint64_t tx_bytes;
+ uint64_t tx_packets;
+ uint64_t tx_errors;
+
+ /* UINT32_MAX if unknown. */
+ uint32_t duration_sec;
+ uint32_t duration_nsec;
};
size_t ofputil_count_queue_stats(const struct ofp_header *);