summaryrefslogtreecommitdiff
path: root/docs/_include/interface-xdp.txt
diff options
context:
space:
mode:
Diffstat (limited to 'docs/_include/interface-xdp.txt')
-rw-r--r--docs/_include/interface-xdp.txt27
1 files changed, 27 insertions, 0 deletions
diff --git a/docs/_include/interface-xdp.txt b/docs/_include/interface-xdp.txt
new file mode 100644
index 00000000..d87151fc
--- /dev/null
+++ b/docs/_include/interface-xdp.txt
@@ -0,0 +1,27 @@
+.. cfgcmd:: set interfaces {{ var0 }} <interface> xdp
+
+ Enable support for Linux :abbr:`XDP (eXpress Data Path)` on recent 1.3 rolling
+ releases. You must enable it for every interface which should participate in
+ the XDP forwarding.
+
+ XDP is an eBPF based high performance data path merged in the Linux kernel
+ since version 4.8. The idea behind XDP is to add an early hook in the RX path
+ of the kernel, and let a user supplied eBPF program decide the fate of the
+ packet. The hook is placed in the NIC driver just after the interrupt
+ processing, and before any memory allocation needed by the network stack
+ itself, because memory allocation can be an expensive operation.
+
+ .. warning:: This is highly experimental!
+
+ .. note:: Enabling this feature will break any form of NAT or Firewalling on
+ this interface, as XDP is handled way earlier in the driver then iptables/
+ nftables.
+
+ Enabling this feature will only load the XDP router code as described here:
+ https://blog.apnic.net/2020/04/30/how-to-build-an-xdp-based-bgp-peering-router/
+
+ Example:
+
+ .. code-block:: none
+
+ set interfaces {{ var0 }} {{ var1 }} xdp \ No newline at end of file