Cisco-IOS-XR-subscriber-infra-tmplmgr-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR subscriber-infra-tmplmgr package configuration. This mod...

  • Version: 2019-04-05

    Cisco-IOS-XR-subscriber-infra-tmplmgr-cfg@2019-04-05


    
      module Cisco-IOS-XR-subscriber-infra-tmplmgr-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-subscriber-infra-tmplmgr-cfg";
    
        prefix subscriber-infra-tmplmgr-cfg;
    
        import Cisco-IOS-XR-types {
          prefix xr;
        }
        import cisco-semver {
          prefix semver;
        }
    
        organization "Cisco Systems, Inc.";
    
        contact
          "Cisco Systems, Inc.
    Customer Service
    
    Postal: 170 West Tasman Drive
    San Jose, CA 95134
    
    Tel: +1 800 553-NETS
    
    E-mail: cs-yang@cisco.com";
    
        description
          "This module contains a collection of YANG definitions
    for Cisco IOS-XR subscriber-infra-tmplmgr package configuration.
    
    This module contains definitions
    for the following management objects:
      dynamic-template: All dynamic template configurations
    
    Copyright (c) 2013-2019 by Cisco Systems, Inc.
    All rights reserved.";
    
        revision "2019-04-05" {
          description
            "Establish semantic version baseline.";
        }
    
        revision "2015-01-07" {
          description "IOS XR 5.3.1 revision.";
        }
    
        semver:module-version "1.0.1";
    
        container dynamic-template {
          description
            "All dynamic template configurations";
          container ppps {
            description
              "Templates of the PPP Type";
            list ppp {
              key "template-name";
              description
                "A Template of the PPP Type";
              leaf template-name {
                type xr:Cisco-ios-xr-string;
                description
                  "The name of the template";
              }
    
              container igmp {
                description "IGMPconfiguration";
                container default-vrf {
                  description "Default VRF";
                  container max-groups {
                    presence
                      "Indicates a max-groups node is configured.";
                    description
                      "IGMP Max Groups";
                    leaf max-groups {
                      type uint32 {
                        range "1..40000";
                      }
                      mandatory true;
                      description
                        "Maximum number of groups accepted per
    interface by this router";
                    }
    
                    leaf threshold {
                      type uint32 {
                        range "1..40000";
                      }
                      description
                        " Threshold for number of groups accepted per
    interface by this router";
                    }
    
                    leaf access-list-name {
                      type xr:Cisco-ios-xr-string {
                        length "1..64";
                      }
                      description
                        "Access-list to account for";
                    }
                  }  // container max-groups
    
                  container explicit-tracking {
                    presence
                      "Indicates a explicit-tracking node is configured.";
                    description
                      "IGMPv3 explicit host tracking";
                    leaf enable {
                      type boolean;
                      mandatory true;
                      description
                        "Enable or disable, when value is TRUE or
    FALSE respectively";
                    }
    
                    leaf access-list-name {
                      type xr:Cisco-ios-xr-string {
                        length "1..64";
                      }
                      description
                        "Access list specifying tracking group range";
                    }
                  }  // container explicit-tracking
    
                  leaf access-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    description
                      "Access list specifying access-list group range";
                  }
    
                  leaf version {
                    type uint32 {
                      range "1..3";
                    }
                    default "3";
                    description "IGMP Version";
                  }
    
                  leaf query-interval {
                    type uint32 {
                      range "1..3600";
                    }
                    units "second";
                    default "60";
                    description
                      "Query interval in seconds";
                  }
    
                  leaf query-max-response-time {
                    type uint32 {
                      range "1..25";
                    }
                    units "second";
                    default "10";
                    description
                      "Query response value in seconds";
                  }
    
                  leaf multicast-mode {
                    type Dyn-tmpl-multicast-mode;
                    description
                      "Configure Multicast mode variable";
                  }
                }  // container default-vrf
              }  // container igmp
    
              leaf vrf {
                type xr:Cisco-ios-xr-string {
                  length "1..32";
                }
                description
                  "Assign the interface to a VRF ";
              }
    
              container ipv6-network {
                description
                  "Interface IPv6 Network configuration data";
                container addresses {
                  description
                    "Set the IPv6 address of an interface";
                  container auto-configuration {
                    description
                      "Auto IPv6 Interface Configuration";
                    leaf enable {
                      type empty;
                      description
                        "The flag to enable auto ipv6 interface
    configuration";
                    }
                  }  // container auto-configuration
                }  // container addresses
    
                leaf mtu {
                  type uint32 {
                    range "1280..65535";
                  }
                  units "byte";
                  description
                    "MTU Setting of Interface";
                }
    
                leaf rpf {
                  type boolean;
                  description
                    "TRUE if enabled, FALSE if disabled";
                }
    
                leaf unreachables {
                  type empty;
                  description
                    "Override Sending of ICMP Unreachable Messages";
                }
              }  // container ipv6-network
    
              container pppoe-template {
                presence
                  "Indicates a pppoe-template node is configured.";
                description
                  "PPPoE template configuration data";
                leaf port-limit {
                  type xr:Cisco-ios-xr-port-number;
                  mandatory true;
                  description
                    "Specify the Port limit (attr 62) to apply to
    the subscriber";
                }
              }  // container pppoe-template
    
              container ppp-template {
                description
                  "PPP template configuration data";
                container fsm {
                  description
                    "PPP FSM global template configuration data";
                  leaf max-consecutive-conf-naks {
                    type uint32 {
                      range "2..10";
                    }
                    default "5";
                    description
                      "This specifies the maximum number of
    consecutive Conf-Naks";
                  }
    
                  leaf max-unacknowledged-conf-requests {
                    type uint32 {
                      range "4..20";
                    }
                    default "10";
                    description
                      "This specifies the maximum number of
    unacknowledged Conf-Requests";
                  }
    
                  leaf retry-timeout {
                    type uint32 {
                      range "1..10";
                    }
                    default "3";
                    description
                      "This specifies the maximum time to wait for a
    response during PPP negotiation";
                  }
    
                  leaf protocol-reject-timeout {
                    type uint32 {
                      range "1..60";
                    }
                    default "60";
                    description
                      "This specifies the maximum time to wait before
    sending Protocol Reject";
                  }
                }  // container fsm
    
                container lcp {
                  description
                    "PPP LCP global template configuration data";
                  container absolute-timeout {
                    description
                      "This specifies the session absolute timeout
    value";
                    leaf minutes {
                      type uint32 {
                        range "0..35000000";
                      }
                      description "Minutes";
                    }
    
                    leaf seconds {
                      type uint32 {
                        range "0..59";
                      }
                      description "Seconds";
                    }
                  }  // container absolute-timeout
    
                  container delay {
                    description
                      "This specifies the time to delay before
    starting active LCPnegotiations";
                    leaf seconds {
                      type uint32 {
                        range "0..255";
                      }
                      description "Seconds";
                    }
    
                    leaf milliseconds {
                      type uint32 {
                        range "0..999";
                      }
                      description "Milliseconds";
                    }
                  }  // container delay
    
                  container authentication {
                    description
                      "PPP authentication parameters";
                    container methods {
                      description
                        "This specifies the PPP link authentication
    method";
                      leaf-list method {
                        type Ppp-authentication-method-gbl;
                        max-elements 3;
                        description
                          "Select between one and three authentication
    methods in order of preference";
                      }
                    }  // container methods
    
                    leaf chap-host-name {
                      type string;
                      description
                        "This specifies the CHAP hostname";
                    }
    
                    leaf pap {
                      type uint32;
                      description
                        "<1> for accepting null-passwordduring
    authentication";
                    }
    
                    leaf mschap-host-name {
                      type string;
                      description
                        "This specifies the MS-CHAP hostname";
                    }
    
                    leaf max-authentication-failures {
                      type uint32 {
                        range "0..10";
                      }
                      description
                        "This specifies whether to allow multiple
    authentication failures and, if so, how many";
                    }
    
                    leaf timeout {
                      type uint32 {
                        range "3..30";
                      }
                      default "10";
                      description
                        "Maximum time to wait for an authentication
    response";
                    }
                  }  // container authentication
    
                  container keepalive {
                    description
                      "This specifies the rate at which EchoReq
    packets are sent";
                    leaf keepalive-disable {
                      type boolean;
                      description
                        "TRUE to disable keepalives, FALSE to specify
    a new keepalive interval";
                    }
    
                    leaf interval {
                      when
                        "../keepalive-disable = 'false'" {
                        description
                          "../KeepaliveDisable = 'false'";
                      }
                      type uint32 {
                        range "10..180";
                      }
                      description
                        "The keepalive interval. Leave unspecified
    when disabling keepalives";
                    }
    
                    leaf retry-count {
                      when
                        "../keepalive-disable = 'false'" {
                        description
                          "../KeepaliveDisable = 'false'";
                      }
                      type uint32 {
                        range "1..255";
                      }
                      description
                        "The keepalive retry count. Leave unspecified
    when disabling keepalives";
                    }
                  }  // container keepalive
    
                  leaf renegotiation {
                    type empty;
                    description
                      "Specify whether to ignore attempts to
    renegotiate LCP";
                  }
    
                  leaf service-type {
                    type uint32 {
                      range "0..15";
                    }
                    default "0";
                    description
                      "This is the Service-Type";
                  }
    
                  leaf send-term-request-on-shut-down {
                    type empty;
                    description
                      "Enable Sending LCP Terminate request on
    shutdown";
                  }
    
                  leaf mru-ignore {
                    type empty;
                    description
                      "Ignore MRU negotiated with peer while setting
    interface BW";
                  }
                }  // container lcp
    
                container ipv6cp {
                  description
                    "PPP IPv6CP global template configuration data";
                  leaf passive {
                    type empty;
                    description
                      "Specify whether to run IPv6CP in Passive mode";
                  }
    
                  leaf renegotiation {
                    type empty;
                    description
                      "Specify whether to ignore attempts to
    renegotiate IPv6CP";
                  }
    
                  leaf peer-interface-id {
                    type string;
                    description
                      "Specify the Interface-Id to impose on the peer";
                  }
    
                  leaf protocol-reject {
                    type empty;
                    description
                      "Specify whether to protocol reject IPv6CP";
                  }
                }  // container ipv6cp
    
                container ipcp {
                  description
                    "PPP IPCP global template configuration data";
                  container wins {
                    description
                      "IPCP WINS parameters";
                    container wins-addresses {
                      description
                        "Specify WINS address(es) to provide";
                      leaf primary {
                        type inet:ipv4-address-no-zone;
                        description
                          "Primary WINS IP address";
                      }
    
                      leaf secondary {
                        type inet:ipv4-address-no-zone;
                        description
                          "Secondary WINS IP address";
                      }
                    }  // container wins-addresses
                  }  // container wins
    
                  container dns {
                    description
                      "IPCP DNS parameters";
                    container dns-addresses {
                      description
                        "Specify DNS address(es) to provide";
                      leaf primary {
                        type inet:ipv4-address-no-zone;
                        description
                          "Primary DNS IP address";
                      }
    
                      leaf secondary {
                        type inet:ipv4-address-no-zone;
                        description
                          "Secondary DNS IP address";
                      }
                    }  // container dns-addresses
                  }  // container dns
    
                  container peer-address {
                    description
                      "IPCP address parameters";
                    leaf default {
                      type inet:ipv4-address-no-zone;
                      description
                        "Specify an IP address to assign to peers
    through IPCP";
                    }
    
                    leaf pool {
                      type string;
                      description
                        "Accepts an IP address from the peer if in the
    pool, else allocates one from the pool";
                    }
                  }  // container peer-address
    
                  leaf renegotiation {
                    type empty;
                    description
                      "Specify whether to ignore attempts to
    renegotiate IPCP";
                  }
    
                  leaf passive {
                    type empty;
                    description
                      "Specify whether to run IPCP in Passive mode";
                  }
    
                  leaf protocol-reject {
                    type empty;
                    description
                      "Specify whether to protocol reject IPCP";
                  }
    
                  leaf peer-netmask {
                    type inet:ipv4-address-no-zone;
                    description
                      "Specify the IPv4 netmask to negotiate for the
    peer";
                  }
                }  // container ipcp
              }  // container ppp-template
    
              container qos {
                description
                  "QoS dynamically applied configuration template";
                container service-policy {
                  description
                    "Service policy to be applied in ingress/egress
    direction";
                  container input {
                    presence
                      "Indicates a input node is configured.";
                    description
                      "Subscriber ingress policy";
                    leaf policy-name {
                      type string;
                      mandatory true;
                      description
                        "Name of policy-map";
                    }
    
                    leaf spi-name {
                      type string;
                      description
                        "Name of the SPI";
                    }
    
                    leaf merge {
                      type boolean;
                      description
                        "TRUE for merge enabled for service-policy
    applied on dynamic template.";
                    }
    
                    leaf merge-id {
                      type uint32 {
                        range "0..255";
                      }
                      description
                        "Merge ID value";
                    }
    
                    leaf account-stats {
                      type boolean;
                      description
                        "TRUE for account stats enabled for
    service-policy applied on dynamic template.
    Note: account stats not supported for
    subscriber type 'ppp' and 'ipsubscriber'.";
                    }
                  }  // container input
    
                  container output {
                    presence
                      "Indicates a output node is configured.";
                    description
                      "Subscriber egress policy";
                    leaf policy-name {
                      type string;
                      mandatory true;
                      description
                        "Name of policy-map";
                    }
    
                    leaf spi-name {
                      type string;
                      description
                        "Name of the SPI";
                    }
    
                    leaf merge {
                      type boolean;
                      description
                        "TRUE for merge enabled for service-policy
    applied on dynamic template.";
                    }
    
                    leaf merge-id {
                      type uint32 {
                        range "0..255";
                      }
                      description
                        "Merge ID value";
                    }
    
                    leaf account-stats {
                      type boolean;
                      description
                        "TRUE for account stats enabled for
    service-policy applied on dynamic template.
    Note: account stats not supported for
    subscriber type 'ppp' and 'ipsubscriber'.";
                    }
                  }  // container output
                }  // container service-policy
    
                container account {
                  description
                    "QoS L2 overhead accounting";
                  leaf aal {
                    type Qosl2-data-link;
                    must
                      "../encapsulation and not(../user-defined or ../atm-cell-tax)";
                    description
                      "ATM adaptation layer AAL";
                  }
    
                  leaf encapsulation {
                    type Qosl2-encap;
                    must
                      "../aal and not(../user-defined or ../atm-cell-tax)";
                    description
                      "Specify encapsulation type";
                  }
    
                  leaf atm-cell-tax {
                    type empty;
                    must
                      "../user-defined and not(../aal or ../encapsulation)";
                    description
                      "ATM cell tax to L2 overhead";
                  }
    
                  leaf user-defined {
                    type int32 {
                      range "-63..63";
                    }
                    must
                      "not(../aal or ../encapsulation)";
                    description
                      "Numeric L2 overhead offset";
                  }
                }  // container account
    
                container output {
                  description
                    "QoS to be applied in egress direction";
                  leaf minimum-bandwidth {
                    type uint32 {
                      range "1..4294967295";
                    }
                    units "kbit/s";
                    description
                      "Minimum bandwidth value for the subscriber (in
    kbps)";
                  }
                }  // container output
              }  // container qos
    
              container ipv6-neighbor {
                description
                  "Interface IPv6 Network configuration data";
                container ra-interval {
                  presence
                    "Indicates a ra-interval node is configured.";
                  description
                    "Set IPv6 Router Advertisement (RA) interval in
    seconds";
                  leaf maximum {
                    type uint32 {
                      range "4..1800";
                    }
                    units "second";
                    mandatory true;
                    description
                      "Maximum RA interval in seconds";
                  }
    
                  leaf minimum {
                    type uint32 {
                      range "3..1800";
                    }
                    units "second";
                    description
                      "Minimum RA interval in seconds. Must be less
    than 0.75 * maximum interval";
                  }
                }  // container ra-interval
    
                container framed-prefix {
                  presence
                    "Indicates a framed-prefix node is configured.";
                  description
                    "Set the IPv6 framed ipv6 prefix for a
    subscriber interface ";
                  leaf prefix-length {
                    type xr:Ipv6-prefix-length;
                    mandatory true;
                    description
                      "IPv6 framed prefix length";
                  }
    
                  leaf prefix {
                    type string;
                    mandatory true;
                    description
                      "IPV6 framed prefix address";
                  }
                }  // container framed-prefix
    
                container duplicate-address-detection {
                  description
                    "Duplicate Address Detection (DAD)";
                  leaf attempts {
                    type uint32 {
                      range "0..600";
                    }
                    description
                      "Set IPv6 duplicate address detection transmits";
                  }
                }  // container duplicate-address-detection
    
                container ra-initial {
                  presence
                    "Indicates a ra-initial node is configured.";
                  description
                    "IPv6 ND RA Initial";
                  leaf count {
                    type uint32 {
                      range "0..32";
                    }
                    mandatory true;
                    description
                      "Initial RA count";
                  }
    
                  leaf interval {
                    type uint32 {
                      range "4..1800";
                    }
                    units "second";
                    mandatory true;
                    description
                      "Initial RA interval in seconds";
                  }
                }  // container ra-initial
    
                leaf framed-prefix-pool {
                  type string;
                  description
                    "Set the IPv6 framed ipv6 prefix pool for a
    subscriber interface ";
                }
    
                leaf managed-config {
                  type empty;
                  description
                    "Host to use stateful protocol for address
    configuration";
                }
    
                leaf other-config {
                  type empty;
                  description
                    "Host to use stateful protocol for non-address
    configuration";
                }
    
                leaf start-ra-on-ipv6-enable {
                  type empty;
                  description
                    "Start RA on ipv6-enable config";
                }
    
                leaf nud-enable {
                  type empty;
                  description "NUD enable";
                }
    
                leaf ra-lifetime {
                  type uint32 {
                    range "0..9000";
                  }
                  units "second";
                  description
                    "Set IPv6 Router Advertisement (RA) lifetime in
    seconds";
                }
    
                leaf router-preference {
                  type Ipv6-nd-router-pref-template;
                  description
                    "RA Router Preference";
                }
    
                leaf ra-suppress {
                  type empty;
                  description
                    "Enable suppress IPv6 router advertisement";
                }
    
                leaf ra-unicast {
                  type empty;
                  description
                    "Enable RA unicast Flag";
                }
    
                leaf ra-unspecify-hoplimit {
                  type empty;
                  description
                    "Unspecify IPv6 Router Advertisement (RA)
    hop-limit";
                }
    
                leaf ra-suppress-mtu {
                  type empty;
                  description
                    "RA suppress MTU flag";
                }
    
                leaf suppress-cache-learning {
                  type empty;
                  description
                    "Suppress cache learning flag";
                }
    
                leaf reachable-time {
                  type uint32 {
                    range "0..3600000";
                  }
                  units "millisecond";
                  description
                    "Set advertised reachability time in
    milliseconds";
                }
    
                leaf ns-interval {
                  type uint32 {
                    range "1000..4294967295";
                  }
                  units "millisecond";
                  description
                    "Set advertised NS retransmission interval in
    milliseconds";
                }
              }  // container ipv6-neighbor
    
              container span-attachments {
                description
                  "Monitor Session container for this source
    interface";
                list span-attachment {
                  key "session-name";
                  description
                    "Configuration for a particular Monitor Session";
                  leaf session-name {
                    type dt1:Span-session-name;
                    description "Session Name";
                  }
    
                  leaf mirror-first {
                    type uint32 {
                      range "1..10000";
                    }
                    units "byte";
                    description
                      "Mirror a specified number of bytes from start of
    packet";
                  }
    
                  leaf mirror-interval {
                    type Span-mirror-interval;
                    description
                      "Specify the mirror interval";
                  }
    
                  container attachment-config {
                    presence
                      "Indicates a attachment-config node is configured.";
                    description
                      "Attach the interface to a Monitor Session";
                    leaf session-class {
                      type dt1:Span-session-class;
                      mandatory true;
                      description
                        "Traffic class for the session";
                    }
    
                    leaf direction {
                      type Span-traffic-direction;
                      description
                        "Specify the direction of traffic to replicate
    (optional)";
                    }
    
                    leaf port-level-enable {
                      type empty;
                      description
                        "Enable port level traffic mirroring";
                    }
                  }  // container attachment-config
    
                  container acl {
                    presence
                      "Indicates a acl node is configured.";
                    description
                      "Enable ACL matching for traffic mirroring";
                    leaf acl-enable {
                      type empty;
                      mandatory true;
                      description "Enable ACL";
                    }
    
                    leaf acl-name {
                      type dt1:Span-acl-name;
                      description "ACL Name";
                    }
                  }  // container acl
                }  // list span-attachment
              }  // container span-attachments
    
              container span-monitor-sessions {
                status deprecated;
                description
                  "Monitor Session container for this template";
                list span-monitor-session {
                  key "session-class";
                  description
                    "Configuration for a particular class of Monitor
    Session";
                  leaf session-class {
                    type dt1:Span-session-class;
                    description "Session Class";
                  }
    
                  leaf mirror-first {
                    type uint32 {
                      range "1..10000";
                    }
                    units "byte";
                    description
                      "Mirror a specified number of bytes from start of
    packet";
                  }
    
                  container attachment {
                    presence
                      "Indicates a attachment node is configured.";
                    description
                      "Attach the interface to a Monitor Session";
                    leaf session-name {
                      type dt1:Span-session-name;
                      mandatory true;
                      description "Session Name";
                    }
    
                    leaf direction {
                      type Span-traffic-direction;
                      description
                        "Specify the direction of traffic to replicate
    (optional)";
                    }
    
                    leaf port-level-enable {
                      type empty;
                      description
                        "Enable port level traffic mirroring";
                    }
                  }  // container attachment
    
                  leaf mirror-interval {
                    type Span-mirror-interval;
                    description
                      "Specify the mirror interval";
                  }
    
                  container acl {
                    presence
                      "Indicates a acl node is configured.";
                    description
                      "Enable ACL matching for traffic mirroring";
                    leaf acl-enable {
                      type empty;
                      mandatory true;
                      description "Enable ACL";
                    }
    
                    leaf acl-name {
                      type dt1:Span-acl-name;
                      description "ACL Name";
                    }
                  }  // container acl
    
                  leaf drops {
                    type boolean;
                    description
                      "Specify whether or not to mirror dropped packets";
                  }
    
                  container ipv4acl {
                    presence
                      "Indicates a ipv4acl node is configured.";
                    description
                      "Enable IPv4 ACL matching for traffic mirroring";
                    leaf acl-enable {
                      type empty;
                      mandatory true;
                      description "Enable ACL";
                    }
    
                    leaf acl-name {
                      type dt1:Span-acl-name;
                      description "ACL Name";
                    }
                  }  // container ipv4acl
    
                  container ipv6acl {
                    presence
                      "Indicates a ipv6acl node is configured.";
                    description
                      "Enable IPv6 ACL matching for traffic mirroring";
                    leaf acl-enable {
                      type empty;
                      mandatory true;
                      description "Enable ACL";
                    }
    
                    leaf acl-name {
                      type dt1:Span-acl-name;
                      description "ACL Name";
                    }
                  }  // container ipv6acl
                }  // list span-monitor-session
              }  // container span-monitor-sessions
    
              container accounting {
                description
                  "Subscriber accounting dynamic-template commands";
                container idle-timeout {
                  description
                    "Subscriber accounting idle timeout";
                  leaf timeout-value {
                    type uint32 {
                      range "60..4320000";
                    }
                    description
                      "Idle timeout value in seconds";
                  }
    
                  leaf threshold {
                    type uint32 {
                      range "1..10000";
                    }
                    description
                      "Threshold in minute(s) per packet";
                  }
    
                  leaf direction {
                    type string;
                    description
                      "Idle timeout traffic direction";
                  }
                }  // container idle-timeout
    
                container session {
                  description
                    "Subscriber accounting session accounting";
                  leaf method-list-name {
                    type string;
                    description
                      "Session accounting method list name";
                  }
    
                  leaf periodic-interval {
                    type uint32;
                    description
                      "Interim accounting interval in minutes";
                  }
    
                  leaf dual-stack-delay {
                    type uint32;
                    description
                      "Dual stack wait delay in seconds";
                  }
    
                  leaf hold-acct-start {
                    type enumeration {
                      enum
                        "ipv6-prefix-delegation" {
                        value 3;
                        description
                          "Based on ipv6 delegated prefix";
                      }
                    }
                    description
                      "Hold Accounting start based on IA_PD";
                  }
                }  // container session
    
                container service-accounting {
                  description
                    "Subscriber accounting service accounting";
                  leaf method-list-name {
                    type string;
                    description
                      "Service accounting method list name";
                  }
    
                  leaf accounting-interim-interval {
                    type uint32;
                    description
                      "Accounting interim interval in minutes";
                  }
                }  // container service-accounting
    
                leaf monitor-feature {
                  type string;
                  description
                    "Subscriber monitor feature";
                }
    
                leaf prepaid-feature {
                  type string;
                  description
                    "Subscriber accounting prepaid feature";
                }
              }  // container accounting
    
              container dhcpv6 {
                description
                  "Interface dhcpv6 configuration data";
                container delegated-prefix {
                  presence
                    "Indicates a delegated-prefix node is configured.";
                  description
                    "The prefix to be used for Prefix Delegation";
                  leaf prefix {
                    type inet:ipv6-address-no-zone;
                    mandatory true;
                    description "IPv6 Prefix";
                  }
    
                  leaf prefix-length {
                    type xr:Ipv6-prefix-length;
                    mandatory true;
                    description
                      "PD Prefix Length";
                  }
                }  // container delegated-prefix
    
                leaf dns-ipv6address {
                  type inet:ipv6-address-no-zone;
                  description "Dns IPv6 Address";
                }
    
                leaf mode-class {
                  type string;
                  description
                    "Select proxy/server profile based on mode class
    name";
                }
    
                leaf dhcpv6-iplease {
                  type string;
                  description
                    "Cisco VSA to configure any dhcpv6 ip lease per
    subscriber";
                }
    
                leaf dhcpv6-option {
                  type string;
                  description
                    "Cisco VSA to configure any dhcpv6 option per
    subscriber";
                }
    
                leaf address-pool {
                  type string;
                  description
                    "The pool to be used for Address assignment";
                }
    
                leaf delegated-prefix-pool {
                  type string;
                  description
                    "The pool to be used for Prefix Delegation";
                }
    
                leaf class {
                  type string;
                  description
                    "The class to be used for proxy/server profile";
                }
    
                leaf stateful-address {
                  type inet:ipv6-address-no-zone;
                  description
                    "Stateful IPv6 Address";
                }
              }  // container dhcpv6
    
              container pbr {
                description
                  "Dynamic Template PBR configuration";
                container service-policies {
                  description
                    "Ingress service policy";
                  list service-policy {
                    key "service-policy";
                    description
                      "Service policy details";
                    leaf service-policy {
                      type string {
                        length "1..64";
                      }
                      description
                        "Name of policy-map";
                    }
                  }  // list service-policy
                }  // container service-policies
    
                leaf service-policy-in {
                  type string;
                  description
                    "Class for subscriber ingress policy";
                }
              }  // container pbr
            }  // list ppp
          }  // container ppps
    
          container ip-subscribers {
            description
              "The IP Subscriber Template Table";
            list ip-subscriber {
              key "template-name";
              description
                "A IP Subscriber Type Template ";
              leaf template-name {
                type xr:Cisco-ios-xr-string;
                description
                  "The name of the template";
              }
    
              container dhcpd {
                description
                  "Interface dhcpv4 configuration data";
                leaf dhcpv4-iplease {
                  type string;
                  description
                    "Cisco VSA to configure any dhcp4 ip lease per
    subscriber";
                }
    
                leaf class {
                  type string;
                  description
                    "The class to be used for proxy/server profile";
                }
    
                leaf mode-class {
                  type string;
                  description
                    "Select proxy/server profile based on mode class
    name";
                }
    
                leaf default-gateway {
                  type inet:ipv4-address-no-zone;
                  description
                    "The Default Gateway IP address";
                }
    
                leaf session-limit {
                  type uint32;
                  description
                    "The pool to be used for Prefix Delegation";
                }
    
                leaf dhcpv4-option {
                  type string;
                  description
                    "Cisco VSA to configure any dhcp4 option per
    subscriber";
                }
              }  // container dhcpd
    
              container igmp {
                description "IGMPconfiguration";
                container default-vrf {
                  description "Default VRF";
                  container max-groups {
                    presence
                      "Indicates a max-groups node is configured.";
                    description
                      "IGMP Max Groups";
                    leaf max-groups {
                      type uint32 {
                        range "1..40000";
                      }
                      mandatory true;
                      description
                        "Maximum number of groups accepted per
    interface by this router";
                    }
    
                    leaf threshold {
                      type uint32 {
                        range "1..40000";
                      }
                      description
                        " Threshold for number of groups accepted per
    interface by this router";
                    }
    
                    leaf access-list-name {
                      type xr:Cisco-ios-xr-string {
                        length "1..64";
                      }
                      description
                        "Access-list to account for";
                    }
                  }  // container max-groups
    
                  container explicit-tracking {
                    presence
                      "Indicates a explicit-tracking node is configured.";
                    description
                      "IGMPv3 explicit host tracking";
                    leaf enable {
                      type boolean;
                      mandatory true;
                      description
                        "Enable or disable, when value is TRUE or
    FALSE respectively";
                    }
    
                    leaf access-list-name {
                      type xr:Cisco-ios-xr-string {
                        length "1..64";
                      }
                      description
                        "Access list specifying tracking group range";
                    }
                  }  // container explicit-tracking
    
                  leaf access-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    description
                      "Access list specifying access-list group range";
                  }
    
                  leaf version {
                    type uint32 {
                      range "1..3";
                    }
                    default "3";
                    description "IGMP Version";
                  }
    
                  leaf query-interval {
                    type uint32 {
                      range "1..3600";
                    }
                    units "second";
                    default "60";
                    description
                      "Query interval in seconds";
                  }
    
                  leaf query-max-response-time {
                    type uint32 {
                      range "1..25";
                    }
                    units "second";
                    default "10";
                    description
                      "Query response value in seconds";
                  }
    
                  leaf multicast-mode {
                    type Dyn-tmpl-multicast-mode;
                    description
                      "Configure Multicast mode variable";
                  }
                }  // container default-vrf
              }  // container igmp
    
              leaf vrf {
                type xr:Cisco-ios-xr-string {
                  length "1..32";
                }
                description
                  "Assign the interface to a VRF ";
              }
    
              container ipv6-network {
                description
                  "Interface IPv6 Network configuration data";
                container addresses {
                  description
                    "Set the IPv6 address of an interface";
                  container auto-configuration {
                    description
                      "Auto IPv6 Interface Configuration";
                    leaf enable {
                      type empty;
                      description
                        "The flag to enable auto ipv6 interface
    configuration";
                    }
                  }  // container auto-configuration
                }  // container addresses
    
                leaf mtu {
                  type uint32 {
                    range "1280..65535";
                  }
                  units "byte";
                  description
                    "MTU Setting of Interface";
                }
    
                leaf rpf {
                  type boolean;
                  description
                    "TRUE if enabled, FALSE if disabled";
                }
    
                leaf unreachables {
                  type empty;
                  description
                    "Override Sending of ICMP Unreachable Messages";
                }
              }  // container ipv6-network
    
              container qos {
                description
                  "QoS dynamically applied configuration template";
                container service-policy {
                  description
                    "Service policy to be applied in ingress/egress
    direction";
                  container input {
                    presence
                      "Indicates a input node is configured.";
                    description
                      "Subscriber ingress policy";
                    leaf policy-name {
                      type string;
                      mandatory true;
                      description
                        "Name of policy-map";
                    }
    
                    leaf spi-name {
                      type string;
                      description
                        "Name of the SPI";
                    }
    
                    leaf merge {
                      type boolean;
                      description
                        "TRUE for merge enabled for service-policy
    applied on dynamic template.";
                    }
    
                    leaf merge-id {
                      type uint32 {
                        range "0..255";
                      }
                      description
                        "Merge ID value";
                    }
    
                    leaf account-stats {
                      type boolean;
                      description
                        "TRUE for account stats enabled for
    service-policy applied on dynamic template.
    Note: account stats not supported for
    subscriber type 'ppp' and 'ipsubscriber'.";
                    }
                  }  // container input
    
                  container output {
                    presence
                      "Indicates a output node is configured.";
                    description
                      "Subscriber egress policy";
                    leaf policy-name {
                      type string;
                      mandatory true;
                      description
                        "Name of policy-map";
                    }
    
                    leaf spi-name {
                      type string;
                      description
                        "Name of the SPI";
                    }
    
                    leaf merge {
                      type boolean;
                      description
                        "TRUE for merge enabled for service-policy
    applied on dynamic template.";
                    }
    
                    leaf merge-id {
                      type uint32 {
                        range "0..255";
                      }
                      description
                        "Merge ID value";
                    }
    
                    leaf account-stats {
                      type boolean;
                      description
                        "TRUE for account stats enabled for
    service-policy applied on dynamic template.
    Note: account stats not supported for
    subscriber type 'ppp' and 'ipsubscriber'.";
                    }
                  }  // container output
                }  // container service-policy
    
                container account {
                  description
                    "QoS L2 overhead accounting";
                  leaf aal {
                    type Qosl2-data-link;
                    must
                      "../encapsulation and not(../user-defined or ../atm-cell-tax)";
                    description
                      "ATM adaptation layer AAL";
                  }
    
                  leaf encapsulation {
                    type Qosl2-encap;
                    must
                      "../aal and not(../user-defined or ../atm-cell-tax)";
                    description
                      "Specify encapsulation type";
                  }
    
                  leaf atm-cell-tax {
                    type empty;
                    must
                      "../user-defined and not(../aal or ../encapsulation)";
                    description
                      "ATM cell tax to L2 overhead";
                  }
    
                  leaf user-defined {
                    type int32 {
                      range "-63..63";
                    }
                    must
                      "not(../aal or ../encapsulation)";
                    description
                      "Numeric L2 overhead offset";
                  }
                }  // container account
    
                container output {
                  description
                    "QoS to be applied in egress direction";
                  leaf minimum-bandwidth {
                    type uint32 {
                      range "1..4294967295";
                    }
                    units "kbit/s";
                    description
                      "Minimum bandwidth value for the subscriber (in
    kbps)";
                  }
                }  // container output
              }  // container qos
    
              container ipv6-neighbor {
                description
                  "Interface IPv6 Network configuration data";
                container ra-interval {
                  presence
                    "Indicates a ra-interval node is configured.";
                  description
                    "Set IPv6 Router Advertisement (RA) interval in
    seconds";
                  leaf maximum {
                    type uint32 {
                      range "4..1800";
                    }
                    units "second";
                    mandatory true;
                    description
                      "Maximum RA interval in seconds";
                  }
    
                  leaf minimum {
                    type uint32 {
                      range "3..1800";
                    }
                    units "second";
                    description
                      "Minimum RA interval in seconds. Must be less
    than 0.75 * maximum interval";
                  }
                }  // container ra-interval
    
                container framed-prefix {
                  presence
                    "Indicates a framed-prefix node is configured.";
                  description
                    "Set the IPv6 framed ipv6 prefix for a
    subscriber interface ";
                  leaf prefix-length {
                    type xr:Ipv6-prefix-length;
                    mandatory true;
                    description
                      "IPv6 framed prefix length";
                  }
    
                  leaf prefix {
                    type string;
                    mandatory true;
                    description
                      "IPV6 framed prefix address";
                  }
                }  // container framed-prefix
    
                container duplicate-address-detection {
                  description
                    "Duplicate Address Detection (DAD)";
                  leaf attempts {
                    type uint32 {
                      range "0..600";
                    }
                    description
                      "Set IPv6 duplicate address detection transmits";
                  }
                }  // container duplicate-address-detection
    
                container ra-initial {
                  presence
                    "Indicates a ra-initial node is configured.";
                  description
                    "IPv6 ND RA Initial";
                  leaf count {
                    type uint32 {
                      range "0..32";
                    }
                    mandatory true;
                    description
                      "Initial RA count";
                  }
    
                  leaf interval {
                    type uint32 {
                      range "4..1800";
                    }
                    units "second";
                    mandatory true;
                    description
                      "Initial RA interval in seconds";
                  }
                }  // container ra-initial
    
                leaf framed-prefix-pool {
                  type string;
                  description
                    "Set the IPv6 framed ipv6 prefix pool for a
    subscriber interface ";
                }
    
                leaf managed-config {
                  type empty;
                  description
                    "Host to use stateful protocol for address
    configuration";
                }
    
                leaf other-config {
                  type empty;
                  description
                    "Host to use stateful protocol for non-address
    configuration";
                }
    
                leaf start-ra-on-ipv6-enable {
                  type empty;
                  description
                    "Start RA on ipv6-enable config";
                }
    
                leaf nud-enable {
                  type empty;
                  description "NUD enable";
                }
    
                leaf ra-lifetime {
                  type uint32 {
                    range "0..9000";
                  }
                  units "second";
                  description
                    "Set IPv6 Router Advertisement (RA) lifetime in
    seconds";
                }
    
                leaf router-preference {
                  type Ipv6-nd-router-pref-template;
                  description
                    "RA Router Preference";
                }
    
                leaf ra-suppress {
                  type empty;
                  description
                    "Enable suppress IPv6 router advertisement";
                }
    
                leaf ra-unicast {
                  type empty;
                  description
                    "Enable RA unicast Flag";
                }
    
                leaf ra-unspecify-hoplimit {
                  type empty;
                  description
                    "Unspecify IPv6 Router Advertisement (RA)
    hop-limit";
                }
    
                leaf ra-suppress-mtu {
                  type empty;
                  description
                    "RA suppress MTU flag";
                }
    
                leaf suppress-cache-learning {
                  type empty;
                  description
                    "Suppress cache learning flag";
                }
    
                leaf reachable-time {
                  type uint32 {
                    range "0..3600000";
                  }
                  units "millisecond";
                  description
                    "Set advertised reachability time in
    milliseconds";
                }
    
                leaf ns-interval {
                  type uint32 {
                    range "1000..4294967295";
                  }
                  units "millisecond";
                  description
                    "Set advertised NS retransmission interval in
    milliseconds";
                }
              }  // container ipv6-neighbor
    
              container span-attachments {
                description
                  "Monitor Session container for this source
    interface";
                list span-attachment {
                  key "session-name";
                  description
                    "Configuration for a particular Monitor Session";
                  leaf session-name {
                    type dt1:Span-session-name;
                    description "Session Name";
                  }
    
                  leaf mirror-first {
                    type uint32 {
                      range "1..10000";
                    }
                    units "byte";
                    description
                      "Mirror a specified number of bytes from start of
    packet";
                  }
    
                  leaf mirror-interval {
                    type Span-mirror-interval;
                    description
                      "Specify the mirror interval";
                  }
    
                  container attachment-config {
                    presence
                      "Indicates a attachment-config node is configured.";
                    description
                      "Attach the interface to a Monitor Session";
                    leaf session-class {
                      type dt1:Span-session-class;
                      mandatory true;
                      description
                        "Traffic class for the session";
                    }
    
                    leaf direction {
                      type Span-traffic-direction;
                      description
                        "Specify the direction of traffic to replicate
    (optional)";
                    }
    
                    leaf port-level-enable {
                      type empty;
                      description
                        "Enable port level traffic mirroring";
                    }
                  }  // container attachment-config
    
                  container acl {
                    presence
                      "Indicates a acl node is configured.";
                    description
                      "Enable ACL matching for traffic mirroring";
                    leaf acl-enable {
                      type empty;
                      mandatory true;
                      description "Enable ACL";
                    }
    
                    leaf acl-name {
                      type dt1:Span-acl-name;
                      description "ACL Name";
                    }
                  }  // container acl
                }  // list span-attachment
              }  // container span-attachments
    
              container span-monitor-sessions {
                status deprecated;
                description
                  "Monitor Session container for this template";
                list span-monitor-session {
                  key "session-class";
                  description
                    "Configuration for a particular class of Monitor
    Session";
                  leaf session-class {
                    type dt1:Span-session-class;
                    description "Session Class";
                  }
    
                  leaf mirror-first {
                    type uint32 {
                      range "1..10000";
                    }
                    units "byte";
                    description
                      "Mirror a specified number of bytes from start of
    packet";
                  }
    
                  container attachment {
                    presence
                      "Indicates a attachment node is configured.";
                    description
                      "Attach the interface to a Monitor Session";
                    leaf session-name {
                      type dt1:Span-session-name;
                      mandatory true;
                      description "Session Name";
                    }
    
                    leaf direction {
                      type Span-traffic-direction;
                      description
                        "Specify the direction of traffic to replicate
    (optional)";
                    }
    
                    leaf port-level-enable {
                      type empty;
                      description
                        "Enable port level traffic mirroring";
                    }
                  }  // container attachment
    
                  leaf mirror-interval {
                    type Span-mirror-interval;
                    description
                      "Specify the mirror interval";
                  }
    
                  container acl {
                    presence
                      "Indicates a acl node is configured.";
                    description
                      "Enable ACL matching for traffic mirroring";
                    leaf acl-enable {
                      type empty;
                      mandatory true;
                      description "Enable ACL";
                    }
    
                    leaf acl-name {
                      type dt1:Span-acl-name;
                      description "ACL Name";
                    }
                  }  // container acl
    
                  leaf drops {
                    type boolean;
                    description
                      "Specify whether or not to mirror dropped packets";
                  }
    
                  container ipv4acl {
                    presence
                      "Indicates a ipv4acl node is configured.";
                    description
                      "Enable IPv4 ACL matching for traffic mirroring";
                    leaf acl-enable {
                      type empty;
                      mandatory true;
                      description "Enable ACL";
                    }
    
                    leaf acl-name {
                      type dt1:Span-acl-name;
                      description "ACL Name";
                    }
                  }  // container ipv4acl
    
                  container ipv6acl {
                    presence
                      "Indicates a ipv6acl node is configured.";
                    description
                      "Enable IPv6 ACL matching for traffic mirroring";
                    leaf acl-enable {
                      type empty;
                      mandatory true;
                      description "Enable ACL";
                    }
    
                    leaf acl-name {
                      type dt1:Span-acl-name;
                      description "ACL Name";
                    }
                  }  // container ipv6acl
                }  // list span-monitor-session
              }  // container span-monitor-sessions
    
              container accounting {
                description
                  "Subscriber accounting dynamic-template commands";
                container service-accounting {
                  description
                    "Subscriber accounting service accounting";
                  leaf method-list-name {
                    type string;
                    description
                      "Service accounting method list name";
                  }
    
                  leaf accounting-interim-interval {
                    type uint32;
                    units "minute";
                    description
                      "Accounting interim interval in minutes";
                  }
                }  // container service-accounting
    
                container session {
                  description
                    "Subscriber accounting session accounting";
                  leaf method-list-name {
                    type string;
                    description
                      "Session accounting method list name";
                  }
    
                  leaf periodic-interval {
                    type uint32;
                    units "minute";
                    description
                      "Interim accounting interval in minutes";
                  }
    
                  leaf dual-stack-delay {
                    type uint32;
                    units "second";
                    description
                      "Dual stack wait delay in seconds";
                  }
    
                  leaf hold-acct-start {
                    type enumeration {
                      enum
                        "ipv6-prefix-delegation" {
                        value 3;
                        description
                          "Based on ipv6 delegated prefix";
                      }
                    }
                    description
                      "Hold Accounting start based on IA_PD";
                  }
                }  // container session
    
                container idle-timeout {
                  description
                    "Subscriber accounting idle timeout";
                  leaf timeout-value {
                    type uint32 {
                      range "60..4320000";
                    }
                    units "second";
                    description
                      "Idle timeout value in seconds";
                  }
    
                  leaf threshold {
                    type uint32 {
                      range "1..10000";
                    }
                    description
                      "Threshold in minute(s) per packet";
                  }
    
                  leaf direction {
                    type string;
                    description
                      "Idle timeout traffic direction";
                  }
                }  // container idle-timeout
    
                leaf monitor-feature {
                  type string;
                  description
                    "Subscriber monitor feature";
                }
    
                leaf prepaid-feature {
                  type string;
                  description
                    "Subscriber accounting prepaid feature";
                }
              }  // container accounting
    
              container dhcpv6 {
                description
                  "Interface dhcpv6 configuration data";
                container delegated-prefix {
                  presence
                    "Indicates a delegated-prefix node is configured.";
                  description
                    "The prefix to be used for Prefix Delegation";
                  leaf prefix {
                    type inet:ipv6-address-no-zone;
                    mandatory true;
                    description "IPv6 Prefix";
                  }
    
                  leaf prefix-length {
                    type xr:Ipv6-prefix-length;
                    mandatory true;
                    description
                      "PD Prefix Length";
                  }
                }  // container delegated-prefix
    
                leaf dns-ipv6address {
                  type inet:ipv6-address-no-zone;
                  description "Dns IPv6 Address";
                }
    
                leaf mode-class {
                  type string;
                  description
                    "Select proxy/server profile based on mode class
    name";
                }
    
                leaf dhcpv6-iplease {
                  type string;
                  description
                    "Cisco VSA to configure any dhcpv6 ip lease per
    subscriber";
                }
    
                leaf dhcpv6-option {
                  type string;
                  description
                    "Cisco VSA to configure any dhcpv6 option per
    subscriber";
                }
    
                leaf address-pool {
                  type string;
                  description
                    "The pool to be used for Address assignment";
                }
    
                leaf delegated-prefix-pool {
                  type string;
                  description
                    "The pool to be used for Prefix Delegation";
                }
    
                leaf class {
                  type string;
                  description
                    "The class to be used for proxy/server profile";
                }
    
                leaf stateful-address {
                  type inet:ipv6-address-no-zone;
                  description
                    "Stateful IPv6 Address";
                }
              }  // container dhcpv6
    
              container pbr {
                description
                  "Dynamic Template PBR configuration";
                container service-policies {
                  description
                    "Ingress service policy";
                  list service-policy {
                    key "service-policy";
                    description
                      "Service policy details";
                    leaf service-policy {
                      type string {
                        length "1..64";
                      }
                      description
                        "Name of policy-map";
                    }
                  }  // list service-policy
                }  // container service-policies
    
                leaf service-policy-in {
                  type string;
                  description
                    "Class for subscriber ingress policy";
                }
              }  // container pbr
            }  // list ip-subscriber
          }  // container ip-subscribers
    
          container subscriber-services {
            description
              "The Service Type Template Table";
            list subscriber-service {
              key "template-name";
              description
                "A Service Type Template ";
              leaf template-name {
                type xr:Cisco-ios-xr-string;
                description
                  "The name of the template";
              }
    
              leaf vrf {
                type xr:Cisco-ios-xr-string {
                  length "1..32";
                }
                description
                  "Assign the interface to a VRF ";
              }
    
              container ipv6-network {
                description
                  "Interface IPv6 Network configuration data";
                container addresses {
                  description
                    "Set the IPv6 address of an interface";
                  container auto-configuration {
                    description
                      "Auto IPv6 Interface Configuration";
                    leaf enable {
                      type empty;
                      description
                        "The flag to enable auto ipv6 interface
    configuration";
                    }
                  }  // container auto-configuration
                }  // container addresses
    
                leaf mtu {
                  type uint32 {
                    range "1280..65535";
                  }
                  units "byte";
                  description
                    "MTU Setting of Interface";
                }
    
                leaf rpf {
                  type boolean;
                  description
                    "TRUE if enabled, FALSE if disabled";
                }
    
                leaf unreachables {
                  type empty;
                  description
                    "Override Sending of ICMP Unreachable Messages";
                }
              }  // container ipv6-network
    
              container qos {
                description
                  "QoS dynamically applied configuration template";
                container service-policy {
                  description
                    "Service policy to be applied in ingress/egress
    direction";
                  container input {
                    presence
                      "Indicates a input node is configured.";
                    description
                      "Subscriber ingress policy";
                    leaf policy-name {
                      type string;
                      mandatory true;
                      description
                        "Name of policy-map";
                    }
    
                    leaf spi-name {
                      type string;
                      description
                        "Name of the SPI";
                    }
    
                    leaf merge {
                      type boolean;
                      description
                        "TRUE for merge enabled for service-policy
    applied on dynamic template.";
                    }
    
                    leaf merge-id {
                      type uint32 {
                        range "0..255";
                      }
                      description
                        "Merge ID value";
                    }
    
                    leaf account-stats {
                      type boolean;
                      description
                        "TRUE for account stats enabled for
    service-policy applied on dynamic template.
    Note: account stats not supported for
    subscriber type 'ppp' and 'ipsubscriber'.";
                    }
                  }  // container input
    
                  container output {
                    presence
                      "Indicates a output node is configured.";
                    description
                      "Subscriber egress policy";
                    leaf policy-name {
                      type string;
                      mandatory true;
                      description
                        "Name of policy-map";
                    }
    
                    leaf spi-name {
                      type string;
                      description
                        "Name of the SPI";
                    }
    
                    leaf merge {
                      type boolean;
                      description
                        "TRUE for merge enabled for service-policy
    applied on dynamic template.";
                    }
    
                    leaf merge-id {
                      type uint32 {
                        range "0..255";
                      }
                      description
                        "Merge ID value";
                    }
    
                    leaf account-stats {
                      type boolean;
                      description
                        "TRUE for account stats enabled for
    service-policy applied on dynamic template.
    Note: account stats not supported for
    subscriber type 'ppp' and 'ipsubscriber'.";
                    }
                  }  // container output
                }  // container service-policy
    
                container account {
                  description
                    "QoS L2 overhead accounting";
                  leaf aal {
                    type Qosl2-data-link;
                    must
                      "../encapsulation and not(../user-defined or ../atm-cell-tax)";
                    description
                      "ATM adaptation layer AAL";
                  }
    
                  leaf encapsulation {
                    type Qosl2-encap;
                    must
                      "../aal and not(../user-defined or ../atm-cell-tax)";
                    description
                      "Specify encapsulation type";
                  }
    
                  leaf atm-cell-tax {
                    type empty;
                    must
                      "../user-defined and not(../aal or ../encapsulation)";
                    description
                      "ATM cell tax to L2 overhead";
                  }
    
                  leaf user-defined {
                    type int32 {
                      range "-63..63";
                    }
                    must
                      "not(../aal or ../encapsulation)";
                    description
                      "Numeric L2 overhead offset";
                  }
                }  // container account
    
                container output {
                  description
                    "QoS to be applied in egress direction";
                  leaf minimum-bandwidth {
                    type uint32 {
                      range "1..4294967295";
                    }
                    units "kbit/s";
                    description
                      "Minimum bandwidth value for the subscriber (in
    kbps)";
                  }
                }  // container output
              }  // container qos
    
              container ipv6-neighbor {
                description
                  "Interface IPv6 Network configuration data";
                container ra-interval {
                  presence
                    "Indicates a ra-interval node is configured.";
                  description
                    "Set IPv6 Router Advertisement (RA) interval in
    seconds";
                  leaf maximum {
                    type uint32 {
                      range "4..1800";
                    }
                    units "second";
                    mandatory true;
                    description
                      "Maximum RA interval in seconds";
                  }
    
                  leaf minimum {
                    type uint32 {
                      range "3..1800";
                    }
                    units "second";
                    description
                      "Minimum RA interval in seconds. Must be less
    than 0.75 * maximum interval";
                  }
                }  // container ra-interval
    
                container framed-prefix {
                  presence
                    "Indicates a framed-prefix node is configured.";
                  description
                    "Set the IPv6 framed ipv6 prefix for a
    subscriber interface ";
                  leaf prefix-length {
                    type xr:Ipv6-prefix-length;
                    mandatory true;
                    description
                      "IPv6 framed prefix length";
                  }
    
                  leaf prefix {
                    type string;
                    mandatory true;
                    description
                      "IPV6 framed prefix address";
                  }
                }  // container framed-prefix
    
                container duplicate-address-detection {
                  description
                    "Duplicate Address Detection (DAD)";
                  leaf attempts {
                    type uint32 {
                      range "0..600";
                    }
                    description
                      "Set IPv6 duplicate address detection transmits";
                  }
                }  // container duplicate-address-detection
    
                container ra-initial {
                  presence
                    "Indicates a ra-initial node is configured.";
                  description
                    "IPv6 ND RA Initial";
                  leaf count {
                    type uint32 {
                      range "0..32";
                    }
                    mandatory true;
                    description
                      "Initial RA count";
                  }
    
                  leaf interval {
                    type uint32 {
                      range "4..1800";
                    }
                    units "second";
                    mandatory true;
                    description
                      "Initial RA interval in seconds";
                  }
                }  // container ra-initial
    
                leaf framed-prefix-pool {
                  type string;
                  description
                    "Set the IPv6 framed ipv6 prefix pool for a
    subscriber interface ";
                }
    
                leaf managed-config {
                  type empty;
                  description
                    "Host to use stateful protocol for address
    configuration";
                }
    
                leaf other-config {
                  type empty;
                  description
                    "Host to use stateful protocol for non-address
    configuration";
                }
    
                leaf start-ra-on-ipv6-enable {
                  type empty;
                  description
                    "Start RA on ipv6-enable config";
                }
    
                leaf nud-enable {
                  type empty;
                  description "NUD enable";
                }
    
                leaf ra-lifetime {
                  type uint32 {
                    range "0..9000";
                  }
                  units "second";
                  description
                    "Set IPv6 Router Advertisement (RA) lifetime in
    seconds";
                }
    
                leaf router-preference {
                  type Ipv6-nd-router-pref-template;
                  description
                    "RA Router Preference";
                }
    
                leaf ra-suppress {
                  type empty;
                  description
                    "Enable suppress IPv6 router advertisement";
                }
    
                leaf ra-unicast {
                  type empty;
                  description
                    "Enable RA unicast Flag";
                }
    
                leaf ra-unspecify-hoplimit {
                  type empty;
                  description
                    "Unspecify IPv6 Router Advertisement (RA)
    hop-limit";
                }
    
                leaf ra-suppress-mtu {
                  type empty;
                  description
                    "RA suppress MTU flag";
                }
    
                leaf suppress-cache-learning {
                  type empty;
                  description
                    "Suppress cache learning flag";
                }
    
                leaf reachable-time {
                  type uint32 {
                    range "0..3600000";
                  }
                  units "millisecond";
                  description
                    "Set advertised reachability time in
    milliseconds";
                }
    
                leaf ns-interval {
                  type uint32 {
                    range "1000..4294967295";
                  }
                  units "millisecond";
                  description
                    "Set advertised NS retransmission interval in
    milliseconds";
                }
              }  // container ipv6-neighbor
    
              container span-attachments {
                description
                  "Monitor Session container for this source
    interface";
                list span-attachment {
                  key "session-name";
                  description
                    "Configuration for a particular Monitor Session";
                  leaf session-name {
                    type dt1:Span-session-name;
                    description "Session Name";
                  }
    
                  leaf mirror-first {
                    type uint32 {
                      range "1..10000";
                    }
                    units "byte";
                    description
                      "Mirror a specified number of bytes from start of
    packet";
                  }
    
                  leaf mirror-interval {
                    type Span-mirror-interval;
                    description
                      "Specify the mirror interval";
                  }
    
                  container attachment-config {
                    presence
                      "Indicates a attachment-config node is configured.";
                    description
                      "Attach the interface to a Monitor Session";
                    leaf session-class {
                      type dt1:Span-session-class;
                      mandatory true;
                      description
                        "Traffic class for the session";
                    }
    
                    leaf direction {
                      type Span-traffic-direction;
                      description
                        "Specify the direction of traffic to replicate
    (optional)";
                    }
    
                    leaf port-level-enable {
                      type empty;
                      description
                        "Enable port level traffic mirroring";
                    }
                  }  // container attachment-config
    
                  container acl {
                    presence
                      "Indicates a acl node is configured.";
                    description
                      "Enable ACL matching for traffic mirroring";
                    leaf acl-enable {
                      type empty;
                      mandatory true;
                      description "Enable ACL";
                    }
    
                    leaf acl-name {
                      type dt1:Span-acl-name;
                      description "ACL Name";
                    }
                  }  // container acl
                }  // list span-attachment
              }  // container span-attachments
    
              container span-monitor-sessions {
                status deprecated;
                description
                  "Monitor Session container for this template";
                list span-monitor-session {
                  key "session-class";
                  description
                    "Configuration for a particular class of Monitor
    Session";
                  leaf session-class {
                    type dt1:Span-session-class;
                    description "Session Class";
                  }
    
                  leaf mirror-first {
                    type uint32 {
                      range "1..10000";
                    }
                    units "byte";
                    description
                      "Mirror a specified number of bytes from start of
    packet";
                  }
    
                  container attachment {
                    presence
                      "Indicates a attachment node is configured.";
                    description
                      "Attach the interface to a Monitor Session";
                    leaf session-name {
                      type dt1:Span-session-name;
                      mandatory true;
                      description "Session Name";
                    }
    
                    leaf direction {
                      type Span-traffic-direction;
                      description
                        "Specify the direction of traffic to replicate
    (optional)";
                    }
    
                    leaf port-level-enable {
                      type empty;
                      description
                        "Enable port level traffic mirroring";
                    }
                  }  // container attachment
    
                  leaf mirror-interval {
                    type Span-mirror-interval;
                    description
                      "Specify the mirror interval";
                  }
    
                  container acl {
                    presence
                      "Indicates a acl node is configured.";
                    description
                      "Enable ACL matching for traffic mirroring";
                    leaf acl-enable {
                      type empty;
                      mandatory true;
                      description "Enable ACL";
                    }
    
                    leaf acl-name {
                      type dt1:Span-acl-name;
                      description "ACL Name";
                    }
                  }  // container acl
    
                  leaf drops {
                    type boolean;
                    description
                      "Specify whether or not to mirror dropped packets";
                  }
    
                  container ipv4acl {
                    presence
                      "Indicates a ipv4acl node is configured.";
                    description
                      "Enable IPv4 ACL matching for traffic mirroring";
                    leaf acl-enable {
                      type empty;
                      mandatory true;
                      description "Enable ACL";
                    }
    
                    leaf acl-name {
                      type dt1:Span-acl-name;
                      description "ACL Name";
                    }
                  }  // container ipv4acl
    
                  container ipv6acl {
                    presence
                      "Indicates a ipv6acl node is configured.";
                    description
                      "Enable IPv6 ACL matching for traffic mirroring";
                    leaf acl-enable {
                      type empty;
                      mandatory true;
                      description "Enable ACL";
                    }
    
                    leaf acl-name {
                      type dt1:Span-acl-name;
                      description "ACL Name";
                    }
                  }  // container ipv6acl
                }  // list span-monitor-session
              }  // container span-monitor-sessions
    
              container accounting {
                description
                  "Subscriber accounting dynamic-template commands";
                container service-accounting {
                  description
                    "Subscriber accounting service accounting";
                  leaf method-list-name {
                    type string;
                    description
                      "Service accounting method list name";
                  }
    
                  leaf accounting-interim-interval {
                    type uint32;
                    units "minute";
                    description
                      "Accounting interim interval in minutes";
                  }
                }  // container service-accounting
    
                container session {
                  description
                    "Subscriber accounting session accounting";
                  leaf method-list-name {
                    type string;
                    description
                      "Session accounting method list name";
                  }
    
                  leaf periodic-interval {
                    type uint32;
                    units "minute";
                    description
                      "Interim accounting interval in minutes";
                  }
    
                  leaf dual-stack-delay {
                    type uint32;
                    units "second";
                    description
                      "Dual stack wait delay in seconds";
                  }
    
                  leaf hold-acct-start {
                    type enumeration {
                      enum
                        "ipv6-prefix-delegation" {
                        value 3;
                        description
                          "Based on ipv6 delegated prefix";
                      }
                    }
                    description
                      "Hold Accounting start based on IA_PD";
                  }
                }  // container session
    
                container idle-timeout {
                  description
                    "Subscriber accounting idle timeout";
                  leaf timeout-value {
                    type uint32 {
                      range "60..4320000";
                    }
                    units "second";
                    description
                      "Idle timeout value in seconds";
                  }
    
                  leaf threshold {
                    type uint32 {
                      range "1..10000";
                    }
                    description
                      "Threshold in minute(s) per packet";
                  }
    
                  leaf direction {
                    type string;
                    description
                      "Idle timeout traffic direction";
                  }
                }  // container idle-timeout
    
                leaf monitor-feature {
                  type string;
                  description
                    "Subscriber monitor feature";
                }
    
                leaf prepaid-feature {
                  type string;
                  description
                    "Subscriber accounting prepaid feature";
                }
              }  // container accounting
    
              container pbr {
                description
                  "Dynamic Template PBR configuration";
                container service-policies {
                  description
                    "Ingress service policy";
                  list service-policy {
                    key "service-policy";
                    description
                      "Service policy details";
                    leaf service-policy {
                      type string {
                        length "1..64";
                      }
                      description
                        "Name of policy-map";
                    }
                  }  // list service-policy
                }  // container service-policies
    
                leaf service-policy-in {
                  type string;
                  description
                    "Class for subscriber ingress policy";
                }
              }  // container pbr
            }  // list subscriber-service
          }  // container subscriber-services
        }  // container dynamic-template
      }  // module Cisco-IOS-XR-subscriber-infra-tmplmgr-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.