cisco-evpn-service

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

    cisco-evpn-service@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.