diff options
| author | Nataliia Solomko <natalirs1985@gmail.com> | 2025-10-07 18:21:06 +0300 |
|---|---|---|
| committer | Nataliia Solomko <natalirs1985@gmail.com> | 2025-10-14 15:41:37 +0300 |
| commit | 888eec975ff765216e4c65ba15ed9176d7dee7ea (patch) | |
| tree | 650d0f2ed8edd656e00bb8c8c4d583b5c9e90213 /python | |
| parent | fc178aaf00f7a9dc4589567ae3e17cb9718d9ad3 (diff) | |
| download | vyos-1x-888eec975ff765216e4c65ba15ed9176d7dee7ea.tar.gz vyos-1x-888eec975ff765216e4c65ba15ed9176d7dee7ea.zip | |
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
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/vpp/nat/det44.py | 22 |
1 files changed, 18 insertions, 4 deletions
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 |
