Overview¶
FPTUN-eBPF uses the Linux eBPF architecture to drive packets from the fast path to the Linux kernel stack.
It provides functionalities that used to be implemented in FPTUN kernel module:
special exception path to skip in Linux the work done in fast path: VLAN, GRE, VXLAN, …
“tcpdump” to capture packets processed at fast path level
Features¶
The following exception types are supported:
FPTUN_ETH_INPUT_EXCEPT: exception used to inject a L2 packet in an interface at ingress.
FPTUN_IFACE_INPUT_EXCEPT: exception used to inject a L3 packet in an interface at ingress.
FPTUN_OUTPUT_EXCEPT: exception used to inject a packet in an interface at egress.
FPTUN_TAP: exception used to inject a packet for tcpdump capture.
Dependencies¶
6WINDGate modules¶
Linux¶
tc eBPF support is a kernel patch (upstream 4.0).
tc eBPF bpf_skb_store_bytes support is a kernel patch (upstream 4.1).
tc eBPF bpf_redirect support is a kernel patch (upstream 4.2).
tc eBPF BPF_F_INGRESS redirect flag is a kernel patch (upstream 4.5).
tc eBPF bpf_redirect support from a L2 devive to a L3 device is a kernel patch (upstream 4.9).
tc eBPF bpf_skb_load_bytes support is a kernel patch (upstream 4.5).
tc eBPF bpf_skb_change_tail support is a kernel patch (upstream 4.9).