## NMSettingEthtool NMSettingEthtool — Describes connection properties for ethtool related options |

## Functions

gboolean | nm_ethtool_optname_is_feature ()
NMSetting * | nm_setting_ethtool_new ()
NMTernary | nm_setting_ethtool_get_feature ()
void | nm_setting_ethtool_set_feature ()
void | nm_setting_ethtool_clear_features ()
const char ** | nm_setting_ethtool_get_optnames ()

## Types and Values

#define | NM_ETHTOOL_OPTNAME_FEATURE_ESP_HW_OFFLOAD
#define | NM_ETHTOOL_OPTNAME_FEATURE_ESP_TX_CSUM_HW_OFFLOAD
#define | NM_ETHTOOL_OPTNAME_FEATURE_FCOE_MTU
#define | NM_ETHTOOL_OPTNAME_FEATURE_GRO
#define | NM_ETHTOOL_OPTNAME_FEATURE_GSO
#define | NM_ETHTOOL_OPTNAME_FEATURE_HIGHDMA
#define | NM_ETHTOOL_OPTNAME_FEATURE_HW_TC_OFFLOAD
#define | NM_ETHTOOL_OPTNAME_FEATURE_L2_FWD_OFFLOAD
#define | NM_ETHTOOL_OPTNAME_FEATURE_LOOPBACK
#define | NM_ETHTOOL_OPTNAME_FEATURE_LRO
#define | NM_ETHTOOL_OPTNAME_FEATURE_NTUPLE
#define | NM_ETHTOOL_OPTNAME_FEATURE_RX
#define | NM_ETHTOOL_OPTNAME_FEATURE_RXHASH
#define | NM_ETHTOOL_OPTNAME_FEATURE_RXVLAN
#define | NM_ETHTOOL_OPTNAME_FEATURE_RX_ALL
#define | NM_ETHTOOL_OPTNAME_FEATURE_RX_FCS
#define | NM_ETHTOOL_OPTNAME_FEATURE_RX_GRO_HW
#define | NM_ETHTOOL_OPTNAME_FEATURE_RX_UDP_TUNNEL_PORT_OFFLOAD
#define | NM_ETHTOOL_OPTNAME_FEATURE_RX_VLAN_FILTER
#define | NM_ETHTOOL_OPTNAME_FEATURE_RX_VLAN_STAG_FILTER
#define | NM_ETHTOOL_OPTNAME_FEATURE_RX_VLAN_STAG_HW_PARSE
#define | NM_ETHTOOL_OPTNAME_FEATURE_SG
#define | NM_ETHTOOL_OPTNAME_FEATURE_TLS_HW_RECORD
#define | NM_ETHTOOL_OPTNAME_FEATURE_TLS_HW_TX_OFFLOAD
#define | NM_ETHTOOL_OPTNAME_FEATURE_TSO
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX
#define | NM_ETHTOOL_OPTNAME_FEATURE_TXVLAN
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_CHECKSUM_FCOE_CRC
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_CHECKSUM_IPV4
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_CHECKSUM_IPV6
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_CHECKSUM_IP_GENERIC
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_CHECKSUM_SCTP
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_ESP_SEGMENTATION
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_FCOE_SEGMENTATION
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_GRE_CSUM_SEGMENTATION
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_GRE_SEGMENTATION
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_GSO_PARTIAL
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_GSO_ROBUST
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_IPXIP4_SEGMENTATION
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_IPXIP6_SEGMENTATION
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_NOCACHE_COPY
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_SCATTER_GATHER
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_SCATTER_GATHER_FRAGLIST
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_SCTP_SEGMENTATION
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_TCP6_SEGMENTATION
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_TCP_ECN_SEGMENTATION
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_TCP_MANGLEID_SEGMENTATION
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_TCP_SEGMENTATION
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_UDP_SEGMENTATION
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_UDP_TNL_CSUM_SEGMENTATION
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_UDP_TNL_SEGMENTATION
#define | NM_ETHTOOL_OPTNAME_FEATURE_TX_VLAN_STAG_HW_INSERT
#define | NM_SETTING_ETHTOOL_SETTING_NAME

