Howto change network specific settings using ethtool in combination with NetworkManager

This document (7005304) is provided subject to the disclaimer at the end of this document.

Environment

SUSE Linux Enterprise Desktop 11
openSUSE 11
openSUSE 11.1
openSUSE 11.2

Situation

Several problems have been identified in the past (see TID7000478, TID3344651) while using network driver / hardware specific options like:
  • checksum offload (rx-checksumming,,tx-checksumming)
  • segmentation offload (generic segmentation, tcp segmentation)

Resolution

In order to identify which options are provided and how they have been currently set for you network interfaces run "ethtool -k  [dev]
Example:  "ethtool -k eth0"

Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: off
tcp segmentation offload: off
udp fragmentation offload: off
generic segmentation offload: on
large receive offload: off


In order to change any options run ethtool -K [options] [dev]
Example: "ethtool -K eth0 rx off tx off tso off gso off

The result of running this would look like:

Offload parameters for eth0:
Cannot get device flags: Operation not supported
rx-checksumming: off
tx-checksumming: off
scatter-gather: off
tcp segmentation offload: off
udp fragmentation offload: off
generic segmentation offload: off
large receive offload: off

Any ethtool settings are lost as soon as the OS will be rebooted. With the traditional network configuration you can follow the steps documented in TID3344651. Running NetworkManager (most likely the case with Desktop PCs or Notebooks) you can place a shell script into the "/etc/NetworkManager/dispatcher.d" directory. NetworkManager will provides / pass on several paramaters like "ACTION", "INTERFACE", "STATUS"  which can be used with a script called by NetworkManager. "ACTION" basically defines the event (pre-up, up, down, post-down) whereas "INTERFACE" and "STATUS" is pretty much self explaining. In order to turn off any offload settings as soon as "eth0" will run into the up status a simple script (mode 751 / owner: root / group: root)  like the following can be used:

====================================================
ACTION=$2

if [ "$ACTION" = "up"];then
   /sbin/ethtool -K eth0 rx off tx off tso off gso off
   echo "all segmentation offload settings have been switched off"
fi
====================================================

Disclaimer

This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.

  • Document ID:7005304
  • Creation Date: 05-Feb-2010
  • Modified Date:03-Mar-2020
    • SUSE Linux Enterprise Desktop

< Back to Support Search

For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback[at]suse.com

SUSE Support Forums

Get your questions answered by experienced Sys Ops or interact with other SUSE community experts.

Join Our Community

Support Resources

Learn how to get the most from the technical support you receive with your SUSE Subscription, Premium Support, Academic Program, or Partner Program.


SUSE Customer Support Quick Reference Guide SUSE Technical Support Handbook Update Advisories
Support FAQ

Open an Incident

Open an incident with SUSE Technical Support, manage your subscriptions, download patches, or manage user access.

Go to Customer Center