diff options
-rw-r--r-- | libnm-core/nm-core-internal.h | 20 | ||||
-rw-r--r-- | libnm-core/nm-setting-wired.c | 18 | ||||
-rw-r--r-- | libnm-core/nm-setting-wired.h | 29 |
3 files changed, 67 insertions, 0 deletions
diff --git a/libnm-core/nm-core-internal.h b/libnm-core/nm-core-internal.h index 3808a9e61b..2150c04fd5 100644 --- a/libnm-core/nm-core-internal.h +++ b/libnm-core/nm-core-internal.h @@ -337,6 +337,26 @@ gboolean _nm_dbus_error_has_name (GError *error, /*****************************************************************************/ +typedef enum { + NM_ETHTOOL_OFFLOAD_ID_RX, + NM_ETHTOOL_OFFLOAD_ID_TX, + NM_ETHTOOL_OFFLOAD_ID_SG, + NM_ETHTOOL_OFFLOAD_ID_TSO, + NM_ETHTOOL_OFFLOAD_ID_GSO, + NM_ETHTOOL_OFFLOAD_ID_GRO, + NM_ETHTOOL_OFFLOAD_ID_LRO, + NM_ETHTOOL_OFFLOAD_ID_RXVLAN, + NM_ETHTOOL_OFFLOAD_ID_TXVLAN, + NM_ETHTOOL_OFFLOAD_ID_NTUPLE, + NM_ETHTOOL_OFFLOAD_ID_RXHASH, + + _NM_ETHTOOL_OFFLOAD_ID_NUM, +} NMEthtoolOffloadID; + +extern const char *const nm_ethtool_offload_names[_NM_ETHTOOL_OFFLOAD_ID_NUM]; + +/*****************************************************************************/ + gboolean _nm_vpn_plugin_info_check_file (const char *filename, gboolean check_absolute, gboolean do_validate_filename, diff --git a/libnm-core/nm-setting-wired.c b/libnm-core/nm-setting-wired.c index 104451e2d0..ae6c9d10ac 100644 --- a/libnm-core/nm-setting-wired.c +++ b/libnm-core/nm-setting-wired.c @@ -40,6 +40,24 @@ * necessary for connection to Ethernet networks. **/ +/*****************************************************************************/ + +const char *const nm_ethtool_offload_names[_NM_ETHTOOL_OFFLOAD_ID_NUM] = { + [NM_ETHTOOL_OFFLOAD_ID_RX] = NM_ETHTOOL_OFFLOAD_FEATURE_RX, + [NM_ETHTOOL_OFFLOAD_ID_TX] = NM_ETHTOOL_OFFLOAD_FEATURE_TX, + [NM_ETHTOOL_OFFLOAD_ID_SG] = NM_ETHTOOL_OFFLOAD_FEATURE_SG, + [NM_ETHTOOL_OFFLOAD_ID_TSO] = NM_ETHTOOL_OFFLOAD_FEATURE_TSO, + [NM_ETHTOOL_OFFLOAD_ID_GSO] = NM_ETHTOOL_OFFLOAD_FEATURE_GSO, + [NM_ETHTOOL_OFFLOAD_ID_GRO] = NM_ETHTOOL_OFFLOAD_FEATURE_GRO, + [NM_ETHTOOL_OFFLOAD_ID_LRO] = NM_ETHTOOL_OFFLOAD_FEATURE_LRO, + [NM_ETHTOOL_OFFLOAD_ID_RXVLAN] = NM_ETHTOOL_OFFLOAD_FEATURE_RXVLAN, + [NM_ETHTOOL_OFFLOAD_ID_TXVLAN] = NM_ETHTOOL_OFFLOAD_FEATURE_TXVLAN, + [NM_ETHTOOL_OFFLOAD_ID_NTUPLE] = NM_ETHTOOL_OFFLOAD_FEATURE_NTUPLE, + [NM_ETHTOOL_OFFLOAD_ID_RXHASH] = NM_ETHTOOL_OFFLOAD_FEATURE_RXHASH, +}; + +/*****************************************************************************/ + G_DEFINE_TYPE_WITH_CODE (NMSettingWired, nm_setting_wired, NM_TYPE_SETTING, _nm_register_setting (WIRED, NM_SETTING_PRIORITY_HW_BASE)) diff --git a/libnm-core/nm-setting-wired.h b/libnm-core/nm-setting-wired.h index 015f09da3f..5dd95000a9 100644 --- a/libnm-core/nm-setting-wired.h +++ b/libnm-core/nm-setting-wired.h @@ -79,6 +79,22 @@ typedef enum { /*< flags >*/ NM_SETTING_WIRED_WAKE_ON_LAN_EXCLUSIVE_FLAGS = NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT | NM_SETTING_WIRED_WAKE_ON_LAN_IGNORE, /*< skip >*/ } NMSettingWiredWakeOnLan; +/*****************************************************************************/ + +#define NM_ETHTOOL_OFFLOAD_FEATURE_RX "rx" +#define NM_ETHTOOL_OFFLOAD_FEATURE_TX "tx" +#define NM_ETHTOOL_OFFLOAD_FEATURE_SG "sg" +#define NM_ETHTOOL_OFFLOAD_FEATURE_TSO "tso" +#define NM_ETHTOOL_OFFLOAD_FEATURE_GSO "gso" +#define NM_ETHTOOL_OFFLOAD_FEATURE_GRO "gro" +#define NM_ETHTOOL_OFFLOAD_FEATURE_LRO "lro" +#define NM_ETHTOOL_OFFLOAD_FEATURE_RXVLAN "rxvlan" +#define NM_ETHTOOL_OFFLOAD_FEATURE_TXVLAN "txvlan" +#define NM_ETHTOOL_OFFLOAD_FEATURE_NTUPLE "ntuple" +#define NM_ETHTOOL_OFFLOAD_FEATURE_RXHASH "rxhash" + +/*****************************************************************************/ + #define NM_SETTING_WIRED_PORT "port" #define NM_SETTING_WIRED_SPEED "speed" #define NM_SETTING_WIRED_DUPLEX "duplex" @@ -88,6 +104,7 @@ typedef enum { /*< flags >*/ #define NM_SETTING_WIRED_GENERATE_MAC_ADDRESS_MASK "generate-mac-address-mask" #define NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST "mac-address-blacklist" #define NM_SETTING_WIRED_MTU "mtu" +#define NM_SETTING_WIRED_OFFLOAD_FEATURE "offload-feature" #define NM_SETTING_WIRED_S390_SUBCHANNELS "s390-subchannels" #define NM_SETTING_WIRED_S390_NETTYPE "s390-nettype" #define NM_SETTING_WIRED_S390_OPTIONS "s390-options" @@ -135,6 +152,18 @@ gboolean nm_setting_wired_remove_mac_blacklist_item_by_value (NMSetting const char *mac); void nm_setting_wired_clear_mac_blacklist_items (NMSettingWired *setting); +NM_AVAILABLE_IN_1_14 +NMTernary nm_setting_wired_get_offload_feature (NMSettingWired *setting, + const char *feature); +NM_AVAILABLE_IN_1_14 +void nm_setting_wired_set_offload_feature (NMSettingWired *setting, + const char *feature, + NMTernary value); +NM_AVAILABLE_IN_1_14 +const char *const*nm_setting_wired_get_offload_features (NMSettingWired *setting); +NM_AVAILABLE_IN_1_14 +void nm_setting_wired_clear_offload_features (NMSettingWired *setting); + guint32 nm_setting_wired_get_mtu (NMSettingWired *setting); const char * const *nm_setting_wired_get_s390_subchannels (NMSettingWired *setting); |