.. | .. |
---|
8 | 8 | #include <linux/pkt_sched.h> |
---|
9 | 9 | #include <net/net_seq_lock.h> |
---|
10 | 10 | |
---|
| 11 | +/* Note: this used to be in include/uapi/linux/gen_stats.h */ |
---|
| 12 | +struct gnet_stats_basic_packed { |
---|
| 13 | + __u64 bytes; |
---|
| 14 | + __u64 packets; |
---|
| 15 | +}; |
---|
| 16 | + |
---|
11 | 17 | struct gnet_stats_basic_cpu { |
---|
12 | 18 | struct gnet_stats_basic_packed bstats; |
---|
13 | 19 | struct u64_stats_sync syncp; |
---|
14 | | -}; |
---|
| 20 | +} __aligned(2 * sizeof(u64)); |
---|
15 | 21 | |
---|
16 | 22 | struct net_rate_estimator; |
---|
17 | 23 | |
---|
.. | .. |
---|
45 | 51 | struct gnet_stats_basic_packed *bstats, |
---|
46 | 52 | struct gnet_stats_basic_cpu __percpu *cpu, |
---|
47 | 53 | struct gnet_stats_basic_packed *b); |
---|
| 54 | +int gnet_stats_copy_basic_hw(net_seqlock_t *running, |
---|
| 55 | + struct gnet_dump *d, |
---|
| 56 | + struct gnet_stats_basic_cpu __percpu *cpu, |
---|
| 57 | + struct gnet_stats_basic_packed *b); |
---|
48 | 58 | int gnet_stats_copy_rate_est(struct gnet_dump *d, |
---|
49 | 59 | struct net_rate_estimator __rcu **ptr); |
---|
50 | 60 | int gnet_stats_copy_queue(struct gnet_dump *d, |
---|