summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorNataliia Solomko <natalirs1985@gmail.com>2026-01-12 16:37:13 +0200
committerNataliia Solomko <natalirs1985@gmail.com>2026-01-21 15:07:14 +0200
commitf8a68122f3b4738a2a1bd1526ed3c9b8961d050d (patch)
treeee495630f8b3f6687a546b7064f313b4c9f429f9 /python
parent7fea6b6dbbd786bf6a32c496fc70ca9e9b5f8b1f (diff)
downloadvyos-1x-f8a68122f3b4738a2a1bd1526ed3c9b8961d050d.tar.gz
vyos-1x-f8a68122f3b4738a2a1bd1526ed3c9b8961d050d.zip
vpp: T8125: Enable ip4-dhcp-client-detect feature if interface address is configured as DHCP
DHCP address cannot be assigned on VPP interfaces without enabling the 'ip4-dhcp-client-detect' feature
Diffstat (limited to 'python')
-rw-r--r--python/vyos/vpp/control_vpp.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/python/vyos/vpp/control_vpp.py b/python/vyos/vpp/control_vpp.py
index 2ee253b45..18ec349bc 100644
--- a/python/vyos/vpp/control_vpp.py
+++ b/python/vyos/vpp/control_vpp.py
@@ -494,3 +494,34 @@ class VPPControl:
cp_sw_if_index=self.get_sw_if_index(vpp_pair_name),
is_add=is_add,
)
+
+ @_Decorators.api_call
+ def enable_dhcp_client(self, ifname: str) -> None:
+ """Enable DHCP client detection on a given interface
+
+ Args:
+ ifname (str): name of an interface in kernel
+ """
+ iface_index = self.get_sw_if_index(ifname)
+ feature_is_enabled = self.__vpp_api_client.api.feature_is_enabled(
+ sw_if_index=iface_index,
+ feature_name='ip4-dhcp-client-detect',
+ arc_name='ip4-unicast',
+ )
+ if not feature_is_enabled.is_enabled:
+ self.__vpp_api_client.api.dhcp_client_detect_enable_disable(
+ sw_if_index=iface_index,
+ enable=True,
+ )
+
+ @_Decorators.api_call
+ def disable_dhcp_client(self, ifname: str) -> None:
+ """Disable DHCP client detection on a given interface
+
+ Args:
+ ifname (str): name of an interface in kernel
+ """
+ self.__vpp_api_client.api.dhcp_client_detect_enable_disable(
+ sw_if_index=self.get_sw_if_index(ifname),
+ enable=False,
+ )