diff --git a/abi-compat/jammy_0.107.xml b/abi-compat/jammy_0.107.xml
index 3b64b4d3a..4bb4b014f 100644
--- a/abi-compat/jammy_0.107.xml
+++ b/abi-compat/jammy_0.107.xml
@@ -15,7 +15,6 @@
-
@@ -59,6 +58,7 @@
+
@@ -4191,10 +4191,6 @@
-
-
-
-
@@ -4373,6 +4369,10 @@
+
+
+
+
diff --git a/include/netplan.h b/include/netplan.h
index 8fbf3fba9..b083d9896 100644
--- a/include/netplan.h
+++ b/include/netplan.h
@@ -118,6 +118,9 @@ netplan_netdef_get_vlan_link(const NetplanNetDefinition* netdef);
NETPLAN_PUBLIC NetplanNetDefinition*
netplan_netdef_get_sriov_link(const NetplanNetDefinition* netdef);
+NETPLAN_PUBLIC char *
+netplan_netdef_get_keep_configuration(const NetplanNetDefinition* netdef);
+
NETPLAN_PUBLIC ssize_t
netplan_netdef_get_set_name(const NetplanNetDefinition* netdef, char* out_buffer, size_t out_buffer_size);
diff --git a/python-cffi/netplan/_build_cffi.py b/python-cffi/netplan/_build_cffi.py
index c031f5dd1..496e643fe 100644
--- a/python-cffi/netplan/_build_cffi.py
+++ b/python-cffi/netplan/_build_cffi.py
@@ -112,7 +112,7 @@
ssize_t _netplan_netdef_get_embedded_switch_mode(const NetplanNetDefinition* netdef, char* out_buffer, size_t out_buf_size);
gboolean _netplan_netdef_get_sriov_vlan_filter(const NetplanNetDefinition* netdef);
guint _netplan_netdef_get_vlan_id(const NetplanNetDefinition* netdef);
- char* _netplan_netdef_get_keep_configuration(const NetplanNetDefinition* netdef);
+ char* netplan_netdef_get_keep_configuration(const NetplanNetDefinition* netdef);
gboolean _netplan_netdef_is_trivial_compound_itf(const NetplanNetDefinition* netdef);
int _netplan_state_get_vf_count_for_def(
const NetplanState* np_state, const NetplanNetDefinition* netdef, NetplanError** error);
diff --git a/src/types.c b/src/types.c
index 2aebbd9f6..92fd1f2ee 100644
--- a/src/types.c
+++ b/src/types.c
@@ -594,13 +594,6 @@ _netplan_netdef_get_vlan_id(const NetplanNetDefinition* netdef)
return netdef->vlan_id;
}
-char *
-_netplan_netdef_get_keep_configuration(const NetplanNetDefinition* netdef)
-{
- g_assert(netdef);
- return netdef->keep_configuration;
-}
-
gboolean
_netplan_netdef_get_optional(const NetplanNetDefinition* netdef)
{
diff --git a/src/util-internal.h b/src/util-internal.h
index 41e98486c..aea6b2db3 100644
--- a/src/util-internal.h
+++ b/src/util-internal.h
@@ -102,9 +102,6 @@ _netplan_state_get_vf_count_for_def(const NetplanState* np_state, const NetplanN
NETPLAN_INTERNAL gboolean
_netplan_netdef_get_sriov_vlan_filter(const NetplanNetDefinition* netdef);
-NETPLAN_INTERNAL char *
-_netplan_netdef_get_keep_configuration(const NetplanNetDefinition* netdef);
-
NETPLAN_INTERNAL gboolean
_netplan_netdef_get_optional(const NetplanNetDefinition* netdef);
diff --git a/src/util.c b/src/util.c
index b9b621c2f..8f7dcc453 100644
--- a/src/util.c
+++ b/src/util.c
@@ -1018,6 +1018,13 @@ netplan_netdef_match_interface(const NetplanNetDefinition* netdef, const char* n
return TRUE;
}
+char *
+netplan_netdef_get_keep_configuration(const NetplanNetDefinition* netdef)
+{
+ g_assert(netdef);
+ return netdef->keep_configuration;
+}
+
ssize_t
netplan_netdef_get_set_name(const NetplanNetDefinition* netdef, char* out_buffer, size_t out_buf_size)
{