summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2022-11-09 12:29:05 +0100
committerThomas Haller <thaller@redhat.com>2022-11-10 13:00:50 +0100
commit412a5d2d080f6fd56e8dede191cda55ebe573724 (patch)
tree2c60d3be4d979f2ffd095b0167c6f769081e5546
parent171f2c4ce34be0d5b61a2750375dd57dbbff293b (diff)
downloadNetworkManager-412a5d2d080f6fd56e8dede191cda55ebe573724.tar.gz
libnm: show ethtool options in "gen-metadata-nm-settings-libnm-core.xml"
-rw-r--r--src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.c102
-rw-r--r--src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml.in350
2 files changed, 413 insertions, 39 deletions
diff --git a/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.c b/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.c
index 49b9cdd51e..18e21cbb7d 100644
--- a/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.c
+++ b/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.c
@@ -5,6 +5,9 @@
#include "libnm-glib-aux/nm-str-buf.h"
#include "libnm-core-intern/nm-meta-setting-base.h"
#include "libnm-core-intern/nm-core-internal.h"
+#include "libnm-base/nm-ethtool-base.h"
+
+#include "libnm-core-public/nm-setting-ethtool.h"
#define INDENT 4
@@ -37,45 +40,48 @@ main(int argc, char *argv[])
const NMSettInfoSetting *sett_info_settings = nmtst_sett_info_settings();
NMMetaSettingType meta_type;
- g_print("<!--\n"
- " This file is generated.\n"
- "\n"
- " This XML contains meta data of NetworkManager connection profiles.\n"
- "\n"
- " NetworkManager's connection profiles are a bunch of settings, and this\n"
- " contains the known properties. See also `man nm-settings-{dbus,nmcli,keyfile}`.\n"
- "\n"
- " Note that there are different manifestations of these properties. We have them\n"
- " on the D-Bus API (`man nm-settings-dbus`), in keyfile format (`man "
- "nm-settings-keyfile`)\n"
- " in libnm's NMConnection and NMSetting API, and in nmcli (`man nm-settings-nmcli`).\n"
- " There are similarities between these, but also subtle differencs. For example,\n"
- " a property might not be shown in nmcli, or a property might be named different\n"
- " on D-Bus or keyfile. Also, the data types may differ due to the differences of the\n"
- " technology.\n"
- "\n"
- " This list of properties is not directly the properties as they are in any of\n"
- " those manifestations. Instead, it's a general idea that this property exists in\n"
- " NetworkManager. Whether and how it is represented in nmcli or keyfile, may differ.\n"
- " The XML however aims to provide information for various backends.\n"
- "\n"
- " <setting> Attributes:\n"
- " \"name\": the name of the setting.\n"
- " \"gtype\": the typename of the NMSetting class in libnm.\n"
- "\n"
- " <property> Attributes:\n"
- " \"name\": the name of the property.\n"
- " \"is-deprecated\": whether this property is deprecated.\n"
- " \"is-secret\": whether this property is a secret.\n"
- " \"is-secret-flags\": whether this property is a secret flags property.\n"
- " \"dbus-type\": if this property is exposed on D-Bus. In that case, this\n"
- " is the D-Bus type format. Also, \"name\" is the actual name of the field\n"
- " \"dbus-deprecated\": if this property is on D-Bus and that representation is\n"
- " deprecated. This usually means, that there is a replacement D-Bus property\n"
- " that should be used instead.\n"
- " \"gprop-type\": if this is a GObject property in the NMSetting class, this\n"
- " is the GParamSpec.value_type of the property.\n"
- " -->\n");
+ g_print(
+ "<!--\n"
+ " This file is generated.\n"
+ "\n"
+ " This XML contains meta data of NetworkManager connection profiles.\n"
+ "\n"
+ " NetworkManager's connection profiles are a bunch of settings, and this\n"
+ " contains the known properties. See also `man nm-settings-{dbus,nmcli,keyfile}`.\n"
+ "\n"
+ " Note that there are different manifestations of these properties. We have them\n"
+ " on the D-Bus API (`man nm-settings-dbus`), in keyfile format (`man "
+ "nm-settings-keyfile`)\n"
+ " in libnm's NMConnection and NMSetting API, and in nmcli (`man nm-settings-nmcli`).\n"
+ " There are similarities between these, but also subtle differencs. For example,\n"
+ " a property might not be shown in nmcli, or a property might be named different\n"
+ " on D-Bus or keyfile. Also, the data types may differ due to the differences of the\n"
+ " technology.\n"
+ "\n"
+ " This list of properties is not directly the properties as they are in any of\n"
+ " those manifestations. Instead, it's a general idea that this property exists in\n"
+ " NetworkManager. Whether and how it is represented in nmcli or keyfile, may differ.\n"
+ " The XML however aims to provide information for various backends.\n"
+ "\n"
+ " <setting> Attributes:\n"
+ " \"name\": the name of the setting.\n"
+ " \"gtype\": the typename of the NMSetting class in libnm.\n"
+ "\n"
+ " <property> Attributes:\n"
+ " \"name\": the name of the property.\n"
+ " \"is-deprecated\": whether this property is deprecated.\n"
+ " \"is-secret\": whether this property is a secret.\n"
+ " \"is-secret-flags\": whether this property is a secret flags property.\n"
+ " \"dbus-type\": if this property is exposed on D-Bus. In that case, this\n"
+ " is the D-Bus type format. Also, \"name\" is the actual name of the field\n"
+ " \"dbus-deprecated\": if this property is on D-Bus and that representation is\n"
+ " deprecated. This usually means, that there is a replacement D-Bus property\n"
+ " that should be used instead.\n"
+ " \"gprop-type\": if this is a GObject property in the NMSetting class, this\n"
+ " is the GParamSpec.value_type of the property.\n"
+ " \"is-setting-option\": whether the property is implemented in libnm's NMSetting\n"
+ " via the nm_setting_option_*() API.\n"
+ " -->\n");
g_print("<nm-setting-docs>\n");
for (meta_type = 0; meta_type < _NM_META_SETTING_TYPE_NUM; meta_type++) {
const NMSettInfoSetting *sis = &sett_info_settings[meta_type];
@@ -130,6 +136,24 @@ main(int argc, char *argv[])
g_print("\n%s/>\n", _indent_level(2 * INDENT + 10));
}
+ if (nm_streq(msi->setting_name, NM_SETTING_ETHTOOL_SETTING_NAME)) {
+ NMEthtoolID ethtool_id;
+
+ /* NMSettingEthtool's properties are "gendata" options. They are implemented differently. */
+ for (ethtool_id = _NM_ETHTOOL_ID_FIRST; ethtool_id <= _NM_ETHTOOL_ID_LAST;
+ ethtool_id++) {
+ g_print("%s<property", _indent_level(2 * INDENT));
+ g_print(" name=%s", _xml_escape_attr(&sbuf1, nm_ethtool_data[ethtool_id]->optname));
+ g_print(
+ "\n%sdbus-type=%s",
+ _indent_level(2 * INDENT + 10),
+ _xml_escape_attr(&sbuf1,
+ (const char *) nm_ethtool_id_get_variant_type(ethtool_id)));
+ g_print("\n%sis-setting-option=\"1\"", _indent_level(2 * INDENT + 10));
+ g_print("\n%s/>\n", _indent_level(2 * INDENT + 10));
+ }
+ }
+
g_print("%s</setting>\n", _indent_level(INDENT));
}
g_print("</nm-setting-docs>\n");
diff --git a/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml.in b/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml.in
index e1bfd9d6a0..77bbdcca53 100644
--- a/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml.in
+++ b/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml.in
@@ -35,6 +35,8 @@
that should be used instead.
"gprop-type": if this is a GObject property in the NMSetting class, this
is the GParamSpec.value_type of the property.
+ "is-setting-option": whether the property is implemented in libnm's NMSetting
+ via the nm_setting_option_*() API.
-->
<nm-setting-docs>
<setting name="6lowpan"
@@ -935,6 +937,354 @@
<setting name="ethtool"
gtype="NMSettingEthtool"
>
+ <property name="coalesce-adaptive-rx"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-adaptive-tx"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-pkt-rate-high"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-pkt-rate-low"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-rx-frames"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-rx-frames-high"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-rx-frames-irq"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-rx-frames-low"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-rx-usecs"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-rx-usecs-high"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-rx-usecs-irq"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-rx-usecs-low"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-sample-interval"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-stats-block-usecs"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-tx-frames"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-tx-frames-high"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-tx-frames-irq"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-tx-frames-low"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-tx-usecs"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-tx-usecs-high"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-tx-usecs-irq"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="coalesce-tx-usecs-low"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="feature-esp-hw-offload"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-esp-tx-csum-hw-offload"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-fcoe-mtu"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-gro"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-gso"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-highdma"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-hw-tc-offload"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-l2-fwd-offload"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-loopback"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-lro"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-macsec-hw-offload"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-ntuple"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-rx"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-rxhash"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-rxvlan"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-rx-all"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-rx-fcs"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-rx-gro-hw"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-rx-gro-list"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-rx-udp-gro-forwarding"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-rx-udp_tunnel-port-offload"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-rx-vlan-filter"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-rx-vlan-stag-filter"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-rx-vlan-stag-hw-parse"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-sg"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tls-hw-record"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tls-hw-rx-offload"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tls-hw-tx-offload"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tso"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-txvlan"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-checksum-fcoe-crc"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-checksum-ipv4"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-checksum-ipv6"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-checksum-ip-generic"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-checksum-sctp"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-esp-segmentation"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-fcoe-segmentation"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-gre-csum-segmentation"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-gre-segmentation"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-gso-list"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-gso-partial"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-gso-robust"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-ipxip4-segmentation"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-ipxip6-segmentation"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-nocache-copy"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-scatter-gather"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-scatter-gather-fraglist"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-sctp-segmentation"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-tcp6-segmentation"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-tcp-ecn-segmentation"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-tcp-mangleid-segmentation"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-tcp-segmentation"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-tunnel-remcsum-segmentation"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-udp-segmentation"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-udp_tnl-csum-segmentation"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-udp_tnl-segmentation"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="feature-tx-vlan-stag-hw-insert"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="pause-autoneg"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="pause-rx"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="pause-tx"
+ dbus-type="b"
+ is-setting-option="1"
+ />
+ <property name="ring-rx"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="ring-rx-jumbo"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="ring-rx-mini"
+ dbus-type="u"
+ is-setting-option="1"
+ />
+ <property name="ring-tx"
+ dbus-type="u"
+ is-setting-option="1"
+ />
</setting>
<setting name="generic"
gtype="NMSettingGeneric"