## Description

The NMSettingEthtool object is a NMSetting subclass that describes properties to control network driver and hardware settings.

## Functions

### nm_ethtool_optname_is_feature ()

    gboolean
    nm_ethtool_optname_is_feature (const char *optname);

Checks whether `optname` is a valid option name for an offload feature.

`Returns`: `TRUE`, if `optname` is valid

#### Parameters

optname | the option name to check. | [allow-none]

Since: 1.20

### nm_setting_ethtool_new ()

    NMSetting *
    nm_setting_ethtool_new (void);

Creates a new NMSettingEthtool object with default values.

#### Returns

the new empty NMSettingEthtool object.

[transfer full]

Since: 1.14

### nm_setting_ethtool_get_feature ()

    NMTernary
    nm_setting_ethtool_get_feature (NMSettingEthtool *setting,
                                    const char *optname);

Gets and offload feature setting. Returns `NM_TERNARY_DEFAULT` if the feature is not set.

Note that `optname` must be a valid name for a feature, according to `nm_ethtool_optname_is_feature()`.

#### Parameters

setting | the NMSettingEthtool |
optname | option name of the offload feature to get |

#### Returns

a NMTernary value indicating whether the offload feature is enabled, disabled, or left untouched.

Since: 1.14

### nm_setting_ethtool_set_feature ()

    void
    nm_setting_ethtool_set_feature (NMSettingEthtool *setting,
                                    const char *optname,
                                    NMTernary value);

Sets and offload feature setting.

Note that `optname` must be a valid name for a feature, according to `nm_ethtool_optname_is_feature()`.

#### Parameters

setting | the NMSettingEthtool |
optname | option name of the offload feature to get |
value | the new value to set. The special value `NM_TERNARY_DEFAULT` means to clear the offload feature setting. |

Since: 1.14

### nm_setting_ethtool_clear_features ()

    void
    nm_setting_ethtool_clear_features (NMSettingEthtool *setting);

Clears all offload features settings

#### Parameters

setting | the NMSettingEthtool |

Since: 1.14

### nm_setting_ethtool_get_optnames ()

    const char **
    nm_setting_ethtool_get_optnames (NMSettingEthtool *setting,
                                     guint *out_length);

This returns all options names that are set. This includes the feature names like `NM_ETHTOOL_OPTNAME_FEATURE_GRO`. See `nm_ethtool_optname_is_feature()` to check whether the option name is valid for offload features.

#### Parameters

setting | the NMSettingEthtool instance. |
out_length | return location for the number of keys returned, or `NULL`. | [out][optional]

#### Returns

list of set option names or `NULL` if no options are set. The option names are still owned by `setting` and may get invalidated when `setting` gets modified.

[array zero-terminated=1][transfer container]

Since: 1.20

## Types and Values

### NM_ETHTOOL_OPTNAME_FEATURE_ESP_HW_OFFLOAD

    #define NM_ETHTOOL_OPTNAME_FEATURE_ESP_HW_OFFLOAD               "feature-esp-hw-offload"

### NM_ETHTOOL_OPTNAME_FEATURE_ESP_TX_CSUM_HW_OFFLOAD

    #define NM_ETHTOOL_OPTNAME_FEATURE_ESP_TX_CSUM_HW_OFFLOAD       "feature-esp-tx-csum-hw-offload"

### NM_ETHTOOL_OPTNAME_FEATURE_FCOE_MTU

    #define NM_ETHTOOL_OPTNAME_FEATURE_FCOE_MTU                     "feature-fcoe-mtu"

### NM_ETHTOOL_OPTNAME_FEATURE_GRO

    #define NM_ETHTOOL_OPTNAME_FEATURE_GRO                          "feature-gro"

### NM_ETHTOOL_OPTNAME_FEATURE_GSO

    #define NM_ETHTOOL_OPTNAME_FEATURE_GSO                          "feature-gso"

