TOE - TCP offload engine

Source : http://lafibre.info/tutoriels/tcp-offload-engine/

Compléments : http://lafibre.info/numericable-fttla/tcp-ack-suppression/

Comment TCP offload engine affecte ce que Wireshark capture ?

Quand les calculs de checksum sont réalisés par la carte réseau au lieu du CPU, Wieshark capture des trames avec un checksum incorrect en émission, rempli de 00000 (en réception il est bon, car la carte réseau de l'émetteur a fait le calcul et remplacé les 000000 par le vrai checksum).

Sous linux, il faut installer le paquet “ethtool” (sudo apt-get install ethtool) Et taper en ligne de commande :

$ sudo ethtool -k eth0

Lexique :

Combinaisons on / off :

Désactiver ce qui fait chuter le débit avec “TCP ACK Supression” activé sur une box :

ethtool -K eth1 tso off gso off

tcp-segmentation-offload et generic-segmentation-offload chacun séparément ou activé tous les deux font chuter fortement le débit avec TCP ACK Supression. Au contraire scatter-gather permet de gagner du débit avec “TCP ACK Supression” activé.

A noter qu'avec “TCP ACK Supression” désactivé ou qui n'existe pas (cas des majorités des box) on a :

Désactiver entièrement TCP offload engine :

# ethtool -K eth0 rx off tx off sg off tso off ufo off gso off gro off lro off rxvlan off txvlan off ntuple off rxhash off

Si vous avez le message “Cannot set device udp large send offload settings: Operation not supported”, utilisez la commande suivante :

# ethtool -K eth0 rx off tx off sg off tso off gso off gro off lro off rxvlan off txvlan off ntuple off rxhash off

Activer entièrement TCP offload engine :

# ethtool -K eth0 rx on tx on sg on tso on ufo on gso on gro on lro on rxvlan on txvlan on ntuple on rxhash on

En cas d'erreur sur l'UDP :

# ethtool -K eth0 rx on tx on sg on tso on gso on gro on lro on rxvlan on txvlan on ntuple on rxhash on

En cas d'erreur sur UDP, large-receive-offload, ntuple-filters :

# ethtool -K eth0 rx on tx on sg on tso on gso on gro on rxvlan on txvlan on rxhash on