classifier: Introduce macros for iterating exact-match flows.
[openvswitch] / datapath / datapath.h
index 991a7e818a63813089ff5d6b63629f29143707e5..f28513bb7efe0ef3421045cd95ee59a864587689 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/mutex.h>
 #include <linux/netdevice.h>
 #include <linux/workqueue.h>
+#include <linux/seqlock.h>
 #include <linux/skbuff.h>
 #include <linux/version.h>
 #include "flow.h"
@@ -53,6 +54,7 @@ struct dp_stats_percpu {
        u64 n_hit;
        u64 n_missed;
        u64 n_lost;
+       seqcount_t seqlock;
 };
 
 struct dp_port_group {
@@ -143,12 +145,16 @@ enum csum_type {
 
 /**
  * struct ovs_skb_cb - OVS data in skb CB
- * @br_port: The bridge port on which the skb entered the switch.
+ * @dp_port: The datapath port on which the skb entered the switch.
+ * @flow: The flow associated with this packet.  May be %NULL if no flow.
  * @ip_summed: Consistently stores L4 checksumming status across different
  * kernel versions.
+ * @tun_id: ID (in network byte order) of the tunnel that encapsulated this
+ * packet. It is 0 if the packet was not received on a tunnel.
  */
 struct ovs_skb_cb {
        struct dp_port          *dp_port;
+       struct sw_flow          *flow;
        enum csum_type          ip_summed;
        __be32                  tun_id;
 };