Skip to main content

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=y

    • CONFIG_BPF_SYSCALL=y

    • CONFIG_BPF_JIT=y

    • CONFIG_HAVE_EBPF_JIT=y

    • CONFIG_XDP_SOCKETS=y

  • Los paquetes libxdp1 y libbpf1 debe 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

  1. Consulte la configuración actual de XDP:

    ethernet-xdp-get <interface>

    Ejemplo:

    ethernet-xdp-get enp1s0
  2. Habilite XDP por separado para cada adaptador de red:

    ethernet-xdp-set <interface> on

    Ejemplo:

    ethernet-xdp-set enp1s0 on
  3. Deshabilite XDP por separado para cada adaptador de red:

    ethernet-xdp-set <interface> off

    Ejemplo:

    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.