Thread (4 messages) 4 messages, 2 authors, 2023-03-27

Network RX per process per interface statistics

From: Kamil Zaripov <hidden>
Date: 2023-03-24 16:29:21
Also in: bpf

Hi everyone,

I trying to make a BPF program that can collect per process per interface statistics of network data consumption. Right now most difficult part for me is RX traffic.

I have tried to find some point in the sk_buff's way up to network stack where I can extract info both about the network interface which captured package and the process that will consume this data but failed. So I have to listen events in several points and somehow merge collected data.

The last point I found at which sk_buff still contains information about network device that captured this sk_buff is netif_receive_skb tracepoint. The first point where I can found information about process is protocol's rcv handlers (like tcp_v4_do_rcv). But I have some questions, to finish my program:

1. It seems that sk_buff modifies during handling, so how can I "match" sk_buff with same data in netif_receive_skb and in tcp_v4_do_rcv?
2. Maybe there is some good point where I can attach listener and where I can extract both process and interface info for each package?

Regards
Zaripov Kamil.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help