Source
1
1
#include <linux/module.h>
2
2
#include <linux/kernel.h>
3
3
#include <linux/netdevice.h>
4
4
#include <linux/netlink.h>
5
5
#include <net/net_namespace.h>
6
6
#include <linux/if_arp.h>
7
7
#include <net/rtnetlink.h>
8
8
9
-
struct pcpu_lstats {
10
-
u64 packets;
11
-
u64 bytes;
12
-
struct u64_stats_sync syncp;
13
-
};
14
-
15
9
static netdev_tx_t nlmon_xmit(struct sk_buff *skb, struct net_device *dev)
16
10
{
17
11
int len = skb->len;
18
12
struct pcpu_lstats *stats = this_cpu_ptr(dev->lstats);
19
13
20
14
u64_stats_update_begin(&stats->syncp);
21
15
stats->bytes += len;
22
16
stats->packets++;
23
17
u64_stats_update_end(&stats->syncp);
24
18