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