<?xml version="1.0"?> <interfaceDefinition> <node name="nat"> <children> <node name="cgnat" owner="${vyos_conf_scripts_dir}/nat_cgnat.py"> <properties> <help>Carrier-grade NAT (CGNAT) parameters</help> <priority>221</priority> </properties> <children> <leafNode name="log-allocation"> <properties> <help>Log IP address and port allocation</help> <valueless/> </properties> </leafNode> <node name="pool"> <properties> <help>External and internal pool parameters</help> </properties> <children> <tagNode name="external"> <properties> <help>External pool name</help> <valueHelp> <format>txt</format> <description>External pool name</description> </valueHelp> <constraint> #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i> </constraint> <constraintErrorMessage>Name of pool can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage> </properties> <children> <leafNode name="external-port-range"> <properties> <help>Port range</help> <valueHelp> <format>range</format> <description>Numbered port range (e.g., 1001-1005)</description> </valueHelp> <constraint> <validator name="port-range"/> </constraint> </properties> <defaultValue>1024-65535</defaultValue> </leafNode> <node name="per-user-limit"> <properties> <help>Per user limits for the pool</help> </properties> <children> <leafNode name="port"> <properties> <help>Ports per user</help> <valueHelp> <format>u32:1-65535</format> <description>Numeric IP port</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-65535"/> </constraint> </properties> <defaultValue>2000</defaultValue> </leafNode> </children> </node> <tagNode name="range"> <properties> <help>Range of IP addresses</help> <valueHelp> <format>ipv4net</format> <description>IPv4 prefix</description> </valueHelp> <valueHelp> <format>ipv4range</format> <description>IPv4 address range</description> </valueHelp> <constraint> <validator name="ipv4-prefix"/> <validator name="ipv4-host"/> <validator name="ipv4-range"/> </constraint> </properties> <children> <leafNode name="seq"> <properties> <help>Sequence</help> <valueHelp> <format>u32:1-999999</format> <description>Sequence number</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-999999"/> </constraint> <constraintErrorMessage>Sequence number must be between 1 and 999999</constraintErrorMessage> </properties> </leafNode> </children> </tagNode> </children> </tagNode> <tagNode name="internal"> <properties> <help>Internal pool name</help> <valueHelp> <format>txt</format> <description>Internal pool name</description> </valueHelp> <constraint> #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i> </constraint> <constraintErrorMessage>Name of pool can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage> </properties> <children> <leafNode name="range"> <properties> <help>Range of IP addresses</help> <valueHelp> <format>ipv4net</format> <description>IPv4 prefix</description> </valueHelp> <valueHelp> <format>ipv4range</format> <description>IPv4 address range</description> </valueHelp> <constraint> <validator name="ipv4-prefix"/> <validator name="ipv4-host"/> <validator name="ipv4-range"/> </constraint> <multi/> </properties> </leafNode> </children> </tagNode> </children> </node> <tagNode name="rule"> <properties> <help>Rule</help> <valueHelp> <format>u32:1-999999</format> <description>Number for this CGNAT rule</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-999999"/> </constraint> <constraintErrorMessage>Rule number must be between 1 and 999999</constraintErrorMessage> </properties> <children> <node name="source"> <properties> <help>Source parameters</help> </properties> <children> <leafNode name="pool"> <properties> <help>Source internal pool</help> <completionHelp> <path>nat cgnat pool internal</path> </completionHelp> <valueHelp> <format>txt</format> <description>Source internal pool name</description> </valueHelp> <constraint> #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i> </constraint> <constraintErrorMessage>Name of pool can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage> </properties> </leafNode> </children> </node> <node name="translation"> <properties> <help>Translation parameters</help> </properties> <children> <leafNode name="pool"> <properties> <help>Translation external pool</help> <completionHelp> <path>nat cgnat pool external</path> </completionHelp> <valueHelp> <format>txt</format> <description>Translation external pool name</description> </valueHelp> <constraint> #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i> </constraint> <constraintErrorMessage>Name of pool can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage> </properties> </leafNode> </children> </node> </children> </tagNode> </children> </node> </children> </node> </interfaceDefinition>