From 888eec975ff765216e4c65ba15ed9176d7dee7ea Mon Sep 17 00:00:00 2001 From: Nataliia Solomko Date: Tue, 7 Oct 2025 18:21:06 +0300 Subject: T7750: VPP: CGNAT commit failure with vpptunX interface Allow using bond interfaces in CGNAT. Improve interface cleanup to rely on VPP API queries, as VPP config changes may modify interface indexes --- python/vyos/vpp/nat/det44.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'python') diff --git a/python/vyos/vpp/nat/det44.py b/python/vyos/vpp/nat/det44.py index 70f903086..51ad41dc8 100644 --- a/python/vyos/vpp/nat/det44.py +++ b/python/vyos/vpp/nat/det44.py @@ -44,10 +44,10 @@ class Det44: is_add=True, ) - def delete_det44_interface_outside(self, interface_out): + def delete_det44_interface_outside(self, interface_out_index): """Delete DET44 outside interface""" self.vpp.api.det44_interface_add_del_feature( - sw_if_index=self.vpp.get_sw_if_index(interface_out), + sw_if_index=interface_out_index, is_inside=False, is_add=False, ) @@ -60,10 +60,10 @@ class Det44: is_add=True, ) - def delete_det44_interface_inside(self, interface_in): + def delete_det44_interface_inside(self, interface_in_index): """Delete DET44 inside interface""" self.vpp.api.det44_interface_add_del_feature( - sw_if_index=self.vpp.get_sw_if_index(interface_in), + sw_if_index=interface_in_index, is_inside=True, is_add=False, ) @@ -104,3 +104,17 @@ class Det44: tcp_established=tcp_established, tcp_transitory=tcp_transitory, ) + + def get_det44_interfaces_outside(self): + ifaces_outside = [] + for iface in self.vpp.api.det44_interface_dump(): + if iface.is_outside: + ifaces_outside.append(iface.sw_if_index) + return ifaces_outside + + def get_det44_interfaces_inside(self): + ifaces_inside = [] + for iface in self.vpp.api.det44_interface_dump(): + if iface.is_inside: + ifaces_inside.append(iface.sw_if_index) + return ifaces_inside -- cgit v1.2.3