This module defines the top level model for evpn service deployment. Copyright (c) 2021 by Cisco Systems, Inc. All rights reserv...
Version: 2020-12-10
module cisco-evpn-service { yang-version 1.1; namespace "http://cisco.com/yang/evpn/cisco-evpn-service"; prefix cisco-evpn-service; import ietf-yang-types { prefix yang; } import ietf-routing-types { prefix ietf-routing-types; } import ietf-inet-types { prefix inet; } import Cisco-IOS-XE-types { prefix ios-types; } organization "Cisco Systems, Inc."; contact "Cisco Systems, Inc. Customer Service Postal: 170 W Tasman Drive San Jose, CA 95134 Tel: +1 1800 553-NETS E-mail: cs-yang@cisco.com"; description "This module defines the top level model for evpn service deployment. Copyright (c) 2021 by Cisco Systems, Inc. All rights reserved."; revision "2020-12-10" { description "Latest."; reference "0.2.0"; } typedef urib-time-str { type string; } typedef urib-counter32 { type uint32; } typedef l3-vrf-name { type string { pattern '[A-Za-z0-9!@#$\^\*=\+\{\}\.;:_-]{1,32}'; } } typedef nw-if-id { type string; } typedef l2rib-mac-rtflags { type string; } typedef l2-mac-type { type enumeration { enum "unknown" { value 0; description "Unknown"; } enum "primary" { value 1; description "Primary"; } enum "gateway" { value 2; description "Gateway"; } enum "overlay" { value 4; description "Overlay"; } enum "primary-vpc-peer" { value 5; description "Primary MAC using VPC peer-link"; } enum "control-plane" { value 6; description "Control Plane"; } enum "vsan" { value 7; description "VSAN"; } } default "primary"; } typedef l2-mac-info { type enumeration { enum "standard" { value 0; description "Standard"; } enum "drop" { value 1; description "Drop"; } enum "svi-down-flood" { value 2; description "SVI DOWN FLOOD"; } enum "sup-inband-cfsoe" { value 3; description "SUP INBAND CFSOE"; } enum "vpc-peer-link" { value 4; description "VPC peer-link"; } enum "nve" { value 5; description "NVE"; } enum "sup-eth" { value 6; description "SUP-ETH"; } } default "standard"; } typedef l2rib-generic-flags { type string; } typedef l2rib-mac-rt-resolution { type enumeration { enum "mac-res-unknown" { value 0; description "MAC resolution unknown; do not use paths from MAC route"; } enum "mac-res-regular" { value 1; description "Do not resolve; use paths from MAC route"; } enum "mac-res-esi" { value 2; description "ESI resolution via EAD routes for EVPN"; } enum "mac-res-bmac" { value 3; description "Populate path-lists indexed by BMAC address."; } enum "mac-res-peer-sync" { value 4; description "Routes from the ESI-peer. No need for Peerid/ESI resolution"; } } } typedef evpn-route-type { type enumeration { enum "ethernet-auto-discovery" { value 1; description "Ethernet auto discovery route"; } enum "mac-ip-advertisement" { value 2; description "Mac-IP advertisement route"; } enum "inclusive-multicast-ethernet-tag" { value 3; description "Inclusive multicast ethernet-tag route"; } enum "ethernet-segment" { value 4; description "Ethernet segment route"; } enum "ip-prefix" { value 5; description "IP prefix route"; } } default "mac-ip-advertisement"; } typedef urib-nexthop-encap { type enumeration { enum "none" { value 0; description "Not set"; } enum "vxlan" { value 1; description " encapsulation"; } enum "invalid" { value 2; description "Invalid"; } } } typedef urib-yes-no { type enumeration { enum "No" { value 0; description "No"; } enum "Yes" { value 1; description "Yes"; } } } typedef zero-based-counter32 { type yang:zero-based-counter32; description "A 32-bit counter. NOTE - This counter type is not currnetly implemented in openconfig-yang-types."; } typedef ethernet-segment-identifier-type { type yang:hex-string { length "29"; } description "10-octet Ethernet segment identifier (esi), ex: 00:5a:5a:5a:5a:5a:5a:5a:5a:5a"; } grouping evpn-global { description "Configuration properties for evpn Fabric"; container global-configs { container peer-config { list bgp { key "bgp-local-as"; leaf bgp-local-as { type uint32; description "bgp as number"; } leaf router-id { type inet:ipv4-address; description "bgp router-id"; } leaf enable-evpn { type boolean; default "true"; description "Enable EVPN BGP"; } leaf enable-trm { type boolean; description "Enable BGP multicast control plane"; } container peers { description "List of peer border and/or control plane node loopback addresses"; list peer { key "loopback-id"; leaf loopback-id { type inet:ip-address; description "IP address of the peer loopback address"; } leaf loopback-source { type uint32; description "Loopback interface identifier"; } } // list peer } // container peers container roles { description "Booleans identifying the roles this device has, Control, Border, Edge"; leaf control-node { type boolean; description "node acts as a control plane node"; } leaf border-node { type boolean; description "node acts as a border node"; } leaf edge-node { type boolean; description "node acts as an edge node"; } } // container roles container l3-vpn-neighbors { container vpnv4-neighbors { list l3-vpnv4-neighbor { key "ipv4-neighbor"; description "l3 VPN neighbors"; leaf ipv4-neighbor { type inet:ipv4-address; description "IP address of the connected router interface (neighbor)"; } leaf remote-as { type uint32; description "as number for remote connected network"; } leaf loopback-source { type uint32; description "Loopback interface identifier"; } } // list l3-vpnv4-neighbor } // container vpnv4-neighbors container vpnv6-neighbors { list l3-vpnv6-neighbor { key "ipv6-neighbor"; description "l3 VPN neighbors"; leaf ipv6-neighbor { type inet:ipv4-address; description "IP address of the connected router interface (neighbor)"; } leaf remote-as { type uint32; description "as number for remote connected network"; } leaf loopback-source { type uint32; description "Loopback interface identifier"; } } // list l3-vpnv6-neighbor } // container vpnv6-neighbors } // container l3-vpn-neighbors } // list bgp } // container peer-config leaf loopback-id { type uint32; description "Loopback interface identifier"; } leaf loopback-ip { type inet:ipv4-address; description "Loopback interface address"; } container dot1x-interfaces { list interface { key "id"; leaf id { type string; description "Name of the interface, e.g. GigabitEthernet1/0/1"; } leaf auth-mode { type enumeration { enum "closed1XMAB" { value 0; description "closed auth"; } enum "closedMAB1X" { value 1; description "closed auth"; } enum "open1XMAB" { value 2; description "open auth"; } enum "openMAB1X" { value 3; description "open auth"; } enum "easy1XMAB" { value 4; description "easy-connect auth"; } enum "easyMAB1X" { value 5; description "easy-connect auth"; } } mandatory true; } leaf wake-on-lan { type boolean; description "true if packet should be sent to wake up hosts"; } leaf timeout { type uint16; description "multiplier (times 3) for time in seconds to wait before falling back to alternate configuration mode"; } } // list interface } // container dot1x-interfaces container acl-configurations { description "ACL configurations for AUTH filtering in IPV4 and IPV6"; list acls { key "acl-name"; leaf acl-name { type string { pattern '(IPV4-.*|IPV6-.*)'; } description "ACL Name passed by DNAC used as the ACL native model ACL name"; } list contract { key "sequence"; leaf sequence { type uint64; description "ACE sequence number controlling the order of ACE application"; } leaf id { type string; description "ACL ACE entry name string saved in the remark filed in the ACE configuration"; } leaf action { type enumeration { enum "DENY" { value 0; } enum "PERMIT" { value 1; } } mandatory true; description "ACE rule action"; } leaf port { type enumeration { enum "bgp" { value 179; } enum "chargen" { value 19; } enum "daytime" { value 13; } enum "discard" { value 9; } enum "domain" { value 53; } enum "echo" { value 7; } enum "finger" { value 79; } enum "ftp" { value 21; } enum "ftp-data" { value 20; } enum "gopher" { value 70; } enum "hostname" { value 101; } enum "ident" { value 113; } enum "irc" { value 194; } enum "klogin" { value 543; } enum "kshell" { value 544; } enum "lpd" { value 515; } enum "msrpc" { value 135; } enum "nntp" { value 119; } enum "pim-auto-rp" { value 496; } enum "pop2" { value 109; } enum "pop3" { value 110; } enum "smtp" { value 25; } enum "sunrpc" { value 111; } enum "tacacs" { value 49; } enum "talk" { value 517; } enum "telnet" { value 23; } enum "time" { value 37; } enum "uucp" { value 540; } enum "whois" { value 43; } enum "www" { value 80; } enum "biff" { value 512; } enum "bootpc" { value 68; } enum "bootps" { value 67; } enum "dnsix" { value 195; } enum "isakmp" { value 500; } enum "mobile-ip" { value 434; } enum "nameserver" { value 42; } enum "netbios-dgm" { value 138; } enum "netbios-ns" { value 137; } enum "netbios-ss" { value 139; } enum "non500-isakmp" { value 4500; } enum "ntp" { value 123; } enum "rip" { value 520; } enum "ripv6" { value 521; } enum "snmp" { value 161; } enum "snmptrap" { value 162; } enum "syslog" { value 514; } enum "tftp" { value 69; } enum "who" { value 513; } enum "xdmcp" { value 177; } } mandatory true; description "traffic type standard port"; } leaf protocol { type enumeration { enum "ahp" { value 0; } enum "eigrp" { value 1; } enum "esp" { value 2; } enum "gre" { value 3; } enum "icmp" { value 4; } enum "igmp" { value 5; } enum "ip" { value 6; } enum "ipinip" { value 7; } enum "nos" { value 8; } enum "object-group" { value 9; } enum "ospf" { value 10; } enum "pcp" { value 11; } enum "pim" { value 12; } enum "tcp" { value 13; } enum "udp" { value 14; } enum "hbh" { value 15; } enum "ipv6" { value 16; } enum "sctp" { value 17; } } mandatory true; description "protocol type"; } } // list contract } // list acls } // container acl-configurations container aaa-configs { description "Global AAA configurations"; container radius-servers { description "radius servers"; list radius-server { key "name"; leaf name { type string; description "server server name"; } leaf address { type inet:ipv4-address; mandatory true; description "server ipv4 address or name"; } leaf key { type string; mandatory true; description "type 7 password"; } } // list radius-server } // container radius-servers container radius-clients { description "dynamic radius clients"; list clients { key "client"; leaf client { type inet:ipv4-address; mandatory true; description "client ipv4 address"; } leaf key { type string; mandatory true; description "type 7 password"; } } // list clients } // container radius-clients } // container aaa-configs container dns-configuration { container name-server { list server { key "server-id"; leaf server-id { type union { type inet:ipv4-address; type inet:ipv6-address; } } } // list server } // container name-server leaf domain-name { type string; description "default domain name"; } } // container dns-configuration } // container global-configs } // grouping evpn-global grouping evpn-l3-instances { container l3-instances { list l3-instance { key "id"; description "evpn instance identifier"; leaf id { type uint32; description "Number used for l3 instance identifier"; } leaf vrf-name { type string; mandatory true; description "The vrf name provided by user."; } leaf core-vlan-id { type uint16; description "VLAN ID l3vni core SVI"; } leaf enable-trm { type enumeration { enum "trm-none" { value 0; description "disable tenant multicast"; } enum "trm-dist-anycast" { value 1; description "distributed-anycast rp placement"; } enum "trm-external-rp" { value 2; description "external rp placement"; } } } leaf mcast-group { type inet:ipv4-address; description "multicast group address"; } leaf rp-address { type inet:ipv4-address; description "RP ip address"; } leaf rp-is-local { type boolean; description "rp is local"; } leaf route-distinquisher { type ios-types:asn-ip-type; mandatory true; description "RD for this l3-instance"; } container rt-imports { list rt-import { key "id"; description "list of rt-imports for this l3-instance"; leaf id { type ios-types:asn-ip-type; description "rt import e.g. route-target import 300:5555 stitching where 300:5555 is the id"; } } // list rt-import } // container rt-imports container rt-exports { list rt-export { key "id"; description "list of rt-exports for this l3-instance"; leaf id { type ios-types:asn-ip-type; description "rt export e.g. route-target export 300:5555 stitching where 300:5555 is the id"; } } // list rt-export } // container rt-exports container l3-vpn-ics { container l3-vpn-rt-imports { list l3-vpn-rt-import-ipv4 { key "id"; description "list of rt-imports for this l3-instance"; leaf id { type ios-types:asn-ip-type; description "rt import e.g. route-target import 300:5555 where 300:5555 is the id"; } } // list l3-vpn-rt-import-ipv4 list l3-vpn-rt-import-ipv6 { key "id"; description "list of rt-imports for this l3-instance"; leaf id { type ios-types:asn-ip-type; description "rt import e.g. route-target import 300:5555 where 300:5555 is the id"; } } // list l3-vpn-rt-import-ipv6 } // container l3-vpn-rt-imports container l3-vpn-rt-exports { list l3-vpn-rt-export-ipv4 { key "id"; description "list of rt-exports for this l3-instance"; leaf id { type ios-types:asn-ip-type; description "rt import e.g. route-target export 300:5555 where 300:5555 is the id"; } } // list l3-vpn-rt-export-ipv4 list l3-vpn-rt-export-ipv6 { key "id"; description "list of rt-exports for this l3-instance"; leaf id { type ios-types:asn-ip-type; description "rt import e.g. route-target export 300:5555 where 300:5555 is the id"; } } // list l3-vpn-rt-export-ipv6 } // container l3-vpn-rt-exports } // container l3-vpn-ics container vrf-lite-ics { list vrf-lite-ic { key "handoff-interface"; description "vrf-lite ic interconnect"; leaf handoff-interface { type string; description "Main interface name for border handoff"; } leaf handoff-dot1qtag { type string; mandatory true; description "dot1q tag to use to tag traffic to peering devices"; } leaf local-ipv4-address { type inet:ipv4-address; description "ipv4 address for local interface"; } leaf local-ipv4-mask { type inet:ipv4-address; description "ipv4 mask for local interface"; } leaf local-ipv6 { type inet:ipv6-prefix; description "IPv6 prefix"; } leaf remote-as { type uint32; description "as number for remote connected network"; } leaf remote-ipv4 { type inet:ipv4-address; description "IP address of the connected router interface (neighbor)"; } leaf remote-ipv6 { type inet:ipv6-address; description "IPv6 address of the connected router interface (neighbor) 10::2"; } } // list vrf-lite-ic } // container vrf-lite-ics container networks { description "list of network definitions to include in bgp address-family"; list ipv4-network { key "network mask"; description "list of network definitions"; leaf network { type inet:ipv4-address; description "ipv4 address for statically defined network"; } leaf mask { type inet:ipv4-address; description "ipv4 mask for statically defined network"; } } // list ipv4-network list ipv6-network { key "prefix"; description "list of network definitions"; leaf prefix { type ios-types:ipv6-prefix; description "ipv6 prefix for statically defined network"; } } // list ipv6-network } // container networks container default-routes { description "optional default route for vrf"; list default-route { key "prefix mask"; description "list of default routes for l3-instance"; leaf prefix { type inet:ipv4-address; description "IPv4 address"; } leaf mask { type inet:ipv4-address; description "IPv4 mask"; } list destination { key "address"; description "default route destination"; leaf address { type inet:ipv4-address; description "IPv4 default route"; } } // list destination } // list default-route } // container default-routes } // list l3-instance } // container l3-instances } // grouping evpn-l3-instances grouping evpn-l2-instances { container l2-instances { list l2-instance { key "id"; description "evpn instance identifier"; leaf id { type uint32; description "Number used for the evpn instance and vlan"; } leaf vrf-name { type string; mandatory true; description "The vrf name provided by user."; } leaf vni-id { type uint32; mandatory true; description "VNI number used for l2 instance"; } leaf evpn-extension { type boolean; description "True if evpn configuration extensions applied to l2-instances"; } leaf ipv4-address { type inet:ipv4-address; description "IPv4 address subnet for L2 VNI use"; } leaf ipv4-mask { type inet:ipv4-address; description "IPv4 address subnet mask for L2 VNI use"; } leaf ipv6-prefix { type inet:ipv6-prefix; description "IPv6 address subnet for L2 VNI use"; } leaf unicast-replication { type boolean; description "True enables unicast replication for the evpn control plane"; } leaf mcast-group { type inet:ipv4-address; description "Multicast group address for replication"; } leaf ipv4-dhcp-helper { type inet:ipv4-address; description "V4 dhcp helper address"; } leaf ipv6-dhcp-relay { type inet:ipv6-address; description "V6 dhcp relay address"; } container access-interfaces { list access-interface { key "id"; leaf id { type string; description "Name of the access interface, e.g. GigabitEthernet1/0/1"; } leaf ap-access-node { type boolean; description "true if AP is connected to access-node"; } } // list access-interface } // container access-interfaces container trunk-interfaces { list trunk-interface { key "id"; leaf id { type string; description "Name of trunk interface, e.g. GigabitEthernet1/0/1"; } } // list trunk-interface } // container trunk-interfaces } // list l2-instance } // container l2-instances } // grouping evpn-l2-instances grouping end-point-oper-data-group { container mac-address-data { description "Oper data between endpoint, connected interface and vlan"; list mac-address-list { key "mac-address"; uses mac-address-table-group; } // list mac-address-list } // container mac-address-data } // grouping end-point-oper-data-group grouping route-type-data-group { container evpn-route-information { description "BGP evpn route information"; container type1-ethernet-auto-discovery-route { description "ethernet-auto-discovery-route"; uses route-rd-rt-grp; leaf ethernet-segment-identifier { type ethernet-segment-identifier-type; description "Ethernet segment identifier (esi)"; } leaf ethernet-tag { type uint32; description "An ethernet tag (etag) indentifying a broadcast domain"; } list path { key "next-hop"; description "path"; uses next-hop-label-grp; uses path-detail-grp; } // list path } // container type1-ethernet-auto-discovery-route container type2-mac-ip-advertisement-route { description "mac-ip-advertisement-route"; uses route-rd-rt-grp; leaf ethernet-segment-identifier { type ethernet-segment-identifier-type; description "Ethernet segment identifier (esi)"; } leaf ethernet-tag { type uint32; description "An ethernet tag (etag) indentifying a broadcast domain"; } leaf mac-address { type yang:mac-address; description "Route mac address"; } leaf mac-address-length { type uint8 { range "0..48"; } description "mac address length"; } leaf ip-prefix { type inet:ip-prefix; description "ip-prefix"; } list path { key "next-hop"; description "path"; uses next-hop-label-grp; uses next-hop-label2-grp; uses path-detail-grp; } // list path } // container type2-mac-ip-advertisement-route container type3-inclusive-multicast-ethernet-tag-route { description "inclusive-multicast-ethernet-tag-route"; uses route-rd-rt-grp; leaf originator-ip-prefix { type inet:ip-prefix; description "originator-ip-prefix"; } list path { key "next-hop"; description "path"; uses next-hop-label-grp; uses path-detail-grp; } // list path } // container type3-inclusive-multicast-ethernet-tag-route container type4-ethernet-segment-route { description "ethernet-segment-route"; uses route-rd-rt-grp; leaf ethernet-segment-identifier { type ethernet-segment-identifier-type; description "Ethernet segment identifier (esi)"; } leaf originator-ip-prefix { type inet:ip-prefix; description "originator ip-prefix"; } list path { key "next-hop"; description "path"; leaf next-hop { type inet:ip-address; description "next-hop"; } uses path-detail-grp; } // list path } // container type4-ethernet-segment-route container type5-ip-prefix-route { description "ip-prefix route"; container route-rd-rt-grp; leaf ethernet-segment-identifier { type ethernet-segment-identifier-type; description "Ethernet segment identifier (esi)"; } leaf ip-prefix { type inet:ip-prefix; description "ip-prefix"; } list path { key "next-hop"; description "path"; uses next-hop-label-grp; uses path-detail-grp; } // list path } // container type5-ip-prefix-route } // container evpn-route-information container statistics { description "Statistics"; leaf tx-count { type zero-based-counter32; description "transmission count"; } leaf rx-count { type zero-based-counter32; description "receive count"; } container detail { description "Detailed statistics"; leaf broadcast-tx-count { type zero-based-counter32; description "broadcast transmission count"; } leaf broadcast-rx-count { type zero-based-counter32; description "broadcast receive count"; } leaf multicast-tx-count { type zero-based-counter32; description "multicast transmission count"; } leaf multicast-rx-count { type zero-based-counter32; description "multicast receive count"; } leaf unknown-unicast-tx-count { type zero-based-counter32; description "unknown unicast transmission count"; } leaf unknown-unicast-rx-count { type zero-based-counter32; description "unknown-unicast receive count"; } } // container detail } // container statistics } // grouping route-type-data-group grouping mac-address-table-group { description "MAC Address Entry"; leaf mac-address { type yang:mac-address; description "MAC"; } leaf type { type l2-mac-type; description "Type"; } leaf static { type boolean; description "Static"; } leaf age { type uint32; description "Age - seconds since last seen"; } leaf port { type nw-if-id; description "Port"; } leaf mac-info { type l2-mac-info; description "Additional Information on the MAC"; } } // grouping mac-address-table-group grouping layer2-routing-group { description "Mac Producer Object"; leaf vlan-id { type uint16 { range "1..4094"; } description "Vlan"; } leaf mac-address { type yang:mac-address; description "MAC address of mac route object"; } leaf producer { type string; description "Name of mac route producer"; } leaf flags { type l2rib-mac-rtflags; description "List of flags enabled for mac-route"; } leaf generic-flags { type l2rib-generic-flags; description "Generic flags of l2rib object"; } leaf seq-number { type uint32; description "Sequence Number"; } leaf nh { type string; description "List of next-hop address"; } leaf rt-resolutionn { type l2rib-mac-rt-resolution; description "MAC route resolution"; } leaf fwd-state { type string; description "Forwarding state"; } leaf sent-to { type string; description "List of clients notified about object"; } leaf esi { type string; description "Ethernet-segment identifier"; } leaf pc-info { type string; description "Name of port channel Interface"; } leaf site-origin { type string; description "Site of origin"; } leaf path-list-next-hop { type string; description "Resultant next hop of path-list category"; } } // grouping layer2-routing-group grouping mac-ip-vrf-group { description "Mac IP VRF Object"; leaf vlan-id { type uint16 { range "1..4094"; } description "Vlan"; } leaf mac-address { type yang:mac-address; description "MAC address of mac route object"; } leaf host-ip { type inet:ip-address; description "Host IP Address"; } leaf producer { type string; description "Name of mac route producer"; } leaf flags { type l2rib-mac-rtflags; description "List of flags enabled for mac-route"; } leaf generic-flags { type l2rib-generic-flags; description "Generic flags of l2rib object"; } leaf seq-number { type uint32; description "Sequence Number"; } leaf nh { type string; description "List of next-hop address"; } leaf rt-resolutionn { type l2rib-mac-rt-resolution; description "MAC route resolution"; } leaf fwd-state { type string; description "Forwarding state"; } leaf sent-to { type string; description "List of clients notified about object"; } leaf esi { type string; description "Ethernet-segment identifier"; } leaf pc-info { type string; description "Name of port channel Interface"; } leaf site-origin { type string; description "Site of origin"; } leaf path-list-next-hop { type string; description "Resultant next hop of path-list category"; } } // grouping mac-ip-vrf-group grouping end-host-movement-group { description "End Host Group Object"; leaf mac-address { type yang:mac-address; description "MAC address of mac route object"; } leaf host-ip { type inet:ip-address; description "Host IP Address"; } leaf vrf { type string; description "HMM Host Routing Table VRF"; } leaf svi { type string; description "SVI"; } leaf flags { type string; description "Not sure"; } leaf physical-interface { type nw-if-id; description "Physical Interface Name"; } } // grouping end-host-movement-group grouping ipv4-rib-group { description "Urib ipv4 root element"; container table4-items { description "IPv4 urib table."; list table4-list { key "vrf-name"; description "IPv4 urib table. list"; uses urib-table4-group; } // list table4-list } // container table4-items } // grouping ipv4-rib-group grouping urib-table4-group { description "IPv4 urib table."; leaf vrf-name { type l3-vrf-name; description "VRF name"; } leaf routeCount { type urib-counter32; description "Total number of route in this table"; } container recursive-nexthop4-items { description "ipv4 recursive next-hop"; list recursive-nextHop4-list { key "ip-prefix"; description "ipv4 recursive next-hop list"; uses urib-recursive-nexthop4-group; } // list recursive-nextHop4-list } // container recursive-nexthop4-items container route4-items { description "ipv4 route"; list route4-list { key "ip-prefix"; description "ipv4 route list"; uses urib-route4-group; } // list route4-list } // container route4-items container summary-items { description "IPv4 urib table summary."; uses urib-summary-table4-group; } // container summary-items } // grouping urib-table4-group grouping ipv6-rib-group { description "Urib ipv6 root element"; container table6-items { description "IPv6 urib table list"; uses urib-table6-group; } // container table6-items } // grouping ipv6-rib-group grouping urib-table6-group { description "IPv6 urib table"; leaf vrfName { type l3-vrf-name; description "VRF name"; } leaf route-count { type urib-counter32; description "Total number of route in this table"; } container recursive-nexthop6-items { description "ipv6 recursive next-hop"; list recursive-nexthop6-list { key "ip-prefix"; description "ipv6 recursive next-hop list"; uses urib-recursive-nexthop6-group; } // list recursive-nexthop6-list } // container recursive-nexthop6-items container route6-items { description "ipv6 urib route"; list route6-list { key "ip-prefix"; description "ipv6 urib route list"; uses urib-route6-group; } // list route6-list } // container route6-items container summary-items { description "IPv6 urib table summary."; uses urib-summary-table6-group; } // container summary-items } // grouping urib-table6-group grouping route-rd-rt-grp { description "A grouping for a route's route distinguishers and route targets"; list rd-rt { key "route-distinguisher"; description "A list of route distinguishers and corresponding VPN route targets"; leaf route-distinguisher { type ios-types:cisco-route-distinguisher; description "Route distinguisher"; } list vpn-target { key "route-target"; description "A list of route targets"; leaf route-target { type ietf-routing-types:route-target; description "BGP route target"; } } // list vpn-target } // list rd-rt } // grouping route-rd-rt-grp grouping next-hop-label-grp { description "next-hop-label-grp"; leaf next-hop { type inet:ip-address; description "next-hop"; } leaf label { type uint32; description "label"; } } // grouping next-hop-label-grp grouping path-detail-grp { description "path-detail-grp"; container detail { description "path details"; container attributes { description "attributes"; leaf-list extended-community { type string; description "extended-community"; } } // container attributes leaf bestpath { type empty; description "Indicate this path is the best path"; } } // container detail } // grouping path-detail-grp grouping next-hop-label2-grp { description "next-hop-label2-grp"; leaf label2 { type uint32; description "label2"; } } // grouping next-hop-label2-grp grouping urib-recursive-nexthop4-group { description "ipv4 recursive next-hop"; leaf ip-prefix { type inet:ip-prefix; description "RNH address with mask"; } leaf uptime { type urib-time-str; description "Elapsed time since this RNH has been added/modified."; } leaf multipath { type boolean; description "Used for eibgp mixed-path purpose"; } leaf owner { type string; description "The owners of this RNH"; } leaf restricted { type boolean; description "In restricted mode, i.e. cannot be resolved with the default route 0/0"; } leaf stale-owner { type string; description "The stale owners of this RNH"; } leaf upath-epoch { type uint32; description "Epoch of the unicast path"; } leaf ref-count { type uint32; description "The reference count of this RNH"; } leaf pending-ufdm { type boolean; description "Waiting to be send to UFDM."; } leaf pending-cc { type boolean; description "Waiting to be send to UFDM for inconsistency check"; } leaf upath-resolved-clients { type string; description "The routing protocols want to resolve this RNH with unicast paths"; } leaf mpath-epoch { type uint32; description "Epoch of the path used for multicast purpose"; } leaf mpath-resolved-clients { type string; description "The routing protocols want to resolve this RNH with the paths for multicast purpose"; } container rnhpath4-items { description "IPv4 recursive next-hop resolved path."; list recursive-nexthop-path4-list { key "id"; description "IPv4 recursive next-hop resolved path. list"; uses urib-recursive-nexthop-path4-group; } // list recursive-nexthop-path4-list } // container rnhpath4-items } // grouping urib-recursive-nexthop4-group grouping urib-route4-group { description "ipv4 route"; leaf ip-prefix { type inet:ip-prefix; description "Route address with mask"; } leaf ubest-nexthop-count { type uint32; description "Number of unicast best next hop"; } leaf mbest-nexthop-count { type uint32; description "Number of multicast best next hop"; } leaf flags { type uint32; description "Route flags."; } leaf sort-key { type uint32; description "Eibgp mixed-path sort key."; } leaf pending-ufdm { type boolean; description "Waiting to be send to UFDM."; } leaf pending-hw { type boolean; description "UFDM sent, waiting for ack from HW."; } container nh4-items { description "IPV4 next hop."; list nexthop4-list { key "id"; description "IPV4 next hop. list"; uses urib-nexthop4-group; } // list nexthop4-list } // container nh4-items } // grouping urib-route4-group grouping urib-summary-table4-group { description "IPv4 urib table summary."; leaf route-total { type uint32; description "Total route count."; } leaf uroute-total { type uint32; description "unicast route count."; } leaf path-total { type uint32; description "Total path count."; } leaf mpath-total { type uint32; description "multicast path count."; } leaf routes-per-subnet { type string; description "Total number of route per mask in this table"; } } // grouping urib-summary-table4-group grouping urib-recursive-nexthop6-group { description "ipv6 recursive next-hop"; leaf ip-prefix { type inet:ip-prefix; description "RNH address with mask"; } leaf uptime { type urib-time-str; description "Elapsed time since this RNH has been added/modified."; } leaf multipath { type boolean; description "Used for eibgp mixed-path purpose"; } leaf owner { type string; description "The owners of this RNH"; } leaf restricted { type boolean; description "In restricted mode, i.e. cannot be resolved with the default route 0/0"; } leaf stale-owner { type string; description "The stale owners of this RNH"; } leaf upath-epoch { type uint32; description "Epoch of the unicast path"; } leaf ref-count { type uint32; description "The reference count of this RNH"; } leaf pending-ufdm { type boolean; description "Waiting to be send to UFDM."; } leaf pending-cc { type boolean; description "Waiting to be send to UFDM for inconsistency check"; } leaf upath-resolved-clients { type string; description "The routing protocols want to resolve this RNH with unicast paths"; } leaf mpath-epoch { type uint32; description "Epoch of the path used for multicast purpose"; } leaf mpath-resolved-clients { type string; description "The routing protocols want to resolve this RNH with the paths for multicast purpose"; } container rnhpath6-items { description "IPv6 recursive next-hop resolved path."; list recursive-nexthop-path6-list { key "id"; description "IPv6 recursive next-hop resolved path. list"; uses urib-recursive-nexthop-path6-group; } // list recursive-nexthop-path6-list } // container rnhpath6-items } // grouping urib-recursive-nexthop6-group grouping urib-route6-group { description "ipv6 urib route"; leaf ip-prefix { type inet:ip-prefix; description "Route address with mask"; } leaf ubest-nexthop-count { type uint32; description "Number of unicast best next hop"; } leaf mbest-nexthop-count { type uint32; description "Number of multicast best next hop"; } leaf flags { type uint32; description "Route flags."; } leaf sort-key { type uint32; description "Eibgp mixed-path sort key."; } leaf pending-ufdm { type boolean; description "Waiting to be send to UFDM."; } leaf pending-hw { type boolean; description "UFDM sent, waiting for ack from HW."; } container nh6-items { description "ipv6 next hop"; list nextHop6-list { key "id"; description "ipv6 next hop list"; uses urib-nexthop6-group; } // list nextHop6-list } // container nh6-items } // grouping urib-route6-group grouping urib-summary-table6-group { description "IPv6 urib table summary."; leaf route-total { type uint32; description "Total route count."; } leaf uroute-total { type uint32; description "unicast route count."; } leaf path-total { type uint32; description "Total path count."; } leaf mpath-total { type uint32; description "multicast path count."; } leaf routes-per-subnet { type string; description "Total number of route per mask in this table"; } } // grouping urib-summary-table6-group grouping urib-recursive-nexthop-path4-group { description "IPv4 recursive next-hop resolved path."; leaf id { type uint32; description "Unique id among all paths of the recursive next-hop. Only used internally."; } leaf path-type { type string; description "Path used for unicast or multicast purpose"; } leaf address { type inet:ip-address; description "Resolved RNH path address."; } leaf vrf { type l3-vrf-name; description "VRF name of the resolved RNH path."; } leaf interface-name { type string; description "Interface name of the resolved RNH path."; } leaf binding-label { type uint32; description "SRTE binding label of the resolved RNH path."; } leaf segment-id { type uint32; description "Client provided segment ID. 0 means not set."; } leaf tunnel-id { type uint32; description "Client provided tunnel ID. 0 means not set."; } leaf vtep-ip-address { type inet:ip-address; description " VTEP IP address."; } leaf vtep-underlay-vrf-id { type uint32; description " VTEP underlay VRF ID."; } leaf label-stack { type string; description "MPLS label stack of the resolved RNH path.."; } leaf label-type { type string; description "Label stack type of the resolved RNH path.."; } } // grouping urib-recursive-nexthop-path4-group grouping urib-nexthop4-group { description "IPV4 next hop."; leaf id { type uint32; description "Unique id among all nh of the route. Only used internally."; } leaf address { type inet:ip-address; description "Next-hop address."; } leaf binding-label { type uint32; description "SRTE binding label"; } leaf is-best { type boolean; description "Is the next-hop in the best list"; } leaf vrf { type l3-vrf-name; description "VRF name."; } leaf interface-name { type string; description "Interface name."; } leaf owner { type string; description "local, attached-export, static or unknown."; } leaf preference { type uint32; description "Preference."; } leaf metric { type uint32; description "Metric."; } leaf uptime { type urib-time-str; description "Elapsed time since this next hop has been added/modified."; } leaf route-type { type string; description "Type."; } leaf tag { type uint32; description "Client defined tag."; } leaf segment-id { type uint32; description "Client provided segment ID. 0 means not set."; } leaf segid-type { type string; description "Client provided segment type. 0 means not set."; } leaf source-id { type uint32; description "Client provided source ID. 0 means not set."; } leaf tunnel-id { type uint32; description "Client provided tunnel ID. 0 means not set."; } leaf encap-type { type urib-nexthop-encap; description "Either or none."; } leaf vtep-ip-address { type inet:ip-address; description " VTEP IP address."; } leaf vtep-underlay-vrf-id { type uint32; description " VTEP underlay VRF ID."; } leaf label-stack { type string; description "MPLS label stack."; } leaf nhlfe-owner { type string; description "nhlfe owner name."; } leaf clientData { type urib-yes-no; description "Yes if client put data in the next-hop."; } leaf recursive-nexthop-prefix { type inet:ip-address; description "Recursive nexthop."; } leaf xri-bgp-origin { type string; description "Extended route information comming from BGP."; } leaf xri-bgp-Peer { type string; description "Extended route information comming from BGP."; } leaf tlv { type string; description "Type-Length-Value; client provided opaque data."; } leaf tlv-extended-community { type string; description "Type-Length-Value."; } leaf tlv-attach-export { type string; description "Type-Length-Value."; } leaf flags { type uint32; description "Flags, each bit has a different meaning."; } leaf nhlfe-flags { type uint32; description "Next-hop Label Forwarding flags."; } leaf tlv-type { type uint32; description "Type-Length-Value type."; } container srv6-info4-items { description "Srv6 info associated with an IPv4 next hop."; uses urib-nexthop-srv6-info4-group; } // container srv6-info4-items } // grouping urib-nexthop4-group grouping urib-recursive-nexthop-path6-group { description "IPv6 recursive next-hop resolved path."; leaf id { type uint32; description "Unique id among all paths of the recursive next-hop. Only used internally."; } leaf path-type { type string; description "Path used for unicast or multicast purpose"; } leaf address { type inet:ip-address; description "Resolved RNH path address."; } leaf vrf { type l3-vrf-name; description "VRF name of the resolved RNH path."; } leaf interface-name { type string; description "Interface name of the resolved RNH path."; } leaf binding-label { type uint32; description "SRTE binding label of the resolved RNH path."; } leaf segment-id { type uint32; description "Client provided segment ID. 0 means not set."; } leaf tunnel-id { type uint32; description "Client provided tunnel ID. 0 means not set."; } leaf vtep-ip-address { type inet:ip-address; description " VTEP IP address."; } leaf vtep-underlay-vrf-id { type uint32; description " VTEP underlay VRF ID."; } leaf label-stack { type string; description "MPLS label stack of the resolved RNH path.."; } leaf label-type { type string; description "Label stack type of the resolved RNH path.."; } } // grouping urib-recursive-nexthop-path6-group grouping urib-nexthop6-group { description "ipv6 next hop"; leaf id { type uint32; description "Unique id among all nh of the route. Only used internally."; } leaf address { type inet:ip-address; description "Next-hop address."; } leaf binding-label { type uint32; description "SRTE binding label"; } leaf isbest { type boolean; description "Is the next-hop in the best list"; } leaf vrf { type l3-vrf-name; description "VRF name."; } leaf interface-name { type string; description "Interface name."; } leaf owner { type string; description "local, attached-export, static or unknown."; } leaf preference { type uint32; description "Preference."; } leaf metric { type uint32; description "Metric."; } leaf uptime { type urib-time-str; description "Elapsed time since this next hop has been added/modified."; } leaf route-type { type string; description "Type."; } leaf tag { type uint32; description "Client defined tag."; } leaf segment-id { type uint32; description "Client provided segment ID. 0 means not set."; } leaf segid-type { type string; description "Client provided segment type. 0 means not set."; } leaf source-id { type uint32; description "Client provided source ID. 0 means not set."; } leaf tunnel-id { type uint32; description "Client provided tunnel ID. 0 means not set."; } leaf encap-type { type urib-nexthop-encap; description "Either or none."; } leaf vtep-ip-address { type inet:ip-address; description " VTEP IP address."; } leaf vtep-underlay-vrf-id { type uint32; description " VTEP underlay VRF ID."; } leaf label-stack { type string; description "MPLS label stack."; } leaf nhlfe-owner { type string; description "nhlfe owner name."; } leaf client-data { type urib-yes-no; description "Yes if client put data in the next-hop."; } leaf recursive-nexthop-prefix { type inet:ip-address; description "Recursive nexthop."; } leaf xri-bgp-origin { type string; description "Extended route information comming from BGP."; } leaf xri-bgp-peer { type string; description "Extended route information comming from BGP."; } leaf tlv { type string; description "Type-Length-Value; client provided opaque data."; } leaf tlv-extended-community { type string; description "Type-Length-Value."; } leaf tlv-attach-export { type string; description "Type-Length-Value."; } leaf flags { type uint32; description "Flags, each bit has a different meaning."; } leaf nhlfe-flags { type uint32; description "Next-hop Label Forwarding flags."; } leaf tlv-type { type uint32; description "Type-Length-Value type."; } container srv6-info6-items { description "Srv6 info associated with an IPv6 next hop."; uses urib-nexthop-srv6-info6-group; } // container srv6-info6-items } // grouping urib-nexthop6-group grouping urib-nexthop-srv6-info4-group { description "Srv6 info associated with an IPv4 next hop."; leaf source-ip { type inet:ip-address; description "Source IP adress used for SRv6 encapsulation."; } leaf function-id { type uint64; description "Function ID used for handling SRv6 routes."; } leaf binding-sid { type inet:ip-address; description "Binding SID used for SRv6-TE."; } container remotes-id4-items { description "Remote SID used for an IPv4 next hop."; list nexthop-srv6-remote-sid4-list { key "id"; description "Remote SID used for an IPv4 next hop. list"; uses urib-nexthop-srv6-remote-sid4-group; } // list nexthop-srv6-remote-sid4-list } // container remotes-id4-items } // grouping urib-nexthop-srv6-info4-group grouping urib-nexthop-srv6-info6-group { description "Srv6 info associated with an IPv6 next hop."; leaf source-ip { type inet:ip-address; description "Source IP adress used for SRv6 encapsulation."; } leaf function-id { type uint64; description "Function ID used for handling SRv6 routes."; } leaf binding-sid { type inet:ip-address; description "Binding SID used for SRv6-TE."; } container remote-sid6-items { description "Remote SID used for an IPv6 next hop."; list nexthop-srv6-remote-sid6-list { key "id"; description "Remote SID used for an IPv6 next hop. list"; uses urib-nexthop-srv6-remote-sid6-group; } // list nexthop-srv6-remote-sid6-list } // container remote-sid6-items } // grouping urib-nexthop-srv6-info6-group grouping urib-nexthop-srv6-remote-sid4-group { description "Remote SID used for an IPv4 next hop."; leaf id { type uint32; description "Unique id among all remote SID of a next-hop. Only used internally."; } leaf remote-sid { type inet:ip-address; description "Remote SID used for SRv6 next-hops."; } } // grouping urib-nexthop-srv6-remote-sid4-group grouping urib-nexthop-srv6-remote-sid6-group { description "Remote SID used for an IPv6 next hop."; leaf id { type uint32; description "Unique id among all remote SID of a next-hop. Only used internally."; } leaf remote-sid { type inet:ip-address; description "Remote SID used for SRv6 next-hops."; } } // grouping urib-nexthop-srv6-remote-sid6-group grouping evpn-config { description "Top-level grouping for evpn configuration."; container evpn-config { description "Top container for evpn configuration."; uses evpn-global; uses evpn-l3-instances; uses evpn-l2-instances; } // container evpn-config } // grouping evpn-config grouping evpn-oper { container evpn-oper { config false; container fabric-oper-views { container view-end-point { list end-point-list { key "vlan-id mac-address ip-prefix"; leaf vlan-id { type uint16 { range "1..4094"; } description "Vlan Identifier"; } leaf mac-address { type yang:mac-address; description "MAC address Identifier"; } leaf ip-prefix { type inet:ip-prefix; description "IPv4 or IPv6 Prefix"; } uses end-point-oper-data-group; } // list end-point-list } // container view-end-point container view-route-type { list route-type-list { key "vlan-id route-type"; leaf vlan-id { type uint16 { range "1..4094"; } description "Vlan Identifier"; } leaf route-type { type evpn-route-type; description " EVPN Route-Type Identifier"; } uses route-type-data-group; } // list route-type-list } // container view-route-type container view-vlan { list vlan-list { key "vlan-id"; leaf vlan-id { type uint16 { range "1..4094"; } description "Vlan Identifier"; } uses end-point-oper-data-group; } // list vlan-list } // container view-vlan } // container fabric-oper-views } // container evpn-oper } // grouping evpn-oper grouping evpn-top { description "Top-level grouping for evpn model."; container evpn-service { description "Top most container for evpn management."; uses evpn-config; uses evpn-oper; } // container evpn-service } // grouping evpn-top uses evpn-top; } // module cisco-evpn-service
© 2023 YumaWorks, Inc. All rights reserved.