CODESYS Control con Linux XDP
eXpress Data Path (XDP) es una extensión del núcleo de Linux para enviar y recibir paquetes de red con un rendimiento muy alto directamente en la entrada de la pila de red.
XDP se puede usar con CODESYS Control en condiciones específicas.
Dispositivos compatibles
CODESYS Control for Linux SL
CODESYS Control for Linux ARM SL
CODESYS Control for Linux ARM64 SL
CODESYS Virtual Control for Linux SL
CODESYS Virtual Control for Linux ARM SL
CODESYS Virtual Control for Linux ARM64 SL
Requisito
El CODESYS Control La versión de SL Runtime debe ser superior o igual a la versión V4.21.0.0.
La versión del kernel de Linux debe ser superior o igual a la versión V6.1 con los siguientes indicadores de configuración:
CONFIG_BPF=yCONFIG_BPF_SYSCALL=yCONFIG_BPF_JIT=yCONFIG_HAVE_EBPF_JIT=yCONFIG_XDP_SOCKETS=y
Los paquetes
libxdp1ylibbpf1debe estar instalado.El sistema debe tener una tarjeta de red compatible con XDP y el controlador correspondiente (por ejemplo, Intel i226 con igc).
El controlador XDP debe ser compatible con Zero Copy.
Para obtener más información sobre las tecnologías XDP y eBPF, consulte lo siguiente:
Atención
El sistema operativo tiene la siguiente limitación: el uso de XDP requiere que el motor de ejecución se ejecute con privilegios de root.
Uso de Linux XDP
Consulte la configuración actual de XDP:
ethernet-xdp-get <interface>Ejemplo:
ethernet-xdp-get enp1s0
Habilite XDP por separado para cada adaptador de red:
ethernet-xdp-set <interface> onEjemplo:
ethernet-xdp-set enp1s0 on
Deshabilite XDP por separado para cada adaptador de red:
ethernet-xdp-set <interface> offEjemplo:
ethernet-xdp-set enp1s0 off
Sugerencia
Comprueba si la activación de XDP mejora el rendimiento en tu caso práctico. Si bien el tiempo del ciclo se reduce en muchos casos, también hay situaciones en las que el XDP puede tener un impacto negativo en el rendimiento
Para obtener más información sobre cómo mejorar el rendimiento, consulte lo siguiente: Optimización del rendimiento.
eBPF incluido
En la versión 4.21.0.0 y posteriores, se instala un programa eBPF con el correspondiente CODESYS Control Productos SL.
El programa eBPF se usa para decidir si los paquetes entrantes deben seguir la ruta normal a través de la pila de red Linux o si deben reenviarse directamente a la CODESYS Tiempo de ejecución mediante XDP.
CODESYS es responsable del uso de este programa en tiempo de ejecución.
Tras la instalación, encontrará el programa en la siguiente ubicación: ../opt/codesys/lib/bpfprog.o.
El código fuente y las instrucciones se encuentran en la siguiente ubicación: ../usr/share/doc/codesyscontrol/bpfprog.