#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"
u64 n_hit;
u64 n_missed;
u64 n_lost;
+ seqcount_t seqlock;
};
struct dp_port_group {
* @waitqueue: Waitqueue, for waiting for new packets in @queues.
* @n_flows: Number of flows currently in flow table.
* @table: Current flow table (RCU protected).
- * @groups: Port groups, used by ODPAT_OUTPUT_GROUP action (RCU protected).
+ * @groups: Port groups, used by XFLOWAT_OUTPUT_GROUP action (RCU protected).
* @n_ports: Number of ports currently in @ports.
- * @ports: Map from port number to &struct dp_port. %ODPP_LOCAL port
+ * @ports: Map from port number to &struct dp_port. %XFLOWP_LOCAL port
* always exists, other ports may be %NULL.
* @port_list: List of all ports in @ports in arbitrary order.
* @stats_percpu: Per-CPU datapath statistics.
* @sflow_probability: Number of packets out of UINT_MAX to sample to the
- * %ODPL_SFLOW queue, e.g. (@sflow_probability/UINT_MAX) is the probability of
+ * %XFLOWL_SFLOW queue, e.g. (@sflow_probability/UINT_MAX) is the probability of
* sampling a given packet.
*/
struct datapath {
/**
* struct ovs_skb_cb - OVS data in skb CB
* @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
*/
struct ovs_skb_cb {
struct dp_port *dp_port;
+ struct sw_flow *flow;
enum csum_type ip_summed;
__be32 tun_id;
};