summary refs log tree commit diff
path: root/src/libnm-base
diff options
context:
space:
mode:
Diffstat (limited to 'src/libnm-base')
-rw-r--r--src/libnm-base/nm-base.h34
-rw-r--r--src/libnm-base/nm-config-base.h1
-rw-r--r--src/libnm-base/nm-ethtool-base.c31
-rw-r--r--src/libnm-base/nm-ethtool-utils-base.h7
4 files changed, 64 insertions, 9 deletions
diff --git a/src/libnm-base/nm-base.h b/src/libnm-base/nm-base.h
index 65fc9299..34944408 100644
--- a/src/libnm-base/nm-base.h
+++ b/src/libnm-base/nm-base.h
@@ -117,21 +117,34 @@ typedef enum {
     NM_ETHTOOL_ID_PAUSE_TX,
     _NM_ETHTOOL_ID_PAUSE_LAST = NM_ETHTOOL_ID_PAUSE_TX,
 
-    _NM_ETHTOOL_ID_RING_FIRST = _NM_ETHTOOL_ID_PAUSE_LAST + 1,
+    _NM_ETHTOOL_ID_EEE_FIRST  = _NM_ETHTOOL_ID_PAUSE_LAST + 1,
+    NM_ETHTOOL_ID_EEE_ENABLED = _NM_ETHTOOL_ID_EEE_FIRST,
+    _NM_ETHTOOL_ID_EEE_LAST   = NM_ETHTOOL_ID_EEE_ENABLED,
+
+    _NM_ETHTOOL_ID_RING_FIRST = _NM_ETHTOOL_ID_EEE_LAST + 1,
     NM_ETHTOOL_ID_RING_RX     = _NM_ETHTOOL_ID_RING_FIRST,
     NM_ETHTOOL_ID_RING_RX_JUMBO,
     NM_ETHTOOL_ID_RING_RX_MINI,
     NM_ETHTOOL_ID_RING_TX,
     _NM_ETHTOOL_ID_RING_LAST = NM_ETHTOOL_ID_RING_TX,
 
-    _NM_ETHTOOL_ID_LAST = _NM_ETHTOOL_ID_RING_LAST,
+    _NM_ETHTOOL_ID_CHANNELS_FIRST = _NM_ETHTOOL_ID_RING_LAST + 1,
+    NM_ETHTOOL_ID_CHANNELS_RX     = _NM_ETHTOOL_ID_CHANNELS_FIRST,
+    NM_ETHTOOL_ID_CHANNELS_TX,
+    NM_ETHTOOL_ID_CHANNELS_OTHER,
+    NM_ETHTOOL_ID_CHANNELS_COMBINED,
+    _NM_ETHTOOL_ID_CHANNELS_LAST = NM_ETHTOOL_ID_CHANNELS_COMBINED,
+
+    _NM_ETHTOOL_ID_LAST = _NM_ETHTOOL_ID_CHANNELS_LAST,
 
     _NM_ETHTOOL_ID_COALESCE_NUM =
         (_NM_ETHTOOL_ID_COALESCE_LAST - _NM_ETHTOOL_ID_COALESCE_FIRST + 1),
     _NM_ETHTOOL_ID_FEATURE_NUM = (_NM_ETHTOOL_ID_FEATURE_LAST - _NM_ETHTOOL_ID_FEATURE_FIRST + 1),
     _NM_ETHTOOL_ID_RING_NUM    = (_NM_ETHTOOL_ID_RING_LAST - _NM_ETHTOOL_ID_RING_FIRST + 1),
     _NM_ETHTOOL_ID_PAUSE_NUM   = (_NM_ETHTOOL_ID_PAUSE_LAST - _NM_ETHTOOL_ID_PAUSE_FIRST + 1),
-    _NM_ETHTOOL_ID_NUM         = (_NM_ETHTOOL_ID_LAST - _NM_ETHTOOL_ID_FIRST + 1),
+    _NM_ETHTOOL_ID_CHANNELS_NUM =
+        (_NM_ETHTOOL_ID_CHANNELS_LAST - _NM_ETHTOOL_ID_CHANNELS_FIRST + 1),
+    _NM_ETHTOOL_ID_NUM = (_NM_ETHTOOL_ID_LAST - _NM_ETHTOOL_ID_FIRST + 1),
 } NMEthtoolID;
 
 #define _NM_ETHTOOL_ID_FEATURE_AS_IDX(ethtool_id)  ((ethtool_id) -_NM_ETHTOOL_ID_FEATURE_FIRST)
