@@ -45,7 +45,14 @@ module openconfig-if-ip {
4545 Section 4.c of the IETF Trust's Legal Provisions Relating
4646 to IETF Documents (http://trustee.ietf.org/license-info)." ;
4747
48- oc-ext:openconfig-version "3.9.0" ;
48+ oc-ext:openconfig-version "3.10.0" ;
49+
50+ revision "2026-06-01" {
51+ description
52+ "Add ipv4-address-range typedef; manual-ip-range accepts CIDR
53+ prefix or start-end ip range." ;
54+ reference "3.10.0" ;
55+ }
4956
5057 revision "2025-06-20" {
5158 description
@@ -1311,6 +1318,48 @@ revision "2023-06-30" {
13111318 }
13121319
13131320
1321+ typedef ipv4-address-range {
1322+ type string {
1323+ pattern
1324+ '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
1325+ + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
1326+ + '(-'
1327+ + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
1328+ + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))?' ;
1329+ oc-ext:posix-pattern
1330+ '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
1331+ + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
1332+ + '(-(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
1333+ + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))?$' ;
1334+ }
1335+ description
1336+ "An IPv4 address or address range expressed in dotted-decimal notation.
1337+ A single address (e.g. 10.0.0.1) or a range of two addresses separated
1338+ by a hyphen without spaces: start-end (e.g. 10.0.0.1-10.0.0.5).
1339+ A single address is semantically equivalent to a range where the start
1340+ and end addresses are identical (e.g. 10.0.0.1 is equivalent to
1341+ 10.0.0.1-10.0.0.1).
1342+ When a range is specified, the start address must be numerically less
1343+ than or equal to the end address; validation is enforced by the system." ;
1344+ }
1345+
1346+ grouping ipv4-proxy-arp-manual-ip-range-config {
1347+ description
1348+ "Configuration parameters for a proxy ARP manual IPv4
1349+ ip-range entry." ;
1350+
1351+ leaf ip-range {
1352+ type union {
1353+ type oc-inet:ipv4-prefix;
1354+ type ipv4-address-range;
1355+ }
1356+ description
1357+ "IPv4 ip-range: single IP (CIDR notation, e.g. 10.0.0.0/24) or
1358+ address range (start-end notation, e.g. 10.0.0.1-10.0.0.5)
1359+ for which proxy ARP replies are sent when mode is MANUAL." ;
1360+ }
1361+ }
1362+
13141363 grouping ipv4-proxy-arp-config {
13151364 description
13161365 "Configuration parameters for IPv4 proxy ARP" ;
@@ -1335,6 +1384,14 @@ revision "2023-06-30" {
13351384 and target IP addresses are in different subnets, as well
13361385 as those where they are in the same subnet." ;
13371386 }
1387+ enum MANUAL {
1388+ description
1389+ "Proxy ARP operating mode in which the system responds to
1390+ ARP requests only when the target IPv4 address matches an
1391+ explicitly configured entry in manual-ip-range. In this mode,
1392+ proxy ARP responses are selectively generated based on the ARP
1393+ target IP address." ;
1394+ }
13381395 }
13391396 default "DISABLE" ;
13401397 description
@@ -1345,7 +1402,10 @@ revision "2023-06-30" {
13451402 value is specified, replies are only sent when the target address
13461403 falls outside the locally configured subnets on the interface,
13471404 whereas with the ALL value, all requests, regardless of their
1348- target address are replied to." ;
1405+ target address are replied to. If MANUAL is specified, replies
1406+ are only sent for target addresses matching entries in the
1407+ manual-ip-ranges list, or that match the IP address assigned to
1408+ the receiving interface." ;
13491409 reference "RFC1027: Using ARP to Implement Transparent Subnet Gateways" ;
13501410 }
13511411 }
@@ -1471,6 +1531,50 @@ revision "2023-06-30" {
14711531 "Operational state parameters for proxy ARP" ;
14721532 uses ipv4-proxy-arp-config;
14731533 }
1534+
1535+ container manual-ip-ranges {
1536+ when "../config/mode = 'MANUAL'" {
1537+ description
1538+ "manual-ip-ranges is applicable only when proxy ARP mode
1539+ is MANUAL." ;
1540+ }
1541+ description
1542+ "Collection of IPv4 prefixes or address ranges for which
1543+ proxy ARP replies are sent when mode is MANUAL." ;
1544+
1545+ list manual-ip-range {
1546+ key "ip-range" ;
1547+ description
1548+ "A configured IPv4 ip-range entry for proxy ARP manual
1549+ mode." ;
1550+
1551+ leaf ip-range {
1552+ type leafref {
1553+ path "../config/ip-range" ;
1554+ }
1555+ description
1556+ "IPv4 ip-range for which proxy ARP replies are sent
1557+ when mode is MANUAL." ;
1558+ }
1559+
1560+ container config {
1561+ description
1562+ "Configuration parameters for a proxy ARP manual IPv4
1563+ ip-range entry." ;
1564+
1565+ uses ipv4-proxy-arp-manual-ip-range-config;
1566+ }
1567+
1568+ container state {
1569+ config false ;
1570+ description
1571+ "Operational state parameters for a proxy ARP manual
1572+ IPv4 ip-range entry." ;
1573+
1574+ uses ipv4-proxy-arp-manual-ip-range-config;
1575+ }
1576+ }
1577+ }
14741578 }
14751579
14761580 container neighbors {
0 commit comments