diff --git a/release/models/interfaces/openconfig-if-ip.yang b/release/models/interfaces/openconfig-if-ip.yang index 90510e9e75..f3c19ae226 100644 --- a/release/models/interfaces/openconfig-if-ip.yang +++ b/release/models/interfaces/openconfig-if-ip.yang @@ -44,7 +44,14 @@ module openconfig-if-ip { Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; - oc-ext:openconfig-version "3.5.0"; + oc-ext:openconfig-version "3.6.0"; + + revision "2023-07-25" { + description + "Add support to configure IPv4 and IPv6 virtual gateways on subinterfaces + and routed vlan interface"; + reference "3.6.0"; + } revision "2023-07-14" { description @@ -847,6 +854,84 @@ module openconfig-if-ip { } } + grouping ipv4-virtual-gateway-config { + description + "IPv4 virtual gateway configuration data on the interface."; + + leaf virtual-address { + type oc-inet:ip-address; + description + "Virtual address for the prefix defined on the interface"; + } + } + + grouping ipv6-virtual-gateway-config { + description + "IPv6 virtual adresss configuration data on the interface."; + + leaf virtual-address { + type oc-inet:ipv6-address; + description + "Virtual address for the prefix defined on the interface"; + } + } + + grouping ipv4-virtual-gateway-top { + description + "Top-level grouping for IPv4 interface virtual gateway"; + + container virtual-gateway { + description + "Top-level container for IPv4 virtual address configured + on the interface."; + + container config { + description + "Configuration data for IPv4 virtual address"; + + uses ipv4-virtual-gateway-config; + } + + container state { + config false; + + description + "Operational state data for IPv4 virtual address configured + on the interface."; + + uses ipv4-virtual-gateway-config; + } + } + } + + grouping ipv6-virtual-gateway-top { + description + "Top-level grouping for IPv6 interface virtual gateway"; + + container virtual-gateway { + description + "Top-level container for IPv6 virtual address configured + on the interface."; + + container config { + description + "Configuration data for IPv6 virtual address"; + + uses ipv6-virtual-gateway-config; + } + + container state { + config false; + + description + "Operational state data for IPv6 virtual address configured + on the interface"; + + uses ipv6-virtual-gateway-config; + } + } + } + grouping ipv6-ra-config { description "Configuration parameters for IPv6 router advertisements."; @@ -1445,6 +1530,42 @@ module openconfig-if-ip { uses ip-vrrp-ipv6-state; } + // Virtual Gateway configuration for IPv4 and IPv6 interfaces. + + augment "/oc-if:interfaces/oc-if:interface/oc-if:subinterfaces/" + + "oc-if:subinterface/oc-ip:ipv4/oc-ip:addresses/oc-ip:address" { + description + "Additional IPv4 virtual gateway configuration"; + + uses ipv4-virtual-gateway-top; + } + + augment "/oc-if:interfaces/oc-if:interface/oc-if:subinterfaces/" + + "oc-if:subinterface/oc-ip:ipv6/oc-ip:addresses/oc-ip:address" { + description + "Additional IPv6 virtual gateway configuration"; + + uses ipv6-virtual-gateway-top; + } + + // Virtual Gateway configuration for routed vlan interface. + + augment "/oc-if:interfaces/oc-if:interface/oc-vlan:routed-vlan/" + + "oc-ip:ipv4/oc-ip:addresses/oc-ip:address" { + description + "Additional IPv4 virtual gateway configuration"; + + uses ipv4-virtual-gateway-top; + } + + augment "/oc-if:interfaces/oc-if:interface/oc-vlan:routed-vlan/" + + "oc-ip:ipv6/oc-ip:addresses/oc-ip:address" { + description + "Additional IPv6 virtual gateway configuration"; + + uses ipv6-virtual-gateway-top; + } + // rpc statements // notification statements