summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorRitika Chopra <r.chopra@vyos.io>2026-02-06 14:25:52 -0700
committerRitika Chopra <r.chopra@vyos.io>2026-02-26 02:16:15 -0700
commit80727823e8ac309959a06f8aaeb0e12f2f7a1f43 (patch)
tree13bbffe69a3f35e58a6ecbf1b9b18353cfbdfc62 /python
parent61d8e945ee356befde46c94cfed859d3e9f37d55 (diff)
downloadvyos-1x-80727823e8ac309959a06f8aaeb0e12f2f7a1f43.tar.gz
vyos-1x-80727823e8ac309959a06f8aaeb0e12f2f7a1f43.zip
T7513: vyos-1x: CGNAT Exclude Rule CLI support
Diffstat (limited to 'python')
-rw-r--r--python/vyos/vpp/nat/det44.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/python/vyos/vpp/nat/det44.py b/python/vyos/vpp/nat/det44.py
index 51ad41dc8..600f02e8c 100644
--- a/python/vyos/vpp/nat/det44.py
+++ b/python/vyos/vpp/nat/det44.py
@@ -16,6 +16,7 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
from vyos.vpp import VPPControl
+from vyos.vpp.nat.nat44 import NAT_IS_NONE, NAT_IS_ADDR_ONLY
class Det44:
@@ -118,3 +119,29 @@ class Det44:
if iface.is_inside:
ifaces_inside.append(iface.sw_if_index)
return ifaces_inside
+
+ def add_det44_identity_mapping(self, ip_address, protocol, port, tag=''):
+ """Add DET44 identity mapping (exclude rule)"""
+ flags = NAT_IS_ADDR_ONLY if not (protocol or port) else NAT_IS_NONE
+
+ self.vpp.api.det44_add_del_identity_mapping(
+ is_add=True,
+ addr=ip_address,
+ protocol=protocol,
+ port=port,
+ flags=flags,
+ tag=tag if tag else '',
+ )
+
+ def delete_det44_identity_mapping(self, ip_address, protocol, port, tag=''):
+ """Delete DET44 identity mapping (exclude rule)"""
+ flags = NAT_IS_ADDR_ONLY if not (protocol or port) else NAT_IS_NONE
+
+ self.vpp.api.det44_add_del_identity_mapping(
+ is_add=False,
+ addr=ip_address,
+ protocol=protocol,
+ port=port,
+ flags=flags,
+ tag=tag,
+ )