libnm: show ethtool options in "gen-metadata-nm-settings-libnm-core.xml"

This commit is contained in:
Thomas Haller
2022-11-09 12:29:05 +01:00
parent 171f2c4ce3
commit 412a5d2d08
2 changed files with 413 additions and 39 deletions

View File

@@ -5,6 +5,9 @@
#include "libnm-glib-aux/nm-str-buf.h" #include "libnm-glib-aux/nm-str-buf.h"
#include "libnm-core-intern/nm-meta-setting-base.h" #include "libnm-core-intern/nm-meta-setting-base.h"
#include "libnm-core-intern/nm-core-internal.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 #define INDENT 4
@@ -37,7 +40,8 @@ main(int argc, char *argv[])
const NMSettInfoSetting *sett_info_settings = nmtst_sett_info_settings(); const NMSettInfoSetting *sett_info_settings = nmtst_sett_info_settings();
NMMetaSettingType meta_type; NMMetaSettingType meta_type;
g_print("<!--\n" g_print(
"<!--\n"
" This file is generated.\n" " This file is generated.\n"
"\n" "\n"
" This XML contains meta data of NetworkManager connection profiles.\n" " This XML contains meta data of NetworkManager connection profiles.\n"
@@ -75,6 +79,8 @@ main(int argc, char *argv[])
" that should be used instead.\n" " that should be used instead.\n"
" \"gprop-type\": if this is a GObject property in the NMSetting class, this\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 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"); " -->\n");
g_print("<nm-setting-docs>\n"); g_print("<nm-setting-docs>\n");
for (meta_type = 0; meta_type < _NM_META_SETTING_TYPE_NUM; meta_type++) { for (meta_type = 0; meta_type < _NM_META_SETTING_TYPE_NUM; meta_type++) {
@@ -130,6 +136,24 @@ main(int argc, char *argv[])
g_print("\n%s/>\n", _indent_level(2 * INDENT + 10)); 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("%s</setting>\n", _indent_level(INDENT));
} }
g_print("</nm-setting-docs>\n"); g_print("</nm-setting-docs>\n");

View File

@@ -35,6 +35,8 @@
that should be used instead. that should be used instead.
"gprop-type": if this is a GObject property in the NMSetting class, this "gprop-type": if this is a GObject property in the NMSetting class, this
is the GParamSpec.value_type of the property. 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> <nm-setting-docs>
<setting name="6lowpan" <setting name="6lowpan"
@@ -935,6 +937,354 @@
<setting name="ethtool" <setting name="ethtool"
gtype="NMSettingEthtool" 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>
<setting name="generic" <setting name="generic"
gtype="NMSettingGeneric" gtype="NMSettingGeneric"