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).