Packet replication using EBPF, not scaling beyond 28kpps, pls let me know any optimization if possible in the code.

Prashanth Fernando


I am implementing a EBPF based packet replicator running as part of TC classisifer.
The problem is I am not able to scale beyond 28K, once the pps rate goes beyond 28kpps I see traffic loss and the CPU usage is well within 5%.

Commands used to load EBPF code in TC:
sudo tc qdisc add dev $(DEVICE) ingress handle ffff:
sudo tc filter add dev $(DEVICE) parent ffff: bpf obj replicator.o classifier flowid ffff:1 

Attaching the lscpu output and the code snippet.
Please do let me know if there are any optimizations possible to handle more packets.

Thank You,