#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
-#include "classifier.h"
#include "compiler.h"
#include "flow.h"
+#include "list.h"
#include "match.h"
#include "netdev.h"
#include "openflow/nicira-ext.h"
struct match match;
ovs_be64 cookie;
uint8_t table_id;
- uint32_t duration_sec;
- uint32_t duration_nsec;
uint16_t priority;
uint16_t idle_timeout;
uint16_t hard_timeout;
+ uint32_t duration_sec;
+ uint32_t duration_nsec;
int idle_age; /* Seconds since last packet, -1 if unknown. */
int hard_age; /* Seconds since last change, -1 if unknown. */
uint64_t packet_count; /* Packet count, UINT64_MAX if unknown. */
/* Flow removed message, independent of protocol. */
struct ofputil_flow_removed {
struct match match;
- uint16_t priority;
ovs_be64 cookie;
+ uint16_t priority;
uint8_t reason; /* One of OFPRR_*. */
uint8_t table_id; /* 255 if message didn't include table ID. */
uint32_t duration_sec;
uint16_t idle_timeout;
uint16_t hard_timeout;
uint8_t table_id;
+ uint16_t priority;
ovs_be64 cookie;
struct match *match;
- uint16_t priority;
struct ofpact *ofpacts;
size_t ofpacts_len;
struct bucket_counter *bucket_stats;
};
-/* Group features reply, independent of protocol. */
+/* Group features reply, independent of protocol.
+ *
+ * Only OF1.2 and later support group features replies. */
struct ofputil_group_features {
uint32_t types; /* Bitmap of OFPGT_* values supported. */
uint32_t capabilities; /* Bitmap of OFPGFC12_* capability supported. */
uint32_t max_groups[4]; /* Maximum number of groups for each type. */
- uint32_t actions[4]; /* Bitmaps of OFPAT_* that are supported. */
+
+ /* Bitmaps of OFPAT_* that are supported. OF1.2+ actions only. */
+ uint32_t actions[4];
};
/* Group desc reply, independent of protocol. */
void ofputil_bucket_list_destroy(struct list *buckets);
+static inline bool
+ofputil_bucket_has_liveness(const struct ofputil_bucket *bucket)
+{
+ return (bucket->watch_port != OFPP_ANY ||
+ bucket->watch_group != OFPG_ANY);
+}
+
struct ofpbuf *ofputil_encode_group_stats_request(enum ofp_version,
uint32_t group_id);
enum ofperr ofputil_decode_group_stats_request(