@@ -143,6 +156,8 @@ typedef enum {
     NM_ETHTOOL_TYPE_FEATURE,
     NM_ETHTOOL_TYPE_RING,
     NM_ETHTOOL_TYPE_PAUSE,
+    NM_ETHTOOL_TYPE_CHANNELS,
+    NM_ETHTOOL_TYPE_EEE,
 } NMEthtoolType;
 
 /****************************************************************************/
@@ -171,6 +186,18 @@ nm_ethtool_id_is_pause(NMEthtoolID id)
     return id >= _NM_ETHTOOL_ID_PAUSE_FIRST && id <= _NM_ETHTOOL_ID_PAUSE_LAST;
 }
 
+static inline gboolean
+nm_ethtool_id_is_channels(NMEthtoolID id)
+{
+    return id >= _NM_ETHTOOL_ID_CHANNELS_FIRST && id <= _NM_ETHTOOL_ID_CHANNELS_LAST;
+}
+
+static inline gboolean
+nm_ethtool_id_is_eee(NMEthtoolID id)
+{
+    return id >= _NM_ETHTOOL_ID_EEE_FIRST && id <= _NM_ETHTOOL_ID_EEE_LAST;
+}
+
 /*****************************************************************************/
 
 typedef enum {
@@ -225,6 +252,7 @@ typedef enum {
     _NM_WIFI_DEVICE_CAP_FREQ_VALID    = 0x00000100,
     _NM_WIFI_DEVICE_CAP_FREQ_2GHZ     = 0x00000200,
     _NM_WIFI_DEVICE_CAP_FREQ_5GHZ     = 0x00000400,
+    _NM_WIFI_DEVICE_CAP_FREQ_6GHZ     = 0x00000800,
     _NM_WIFI_DEVICE_CAP_MESH          = 0x00001000,
     _NM_WIFI_DEVICE_CAP_IBSS_RSN      = 0x00002000,
 } _NMDeviceWifiCapabilities;
diff --git a/src/libnm-base/nm-config-base.h b/src/libnm-base/nm-config-base.h
index c90efc1b..6d050ae1 100644
--- a/src/libnm-base/nm-config-base.h
+++ b/src/libnm-base/nm-config-base.h
@@ -35,7 +35,6 @@
 #define NM_CONFIG_KEYFILE_KEY_MAIN_NO_AUTO_DEFAULT             "no-auto-default"
 #define NM_CONFIG_KEYFILE_KEY_MAIN_PLUGINS                     "plugins"
 #define NM_CONFIG_KEYFILE_KEY_MAIN_RC_MANAGER                  "rc-manager"
-#define NM_CONFIG_KEYFILE_KEY_MAIN_SLAVES_ORDER                "slaves-order"
 #define NM_CONFIG_KEYFILE_KEY_MAIN_SYSTEMD_RESOLVED            "systemd-resolved"
 
 #define NM_CONFIG_KEYFILE_KEY_LOGGING_AUDIT   "audit"
diff --git a/src/libnm-base/nm-ethtool-base.c b/src/libnm-base/nm-ethtool-base.c
index c31cff6f..a02b9018 100644
--- a/src/libnm-base/nm-ethtool-base.c
+++ b/src/libnm-base/nm-ethtool-base.c
@@ -41,6 +41,7 @@ const NMEthtoolData *const nm_ethtool_data[_NM_ETHTOOL_ID_NUM + 1] = {
     ETHT_DATA(COALESCE_TX_USECS_HIGH),
     ETHT_DATA(COALESCE_TX_USECS_IRQ),
     ETHT_DATA(COALESCE_TX_USECS_LOW),
+    ETHT_DATA(EEE_ENABLED),
     ETHT_DATA(FEATURE_ESP_HW_OFFLOAD),
     ETHT_DATA(FEATURE_ESP_TX_CSUM_HW_OFFLOAD),
     ETHT_DATA(FEATURE_FCOE_MTU),
@@ -106,11 +107,19 @@ const NMEthtoolData *const nm_ethtool_data[_NM_ETHTOOL_ID_NUM + 1] = {
     ETHT_DATA(RING_RX_JUMBO),
     ETHT_DATA(RING_RX_MINI),
     ETHT_DATA(RING_TX),
+    ETHT_DATA(CHANNELS_RX),
+    ETHT_DATA(CHANNELS_TX),
+    ETHT_DATA(CHANNELS_OTHER),
+    ETHT_DATA(CHANNELS_COMBINED),
     [_NM_ETHTOOL_ID_NUM] = NULL,
 };
 
 static const guint8 _by_name[_NM_ETHTOOL_ID_NUM] = {
     /* sorted by optname. */
+    NM_ETHTOOL_ID_CHANNELS_COMBINED,
+    NM_ETHTOOL_ID_CHANNELS_OTHER,
+    NM_ETHTOOL_ID_CHANNELS_RX,
+    NM_ETHTOOL_ID_CHANNELS_TX,
     NM_ETHTOOL_ID_COALESCE_ADAPTIVE_RX,
     NM_ETHTOOL_ID_COALESCE_ADAPTIVE_TX,
     NM_ETHTOOL_ID_COALESCE_PKT_RATE_HIGH,
@@ -133,6 +142,7 @@ static const guint8 _by_name[_NM_ETHTOOL_ID_NUM] = {
     NM_ETHTOOL_ID_COALESCE_TX_USECS_HIGH,
     NM_ETHTOOL_ID_COALESCE_TX_USECS_IRQ,
     NM_ETHTOOL_ID_COALESCE_TX_USECS_LOW,
+    NM_ETHTOOL_ID_EEE_ENABLED,
     NM_ETHTOOL_ID_FEATURE_ESP_HW_OFFLOAD,
     NM_ETHTOOL_ID_FEATURE_ESP_TX_CSUM_HW_OFFLOAD,
     NM_ETHTOOL_ID_FEATURE_FCOE_MTU,
@@ -291,6 +301,10 @@ nm_ethtool_id_to_type(NMEthtoolID id)
         return NM_ETHTOOL_TYPE_RING;
     if (nm_ethtool_id_is_pause(id))
         return NM_ETHTOOL_TYPE_PAUSE;
+    if (nm_ethtool_id_is_channels(id))
+        return NM_ETHTOOL_TYPE_CHANNELS;
+    if (nm_ethtool_id_is_eee(id))
+        return NM_ETHTOOL_TYPE_EEE;
 
     return NM_ETHTOOL_TYPE_UNKNOWN;
 }
@@ -298,11 +312,18 @@ nm_ethtool_id_to_type(NMEthtoolID id)
 const GVariantType *
 nm_ethtool_id_get_variant_type(NMEthtoolID ethtool_id)
 {
-    if (nm_ethtool_id_is_feature(ethtool_id) || nm_ethtool_id_is_pause(ethtool_id))
+    switch (nm_ethtool_id_to_type(ethtool_id)) {
+    case NM_ETHTOOL_TYPE_FEATURE:
+    case NM_ETHTOOL_TYPE_PAUSE:
+    case NM_ETHTOOL_TYPE_EEE:
         return G_VARIANT_TYPE_BOOLEAN;
-
-    if (nm_ethtool_id_is_coalesce(ethtool_id) || nm_ethtool_id_is_ring(ethtool_id))
+    case NM_ETHTOOL_TYPE_CHANNELS:
+    case NM_ETHTOOL_TYPE_COALESCE:
+    case NM_ETHTOOL_TYPE_RING:
         return G_VARIANT_TYPE_UINT32;
-
-    return NULL;
+    case NM_ETHTOOL_TYPE_UNKNOWN:
+        nm_assert(ethtool_id == NM_ETHTOOL_ID_UNKNOWN);
+        return NULL;
+    }
+    return nm_assert_unreachable_val(NULL);
 }
diff --git a/src/libnm-base/nm-ethtool-utils-base.h b/src/libnm-base/nm-ethtool-utils-base.h
index fa9c3071..75fb63c5 100644
--- a/src/libnm-base/nm-ethtool-utils-base.h
+++ b/src/libnm-base/nm-ethtool-utils-base.h
@@ -104,6 +104,13 @@ G_BEGIN_DECLS
 #define NM_ETHTOOL_OPTNAME_PAUSE_RX      "pause-rx"
 #define NM_ETHTOOL_OPTNAME_PAUSE_TX      "pause-tx"
 
+#define NM_ETHTOOL_OPTNAME_CHANNELS_RX       "channels-rx"
+#define NM_ETHTOOL_OPTNAME_CHANNELS_TX       "channels-tx"
+#define NM_ETHTOOL_OPTNAME_CHANNELS_OTHER    "channels-other"
+#define NM_ETHTOOL_OPTNAME_CHANNELS_COMBINED "channels-combined"
+
+#define NM_ETHTOOL_OPTNAME_EEE_ENABLED "eee-enabled"
+
 /*****************************************************************************/
 
 G_END_DECLS