+struct odp_key_arp {
+ ovs_be32 arp_sip;
+ ovs_be32 arp_tip;
+ ovs_be16 arp_op;
+};
+
+/**
+ * enum odp_flow_attr - attributes for %ODP_FLOW_* commands.
+ * @ODP_FLOW_ATTR_KEY: Nested %ODP_KEY_ATTR_* attributes specifying the flow
+ * key. Always present in notifications. Required for all requests (except
+ * dumps).
+ * @ODP_FLOW_ATTR_ACTIONS: Nested %ODPAT_* attributes specifying the actions to
+ * take for packets that match the key. Always present in notifications.
+ * Required for %ODP_FLOW_CMD_NEW requests, optional on %ODP_FLOW_CMD_SET
+ * request to change the existing actions, ignored for other requests.
+ * @ODP_FLOW_ATTR_STATS: &struct odp_flow_stats giving statistics for this
+ * flow. Present in notifications if the stats would be nonzero. Ignored in
+ * requests.
+ * @ODP_FLOW_ATTR_TCP_FLAGS: An 8-bit value giving the OR'd value of all of the
+ * TCP flags seen on packets in this flow. Only present in notifications for
+ * TCP flows, and only if it would be nonzero. Ignored in requests.
+ * @ODP_FLOW_ATTR_USED: A 64-bit integer giving the time, in milliseconds on
+ * the system monotonic clock, at which a packet was last processed for this
+ * flow. Only present in notifications if a packet has been processed for this
+ * flow. Ignored in requests.
+ * @ODP_FLOW_ATTR_CLEAR: If present in a %ODP_FLOW_CMD_SET request, clears the
+ * last-used time, accumulated TCP flags, and statistics for this flow.
+ * Otherwise ignored in requests. Never present in notifications.
+ *
+ * These attributes follow the &struct odp_header within the Generic Netlink
+ * payload for %ODP_FLOW_* commands.
+ */
+enum odp_flow_attr {
+ ODP_FLOW_ATTR_UNSPEC,
+ ODP_FLOW_ATTR_KEY, /* Sequence of ODP_KEY_ATTR_* attributes. */
+ ODP_FLOW_ATTR_ACTIONS, /* Sequence of nested ODPAT_* attributes. */
+ ODP_FLOW_ATTR_STATS, /* struct odp_flow_stats. */
+ ODP_FLOW_ATTR_TCP_FLAGS, /* 8-bit OR'd TCP flags. */
+ ODP_FLOW_ATTR_USED, /* u64 msecs last used in monotonic time. */
+ ODP_FLOW_ATTR_CLEAR, /* Flag to clear stats, tcp_flags, used. */
+ __ODP_FLOW_ATTR_MAX
+};
+
+#define ODP_FLOW_ATTR_MAX (__ODP_FLOW_ATTR_MAX - 1)
+