Debian: install man pages
[openvswitch] / datapath / datapath.h
index 66ade3e11c1910618311d60786f6358e301eacb7..28ce0dae4ded0d212cbc3a80e36c640f1c66d2c1 100644 (file)
@@ -59,6 +59,7 @@ struct dp_stats_percpu {
 
 /**
  * struct datapath - datapath for flow-based packet switching
+ * @rcu: RCU callback head for deferred destruction.
  * @mutex: Mutual exclusion for ioctls.
  * @dp_idx: Datapath number (index into the dps[] array in datapath.c).
  * @ifobj: Represents /sys/class/net/<devname>/brif.
@@ -66,7 +67,7 @@ struct dp_stats_percpu {
  * @queues: %DP_N_QUEUES sets of queued packets for userspace to handle.
  * @waitqueue: Waitqueue, for waiting for new packets in @queues.
  * @n_flows: Number of flows currently in flow table.
- * @table: Current flow table (RCU protected).
+ * @table: Current flow table.
  * @n_ports: Number of ports currently in @ports.
  * @ports: Map from port number to &struct vport.  %ODPP_LOCAL port
  * always exists, other ports may be %NULL.
@@ -77,6 +78,7 @@ struct dp_stats_percpu {
  * sampling a given packet.
  */
 struct datapath {
+       struct rcu_head rcu;
        struct mutex mutex;
        int dp_idx;
        struct kobject ifobj;
@@ -88,11 +90,11 @@ struct datapath {
        wait_queue_head_t waitqueue;
 
        /* Flow table. */
-       struct tbl *table;
+       struct tbl __rcu *table;
 
        /* Switch ports. */
        unsigned int n_ports;
-       struct vport *ports[DP_MAX_PORTS];
+       struct vport __rcu *ports[DP_MAX_PORTS];
        struct list_head port_list;
 
        /* Stats. */