polycube-network / polycube

eBPF/XDP-based software framework for fast network services running in the Linux kernel.
Apache License 2.0
496 stars 100 forks source link

[BUG]pcn-iptables-init-xdp/pakcet can not access ingress to redirect #347

Open liuuwqia opened 3 years ago

liuuwqia commented 3 years ago

Describe the bug

For the PCN iptables init XDP mode, after init, the XDP program will be loaded on the network card that supports native. Then, when the message arrives at the network card eno1 with XDP program, the XDP program in the ingress direction will work. From the log, we can see that the data is redirected to the next network card eno2, but the data will be dropped by eno1. I don't know why.

In the same network card eno2 egress direction, go to TC BPF program, so the message can be forwarded, and PCN iptables is also effective.

I don't know whether the XDP program that causes the data stream not communicating is due to the mismatch between the kernel and the libbpf Library of BCC or other reason

To Reproduce

Steps to reproduce the behavior: Trace can see that it has been redirected to the next port, but the data does not arrive at this port

Expected behavior

Data should be redirected to the next port

Please tell us about your environment:

ubuntu20.04/kernel 5.4

polycubectl version

polycubectl: version: v0.9.0+ [git: (branch/commit): master/b7758768-dirty] polycubed: version: v0.9.0+ [git: (branch/commit): master/b7758768-dirty]

liuuwqia commented 3 years ago

image