datapath: Fix races in updating dp_dev port statistics.
[openvswitch] / datapath / dp_dev.h
1 /*
2  * Copyright (c) 2009 Nicira Networks.
3  * Distributed under the terms of the GNU GPL version 2.
4  *
5  * Significant portions of this file may be copied from parts of the Linux
6  * kernel, by Linus Torvalds and others.
7  */
8
9 #ifndef DP_DEV_H
10 #define DP_DEV_H 1
11
12 #include <linux/percpu.h>
13
14 struct dp_dev {
15         struct datapath *dp;
16         int port_no;
17
18         struct net_device *dev;
19         struct net_device_stats stats;
20         struct pcpu_lstats *lstats;
21 };
22
23 static inline struct dp_dev *dp_dev_priv(struct net_device *netdev)
24 {
25         return netdev_priv(netdev);
26 }
27
28 struct net_device *dp_dev_create(struct datapath *, const char *, int port_no);
29 void dp_dev_destroy(struct net_device *);
30 int dp_dev_recv(struct net_device *, struct sk_buff *);
31 int is_dp_dev(struct net_device *);
32 struct datapath *dp_dev_get_dp(struct net_device *);
33
34 #endif /* dp_dev.h */