Skip to main content

CODESYS Control avec Linux XDP

eXpress Data Path (XDP) est une extension du noyau Linux permettant d'envoyer et de recevoir des paquets réseau à très haute performance directement en entrée de la pile réseau.

XDP peut être utilisé avec CODESYS Control dans des conditions spécifiques.

Appareils pris en charge

  • 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

Exigence

  • Le CODESYS Control La version de SL Runtime doit être supérieure ou égale à la version V4.21.0.0.

  • La version du noyau Linux doit être supérieure ou égale à la version V6.1 avec les indicateurs de configuration suivants :

    • CONFIG_BPF=y

    • CONFIG_BPF_SYSCALL=y

    • CONFIG_BPF_JIT=y

    • CONFIG_HAVE_EBPF_JIT=y

    • CONFIG_XDP_SOCKETS=y

  • Les packages libxdp1 et libbpf1 doit être installé.

  • Une carte réseau compatible XDP et un pilote correspondant (par exemple Intel i226 avec igc) doivent exister dans le système.

  • Le pilote XDP doit prendre en charge Zero Copy.

Pour plus d'informations sur les technologies XDP et eBPF, consultez les rubriques suivantes :

Attention

Le système d'exploitation présente les limites suivantes : L'utilisation de XDP nécessite que le moteur d'exécution soit exécuté avec les privilèges root.

Utilisation de Linux XDP

  1. Interrogez la configuration XDP actuelle :

    ethernet-xdp-get <interface>

    Exemple :

    ethernet-xdp-get enp1s0
  2. Activez XDP séparément pour chaque adaptateur réseau :

    ethernet-xdp-set <interface> on

    Exemple :

    ethernet-xdp-set enp1s0 on
  3. Désactivez XDP séparément pour chaque adaptateur réseau :

    ethernet-xdp-set <interface> off

    Exemple :

    ethernet-xdp-set enp1s0 off

Astuce

Vérifiez si l'activation de XDP améliore les performances dans votre cas d'utilisation. Bien que le temps de cycle soit réduit dans de nombreux cas, il existe également des scénarios dans lesquels XDP peut avoir un impact négatif sur les performances

Pour plus d'informations sur la manière d'améliorer les performances, consultez les rubriques suivantes : Optimisation des performances.

eBPF inclus

Dans les versions 4.21.0.0 et supérieures, un programme eBPF est installé avec le CODESYS Control Produits SL.

Le programme eBPF est utilisé pour décider si les paquets entrants doivent emprunter la route normale via la pile réseau Linux ou s'ils doivent être transférés directement au CODESYS Exécution via XDP.

CODESYS est responsable de l'utilisation de ce programme lors de son exécution.

Après l'installation, vous trouverez le programme à l'emplacement suivant : ../opt/codesys/lib/bpfprog.o.

Le code source et les instructions se trouvent à l'emplacement suivant : ../usr/share/doc/codesyscontrol/bpfprog.