CODESYS Control con Linux XDP
eXpress Data Path (XDP) è un'estensione del kernel Linux per inviare e ricevere pacchetti di rete con prestazioni molto elevate direttamente all'ingresso dello stack di rete.
XDP può essere utilizzato con CODESYS Control in condizioni specifiche.
Dispositivi supportati
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
Le CODESYS Control La versione di SL Runtime deve essere maggiore o uguale alla versione V4.21.0.0.
La versione del kernel Linux deve essere maggiore o uguale alla versione V6.1 con i seguenti flag di configurazione:
CONFIG_BPF=yCONFIG_BPF_SYSCALL=yCONFIG_BPF_JIT=yCONFIG_HAVE_EBPF_JIT=yCONFIG_XDP_SOCKETS=y
I pacchetti
libxdp1elibbpf1deve essere installato.Nel sistema devono essere presenti una scheda di rete compatibile con XDP e un driver corrispondente (ad esempio Intel i226 con igc).
Il driver XDP deve supportare Zero Copy.
Per ulteriori informazioni sulle tecnologie XDP ed eBPF, vedere quanto segue:
Attenzione
Il sistema operativo presenta le seguenti limitazioni: l'uso di XDP richiede che il runtime venga eseguito con i privilegi di root.
Usare Linux XDP
Interroga la configurazione XDP corrente:
ethernet-xdp-get <interface>Esempio:
ethernet-xdp-get enp1s0
Abilita XDP separatamente per ogni scheda di rete:
ethernet-xdp-set <interface> onEsempio:
ethernet-xdp-set enp1s0 on
Disabilita XDP separatamente per ogni scheda di rete:
ethernet-xdp-set <interface> offEsempio:
ethernet-xdp-set enp1s0 off
Suggerimento
Verifica se l'attivazione di XDP migliora le prestazioni per il tuo caso d'uso. Sebbene il tempo di ciclo sia ridotto in molti casi, ci sono anche scenari in cui XDP può avere un impatto negativo
Per ulteriori informazioni su come migliorare le prestazioni, vedere quanto segue: Ottimizzazione delle prestazioni.
eBPF incluso
Nella versione 4.21.0.0 e successive, viene installato un programma eBPF con il corrispondente CODESYS Control Prodotti SL.
Il programma eBPF viene utilizzato per decidere se i pacchetti in arrivo devono seguire il percorso normale attraverso lo stack di rete Linux o se devono essere inoltrati direttamente al CODESYS Runtime tramite XDP.
CODESYS è responsabile dell'uso di questo programma in fase di esecuzione.
Dopo l'installazione, troverai il programma nella seguente posizione: ../opt/codesys/lib/bpfprog.o.
Il codice sorgente e le istruzioni si trovano nella seguente posizione: ../usr/share/doc/codesyscontrol/bpfprog.