From 73f10372f9b6f073daf2505151f794ef0e98ac73 Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Tue, 24 Sep 2024 16:25:03 +0200 Subject: [PATCH] libnm-core: fix validation of ovs-dpdk interface name An ovs-dpdk interface doesn't have a kernel link and doesn't have the 15-character limit on the name. Fixes: 3efe070dfc7a ('libnm: validate "connection.interface-name" at one place only') Resolves: https://issues.redhat.com/browse/RHEL-60233 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2044 (cherry picked from commit fda05b0af085d9f7e4cc5691075dae63e7bf02a6) (cherry picked from commit f6e4e537757a414cc896bc1b402da8c9c9e32eaa) (cherry picked from commit c7035db5b43beff7ad7e91685ff17982a540d8e2) --- src/libnm-core-impl/nm-setting-connection.c | 4 ++-- src/libnm-core-impl/tests/test-general.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libnm-core-impl/nm-setting-connection.c b/src/libnm-core-impl/nm-setting-connection.c index 19481b1502..d8a42e62d4 100644 --- a/src/libnm-core-impl/nm-setting-connection.c +++ b/src/libnm-core-impl/nm-setting-connection.c @@ -1358,13 +1358,13 @@ verify(NMSetting *setting, NMConnection *connection, GError **error) if (connection) goto after_interface_name; iface_type = NMU_IFACE_ANY; - } else if (NM_IN_STRSET(ovs_iface_type, "patch")) { + } else if (NM_IN_STRSET(ovs_iface_type, "patch", "dpdk")) { /* this interface type is internal to OVS. */ iface_type = NMU_IFACE_OVS; } else { /* This interface type also requires a netdev. We need to validate * for both OVS and KERNEL. */ - nm_assert(NM_IN_STRSET(ovs_iface_type, "internal", "system", "dpdk")); + nm_assert(NM_IN_STRSET(ovs_iface_type, "internal", "system")); iface_type = NMU_IFACE_OVS_AND_KERNEL; } } else diff --git a/src/libnm-core-impl/tests/test-general.c b/src/libnm-core-impl/tests/test-general.c index bf0f272c49..1ee05ae1df 100644 --- a/src/libnm-core-impl/tests/test-general.c +++ b/src/libnm-core-impl/tests/test-general.c @@ -10829,7 +10829,7 @@ test_connection_ovs_ifname(gconstpointer test_data) /* good if bridge, port, or patch interface */ g_object_set(s_con, NM_SETTING_CONNECTION_INTERFACE_NAME, "ovs123123123123130123123", NULL); - if (!ovs_iface_type || nm_streq(ovs_iface_type, "patch")) + if (!ovs_iface_type || NM_IN_STRSET(ovs_iface_type, "patch", "dpdk")) nmtst_assert_connection_verifies(con); else { nmtst_assert_connection_unnormalizable(con,