### NM_ETHTOOL_OPTNAME_FEATURE_HIGHDMA

    #define NM_ETHTOOL_OPTNAME_FEATURE_HIGHDMA                      "feature-highdma"

### NM_ETHTOOL_OPTNAME_FEATURE_HW_TC_OFFLOAD

    #define NM_ETHTOOL_OPTNAME_FEATURE_HW_TC_OFFLOAD                "feature-hw-tc-offload"

### NM_ETHTOOL_OPTNAME_FEATURE_L2_FWD_OFFLOAD

    #define NM_ETHTOOL_OPTNAME_FEATURE_L2_FWD_OFFLOAD               "feature-l2-fwd-offload"

### NM_ETHTOOL_OPTNAME_FEATURE_LOOPBACK

    #define NM_ETHTOOL_OPTNAME_FEATURE_LOOPBACK                     "feature-loopback"

### NM_ETHTOOL_OPTNAME_FEATURE_LRO

    #define NM_ETHTOOL_OPTNAME_FEATURE_LRO                          "feature-lro"

### NM_ETHTOOL_OPTNAME_FEATURE_NTUPLE

    #define NM_ETHTOOL_OPTNAME_FEATURE_NTUPLE                       "feature-ntuple"

### NM_ETHTOOL_OPTNAME_FEATURE_RX

    #define NM_ETHTOOL_OPTNAME_FEATURE_RX                           "feature-rx"

### NM_ETHTOOL_OPTNAME_FEATURE_RXHASH

    #define NM_ETHTOOL_OPTNAME_FEATURE_RXHASH                       "feature-rxhash"

### NM_ETHTOOL_OPTNAME_FEATURE_RXVLAN

    #define NM_ETHTOOL_OPTNAME_FEATURE_RXVLAN                       "feature-rxvlan"

### NM_ETHTOOL_OPTNAME_FEATURE_RX_ALL

    #define NM_ETHTOOL_OPTNAME_FEATURE_RX_ALL                       "feature-rx-all"

### NM_ETHTOOL_OPTNAME_FEATURE_RX_FCS

    #define NM_ETHTOOL_OPTNAME_FEATURE_RX_FCS                       "feature-rx-fcs"

### NM_ETHTOOL_OPTNAME_FEATURE_RX_GRO_HW

    #define NM_ETHTOOL_OPTNAME_FEATURE_RX_GRO_HW                    "feature-rx-gro-hw"

### NM_ETHTOOL_OPTNAME_FEATURE_RX_UDP_TUNNEL_PORT_OFFLOAD

    #define NM_ETHTOOL_OPTNAME_FEATURE_RX_UDP_TUNNEL_PORT_OFFLOAD   "feature-rx-udp_tunnel-port-offload"

### NM_ETHTOOL_OPTNAME_FEATURE_RX_VLAN_FILTER

    #define NM_ETHTOOL_OPTNAME_FEATURE_RX_VLAN_FILTER               "feature-rx-vlan-filter"

### NM_ETHTOOL_OPTNAME_FEATURE_RX_VLAN_STAG_FILTER

    #define NM_ETHTOOL_OPTNAME_FEATURE_RX_VLAN_STAG_FILTER          "feature-rx-vlan-stag-filter"

### NM_ETHTOOL_OPTNAME_FEATURE_RX_VLAN_STAG_HW_PARSE

    #define NM_ETHTOOL_OPTNAME_FEATURE_RX_VLAN_STAG_HW_PARSE        "feature-rx-vlan-stag-hw-parse"

### NM_ETHTOOL_OPTNAME_FEATURE_SG

    #define NM_ETHTOOL_OPTNAME_FEATURE_SG                           "feature-sg"

### NM_ETHTOOL_OPTNAME_FEATURE_TLS_HW_RECORD

    #define NM_ETHTOOL_OPTNAME_FEATURE_TLS_HW_RECORD                "feature-tls-hw-record"

### NM_ETHTOOL_OPTNAME_FEATURE_TLS_HW_TX_OFFLOAD

    #define NM_ETHTOOL_OPTNAME_FEATURE_TLS_HW_TX_OFFLOAD            "feature-tls-hw-tx-offload"

### NM_ETHTOOL_OPTNAME_FEATURE_TSO

    #define NM_ETHTOOL_OPTNAME_FEATURE_TSO                          "feature-tso"

### NM_ETHTOOL_OPTNAME_FEATURE_TX

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX                           "feature-tx"

### NM_ETHTOOL_OPTNAME_FEATURE_TXVLAN

    #define NM_ETHTOOL_OPTNAME_FEATURE_TXVLAN                       "feature-txvlan"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_CHECKSUM_FCOE_CRC

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_CHECKSUM_FCOE_CRC         "feature-tx-checksum-fcoe-crc"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_CHECKSUM_IPV4

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_CHECKSUM_IPV4             "feature-tx-checksum-ipv4"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_CHECKSUM_IPV6

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_CHECKSUM_IPV6             "feature-tx-checksum-ipv6"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_CHECKSUM_IP_GENERIC

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_CHECKSUM_IP_GENERIC       "feature-tx-checksum-ip-generic"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_CHECKSUM_SCTP

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_CHECKSUM_SCTP             "feature-tx-checksum-sctp"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_ESP_SEGMENTATION

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_ESP_SEGMENTATION          "feature-tx-esp-segmentation"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_FCOE_SEGMENTATION

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_FCOE_SEGMENTATION         "feature-tx-fcoe-segmentation"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_GRE_CSUM_SEGMENTATION

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_GRE_CSUM_SEGMENTATION     "feature-tx-gre-csum-segmentation"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_GRE_SEGMENTATION

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_GRE_SEGMENTATION          "feature-tx-gre-segmentation"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_GSO_PARTIAL

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_GSO_PARTIAL               "feature-tx-gso-partial"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_GSO_ROBUST

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_GSO_ROBUST                "feature-tx-gso-robust"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_IPXIP4_SEGMENTATION

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_IPXIP4_SEGMENTATION       "feature-tx-ipxip4-segmentation"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_IPXIP6_SEGMENTATION

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_IPXIP6_SEGMENTATION       "feature-tx-ipxip6-segmentation"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_NOCACHE_COPY

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_NOCACHE_COPY              "feature-tx-nocache-copy"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_SCATTER_GATHER

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_SCATTER_GATHER            "feature-tx-scatter-gather"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_SCATTER_GATHER_FRAGLIST

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_SCATTER_GATHER_FRAGLIST   "feature-tx-scatter-gather-fraglist"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_SCTP_SEGMENTATION

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_SCTP_SEGMENTATION         "feature-tx-sctp-segmentation"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_TCP6_SEGMENTATION

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_TCP6_SEGMENTATION         "feature-tx-tcp6-segmentation"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_TCP_ECN_SEGMENTATION

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_TCP_ECN_SEGMENTATION      "feature-tx-tcp-ecn-segmentation"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_TCP_MANGLEID_SEGMENTATION

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_TCP_MANGLEID_SEGMENTATION "feature-tx-tcp-mangleid-segmentation"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_TCP_SEGMENTATION

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_TCP_SEGMENTATION          "feature-tx-tcp-segmentation"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_UDP_SEGMENTATION

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_UDP_SEGMENTATION          "feature-tx-udp-segmentation"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_UDP_TNL_CSUM_SEGMENTATION

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_UDP_TNL_CSUM_SEGMENTATION "feature-tx-udp_tnl-csum-segmentation"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_UDP_TNL_SEGMENTATION

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_UDP_TNL_SEGMENTATION      "feature-tx-udp_tnl-segmentation"

### NM_ETHTOOL_OPTNAME_FEATURE_TX_VLAN_STAG_HW_INSERT

    #define NM_ETHTOOL_OPTNAME_FEATURE_TX_VLAN_STAG_HW_INSERT       "feature-tx-vlan-stag-hw-insert"

### NM_SETTING_ETHTOOL_SETTING_NAME

    #define NM_SETTING_ETHTOOL_SETTING_NAME "ethtool"