projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
datapath: Enable usage of cached flows.
[openvswitch]
/
datapath
/
datapath.h
diff --git
a/datapath/datapath.h
b/datapath/datapath.h
index 991a7e818a63813089ff5d6b63629f29143707e5..dacc3a42c301c1c11d90d395f729c5006254f8fb 100644
(file)
--- a/
datapath/datapath.h
+++ b/
datapath/datapath.h
@@
-16,6
+16,7
@@
#include <linux/mutex.h>
#include <linux/netdevice.h>
#include <linux/workqueue.h>
#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"
#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;
u64 n_hit;
u64 n_missed;
u64 n_lost;
+ seqcount_t seqlock;
};
struct dp_port_group {
};
struct dp_port_group {
@@
-143,12
+145,18
@@
enum csum_type {
/**
* struct ovs_skb_cb - OVS data in skb CB
/**
* 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.
+ * @is_frag: %true if this packet is an IPv4 fragment, %false otherwise.
* @ip_summed: Consistently stores L4 checksumming status across different
* kernel versions.
* @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 ovs_skb_cb {
struct dp_port *dp_port;
+ struct sw_flow *flow;
+ bool is_frag;
enum csum_type ip_summed;
__be32 tun_id;
};
enum csum_type ip_summed;
__be32 tun_id;
};