mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-02 23:38:11 +02:00
man,libnm,cli: merge branch 'th/man-cli-connection-types'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/444 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/680
This commit is contained in:
commit
5ce9f0e186
7 changed files with 121 additions and 53 deletions
|
|
@ -2561,10 +2561,15 @@ static const char *const *_complete_fcn_connection_type(ARGS_COMPLETE_FCN)
|
|||
|
||||
for (i = 0, j = 0; i < _NM_META_SETTING_TYPE_NUM; i++) {
|
||||
const NMMetaSettingInfoEditor *setting_info = &nm_meta_setting_infos_editor[i];
|
||||
GType gtype = setting_info->general->get_setting_gtype();
|
||||
const char * v;
|
||||
|
||||
if (!setting_info->valid_parts)
|
||||
if (_nm_setting_type_get_base_type_priority(gtype) == NM_SETTING_PRIORITY_INVALID) {
|
||||
nm_assert(!setting_info->valid_parts);
|
||||
continue;
|
||||
}
|
||||
|
||||
nm_assert(setting_info->valid_parts);
|
||||
|
||||
v = setting_info->alias;
|
||||
if (v) {
|
||||
|
|
@ -8149,7 +8154,12 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
|
|||
NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (OVS_DPDK),
|
||||
SETTING_INFO (OVS_DPDK,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (OVS_DPDK, TRUE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO_EMPTY (OVS_EXTERNAL_IDS),
|
||||
SETTING_INFO (OVS_INTERFACE,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
|
|
@ -8163,7 +8173,12 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
|
|||
NM_META_SETTING_VALID_PART_ITEM (ETHTOOL, FALSE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (OVS_PATCH),
|
||||
SETTING_INFO (OVS_PATCH,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (OVS_PATCH, TRUE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (OVS_PORT,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
|
|
|
|||
|
|
@ -53,6 +53,9 @@ test_client_meta_check(void)
|
|||
|
||||
for (m = 0; m < _NM_META_SETTING_TYPE_NUM; m++) {
|
||||
const NMMetaSettingInfoEditor *info = &nm_meta_setting_infos_editor[m];
|
||||
GType gtype;
|
||||
NMSettingPriority base_priority;
|
||||
gboolean is_base_type;
|
||||
|
||||
g_assert(info);
|
||||
g_assert(info->meta_type == &nm_meta_type_setting_info_editor);
|
||||
|
|
@ -97,6 +100,11 @@ test_client_meta_check(void)
|
|||
} else
|
||||
g_assert(!info->properties);
|
||||
|
||||
gtype = info->general->get_setting_gtype();
|
||||
base_priority = _nm_setting_type_get_base_type_priority(gtype);
|
||||
is_base_type = (base_priority != NM_SETTING_PRIORITY_INVALID);
|
||||
g_assert((!!info->valid_parts) == is_base_type);
|
||||
|
||||
if (info->valid_parts) {
|
||||
gsize i, l;
|
||||
gs_unref_hashtable GHashTable *dup = g_hash_table_new(nm_direct_hash, NULL);
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@
|
|||
/*****************************************************************************/
|
||||
|
||||
NMSettingPriority _nm_setting_get_base_type_priority(NMSetting *setting);
|
||||
NMSettingPriority _nm_setting_type_get_base_type_priority(GType type);
|
||||
int _nm_setting_compare_priority(gconstpointer a, gconstpointer b);
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
|||
|
|
@ -57,26 +57,6 @@ static GenData *_gendata_hash(NMSetting *setting, gboolean create_if_necessary);
|
|||
|
||||
/*****************************************************************************/
|
||||
|
||||
static NMSettingPriority
|
||||
_get_base_type_priority(const NMMetaSettingInfo *setting_info, GType gtype)
|
||||
{
|
||||
/* Historical oddity: PPPoE is a base-type even though it's not
|
||||
* priority 1. It needs to be sorted *after* lower-level stuff like
|
||||
* Wi-Fi security or 802.1x for secrets, but it's still allowed as a
|
||||
* base type.
|
||||
*/
|
||||
|
||||
if (setting_info) {
|
||||
if (NM_IN_SET(setting_info->setting_priority,
|
||||
NM_SETTING_PRIORITY_HW_BASE,
|
||||
NM_SETTING_PRIORITY_HW_NON_BASE)
|
||||
|| gtype == NM_TYPE_SETTING_PPPOE)
|
||||
return setting_info->setting_priority;
|
||||
}
|
||||
|
||||
return NM_SETTING_PRIORITY_INVALID;
|
||||
}
|
||||
|
||||
NMSettingPriority
|
||||
_nm_setting_get_setting_priority(NMSetting *setting)
|
||||
{
|
||||
|
|
@ -88,19 +68,13 @@ _nm_setting_get_setting_priority(NMSetting *setting)
|
|||
return setting_info ? setting_info->setting_priority : NM_SETTING_PRIORITY_INVALID;
|
||||
}
|
||||
|
||||
NMSettingPriority
|
||||
_nm_setting_type_get_base_type_priority(GType type)
|
||||
{
|
||||
return _get_base_type_priority(nm_meta_setting_infos_by_gtype(type), type);
|
||||
}
|
||||
|
||||
NMSettingPriority
|
||||
_nm_setting_get_base_type_priority(NMSetting *setting)
|
||||
{
|
||||
g_return_val_if_fail(NM_IS_SETTING(setting), NM_SETTING_PRIORITY_INVALID);
|
||||
|
||||
return _get_base_type_priority(NM_SETTING_GET_CLASS(setting)->setting_info,
|
||||
G_OBJECT_TYPE(setting));
|
||||
return nm_meta_setting_info_get_base_type_priority(NM_SETTING_GET_CLASS(setting)->setting_info,
|
||||
G_OBJECT_TYPE(setting));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -946,30 +946,70 @@
|
|||
<option>connection.type</option> property (or use the <option>type</option> alias)
|
||||
to one of known NetworkManager connection types:</para>
|
||||
|
||||
<!--
|
||||
See also: nm_meta_setting_info_get_base_type_priority().
|
||||
|
||||
nmcli '-'-complete-args connection add type "" |
|
||||
sort |
|
||||
awk '
|
||||
/^(bond|bridge|team)-slave$/ {
|
||||
printf " <listitem><para><literal>%s</literal> (deprecated for ethernet with master)</para></listitem>\n", $0;
|
||||
next;
|
||||
}
|
||||
/^(wifi|ethernet|olpc-mash)$/ {
|
||||
next;
|
||||
}
|
||||
{
|
||||
alias = "";
|
||||
if ($0 == "802-11-wireless") { alias = "wifi"; }
|
||||
if ($0 == "802-3-ethernet") { alias = "ethernet"; }
|
||||
if ($0 == "802-11-olpc-mesh") { alias = "olpc-mesh"; }
|
||||
if (alias != "") {
|
||||
printf " <listitem><para><literal>%s</literal> (alias <literal>%s</literal>)</para></listitem>\n", $0, alias;
|
||||
} else {
|
||||
printf " <listitem><para><literal>%s</literal></para></listitem>\n", $0;
|
||||
}
|
||||
}
|
||||
'
|
||||
|
||||
-->
|
||||
<itemizedlist spacing='compact'>
|
||||
<listitem><para><literal>ethernet</literal></para></listitem>
|
||||
<listitem><para><literal>wifi</literal></para></listitem>
|
||||
<listitem><para><literal>wimax</literal></para></listitem>
|
||||
<listitem><para><literal>pppoe</literal></para></listitem>
|
||||
<listitem><para><literal>gsm</literal></para></listitem>
|
||||
<listitem><para><literal>cdma</literal></para></listitem>
|
||||
<listitem><para><literal>infiniband</literal></para></listitem>
|
||||
<listitem><para><literal>bluetooth</literal></para></listitem>
|
||||
<listitem><para><literal>vlan</literal></para></listitem>
|
||||
<listitem><para><literal>bond</literal></para></listitem>
|
||||
<listitem><para><literal>bond-slave</literal></para></listitem>
|
||||
<listitem><para><literal>team</literal></para></listitem>
|
||||
<listitem><para><literal>team-slave</literal></para></listitem>
|
||||
<listitem><para><literal>bridge</literal></para></listitem>
|
||||
<listitem><para><literal>bridge-slave</literal></para></listitem>
|
||||
<listitem><para><literal>vpn</literal></para></listitem>
|
||||
<listitem><para><literal>olpc-mesh</literal></para></listitem>
|
||||
<listitem><para><literal>6lowpan</literal></para></listitem>
|
||||
<listitem><para><literal>802-11-olpc-mesh</literal> (alias <literal>olpc-mesh</literal>)</para></listitem>
|
||||
<listitem><para><literal>802-11-wireless</literal> (alias <literal>wifi</literal>)</para></listitem>
|
||||
<listitem><para><literal>802-3-ethernet</literal> (alias <literal>ethernet</literal>)</para></listitem>
|
||||
<listitem><para><literal>adsl</literal></para></listitem>
|
||||
<listitem><para><literal>tun</literal></para></listitem>
|
||||
<listitem><para><literal>ip-tunnel</literal></para></listitem>
|
||||
<listitem><para><literal>macvlan</literal></para></listitem>
|
||||
<listitem><para><literal>vxlan</literal></para></listitem>
|
||||
<listitem><para><literal>bluetooth</literal></para></listitem>
|
||||
<listitem><para><literal>bond</literal></para></listitem>
|
||||
<listitem><para><literal>bond-slave</literal> (deprecated for ethernet with master)</para></listitem>
|
||||
<listitem><para><literal>bridge</literal></para></listitem>
|
||||
<listitem><para><literal>bridge-slave</literal> (deprecated for ethernet with master)</para></listitem>
|
||||
<listitem><para><literal>cdma</literal></para></listitem>
|
||||
<listitem><para><literal>dummy</literal></para></listitem>
|
||||
<listitem><para><literal>generic</literal></para></listitem>
|
||||
<listitem><para><literal>gsm</literal></para></listitem>
|
||||
<listitem><para><literal>infiniband</literal></para></listitem>
|
||||
<listitem><para><literal>ip-tunnel</literal></para></listitem>
|
||||
<listitem><para><literal>macsec</literal></para></listitem>
|
||||
<listitem><para><literal>macvlan</literal></para></listitem>
|
||||
<listitem><para><literal>olpc-mesh</literal></para></listitem>
|
||||
<listitem><para><literal>ovs-bridge</literal></para></listitem>
|
||||
<listitem><para><literal>ovs-dpdk</literal></para></listitem>
|
||||
<listitem><para><literal>ovs-interface</literal></para></listitem>
|
||||
<listitem><para><literal>ovs-patch</literal></para></listitem>
|
||||
<listitem><para><literal>ovs-port</literal></para></listitem>
|
||||
<listitem><para><literal>pppoe</literal></para></listitem>
|
||||
<listitem><para><literal>team</literal></para></listitem>
|
||||
<listitem><para><literal>team-slave</literal> (deprecated for ethernet with master)</para></listitem>
|
||||
<listitem><para><literal>tun</literal></para></listitem>
|
||||
<listitem><para><literal>vlan</literal></para></listitem>
|
||||
<listitem><para><literal>vpn</literal></para></listitem>
|
||||
<listitem><para><literal>vrf</literal></para></listitem>
|
||||
<listitem><para><literal>vxlan</literal></para></listitem>
|
||||
<listitem><para><literal>wifi-p2p</literal></para></listitem>
|
||||
<listitem><para><literal>wimax</literal></para></listitem>
|
||||
<listitem><para><literal>wireguard</literal></para></listitem>
|
||||
<listitem><para><literal>wpan</literal></para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>The most typical uses are described in the <link linkend='examples' endterm='examples.title' /> section.</para>
|
||||
|
|
|
|||
|
|
@ -606,3 +606,31 @@ out_none:
|
|||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
NMSettingPriority
|
||||
nm_meta_setting_info_get_base_type_priority(const NMMetaSettingInfo *setting_info, GType gtype)
|
||||
{
|
||||
/* Historical oddity: PPPoE is a base-type even though it's not
|
||||
* priority 1. It needs to be sorted *after* lower-level stuff like
|
||||
* Wi-Fi security or 802.1x for secrets, but it's still allowed as a
|
||||
* base type.
|
||||
*/
|
||||
|
||||
if (setting_info) {
|
||||
if (NM_IN_SET(setting_info->setting_priority,
|
||||
NM_SETTING_PRIORITY_HW_BASE,
|
||||
NM_SETTING_PRIORITY_HW_NON_BASE)
|
||||
|| gtype == NM_TYPE_SETTING_PPPOE)
|
||||
return setting_info->setting_priority;
|
||||
}
|
||||
|
||||
return NM_SETTING_PRIORITY_INVALID;
|
||||
}
|
||||
|
||||
NMSettingPriority
|
||||
_nm_setting_type_get_base_type_priority(GType type)
|
||||
{
|
||||
return nm_meta_setting_info_get_base_type_priority(nm_meta_setting_infos_by_gtype(type), type);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
|||
|
|
@ -208,4 +208,8 @@ const NMMetaSettingInfo *nm_meta_setting_infos_by_gtype(GType gtype);
|
|||
|
||||
/*****************************************************************************/
|
||||
|
||||
NMSettingPriority nm_meta_setting_info_get_base_type_priority(const NMMetaSettingInfo *setting_info,
|
||||
GType gtype);
|
||||
NMSettingPriority _nm_setting_type_get_base_type_priority(GType type);
|
||||
|
||||
#endif /* __NM_META_SETTING_H__ */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue