summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorViacheslav Hletenko <v.gletenko@vyos.io>2026-03-04 17:53:27 +0200
committerGitHub <noreply@github.com>2026-03-04 17:53:27 +0200
commit25925528d06cd557ca380e23ff1dc11670d9bc1f (patch)
tree5b6eaf4b2eb25860dc4f871946e86d27b6a939ce /python
parent9fae68c92fe769da4f877c8df358868812a660ad (diff)
parent80727823e8ac309959a06f8aaeb0e12f2f7a1f43 (diff)
downloadvyos-1x-25925528d06cd557ca380e23ff1dc11670d9bc1f.tar.gz
vyos-1x-25925528d06cd557ca380e23ff1dc11670d9bc1f.zip
Merge pull request #5006 from ritika0313/T7513-CGNAT-exclude-rule-vyos-1x
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,
+ )