huawei-bras-l2tp-access

L2TP access.

  • Version: 2019-05-18

    huawei-bras-l2tp-access@2019-05-18


    
      module huawei-bras-l2tp-access {
    
        yang-version 1;
    
        namespace
          "urn:huawei:yang:huawei-bras-l2tp-access";
    
        prefix bras-l2tp-access;
    
        import huawei-aaa {
          prefix aaa;
        }
        import huawei-extension {
          prefix ext;
        }
        import huawei-bras-basic-access {
          prefix bras-basic-access;
        }
        import huawei-pub-type {
          prefix pub-type;
        }
        import huawei-ifm {
          prefix ifm;
        }
        import huawei-network-instance {
          prefix ni;
        }
        import huawei-ip {
          prefix ip;
        }
        import ietf-inet-types {
          prefix inet;
        }
        import huawei-radius {
          prefix radius;
        }
        import huawei-devm {
          prefix devm;
        }
        import huawei-qos {
          prefix qos;
        }
        import huawei-bras-cu-controller {
          prefix bras-cu-controller;
        }
        import huawei-devm-vnf {
          prefix devm-vnf;
        }
        import huawei-system {
          prefix system;
        }
    
        organization
          "Huawei Technologies Co., Ltd.";
    
        contact
          "Huawei Industrial Base
    Bantian, Longgang
    Shenzhen 518129
    People's Republic of China
    Website: http://www.huawei.com
    Email: support@huawei.com";
    
        description "L2TP access.";
    
        revision "2019-05-18" {
          description "Initial revision.";
          reference
            "Huawei private.";
    
        }
    
        ext:task-name "l2tp";
    
        typedef session-status-type {
          type enumeration {
            enum "establishing" {
              value 0;
              description
                "Session is establishing.";
            }
            enum "up" {
              value 1;
              description
                "Session establishment up status.";
            }
            enum "down" {
              value 2;
              description
                "Session establishment down status.";
            }
          }
          description
            "Session establishment status.";
        }
    
        container bras-l2tp-access {
          description "L2TP access.";
          container l2tp-global {
            description
              "Configure L2TP global function.";
            leaf l2tp-enable {
              type boolean;
              default "false";
              description "Enable/disable L2TP.";
            }
    
            leaf auto-reset-enable {
              type empty;
              description
                "Enable automatic tunnel is deleted and re-established.";
            }
          }  // container l2tp-global
    
          container lac-global {
            description
              "Configure LAC global function.";
            leaf session-limit-enable {
              type boolean;
              default "false";
              description
                "Enable/disable specifies the maximum number of the sessions.";
            }
    
            leaf tunnel-base-id {
              type uint32 {
                range
                  "0 | 16384 | 32768 | 49152";
              }
              default "0";
              description
                "L2TP tunnel ID allocation base value configuration.";
            }
    
            leaf aging-time {
              type uint32 {
                range "1..3600";
              }
              units "s";
              default "300";
              description "L2tp aging time.";
            }
    
            leaf calling-number-enable {
              type boolean;
              default "true";
              description
                "Enable/disable l2tp Calling-number enable.";
            }
    
            leaf calling-vlan-invalid {
              type boolean;
              default "false";
              description
                "Enable/disable l2tp calling-station-id VLAN invalid.";
            }
    
            leaf stopccn-chasten {
              type enumeration {
                enum "disable" {
                  value 1;
                  description "Disable.";
                }
                enum "enable" {
                  value 0;
                  description "Enable.";
                }
              }
              default "enable";
              description
                "Enable lns-ip chasten by stopccn function.";
            }
          }  // container lac-global
    
          container lns-global {
            description
              "Configure LNS global function.";
            container tunnel-limit {
              description
                "Configure l2tp tunnel number.";
              container limit {
                description
                  "Configure l2tp tunnel number.";
                leaf set-value {
                  type uint32 {
                    range "0..49152";
                  }
                  default "49152";
                  description
                    "Limit l2tp tunnel number.";
                }
              }  // container limit
    
              container used-ids {
                config false;
                description
                  "Statistics of the information of used L2TP tunnel ID.";
                leaf number {
                  type uint32;
                  config false;
                  description
                    "The number of used tunnel IDs.";
                }
              }  // container used-ids
            }  // container tunnel-limit
    
            container lns-fast-replys {
              description
                "List of lns fast reply.";
              list lns-fast-reply {
                key "slot-id";
                description
                  "Configure lns fast reply.";
                leaf slot-id {
                  type string {
                    length "1..15";
                    pattern '([^A-Z]{1,32})';
                  }
                  description
                    "Enable lns-fast-replay of the specified slot.";
                }
              }  // list lns-fast-reply
            }  // container lns-fast-replys
    
            container slot-block {
              description
                "Configure l2tp slot blocks.";
              leaf-list slot-id {
                type string {
                  length "1..15";
                  pattern '([^A-Z]{1,32})';
                }
                description "Configure slot ID.";
              }
            }  // container slot-block
    
            container l2tp-aaa {
              description
                "Configure l2tp to aaa model.";
              container lns-user-limit {
                description
                  "Configure the maximum number of users that are allowed to access the LNS.";
                leaf limit-value {
                  type uint32 {
                    range "0..262144";
                  }
                  description
                    "Specifies the maximum number of access users.";
                }
              }  // container lns-user-limit
    
              container bgp-over-lns {
                description
                  "Configure BGP route forwarding between CPE and BRAS.";
                leaf lns-enable {
                  type boolean;
                  default "false";
                  description
                    "Enable/disable BGP route forwarding between CPE and BRAS.";
                }
              }  // container bgp-over-lns
            }  // container l2tp-aaa
    
            container other-function {
              description
                "Configure LNS other function.";
              leaf protocol-packet-enable {
                type boolean;
                default "false";
                description
                  "Enable/disable the l2tp lns protocol-packet soft-transmit command enables an LNS to transmit L2TP packets to an LAC by software.";
              }
    
              leaf accm-enable {
                type boolean;
                default "false";
                description
                  "Enable/disable lns accm.";
              }
            }  // container other-function
          }  // container lns-global
    
          container l2tp-groups {
            description "List of L2TP groups.";
            list l2tp-group {
              ext:generated-by "system" {
                ext:filter "name='default-lac' or name='default-lns'";
                description "The instances whose name is 'default-lac' or 'default-lns' are generated by system automatically.";
              }
              ext:operation-exclude "create|delete" {
                ext:filter "name='default-lac' or name='default-lns'";
                description "The instances whose name is 'default-lac' or 'default-lns' cannot be created or deleted.";
              }
              key "name";
              max-elements 1000;
              description
                "Configure L2TP group.";
              leaf name {
                ext:case-sensitivity "lower-only";
                type string {
                  length "1..32";
                  pattern '[!-~]{1,32}';
                  pattern
                    '([^A-Z"%'*/:<>\?@|]{1,32})';
                }
                must
                  "../name != '-' and ../name != '--'";
                description "L2TP group name.";
              }
    
              container l2tp-tunnel {
                description
                  "Configure tunnel basic.";
                container authentication {
                  description
                    "Configure authentication.";
                  leaf authen-enable {
                    type enumeration {
                      enum "enable" {
                        value 0;
                        description "Enable.";
                      }
                      enum "strict-enable" {
                        value 1;
                        description
                          "Strict enable.";
                      }
                      enum "disable" {
                        value 2;
                        description "Disable.";
                      }
                    }
                    default "enable";
                    description
                      "Tunnel authentication enable.";
                  }
    
                  leaf password {
                    type pub-type:password-extend {
                      length "1..408";
                    }
                    description
                      "The password is a string ranging from 1 to 255 characters for a plaintext password and 48 to 408 characters for a ciphertext password.";
                  }
    
                  leaf aaa-auth-enable {
                    type boolean;
                    default "false";
                    description
                      "Enable/disable aaa authentication.";
                  }
    
                  leaf radius-force-enable {
                    type boolean;
                    default "false";
                    description
                      "Enable/disable radius force.";
                  }
                }  // container authentication
    
                container other-parameter-sets {
                  description
                    "Configure other parameter. Default value is device's name.";
                  leaf tunnel-name {
                    ext:dynamic-default {
                      ext:default-value "/system:system/system:system-info/system:sys-name" {
                        description "The default tunnel name is the device name and the default device name is 'HUAWEI'.";
                      }
                    }
                    type string {
                      length "1..253";
                    }
                    description "Tunnel name.";
                  }
    
                  leaf description {
                    type string {
                      length "1..80";
                    }
                    description "Description.";
                  }
    
                  leaf idle-cut {
                    type uint32 {
                      range "0..100000";
                    }
                    units "s";
                    default "60";
                    description "Idle cut.";
                  }
    
                  leaf time-out {
                    type uint32 {
                      range "1..10";
                    }
                    units "s";
                    default "2";
                    description "Time out.";
                  }
    
                  leaf hello-time {
                    type uint32 {
                      range "0..100000";
                    }
                    units "s";
                    default "60";
                    description "Hello time.";
                  }
    
                  leaf retransmit-time {
                    type uint32 {
                      range "1..10";
                    }
                    units "s";
                    default "5";
                    description
                      "Retransmit time.";
                  }
    
                  leaf recive-window-size {
                    type uint32 {
                      range "0..5000";
                    }
                    default "0";
                    description
                      "Recive window size.";
                  }
    
                  leaf retrans-queue-length {
                    type uint32 {
                      range "1..1024";
                    }
                    default "1024";
                    description "Queue len.";
                  }
    
                  leaf inbound-name {
                    type leafref {
                      path "/qos:qos/qos:queue-scheduler-template/qos:user-group-queues/qos:user-group-queue/qos:name";
                    }
                    must
                      "/qos:qos/qos:queue-scheduler-template/qos:user-group-queues/qos:user-group-queue[qos:name=current()]/qos:mode='normal'";
                    description
                      "User-group-queue name for inbound.";
                  }
    
                  leaf outbound-name {
                    type leafref {
                      path "/qos:qos/qos:queue-scheduler-template/qos:user-group-queues/qos:user-group-queue/qos:name";
                    }
                    must
                      "/qos:qos/qos:queue-scheduler-template/qos:user-group-queues/qos:user-group-queue[qos:name=current()]/qos:mode='normal'";
                    description
                      "User-group-queue name for outbound.";
                  }
                }  // container other-parameter-sets
    
                container other-function-sets {
                  description
                    "Configure other function.";
                  leaf alarm-enable {
                    type boolean;
                    default "true";
                    description
                      "Enable/disable tunnel alarm.";
                  }
    
                  leaf avp-nas-port-enable {
                    type empty;
                    description
                      "Enable the L2TP attribute AVP100.";
                  }
    
                  leaf avp46-enable {
                    type empty;
                    description "Avp46 enable.";
                  }
    
                  leaf avp-cncrypte-enable {
                    type empty;
                    description
                      "Whether AVP data is transmitted in encrypted text.";
                  }
    
                  leaf peer-hello-check-enable {
                    type empty;
                    description
                      "Peer hello check.";
                  }
                }  // container other-function-sets
              }  // container l2tp-tunnel
    
              container l2tp-lac {
                description
                  "Configure LAC service.";
                container tunnel-mode {
                  description
                    "Configure tunnel load sharing mode.";
                  choice mode {
                    description "Mode.";
                    case load-share {
                      description "Load-share.";
                      leaf load-share-enable {
                        type empty;
                        description
                          "Tunnel load Share enable.";
                      }
                    }  // case load-share
    
                    case priority {
                      description
                        "The tunnel is divided according to the priority load.";
                      leaf priority-enable {
                        type empty;
                        description
                          "Tunnel priority enable.";
                      }
                    }  // case priority
    
                    case per-user {
                      description "Per-user.";
                      leaf per-user-enable {
                        type empty;
                        description
                          "Tunnel per user enable.";
                      }
                    }  // case per-user
                  }  // choice mode
                }  // container tunnel-mode
    
                container source-interface {
                  presence
                    "Tunnel bind source interface.";
                  description
                    "Enable/disable tunnel bind source interface.";
                  leaf name {
                    type leafref {
                      path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                    }
                    must
                      "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='Ethernet' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='GigabitEthernet' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='Eth-Trunk' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='10GE' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='LoopBack' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='XGigabitEthernet' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='100GE' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='50GE' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='50|100GE' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='FlexE' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='25GE' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='Pos' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='Ip-Trunk' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='ATM'";
                    mandatory true;
                    description
                      "Interface name.";
                  }
    
                  leaf rui-enable {
                    type boolean;
                    must
                      "../rui-enable='false' or (../rui-enable='true' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()/../name]/ifm:type='LoopBack')";
                    default "false";
                    description
                      "Enable/disable backup user, can only be configured on loopBack interface.";
                  }
                }  // container source-interface
    
                container start-l2tp {
                  must
                    "not(../../l2tp-lns/allow/virtual-template-number)";
                  presence "Start l2tp enable.";
                  description
                    "Enable/disable start l2tp.";
                  container lns-ips {
                    description
                      "List of L2tp start IPs.";
                    list lns-ip {
                      key "identifier-name";
                      max-elements 8;
                      description
                        "Configure L2tp start IP.";
                      leaf identifier-name {
                        type string {
                          length "1..4";
                        }
                        description
                          "Identifier name.";
                      }
    
                      leaf ip-address {
                        type inet:ipv4-address-no-zone;
                        mandatory true;
                        description
                          "Ip address.";
                      }
    
                      leaf weight {
                        type uint32 {
                          range "1..10";
                        }
                        default "5";
                        description "Weight.";
                      }
    
                      leaf preference {
                        type uint32 {
                          range "1..255";
                        }
                        default "1";
                        description
                          "Preference.";
                      }
    
                      leaf remote-name {
                        type string {
                          length "1..253";
                        }
                        description
                          "Remote name.";
                      }
                    }  // list lns-ip
                  }  // container lns-ips
                }  // container start-l2tp
    
                container local-name-lns-ips {
                  description
                    "List of specify configuration information of the L2TP tunnel.";
                  list local-name-lns-ip {
                    key "ip-address";
                    max-elements 8;
                    description
                      "Configure specify information of the L2TP tunnel.";
                    leaf ip-address {
                      type inet:ipv4-address-no-zone;
                      description
                        "Sets specify lns ip address.";
                    }
    
                    leaf local-name {
                      type string {
                        length "1..253";
                      }
                      mandatory true;
                      description
                        "Sets specify local name of the L2TP tunnel.";
                    }
                  }  // list local-name-lns-ip
                }  // container local-name-lns-ips
    
                container block-lns-ip {
                  when
                    "../tunnel-mode/priority-enable";
                  description
                    "Configure block L2TP LNS IP address.";
                  leaf-list ip-address {
                    type inet:ipv4-address-no-zone;
                    description
                      "Configure block L2TP LNS IP address.";
                  }
                }  // container block-lns-ip
    
                container password-lns-ips {
                  description
                    "List of lns tunnel password.";
                  list password-lns-ip {
                    key "ip-address";
                    max-elements 8;
                    description
                      "Configure tunnel password and lns-ip.";
                    leaf ip-address {
                      type inet:ipv4-address-no-zone;
                      description
                        "Sets lns ip address.";
                    }
    
                    leaf password {
                      type pub-type:password-extend {
                        length "1..408";
                      }
                      mandatory true;
                      description
                        "The password is a string ranging from 1 to 255 characters for a plaintext password and 48 to 408 characters for a ciphertext password.";
                    }
                  }  // list password-lns-ip
                }  // container password-lns-ips
    
                container avp-calling-number {
                  description
                    "Configure avp alling-number parameters.";
                  container avp-enable {
                    description
                      "Configure avp alling-number.";
                    leaf status {
                      type enumeration {
                        enum "enable" {
                          value 1;
                          description "Enable.";
                        }
                        enum "disable" {
                          value 2;
                          description "Disable.";
                        }
                      }
                      description
                        "Avp alling-number enable.";
                    }
                  }  // container avp-enable
    
                  container calling-number-format {
                    description
                      "Configure number format.";
                    choice module {
                      description "Module.";
                      case l2tp {
                        description "L2TP.";
                        container l2tp-format {
                          description
                            "Configure number format from l2tp.";
                          choice format {
                            description
                              "Format.";
                            case version1 {
                              description
                                "Version1.";
                              leaf version1-enable {
                                type empty;
                                description
                                  "Version1 Enable.";
                              }
    
                              leaf include-option82 {
                                when
                                  "../version1-enable";
                                type empty;
                                description
                                  "Include option82.";
                              }
                            }  // case version1
    
                            case version2 {
                              description
                                "Version2.";
                              container include-attributes {
                                description
                                  "List of the user-defined format of the attributes.";
                                list include-attribute {
                                  key "attribute-type";
                                  max-elements
                                    10;
                                  ordered-by
                                    user;
                                  description
                                    "Configure the user-defined format of the attribute.";
                                  leaf attribute-type {
                                    type enumeration {
                                      enum
                                        "option82" {
                                        value
                                          1;
                                        description
                                          "Option82.";
                                      }
                                      enum
                                        "user-mac" {
                                        value
                                          2;
                                        description
                                          "User mac address.";
                                      }
                                      enum
                                        "interface" {
                                        value
                                          3;
                                        description
                                          "Interface.";
                                      }
                                      enum
                                        "domain" {
                                        value
                                          4;
                                        description
                                          "Domain.";
                                      }
                                      enum
                                        "system-name" {
                                        value
                                          5;
                                        description
                                          "System name.";
                                      }
                                      enum
                                        "vlan" {
                                        value
                                          6;
                                        description
                                          "VLAN.";
                                      }
                                      enum
                                        "agent-circuit-id" {
                                        value
                                          7;
                                        description
                                          "Agent circuit id.";
                                      }
                                      enum
                                        "agent-remote-id" {
                                        value
                                          8;
                                        description
                                          "Agent remote id.";
                                      }
                                      enum
                                        "pe-vlan" {
                                        value
                                          9;
                                        description
                                          "Pe-VLAN.";
                                      }
                                      enum
                                        "ce-vlan" {
                                        value
                                          10;
                                        description
                                          "Ce-VLAN.";
                                      }
                                    }
                                    description
                                      "Configures the user-defined format of the nas-port-id attribute type.";
                                  }
    
                                  leaf delimiter {
                                    type string {
                                      length "1";
                                      pattern
                                        '[b\*\-\\#$@&:]';
                                    }
                                    description
                                      "Configures the user-defined format of the attribute delimiter one.";
                                  }
                                }  // list include-attribute
                              }  // container include-attributes
    
                              leaf include-delimiter {
                                type string {
                                  length "1";
                                  pattern
                                    '[b\*\-\\#$@&:]';
                                }
                                must
                                  "count(../include-attributes/include-attribute) >= 1";
                                description
                                  "The value of the includeDelimiter field must be one of the following values: b, asterisk, hyphen, backslash, number sign, dollar sign, at sign, ampersand and colon.";
                              }
                            }  // case version2
    
                            case version3 {
                              description
                                "Version3 format.";
                              leaf version3-enable {
                                type empty;
                                description
                                  "Version3 enable.";
                              }
                            }  // case version3
                          }  // choice format
                        }  // container l2tp-format
                      }  // case l2tp
    
                      case aaa {
                        description "AAA.";
                        container aaa-format {
                          description
                            "Configure number format from aaa.";
                          choice format {
                            description
                              "Format.";
                            case lli {
                              description "Lli.";
                              leaf logical-line-id {
                                type empty;
                                description
                                  "Enable Logical line ID.";
                              }
                            }  // case lli
    
                            case radius-force {
                              description
                                "Radius force.";
                              leaf radius-force {
                                type empty;
                                description
                                  "Enable the calling-station-id function delivered by the RADIUS server on the LAC side.";
                              }
                            }  // case radius-force
                          }  // choice format
                        }  // container aaa-format
                      }  // case aaa
                    }  // choice module
    
                    container interface-exclude-subslot {
                      description
                        "Configure interface exclude subslot.";
                      leaf exclude-enable {
                        type boolean;
                        default "false";
                        description
                          "Enable/disable L2TP AVP configuration information about subslot.";
                      }
                    }  // container interface-exclude-subslot
                  }  // container calling-number-format
                }  // container avp-calling-number
    
                container other-function-sets {
                  description
                    "Configure other function.";
                  leaf session-limit {
                    type uint32 {
                      range "0..65535";
                    }
                    default "65535";
                    description
                      "Session limit of the tunnel.";
                  }
    
                  leaf mtu-enable {
                    type boolean;
                    default "true";
                    description
                      "Enable/disable mtu.";
                  }
    
                  leaf mss-enable {
                    type boolean;
                    default "true";
                    description
                      "Enable/disable mss.";
                  }
    
                  leaf allow-address-change-type {
                    type enumeration {
                      enum "setup-only" {
                        value 1;
                        description
                          "Setup only.";
                      }
                      enum "always" {
                        value 2;
                        description "Always.";
                      }
                    }
                    description
                      "Allow address change type.";
                  }
    
                  leaf trust-upstream-priority {
                    type boolean;
                    default "false";
                    description
                      "Enable/disable lac packet priority.";
                  }
    
                  leaf sccrq-time {
                    type uint32 {
                      range "1..1000";
                    }
                    units "ms";
                    description
                      "Send sccrq delay time.";
                  }
    
                  leaf dscp-value {
                    type uint32 {
                      range "0..63";
                    }
                    description
                      "Lac dscp value.";
                  }
                }  // container other-function-sets
    
                container cp-source-interfaces {
                  description
                    "List of LAC group bind source interface.";
                  list cp-source-interface {
                    must
                      "up-id-end >= up-id-begin";
                    key "up-id-begin up-id-end";
                    description
                      "Configure LAC group bind source interface.";
                    leaf up-id-begin {
                      type uint32 {
                        range
                          "1024..2023 | 2048..3047 | 3072..4071 | 4096..5095";
                      }
                      must
                        "../up-id-begin <= (/bras-cu-controller:bras-cu-controller/bras-cu-controller:global-attribute/bras-cu-controller:up-base-id + 999) and ../up-id-begin >= /bras-cu-controller:bras-cu-controller/bras-cu-controller:global-attribute/bras-cu-controller:up-base-id";
                      description "Begin up id.";
                    }
    
                    leaf up-id-end {
                      type uint32 {
                        range
                          "1024..2023 | 2048..3047 | 3072..4071 | 4096..5095";
                      }
                      must
                        "../up-id-end <= (/bras-cu-controller:bras-cu-controller/bras-cu-controller:global-attribute/bras-cu-controller:up-base-id + 999) and ../up-id-end >= /bras-cu-controller:bras-cu-controller/bras-cu-controller:global-attribute/bras-cu-controller:up-base-id";
                      description "End up id.";
                    }
    
                    leaf loopback-number {
                      type uint32 {
                        range "0..2147483647";
                      }
                      default "0";
                      description
                        "Loopback number.";
                    }
                  }  // list cp-source-interface
                }  // container cp-source-interfaces
              }  // container l2tp-lac
    
              container l2tp-lns {
                description
                  "Configure LNS service.";
                container allow {
                  must
                    "not(../../l2tp-lac/start-l2tp) and (../../name != 'default-lac')";
                  must
                    "(../../name != 'default-lns' and ./remote-name) or ../../name = 'default-lns'";
                  presence
                    "Allow l2tp virtual-template.";
                  description
                    "Enable/disable specifies the channel peer name and virtual template used by this L2TP group.";
                  leaf virtual-template-number {
                    type leafref {
                      path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:number";
                    }
                    must
                      "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:number=current()]/ifm:type='Virtual-Template'";
                    mandatory true;
                    description
                      "Virtual template number.";
                  }
    
                  leaf remote-name {
                    type string {
                      length "1..253";
                    }
                    description "Remote name.";
                  }
    
                  leaf lac-source-ip-address {
                    type inet:ipv4-address-no-zone;
                    description
                      "Lac source IP address.";
                  }
                }  // container allow
    
                container domain {
                  description
                    "Configure LNS Service.";
                  leaf set-type {
                    type enumeration {
                      enum "default" {
                        value 0;
                        description "Default.";
                      }
                      enum "force" {
                        value 1;
                        description "Force.";
                      }
                      enum "replace" {
                        value 2;
                        description "Replace.";
                      }
                    }
                    description
                      "Force authentication enable.";
                  }
    
                  leaf name {
                    when "../set-type";
                    type leafref {
                      path "/aaa:aaa/aaa:domains/aaa:domain/aaa:name";
                    }
                    mandatory true;
                    description
                      "LNS authen domain name.";
                  }
    
                  leaf roam-name {
                    type leafref {
                      path "/aaa:aaa/aaa:domains/aaa:domain/aaa:name";
                    }
                    description
                      "LNS roam domain name.";
                  }
                }  // container domain
    
                container calling-station-id {
                  description
                    "Configure the L2TP attribute parameters.";
                  leaf agent-remote-id {
                    type boolean;
                    default "false";
                    description
                      "Enable/disable format calling-station-id.";
                  }
    
                  leaf translate-remote-id {
                    type boolean;
                    default "false";
                    description
                      "Enable/disable attribute translate.";
                  }
                }  // container calling-station-id
    
                container other-function-sets {
                  description
                    "Configure other function.";
                  leaf cdn-send-delay-enable {
                    type empty;
                    description
                      "Cdn send delay enable.";
                  }
    
                  leaf renegotiation-lcp-enable {
                    type empty;
                    description
                      "Renegotiation lcp enable.";
                  }
    
                  leaf lns-schedule-enable {
                    type boolean;
                    default "false";
                    description
                      "Enable/disable lns schedule.";
                  }
    
                  leaf mandatory-chap {
                    type enumeration {
                      enum "mandatory-chap" {
                        value 1;
                        description
                          "Mandatory chap.";
                      }
                      enum "challenge-length" {
                        value 2;
                        description
                          "Challenge length.";
                      }
                    }
                    description "Lns chap type.";
                  }
    
                  leaf mandatory-lcp {
                    type enumeration {
                      enum "mandatory-lcp" {
                        value 1;
                        description
                          "Mandatory lcp.";
                      }
                      enum "on-mismatch" {
                        value 2;
                        description
                          "On mismatch.";
                      }
                      enum "strict" {
                        value 3;
                        description "Strict.";
                      }
                    }
                    description "LnsMndtLcpFlg.";
                  }
    
                  leaf qos-mode {
                    type enumeration {
                      enum "tunnel" {
                        value 1;
                        description "Tunnel.";
                      }
                      enum "session" {
                        value 2;
                        description "Session.";
                      }
                    }
                    default "tunnel";
                    description "Qos mode.";
                  }
    
                  leaf sccrp-time {
                    type uint32 {
                      range "500..1000";
                    }
                    units "ms";
                    description
                      "Send sccrp delay time.";
                  }
    
                  leaf dscp-value {
                    type uint32 {
                      range "0..63";
                    }
                    description
                      "Lns dscp value.";
                  }
                }  // container other-function-sets
              }  // container l2tp-lns
    
              container group {
                config false;
                description
                  "Statistics of all information about L2TP groups.";
                leaf used-tunnel-number {
                  type uint32;
                  config false;
                  description
                    "Number of used tunnels.";
                }
    
                leaf used-number {
                  type uint16;
                  config false;
                  description
                    "Number of times that L2TP tunnels are established for an L2TP group on the backup device.";
                }
    
                container lns-ip-addresss {
                  config false;
                  description
                    "List of informations about LNS IP address. When load balancing based on the master/backup status is configured, only LNS IP addresses are displayed. When weight-based load-balancing is configured, LNS IP addresses and weights are displayed. When priority-based load balancing is configured, LNS IP addresses and priorities are displayed.";
                  list lns-ip-address {
                    key "lns-index";
                    config false;
                    description
                      "Statistics of information about LNS IP address. When load balancing based on the master/backup status is configured, only LNS IP addresses are displayed. When weight-based load-balancing is configured, LNS IP addresses and weights are displayed. When priority-based load balancing is configured, LNS IP addresses and priorities are displayed.";
                    leaf lns-index {
                      type uint32;
                      config false;
                      description
                        "The index of LNS IP address.";
                    }
    
                    leaf ip-address {
                      type inet:ipv4-address-no-zone;
                      config false;
                      description
                        "LNS IP address.";
                    }
    
                    leaf tunnel-id {
                      type uint32 {
                        range "1..65535";
                      }
                      config false;
                      description
                        "The Tunnel ID of LNS IP address.";
                    }
    
                    leaf expire {
                      type uint32;
                      config false;
                      description
                        "The expire of LNS IP address.";
                    }
    
                    leaf state {
                      type enumeration {
                        enum "unused" {
                          value 0;
                          description
                            "LNS IP address be unused.";
                        }
                        enum "used" {
                          value 1;
                          description
                            "LNS IP address be used.";
                        }
                      }
                      config false;
                      description
                        "The used state of LNS IP address.";
                    }
                  }  // list lns-ip-address
                }  // container lns-ip-addresss
              }  // container group
    
              container cp-source-interface {
                config false;
                description
                  "Statistics of CP l2tp-group source interface info.";
                container up-sources {
                  config false;
                  description
                    "List of CP l2tp-group source interface info.";
                  list up-source {
                    key "up-id";
                    config false;
                    description
                      "Statistics of up source info.";
                    leaf up-id {
                      type uint32;
                      config false;
                      description
                        "Index of an up group.";
                    }
    
                    leaf group-description {
                      type string {
                        length "1..80";
                      }
                      config false;
                      description
                        "Group-description.";
                    }
    
                    leaf group-type {
                      type enumeration {
                        enum "none" {
                          value 0;
                          description "None.";
                        }
                        enum
                          "accept-dialin-l2tp" {
                          value 1;
                          description
                            "Accept dialin.";
                        }
                        enum
                          "request-dialin-l2tp" {
                          value 2;
                          description
                            "Request dialin.";
                        }
                      }
                      default "none";
                      config false;
                      description "Group type.";
                    }
    
                    container routes {
                      config false;
                      description
                        "List of CP l2tp-group source interface info.";
                      list route {
                        key "interface-name";
                        config false;
                        description
                          "Statistics of disL2tpGroup.";
                        leaf interface-name {
                          type string {
                            length "1..49";
                          }
                          config false;
                          description
                            "Source interface name.";
                        }
    
                        leaf ip-address {
                          type inet:ipv4-address-no-zone;
                          config false;
                          description
                            "Source IP.";
                        }
    
                        leaf vpn-route-forward-id {
                          type uint32;
                          config false;
                          description
                            "VPN Route Forward Id.";
                        }
                      }  // list route
                    }  // container routes
                  }  // list up-source
                }  // container up-sources
              }  // container cp-source-interface
            }  // list l2tp-group
          }  // container l2tp-groups
    
          container lns-groups {
            description "List of LNS Group.";
            list lns-group {
              key "group-name";
              max-elements 16;
              description "Configure LNS Group.";
              leaf group-name {
                ext:case-sensitivity "lower-only";
                type string {
                  length "1..30";
                  pattern '([^A-Z]{1,30})';
                }
                description
                  "Name of a LNS Group.";
              }
    
              container bind-sources {
                description
                  "List of LNS group bind source interface.";
                list bind-source {
                  key "interface-name";
                  max-elements 256;
                  description
                    "Configure LNS group bind source interface.";
                  leaf interface-name {
                    type leafref {
                      path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                    }
                    must
                      "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='Ethernet' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='GigabitEthernet' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='Eth-Trunk' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='10GE' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='LoopBack' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='XGigabitEthernet' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='100GE' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='50GE' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='50|100GE' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='FlexE' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='25GE' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='Pos' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='Ip-Trunk' or
    /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='ATM'";
                    must
                      "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ip:ipv4/ip:addresses/ip:address/ip:ip";
                    description
                      "Source Interface.";
                  }
                }  // list bind-source
              }  // container bind-sources
    
              choice bind-board {
                description "Bind board.";
                case bind-slots {
                  description "Bind slots.";
                  container bind-slots {
                    description
                      "List of LNS group bind the LPU slot.";
                    list bind-slot {
                      key "slot-id";
                      description
                        "Configure LNS group bind the LPU slot.";
                      leaf slot-id {
                        type string {
                          length "1..15";
                          pattern
                            '([^A-Z]{1,32})';
                        }
                        description
                          "The LPU slot.";
                      }
    
                      container tunnel-session {
                        config false;
                        description
                          "Statistics of the Tunnel and Session Information on the board in the LNS group.";
                        leaf tunnel-number {
                          type uint32 {
                            range "0..65535";
                          }
                          config false;
                          description
                            "The number of tunnels.";
                        }
    
                        leaf session-number {
                          type uint32 {
                            range "0..65535";
                          }
                          config false;
                          description
                            "The number of sessions.";
                        }
                      }  // container tunnel-session
                    }  // list bind-slot
                  }  // container bind-slots
                }  // case bind-slots
    
                case bind-backup-groups {
                  description
                    "Bind backup-groups.";
                  container bind-backup-groups {
                    description
                      "List of LNS backup groups bound to LNS tunnel groups.";
                    list bind-backup-group {
                      key "name";
                      max-elements 8;
                      description
                        "Configure LNS backup group bound to an LNS tunnel group.";
                      leaf name {
                        type leafref {
                          path "/bras-l2tp-access:bras-l2tp-access/bras-l2tp-access:lns-backup-groups/bras-l2tp-access:lns-backup-group/bras-l2tp-access:name";
                        }
                        description
                          "Name of an LNS backup group.";
                      }
                    }  // list bind-backup-group
                  }  // container bind-backup-groups
                }  // case bind-backup-groups
              }  // choice bind-board
    
              container group-description {
                description
                  "Configure a LNS Group.";
                leaf description-value {
                  type string {
                    length "1..80";
                  }
                  description
                    "Description of a LNS Group.";
                }
              }  // container group-description
    
              container load-balance {
                description
                  "Configure tunnel load balance type.";
                leaf mode {
                  type enumeration {
                    enum "by-tunnel" {
                      value 1;
                      description "By tunnel.";
                    }
                    enum "by-session" {
                      value 2;
                      description "By session.";
                    }
                  }
                  description
                    "Load balance type.";
                }
              }  // container load-balance
    
              container master-slot {
                config false;
                description
                  "Statistics of information about the slot number of the main tunnel board in the LNS group.";
                leaf slot-id {
                  type string {
                    length "1..15";
                    pattern '([^A-Z]{1,32})';
                  }
                  config false;
                  description
                    "The Master Slot ID.";
                }
              }  // container master-slot
            }  // list lns-group
          }  // container lns-groups
    
          container lns-backup-groups {
            description
              "List of LNS backup groups.";
            list lns-backup-group {
              key "name";
              max-elements 16;
              description
                "Configure an LNS backup group. You can specify the master and backup tunnel boards to support the backup function.";
              leaf name {
                type string {
                  length "1..30";
                }
                description
                  "Name of an LNS backup group.";
              }
    
              container bind-slots {
                description
                  "Configure master and backup tunnel boards bound to LNS backup groups.";
                leaf master-slot-id {
                  ext:operation-exclude "update";
                  type string {
                    length "1..15";
                  }
                  description
                    "Slot ID of a tunnel master board.";
                }
    
                leaf slave-slot-id {
                  ext:operation-exclude "update";
                  type string {
                    length "1..15";
                  }
                  description
                    "Slot ID of a tunnel slave board.";
                }
              }  // container bind-slots
            }  // list lns-backup-group
          }  // container lns-backup-groups
    
          container l2tp-failover {
            description
              "Configure L2TP failover capability negotiation.";
            leaf enable {
              type boolean;
              default "true";
              description
                "Enable/disable L2TP failover capability negotiation.";
            }
          }  // container l2tp-failover
    
          container protocols {
            config false;
            description
              "List of L2TP protocol infos.";
            list protocol {
              key "vendor-name";
              config false;
              description
                "Statistics of L2TP protocol info.";
              leaf vendor-name {
                type string {
                  length "1..255";
                }
                config false;
                description
                  "This object identifies the Vendor name of the L2TP protocol stack.";
              }
    
              leaf firmware-revision {
                type int32 {
                  range "0..2147483647";
                }
                config false;
                description
                  "This object defines the firmware revision for the L2TP protocol stack.";
              }
    
              leaf drain-tunnel {
                type enumeration {
                  enum "true" {
                    value 1;
                    description "True.";
                  }
                  enum "false" {
                    value 2;
                    description "False.";
                  }
                }
                config false;
                description
                  "This object indicates if the local L2TP is draining off sessions from all tunnels.";
              }
    
              leaf schema-version {
                type string {
                  length "1..255";
                }
                config false;
                description
                  "Vector of supported L2TP protocol version and revision numbers. Supported versions are identified via a two octet pairing where the first octet indicates the version and the second octet contains the revision.";
              }
            }  // list protocol
          }  // container protocols
    
          container lac-tunnels {
            config false;
            description
              "List of information of the L2TP tunnels.";
            list lac-tunnel {
              key "local-id";
              description
                "Statistics of information of the L2TP tunnel.";
              leaf local-id {
                type uint32 {
                  range "1..65535";
                }
                description
                  "Local ID of a L2TP tunnel.";
              }
    
              leaf local-name {
                type string {
                  length "1..253";
                }
                description
                  "Local Name of a L2TP Tunnel.";
              }
    
              leaf remote-id {
                type uint32 {
                  range "1..65535";
                }
                description
                  "The Peer ID of a L2TP Tunnel.";
              }
    
              leaf remote-name {
                ext:support-filter "true";
                type string {
                  length "1..253";
                }
                description
                  "The Peer Name of a L2TP tunnel.";
              }
    
              leaf status {
                type string {
                  length "1..31";
                }
                description
                  "The status of the L2TP Tunnel establishment.";
              }
    
              leaf local-ip-address {
                type inet:ipv4-address-no-zone;
                description "Local IP address.";
              }
    
              leaf local-port {
                type uint16;
                description "Local port number.";
              }
    
              leaf remote-ip-address {
                type inet:ipv4-address-no-zone;
                description "Remote IP address.";
              }
    
              leaf remote-port {
                type uint16;
                description
                  "Remote Port Number.";
              }
    
              leaf recall-ip-address {
                type inet:ipv4-address-no-zone;
                description "Socket IP address.";
              }
    
              leaf vrf {
                type uint32;
                description
                  "VPF configured locally.";
              }
    
              container time {
                description
                  "Statistics of information of the L2TP tunnel time.";
                leaf start-date {
                  type string {
                    length "1..31";
                  }
                  description
                    "Date when an L2TP tunnel was established.";
                }
    
                leaf start-clock {
                  type string {
                    length "1..31";
                  }
                  description
                    "Time when an L2TP tunnel was established.";
                }
    
                leaf continuance-length {
                  type string {
                    length "1..127";
                  }
                  description
                    "Time when an L2TP tunnel was continuance.";
                }
              }  // container time
    
              container config {
                description
                  "Statistics of information of the L2TP tunnel configuration.";
                leaf hello-interval {
                  type uint32;
                  description
                    "Interval for sending Hello packets, in seconds.";
                }
    
                leaf session-limit {
                  type uint32 {
                    range "0..65535";
                  }
                  description
                    "Maximum number of sessions.";
                }
    
                leaf per-user-enable {
                  type boolean;
                  description
                    "Whether per tunnel per user is enabled.";
                }
    
                leaf timeout {
                  type uint32;
                  units "s";
                  description
                    "Timeout interval for retransmitting L2TP packets.";
                }
    
                leaf local-receive-window {
                  type uint16 {
                    range "0..5000";
                  }
                  description
                    "Local receive window size.";
                }
    
                leaf remote-receive-window {
                  type uint16 {
                    range "0..5000";
                  }
                  description
                    "Remote receive window size.";
                }
    
                leaf is-blocked {
                  type boolean;
                  description
                    "Tunnel is blocked.";
                }
    
                leaf outer-dscp {
                  type uint8;
                  description
                    "DSCP value in the outer VLAN tag of L2TP control packets.";
                }
    
                leaf group-name {
                  type string {
                    length "1..32";
                  }
                  description
                    "Displays the L2TP group name.";
                }
              }  // container config
    
              container radius {
                description
                  "Statistics of information of the L2TP tunnel Radius configuration.";
                leaf session-limit {
                  type uint32;
                  description
                    "Session limit delivered by the RADIUS server.";
                }
    
                leaf vrf {
                  type uint32;
                  description
                    "VRF delivered by the RADIUS server.";
                }
    
                leaf assignment-id {
                  type string {
                    length "1..277";
                  }
                  description
                    "Tunnel assignment ID.";
                }
              }  // container radius
    
              container statistics {
                description
                  "Statistics of information of the L2TP tunnel statistic.";
                leaf active-session-num {
                  type uint32;
                  description
                    "Number of users of the tunnel.";
                }
    
                leaf control-sent-num {
                  type uint32;
                  description
                    "The sequence number for this data or control message, beginning at zero and incrementing by one for each message sent.";
                }
    
                leaf control-receive-num {
                  type uint32;
                  description
                    "The sequence number expected in the next control message to be received.";
                }
    
                leaf retrans-mission-num {
                  type uint32;
                  description
                    "Number of retransmissions of L2TP packets.";
                }
              }  // container statistics
    
              container redundant {
                description
                  "Statistics of information of the L2TP Tunnel Redundant.";
                leaf remote-backup-profile {
                  ext:support-filter "true";
                  type string {
                    length "1..128";
                  }
                  description
                    "The name of a remote backup profile.";
                }
    
                leaf remote-backup-service {
                  ext:support-filter "true";
                  type string {
                    length "1..32";
                  }
                  description
                    "The name of a remote backup service.";
                }
    
                leaf status {
                  type string {
                    length "1..8";
                  }
                  description
                    "Status of a tunnel, which can be active or inactive.";
                }
    
                leaf register {
                  type string {
                    length "1..6";
                  }
                  description
                    "Flag indicating whether a tunnel is generated on the local or remote end.";
                }
    
                leaf life {
                  type uint32;
                  units "s";
                  description
                    "Lifetime of a tunnel.";
                }
              }  // container redundant
            }  // list lac-tunnel
          }  // container lac-tunnels
    
          container cu-lac-tunnels {
            config false;
            description
              "List of information of the L2TP tunnels.";
            list cu-lac-tunnel {
              key "up-id local-id";
              description
                "Statistics of information of the L2TP tunnel.";
              leaf up-id {
                type uint32 {
                  range
                    "1024..2023 | 2048..3047 | 3072..4071 | 4096..5095";
                }
                must
                  "../up-id <= (/bras-cu-controller:bras-cu-controller/bras-cu-controller:global-attribute/bras-cu-controller:up-base-id + 999) and ../up-id >= /bras-cu-controller:bras-cu-controller/bras-cu-controller:global-attribute/bras-cu-controller:up-base-id";
                description "UP ID.";
              }
    
              leaf local-id {
                type uint32 {
                  range "1..65535";
                }
                description
                  "Local ID of a L2TP tunnel.";
              }
    
              leaf local-name {
                type string {
                  length "1..253";
                }
                description
                  "Local Name of a L2TP Tunnel.";
              }
    
              leaf remote-id {
                type uint32 {
                  range "1..65535";
                }
                description
                  "The Peer ID of a L2TP Tunnel.";
              }
    
              leaf remote-name {
                ext:support-filter "true";
                type string {
                  length "1..253";
                }
                description
                  "The Peer Name of a L2TP tunnel.";
              }
    
              leaf status {
                type string {
                  length "1..31";
                }
                description
                  "The status of the L2TP Tunnel establishment.";
              }
    
              leaf local-ip-address {
                type inet:ipv4-address-no-zone;
                description "Local IP address.";
              }
    
              leaf local-port {
                type uint16;
                description "Local port number.";
              }
    
              leaf remote-ip-address {
                type inet:ipv4-address-no-zone;
                description "Remote IP address.";
              }
    
              leaf remote-port {
                type uint16;
                description
                  "Remote Port Number.";
              }
    
              leaf recall-ip-address {
                type inet:ipv4-address-no-zone;
                description "Socket IP address.";
              }
    
              leaf vrf {
                type uint32;
                description
                  "VPF configured locally.";
              }
    
              container time {
                description
                  "Statistics of information of the L2TP tunnel time.";
                leaf start-date {
                  type string {
                    length "1..31";
                  }
                  description
                    "Date when an L2TP tunnel was established.";
                }
    
                leaf start-clock {
                  type string {
                    length "1..31";
                  }
                  description
                    "Time when an L2TP tunnel was established.";
                }
    
                leaf continuance-length {
                  type string {
                    length "1..127";
                  }
                  description
                    "Time when an L2TP tunnel was continuance.";
                }
              }  // container time
    
              container config {
                description
                  "Statistics of information of the L2TP tunnel configuration.";
                leaf hello-interval {
                  type uint32;
                  description
                    "Interval for sending Hello packets, in seconds.";
                }
    
                leaf session-limit {
                  type uint32 {
                    range "0..65535";
                  }
                  description
                    "Maximum number of sessions.";
                }
    
                leaf per-user-enable {
                  type boolean;
                  description
                    "Whether per tunnel per user is enabled.";
                }
    
                leaf timeout {
                  type uint32;
                  units "s";
                  description
                    "Timeout interval for retransmitting L2TP packets.";
                }
    
                leaf local-receive-window {
                  type uint16 {
                    range "0..5000";
                  }
                  description
                    "Local receive window size.";
                }
    
                leaf remote-receive-window {
                  type uint16 {
                    range "0..5000";
                  }
                  description
                    "Remote receive window size.";
                }
    
                leaf is-blocked {
                  type boolean;
                  description
                    "Tunnel is blocked.";
                }
    
                leaf outer-dscp {
                  type uint8;
                  description
                    "DSCP value in the outer VLAN tag of L2TP control packets.";
                }
    
                leaf group-name {
                  type string {
                    length "1..32";
                  }
                  description
                    "Displays the L2TP group name.";
                }
              }  // container config
    
              container radius {
                description
                  "Statistics of information of the L2TP tunnel Radius configuration.";
                leaf session-limit {
                  type uint32;
                  description
                    "Session limit delivered by the RADIUS server.";
                }
    
                leaf vrf {
                  type uint32;
                  description
                    "VRF delivered by the RADIUS server.";
                }
    
                leaf assignment-id {
                  type string {
                    length "1..277";
                  }
                  description
                    "Tunnel assignment ID.";
                }
              }  // container radius
    
              container statistics {
                description
                  "Statistics of information of the L2TP tunnel statistic.";
                leaf active-session-num {
                  type uint32;
                  description
                    "Number of users of the tunnel.";
                }
    
                leaf control-sent-num {
                  type uint32;
                  description
                    "The sequence number for this data or control message, beginning at zero and incrementing by one for each message sent.";
                }
    
                leaf control-receive-num {
                  type uint32;
                  description
                    "The sequence number expected in the next control message to be received.";
                }
    
                leaf retrans-mission-num {
                  type uint32;
                  description
                    "Number of retransmissions of L2TP packets.";
                }
              }  // container statistics
    
              container disaster-recovery {
                description
                  "Statistics of tunnel disaster recovery information.";
                leaf status {
                  type string {
                    length "1..8";
                  }
                  description
                    "Status of a tunnel, which can be active or inactive.";
                }
    
                leaf register {
                  type string {
                    length "1..6";
                  }
                  description
                    "Flag indicating whether a tunnel is generated on the local or remote end.";
                }
    
                leaf life {
                  type uint32;
                  units "s";
                  description
                    "Lifetime of a tunnel.";
                }
              }  // container disaster-recovery
    
              container failure-recovery {
                description
                  "L2tp-group lac tunnel failure recovery statistics.";
                leaf protocol {
                  type enumeration {
                    enum "disable" {
                      value 0;
                      description
                        "Tunnel failover negotiation status is disabled.";
                    }
                    enum "enable" {
                      value 1;
                      description
                        "Tunnel failover negotiation status is enabled.";
                    }
                  }
                  description
                    "Failover negotiation status.";
                }
    
                leaf local-function {
                  type uint32;
                  description
                    "Tunnel local function switch.";
                }
    
                leaf local-capability {
                  type uint32;
                  description
                    "Tunnel local capability.";
                }
    
                leaf local-recovery-time {
                  type uint32;
                  units "ms";
                  description
                    "Tunnel local recovery time.";
                }
    
                leaf peer-function {
                  type uint32;
                  description
                    "Tunnel peer function switch.";
                }
    
                leaf peer-capability {
                  type uint32;
                  description
                    "Tunnel peer capability.";
                }
    
                leaf peer-recovery-time {
                  type uint32;
                  units "ms";
                  description
                    "Tunnel peer recovery time.";
                }
              }  // container failure-recovery
            }  // list cu-lac-tunnel
          }  // container cu-lac-tunnels
    
          container lac-sessions {
            config false;
            description
              "List of information of the L2TP sessions.";
            list lac-session {
              key "local-tunnel-id local-session-id";
              description
                "Statistics of information of the L2TP sessions.";
              leaf local-tunnel-id {
                type uint32 {
                  range "1..65535";
                }
                description
                  "Local ID of a L2TP tunnel.";
              }
    
              leaf local-session-id {
                type uint32 {
                  range "1..65535";
                }
                description
                  "Local session ID, which uniquely identifies a session.";
              }
    
              leaf remote-tunnel-id {
                type uint32 {
                  range "1..65535";
                }
                description "Remote tunnel ID.";
              }
    
              leaf remote-session-id {
                type uint32 {
                  range "1..65535";
                }
                description
                  "Remote session ID, which uniquely identifies a session.";
              }
    
              leaf local-address {
                ext:support-filter "true";
                type inet:ipv4-address-no-zone;
                description "Local IP address.";
              }
    
              leaf remote-address {
                ext:support-filter "true";
                type inet:ipv4-address-no-zone;
                description "Remote IP address.";
              }
    
              leaf lns-reply-ip-address {
                type string {
                  length "1..31";
                }
                description
                  "Source IP address of packets replied by the LNS.";
              }
    
              leaf local-tunnel-name {
                type string {
                  length "1..253";
                }
                description "Local tunnel name.";
              }
    
              leaf remote-tunnel-name {
                type string {
                  length "1..253";
                }
                description
                  "Remote tunnel name.";
              }
    
              leaf port {
                type uint16 {
                  range "0..65535";
                }
                description "Port number.";
              }
    
              leaf status {
                type session-status-type;
                description
                  "Session establishment status.";
              }
    
              leaf serial-number {
                type uint32;
                description
                  "Sequence number of a call.";
              }
    
              leaf id {
                type uint32;
                description "ID of a user.";
              }
    
              leaf name {
                type string {
                  length "1..252";
                }
                description "Name of a user.";
              }
    
              leaf pppoe-id {
                type uint16 {
                  range "1..65535";
                }
                description
                  "Session ID of a PPPoE user.";
              }
    
              leaf mac-address {
                type string {
                  length "1..29";
                }
                description "MAC Address.";
              }
    
              container redundant {
                description
                  "Statistics of redundant information.";
                leaf register {
                  type string {
                    length "1..6";
                  }
                  description
                    "Flag indicating whether a Session is generated on the local or remote end.";
                }
    
                leaf traffic-state {
                  type enumeration {
                    enum "normal" {
                      value 0;
                      description
                        "The session is traffic normally.";
                    }
                    enum "abnormal" {
                      value 1;
                      description
                        "The session traffic is abnormal.";
                    }
                  }
                  description
                    "The status of both upstream and downstream traffic increases, when the user on the LAC side is in the main state.";
                }
    
                leaf state {
                  type string {
                    length "1..8";
                  }
                  description
                    "Status of a session, which can be active or inactive.";
                }
    
                leaf life {
                  type string {
                    length "1..11";
                  }
                  description
                    "Session survival time (in seconds).";
                }
    
                leaf forwarding-state {
                  type string {
                    length "1..26";
                  }
                  description
                    "Whether packets are forwarded by a local interface or are backed up on the peer device and then forwarded.";
                }
    
                leaf bas-interface-name {
                  ext:support-filter "true";
                  type string {
                    length "1..64";
                  }
                  description
                    "The name of Specifies the BAS interface.";
                }
    
                leaf remote-backup-profile {
                  ext:support-filter "true";
                  type string {
                    length "1..128";
                  }
                  description
                    "The name of a remote backup profile.";
                }
    
                leaf remote-backup-service {
                  ext:support-filter "true";
                  type string {
                    length "1..32";
                  }
                  description
                    "The name of a remote backup service.";
                }
              }  // container redundant
            }  // list lac-session
          }  // container lac-sessions
    
          container cu-lac-sessions {
            config false;
            description
              "List of information of the L2TP sessions.";
            list cu-lac-session {
              key "up-id local-tunnel-id local-session-id";
              description
                "Statistics of information of the L2TP sessions.";
              leaf up-id {
                type uint32 {
                  range
                    "1024..2023 | 2048..3047 | 3072..4071 | 4096..5095";
                }
                must
                  "../up-id <= (/bras-cu-controller:bras-cu-controller/bras-cu-controller:global-attribute/bras-cu-controller:up-base-id + 999) and ../up-id >= /bras-cu-controller:bras-cu-controller/bras-cu-controller:global-attribute/bras-cu-controller:up-base-id";
                description "UP ID.";
              }
    
              leaf local-tunnel-id {
                type uint32 {
                  range "1..65535";
                }
                description
                  "Local ID of a L2TP tunnel.";
              }
    
              leaf local-session-id {
                type uint32 {
                  range "1..65535";
                }
                description
                  "Local session ID, which uniquely identifies a session.";
              }
    
              leaf remote-tunnel-id {
                type uint32 {
                  range "1..65535";
                }
                description "Remote tunnel ID.";
              }
    
              leaf remote-session-id {
                type uint32 {
                  range "1..65535";
                }
                description
                  "Remote session ID, which uniquely identifies a session.";
              }
    
              leaf local-address {
                ext:support-filter "true";
                type inet:ipv4-address-no-zone;
                description "Local IP address.";
              }
    
              leaf remote-address {
                ext:support-filter "true";
                type inet:ipv4-address-no-zone;
                description "Remote IP address.";
              }
    
              leaf lns-reply-ip-address {
                type string {
                  length "1..31";
                }
                description
                  "Source IP address of packets replied by the LNS.";
              }
    
              leaf local-tunnel-name {
                type string {
                  length "1..253";
                }
                description "Local tunnel name.";
              }
    
              leaf remote-tunnel-name {
                type string {
                  length "1..253";
                }
                description
                  "Remote tunnel name.";
              }
    
              leaf port {
                type uint16 {
                  range "0..65535";
                }
                description "Port number.";
              }
    
              leaf status {
                type session-status-type;
                description
                  "Session establishment status.";
              }
    
              leaf serial-number {
                type uint32;
                description
                  "Sequence number of a call.";
              }
    
              leaf id {
                type uint32;
                description "ID of a user.";
              }
    
              leaf name {
                type string {
                  length "1..252";
                }
                description "Name of a user.";
              }
    
              leaf pppoe-id {
                type uint16 {
                  range "1..65535";
                }
                description
                  "Session ID of a PPPoE user.";
              }
    
              leaf mac-address {
                type string {
                  length "1..29";
                }
                description "MAC Address.";
              }
    
              container disaster-recovery {
                description
                  "Statistics of session disaster recovery information.";
                leaf register {
                  type string {
                    length "1..6";
                  }
                  description
                    "Flag indicating whether a Session is generated on the local or remote end.";
                }
    
                leaf traffic-state {
                  type enumeration {
                    enum "normal" {
                      value 0;
                      description
                        "The session is traffic normally.";
                    }
                    enum "abnormal" {
                      value 1;
                      description
                        "The session traffic is abnormal.";
                    }
                  }
                  description
                    "The status of both upstream and downstream traffic increases, when the user on the LAC side is in the main state.";
                }
    
                leaf state {
                  type string {
                    length "1..8";
                  }
                  description
                    "Status of a session, which can be active or inactive.";
                }
    
                leaf life {
                  type string {
                    length "1..11";
                  }
                  description
                    "Session survival time (in seconds).";
                }
    
                leaf forwarding-state {
                  type string {
                    length "1..26";
                  }
                  description
                    "Whether packets are forwarded by a local interface or are backed up on the peer device and then forwarded.";
                }
    
                leaf bas-interface-name {
                  ext:support-filter "true";
                  type string {
                    length "1..64";
                  }
                  description
                    "The name of Specifies the BAS interface.";
                }
              }  // container disaster-recovery
            }  // list cu-lac-session
          }  // container cu-lac-sessions
    
          container lns-tunnels {
            config false;
            description
              "List of information about LNS-side L2TP tunnel.";
            list lns-tunnel {
              key "slot-id local-id";
              config false;
              description
                "Statistics of information about LNS-side L2TP tunnel.";
              leaf slot-id {
                type string {
                  length "1..15";
                }
                config false;
                description
                  "Display information about L2TP sessions on a specified tunnel board.";
              }
    
              leaf local-id {
                type uint16 {
                  range "1..65535";
                }
                config false;
                description "Local tunnel ID.";
              }
    
              leaf remote-id {
                type uint16 {
                  range "1..65535";
                }
                config false;
                description "Remote tunnel ID.";
              }
    
              leaf remote-name {
                type string {
                  length "1..253";
                }
                config false;
                description
                  "Name of the remote device.";
              }
    
              leaf status {
                type string {
                  length "1..31";
                }
                config false;
                description
                  "Tunnel establishment status.";
              }
    
              leaf l2tp-group-id {
                type uint32;
                config false;
                description
                  "Number of the L2TP group.";
              }
    
              leaf sessions-number {
                type uint32 {
                  range "0..65535";
                }
                config false;
                description
                  "Number of users of the tunnel.";
              }
    
              leaf hello-interval {
                type uint32;
                config false;
                description
                  "Interval for sending Hello packets.";
              }
    
              leaf remote-protocol-version {
                type string {
                  length "1..7";
                }
                config false;
                description
                  "Remote protocol version.";
              }
    
              leaf authentication {
                type uint16;
                config false;
                description
                  "Whether CHAP authentication is performed.";
              }
    
              leaf remote-vendor-name {
                type string {
                  length "1..31";
                }
                config false;
                description
                  "Remote vendor name.";
              }
    
              leaf send-window-lower-ward {
                type uint32;
                config false;
                description
                  "Lower limit of the send window.";
              }
    
              leaf received-window-lower-ward {
                type uint32;
                config false;
                description
                  "Lower limit of the receive window.";
              }
    
              leaf received-window-size {
                type uint16;
                config false;
                description
                  "Size of the receive window.";
              }
    
              leaf peer-framing-cap {
                type uint32;
                config false;
                description
                  "Processing capability of synchronous/asynchronous frames.";
              }
    
              leaf peer-ip-address {
                type string {
                  length "1..31";
                }
                config false;
                description "Remote IP Address.";
              }
    
              leaf source-ip-address {
                type string {
                  length "1..31";
                }
                config false;
                description "Local IP address.";
              }
    
              leaf port {
                type uint16;
                config false;
                description
                  "Remote Port number.";
              }
    
              leaf delay-ack-timer {
                type uint32;
                config false;
                description
                  "Tunnel delay ACK timer.";
              }
    
              leaf idle-cut-timer {
                type uint32;
                config false;
                description
                  "Tunnel idle-cut timer.";
              }
    
              leaf hello-timer {
                type uint32;
                config false;
                description
                  "Tunnel Hello timer.";
              }
    
              leaf ctl-ack-timeout-number {
                type uint32;
                config false;
                description
                  "Number of acknowledgement timeouts.";
              }
    
              leaf ctl-out-of-seq {
                type uint32;
                units "packet";
                config false;
                description
                  "Number of packets sent that are discarded because the Ns of the packets is greater than Nr.";
              }
    
              leaf ctl-out-of-window {
                type uint32;
                units "packet";
                config false;
                description
                  "Number of packets sent that are discarded because the Ns of the packets is smaller than Sr.";
              }
    
              leaf session-limit {
                type uint32;
                config false;
                description
                  "Maximum number of sessions.";
              }
    
              leaf radius-session-limit {
                type uint32;
                config false;
                description
                  "Maximum number of sessions allowed to be delivered by the RADIUS server.";
              }
    
              leaf outer-dscp {
                type uint8;
                config false;
                description
                  "DSCP value in the outer VLAN tag of L2TP control packets.";
              }
    
              container statistics {
                config false;
                description
                  "Display information about LNS-side L2TP tunnel statistics.";
                leaf received-packets {
                  type uint32;
                  units "packet";
                  config false;
                  description
                    "Number of packets received.";
                }
    
                leaf received-zlb {
                  type uint32;
                  units "packet";
                  config false;
                  description
                    "Number of ZLB packets received.";
                }
    
                leaf send-fail {
                  type uint32;
                  units "packet";
                  config false;
                  description
                    "Count of Sent Fail Packet.";
                }
    
                leaf send-packets {
                  type uint32;
                  units "packet";
                  config false;
                  description
                    "Count of Sent Packet.";
                }
    
                leaf send-zlb {
                  type uint32;
                  units "packet";
                  config false;
                  description
                    "Count of Sent ZLB Packet.";
                }
    
                leaf received-hello {
                  type uint32;
                  units "packet";
                  config false;
                  description
                    "Number of Hello packets received.";
                }
    
                leaf send-hello {
                  type uint32;
                  units "packet";
                  config false;
                  description
                    "Number of Hello packets sent.";
                }
    
                leaf up-packet-high {
                  type uint32;
                  units "packet";
                  config false;
                  description
                    "Total number of upstream packets.";
                }
    
                leaf up-packet-low {
                  type uint32;
                  units "packet";
                  config false;
                  description
                    "Total number of upstream packets.";
                }
    
                leaf up-byte-high {
                  type uint32;
                  units "Byte";
                  config false;
                  description
                    "Total number of upstream bytes.";
                }
    
                leaf up-byte-low {
                  type uint32;
                  units "Byte";
                  config false;
                  description
                    "Total number of upstream bytes.";
                }
    
                leaf down-packet-high {
                  type uint32;
                  units "packet";
                  config false;
                  description
                    "Total number of downstream packets.";
                }
    
                leaf down-packet-low {
                  type uint32;
                  units "packet";
                  config false;
                  description
                    "Total number of downstream packets.";
                }
    
                leaf down-byte-high {
                  type uint32;
                  units "Byte";
                  config false;
                  description
                    "Total number of downstream bytes.";
                }
    
                leaf down-byte-low {
                  type uint32;
                  units "Byte";
                  config false;
                  description
                    "Total number of downstream bytes.";
                }
              }  // container statistics
    
              container time {
                config false;
                description
                  "Statistics of information about LNS-side L2TP tunnel time.";
                leaf start-date {
                  type string {
                    length "1..31";
                  }
                  config false;
                  description
                    "Date when an L2TP tunnel was established.";
                }
    
                leaf start-clock {
                  type string {
                    length "1..31";
                  }
                  config false;
                  description
                    "Time when an L2TP tunnel was established.";
                }
    
                leaf continuance-length {
                  type string {
                    length "1..127";
                  }
                  config false;
                  description
                    "Time when an L2TP tunnel was continuance.";
                }
              }  // container time
            }  // list lns-tunnel
          }  // container lns-tunnels
    
          container lns-sessions {
            config false;
            description
              "List of information about LNS-side L2TP sessions.";
            list lns-session {
              key "slot-id local-tunnel-id local-session-id";
              config false;
              description
                "Statistics of information about LNS-side L2TP sessions.";
              leaf slot-id {
                type string {
                  length "1..15";
                }
                config false;
                description
                  "Display information about L2TP sessions on a specified tunnel board.";
              }
    
              leaf local-tunnel-id {
                type uint16 {
                  range "1..65535";
                }
                config false;
                description "Local tunnel ID.";
              }
    
              leaf local-session-id {
                type uint16 {
                  range "1..65535";
                }
                config false;
                description
                  "ID of a local session.";
              }
    
              leaf status {
                type session-status-type;
                config false;
                description
                  "Session establishment status.";
              }
    
              leaf l2tp-group-id {
                type uint32 {
                  range "1..1000";
                }
                config false;
                description
                  "ID of an L2TP group.";
              }
    
              leaf remote-tunnel-id {
                type uint16 {
                  range "1..65535";
                }
                config false;
                description "Remote tunnel ID.";
              }
    
              leaf remote-session-id {
                type uint16 {
                  range "1..65535";
                }
                config false;
                description
                  "ID of a remote session.";
              }
    
              leaf local-address {
                type inet:ipv4-address-no-zone;
                config false;
                description "Local IP address.";
              }
    
              leaf remote-address {
                type inet:ipv4-address-no-zone;
                config false;
                description "Remote IP address.";
              }
    
              leaf sequence {
                type uint16 {
                  range "0..65535";
                }
                config false;
                description "Sequence number.";
              }
    
              leaf peer-framing-type {
                type uint32 {
                  range "0..4294967295";
                }
                config false;
                description
                  "Frame type of the peer device. (1: asynchronous; 2: synchronous; 3: both synchronous and asynchronous)";
              }
    
              leaf peer-bearer-type {
                type int32;
                config false;
                description
                  "AVP No. 4 attribute (1: simulated; 2: digital; 3: both simulated and digital)";
              }
    
              leaf ppp-id {
                type uint32 {
                  range "0..4294967295";
                }
                config false;
                description
                  "Index of a PPP entry.";
              }
    
              leaf interface-id {
                type uint32 {
                  range "0..4294967295";
                }
                config false;
                description
                  "Index of the tunnel source interface.";
              }
    
              leaf window-idle-timer {
                type uint32 {
                  range "0..4294967295";
                }
                config false;
                description
                  "ID of the idle-cut timer for the tunnel.";
              }
    
              leaf ctrl-call-ack-timer {
                type uint32 {
                  range "0..4294967295";
                }
                config false;
                description
                  "ID of the timeout timer for control packets.";
              }
    
              leaf result-code {
                type uint16 {
                  range "0..65535";
                }
                config false;
                description
                  "Error code for a session teardown cause.";
              }
    
              leaf trace-id {
                type uint32 {
                  range "0..4294967295";
                }
                config false;
                description "Service trace ID.";
              }
    
              leaf outer-dscp {
                type uint8 {
                  range "0..255";
                }
                config false;
                description
                  "DSCP value in the outer VLAN tag of data packets.";
              }
    
              leaf calling-number {
                type string {
                  length "1..512";
                }
                config false;
                description
                  "Index assigned to each session.";
              }
    
              leaf user-id {
                type uint32 {
                  range "0..4294967295";
                }
                config false;
                description "ID of a user.";
              }
    
              leaf user-name {
                type string {
                  length "1..253";
                }
                config false;
                description "Name of a user.";
              }
            }  // list lns-session
          }  // container lns-sessions
    
          container user-urpfs {
            config false;
            description
              "List of datagram statistics information of discard packet with L2TP user address mismatch.";
            list user-urpf {
              key "slot-id";
              config false;
              description
                "Statistics of datagram information of discard packet with L2TP user address mismatch.";
              leaf slot-id {
                type string {
                  length "1..15";
                }
                config false;
                description
                  "The available slot.";
              }
    
              container ipv4 {
                config false;
                description
                  "Statistics of datagram information of discard packet with L2TP user IPv4 address mismatch.";
                leaf high {
                  type uint32;
                  units "packet";
                  config false;
                  description
                    "High 32-bit count of discard packet.";
                }
    
                leaf low {
                  type uint32;
                  units "packet";
                  config false;
                  description
                    "Low 32-bit count of discard packet.";
                }
              }  // container ipv4
    
              container ipv6 {
                config false;
                description
                  "Statistics of datagram information of discard packet with L2TP user IPv6 address mismatch.";
                leaf high {
                  type uint32;
                  units "packet";
                  config false;
                  description
                    "High 32-bit count of discard packet.";
                }
    
                leaf low {
                  type uint32;
                  units "packet";
                  config false;
                  description
                    "Low 32-bit count of discard packet.";
                }
              }  // container ipv6
            }  // list user-urpf
          }  // container user-urpfs
    
          container session-number {
            config false;
            description
              "Statistics of session number by tunnel source IP address.";
            container lacs {
              config false;
              description
                "List of session number of LAC by tunnel source IP address.";
              list lac {
                key "source-address vpn-name";
                config false;
                description
                  "Statistics of session number of LAC by tunnel source IP address.";
                leaf source-address {
                  type inet:ipv4-address-no-zone;
                  config false;
                  description
                    "Source IP address.";
                }
    
                leaf vpn-name {
                  type string {
                    length "1..31";
                  }
                  config false;
                  description
                    "Vpn instance name.";
                }
    
                leaf number {
                  type uint32 {
                    range "0..4294967295";
                  }
                  config false;
                  description "Session number.";
                }
              }  // list lac
            }  // container lacs
    
            container lnss {
              config false;
              description
                "List of session number of LNS by tunnel source IP address.";
              list lns {
                key "source-address vpn-name";
                config false;
                description
                  "Statistics of session number of LNS by tunnel source IP address.";
                leaf source-address {
                  type inet:ipv4-address-no-zone;
                  config false;
                  description
                    "Source IP address.";
                }
    
                leaf vpn-name {
                  type string {
                    length "1..31";
                  }
                  config false;
                  description
                    "Vpn instance name.";
                }
    
                leaf number {
                  type uint32 {
                    range "0..4294967295";
                  }
                  config false;
                  description "Session number.";
                }
              }  // list lns
            }  // container lnss
          }  // container session-number
    
          container lac-tunnel-statistics {
            config false;
            description
              "List of lac tunnel statistics infos.";
            list lac-tunnel-statistic {
              key "local-id";
              config false;
              description
                "Statistics of lac tunnel info.";
              leaf local-id {
                type uint32 {
                  range "1..65535";
                }
                config false;
                description "Tunnel local id.";
              }
    
              leaf l2tp-group-name {
                type string {
                  length "1..32";
                }
                config false;
                description "L2TP group name.";
              }
    
              leaf local-name {
                type string {
                  length "1..253";
                }
                config false;
                description "Tunnel local name.";
              }
    
              leaf local-ip-address {
                type inet:ipv4-address-no-zone;
                description "Source IP address.";
              }
    
              leaf remote-ip-address {
                type inet:ipv4-address-no-zone;
                description
                  "Destination IP address.";
              }
    
              leaf send-sccrq-number {
                type uint64;
                config false;
                description "Send sccrq number.";
              }
    
              leaf receive-sccrp-number {
                type uint64;
                config false;
                description
                  "Receive sccrp number.";
              }
    
              leaf receive-sccrp-error-number {
                type uint64;
                config false;
                description
                  "Receive sccrp error number.";
              }
    
              leaf send-scccn-number {
                type uint64;
                config false;
                description "Send scccn number.";
              }
    
              leaf send-icrq-number {
                type uint64;
                config false;
                description "Send icrq number.";
              }
    
              leaf receive-stopccn-number {
                type uint64;
                config false;
                description
                  "Receive stopccn number.";
              }
    
              leaf receive-stopccn-error-number {
                type uint64;
                config false;
                description
                  "Receive stopccn error number.";
              }
    
              leaf send-stopccn-number {
                type uint64;
                config false;
                description
                  "Send stopccn number.";
              }
    
              leaf receive-icrp-number {
                type uint64;
                config false;
                description
                  "Receive icrp number.";
              }
    
              leaf receive-icrp-error-number {
                type uint64;
                config false;
                description
                  "Receive icrp error number.";
              }
    
              leaf send-iccn-number {
                type uint64;
                config false;
                description "Send iccn number.";
              }
    
              leaf receive-cdn-number {
                type uint64;
                config false;
                description
                  "Receive cdn number.";
              }
    
              leaf receive-cdn-error-number {
                type uint64;
                config false;
                description
                  "Receive cdn error number.";
              }
    
              leaf send-cdn-number {
                type uint64;
                config false;
                description "Send cdn number.";
              }
    
              leaf receive-hello-number {
                type uint64;
                config false;
                description
                  "Receive hello number.";
              }
    
              leaf receive-hello-error-number {
                type uint64;
                config false;
                description
                  "Receive hello error number.";
              }
    
              leaf send-hello-number {
                type uint64;
                config false;
                description "Send hello number.";
              }
    
              leaf receive-zlb-number {
                type uint64;
                config false;
                description
                  "Receive zlb number.";
              }
    
              leaf receive-zlb-error-number {
                type uint64;
                config false;
                description
                  "Receive zlb error number.";
              }
    
              leaf send-zlb-number {
                type uint64;
                config false;
                description "Send zlb number.";
              }
    
              leaf rx-packets {
                type uint64;
                units "packet";
                config false;
                description "Receive packets.";
              }
    
              leaf rx-packets-rate {
                type uint32;
                units "pps";
                config false;
                description
                  "Receive packets rate.";
              }
    
              leaf rx-octets {
                type uint64;
                units "Byte";
                config false;
                description "Receive octets.";
              }
    
              leaf rx-octets-rate {
                type uint32;
                units "Byte/s";
                config false;
                description
                  "Receive octets rate.";
              }
    
              leaf tx-packets {
                type uint64;
                units "packet";
                config false;
                description "Transmit packets.";
              }
    
              leaf tx-packets-rate {
                type uint32;
                units "pps";
                config false;
                description
                  "Transmit packets rate.";
              }
    
              leaf tx-octets {
                type uint64;
                units "Byte";
                config false;
                description "Transmit octets.";
              }
    
              leaf tx-octets-rate {
                type uint32;
                units "Byte/s";
                config false;
                description
                  "Transmit octets rate.";
              }
            }  // list lac-tunnel-statistic
          }  // container lac-tunnel-statistics
    
          container lns-tunnel-statistics {
            config false;
            description
              "List of lns tunnel statistics infos.";
            list lns-tunnel-statistic {
              key "local-id";
              config false;
              description
                "Statistics of lns info.";
              leaf local-id {
                type uint32 {
                  range "1..65535";
                }
                config false;
                description "Tunnel local id.";
              }
    
              leaf l2tp-group-name {
                type string {
                  length "1..32";
                }
                config false;
                description "L2TP group name.";
              }
    
              leaf local-name {
                type string {
                  length "1..253";
                }
                config false;
                description "Tunnel local name.";
              }
    
              leaf local-ip-address {
                type inet:ipv4-address-no-zone;
                description "Source IP address.";
              }
    
              leaf remote-ip-address {
                type inet:ipv4-address-no-zone;
                description
                  "Destination IP address.";
              }
    
              leaf receive-sccrq-number {
                type uint64;
                config false;
                description
                  "Receive sccrq number.";
              }
    
              leaf receive-sccrq-error-number {
                type uint64;
                config false;
                description
                  "Receive sccrq error number.";
              }
    
              leaf send-sccrp-number {
                type uint64;
                config false;
                description "Send sccrp number.";
              }
    
              leaf receive-scccn-number {
                type uint64;
                config false;
                description
                  "Receive scccn number.";
              }
    
              leaf receive-scccn-error-number {
                type uint64;
                config false;
                description
                  "Receive scccn error number.";
              }
    
              leaf receive-stopccn-number {
                type uint64;
                config false;
                description
                  "Receive stopccn number.";
              }
    
              leaf receive-stopccn-error-number {
                type uint64;
                config false;
                description
                  "Receive stopccn error number.";
              }
    
              leaf send-stopccn-number {
                type uint64;
                config false;
                description
                  "Send stopccn number.";
              }
    
              leaf receive-icrq-number {
                type uint64;
                config false;
                description
                  "Receive icrq number.";
              }
    
              leaf receive-icrq-error-number {
                type uint64;
                config false;
                description
                  "Receive icrq error number.";
              }
    
              leaf send-icrp-number {
                type uint64;
                config false;
                description "Send icrp number.";
              }
    
              leaf receive-iccn-number {
                type uint64;
                config false;
                description
                  "Receive iccn number.";
              }
    
              leaf receive-iccn-error-number {
                type uint64;
                config false;
                description
                  "Receive iccn error number.";
              }
    
              leaf receive-hello-number {
                type uint64;
                config false;
                description
                  "Receive hello number.";
              }
    
              leaf receive-hello-error-number {
                type uint64;
                config false;
                description
                  "Receive hello error number.";
              }
    
              leaf send-hello-number {
                type uint64;
                config false;
                description "Send hello number.";
              }
    
              leaf receive-zlb-number {
                type uint64;
                config false;
                description
                  "Receive zlb number.";
              }
    
              leaf receive-zlb-error-number {
                type uint64;
                config false;
                description
                  "Receive zlb error number.";
              }
    
              leaf send-zlb-number {
                type uint64;
                config false;
                description "Send zlb number.";
              }
    
              leaf rx-packets {
                type uint64;
                units "packet";
                config false;
                description "Receive packets.";
              }
    
              leaf rx-packets-rate {
                type uint32;
                units "pps";
                config false;
                description
                  "Receive packets rate.";
              }
    
              leaf rx-octets {
                type uint64;
                units "Byte";
                config false;
                description "Receive octets.";
              }
    
              leaf rx-octets-rate {
                type uint32;
                units "Byte/s";
                config false;
                description
                  "Receive octets rate.";
              }
    
              leaf tx-packets {
                type uint64;
                units "packet";
                config false;
                description "Transmit packets.";
              }
    
              leaf tx-packets-rate {
                type uint32;
                units "pps";
                config false;
                description
                  "Transmit packets rate.";
              }
    
              leaf tx-octets {
                type uint64;
                units "Byte";
                config false;
                description "Transmit octets.";
              }
    
              leaf tx-octets-rate {
                type uint32;
                units "Byte/s";
                config false;
                description
                  "Transmit octets rate.";
              }
            }  // list lns-tunnel-statistic
          }  // container lns-tunnel-statistics
    
          container lns-tunnel-backups {
            config false;
            description
              "List of information about LNS-side L2TP tunnel Backup.";
            list lns-tunnel-backup {
              key "slot-id local-id";
              config false;
              description
                "Statistics of information about LNS-side L2TP tunnel Backup.";
              leaf slot-id {
                type string {
                  length "1..15";
                }
                config false;
                description
                  "Display information about L2TP sessions on a specified tunnel board.";
              }
    
              leaf local-id {
                type uint16 {
                  range "1..65535";
                }
                config false;
                description
                  "Displays local tunnel ID.";
              }
    
              leaf remote-id {
                type uint16 {
                  range "1..65535";
                }
                config false;
                description
                  "Displays remote tunnel ID.";
              }
    
              leaf port {
                type uint16;
                config false;
                description "Displays port.";
              }
    
              leaf session-number {
                type uint32;
                config false;
                description
                  "The upper limit of CP is 4294967295, the other is 3145727.";
              }
    
              leaf remote-name {
                type string {
                  length "1..253";
                }
                config false;
                description
                  "Displays remote name of the tunnel.";
              }
    
              leaf remote-address {
                type inet:ipv4-address-no-zone;
                config false;
                description "Remote address.";
              }
            }  // list lns-tunnel-backup
          }  // container lns-tunnel-backups
    
          container lns-session-backups {
            config false;
            description
              "List of backup information about L2TP LNS-side sessions.";
            list lns-session-backup {
              key "slot-id local-tunnel-id local-session-id";
              config false;
              description
                "Statistics of backup information about L2TP LNS-side sessions.";
              leaf slot-id {
                type string {
                  length "1..15";
                }
                config false;
                description
                  "Display information about L2TP sessions on a specified tunnel board.";
              }
    
              leaf local-tunnel-id {
                type uint16 {
                  range "1..65535";
                }
                config false;
                description "Local tunnel ID.";
              }
    
              leaf local-session-id {
                type uint16 {
                  range "1..65535";
                }
                config false;
                description
                  "Local session ID, which uniquely identifies a session.";
              }
    
              leaf remote-session-id {
                type uint16 {
                  range "1..65535";
                }
                config false;
                description
                  "Remote session ID, which uniquely identifies a session.";
              }
    
              leaf remote-tunnel-id {
                type uint16 {
                  range "1..65535";
                }
                config false;
                description "Remote tunnel ID.";
              }
    
              leaf user-id {
                type uint32 {
                  range "0..4294967295";
                }
                config false;
                description "ID of a user.";
              }
    
              leaf user-name {
                type string {
                  length "1..253";
                }
                config false;
                description "Name of a user.";
              }
            }  // list lns-session-backup
          }  // container lns-session-backups
    
          container lns-statistics {
            config false;
            description
              "Statistics of l2tp statistics lns.";
            leaf current-up-tunnel-num {
              type uint32;
              config false;
              description
                "Displays l2tp statistics lns used tunnel number.";
            }
    
            leaf current-up-session-num {
              type uint32;
              default "0";
              config false;
              description
                "Displays l2tp statistics lns used session number.";
            }
    
            leaf total-established-tunnel-num {
              type uint64;
              default "0";
              config false;
              description
                "Displays l2tp statistics lns established tunnel number.";
            }
    
            leaf total-established-session-num {
              type uint64;
              default "0";
              config false;
              description
                "Displays l2tp statistics lns established session mumber.";
            }
    
            leaf total-down-tunnel-num {
              type uint64;
              default "0";
              config false;
              description
                "Displays l2tp statistics lns down tunnel mumber.";
            }
    
            leaf total-down-session-num {
              type uint64;
              default "0";
              config false;
              description
                "Displays l2tp statistics lns down session mumber.";
            }
          }  // container lns-statistics
    
          container lns-session-calling-numbers {
            config false;
            description
              "List of lns session information by calling number.";
            list lns-session-calling-number {
              key "calling-number";
              config false;
              description
                "Statistics of lns session information by calling number.";
              leaf calling-number {
                type string {
                  length "1..512";
                }
                config false;
                description
                  "Index assigned to each session.";
              }
    
              leaf local-session-id {
                type uint16 {
                  range "1..65535";
                }
                config false;
                description
                  "ID of a local session.";
              }
    
              leaf local-tunnel-id {
                type uint16 {
                  range "1..65535";
                }
                config false;
                description "Local tunnel ID.";
              }
    
              leaf status {
                type string {
                  length "1..253";
                }
                config false;
                description
                  "Session establishment status.";
              }
    
              leaf l2tp-group-id {
                type uint32 {
                  range "1..1000";
                }
                config false;
                description
                  "ID of an L2TP group.";
              }
    
              leaf remote-session-id {
                type uint16 {
                  range "1..65535";
                }
                config false;
                description
                  "ID of a remote session.";
              }
    
              leaf sequence {
                type uint16 {
                  range "0..65535";
                }
                config false;
                description "Sequence number.";
              }
    
              leaf peer-framing-type {
                type uint32 {
                  range "0..4294967295";
                }
                config false;
                description
                  "Frame type of the peer device. (1: asynchronous; 2: synchronous; 3: both synchronous and asynchronous)";
              }
    
              leaf peer-bearer-type {
                type int32;
                config false;
                description
                  "AVP No. 4 attribute (1: simulated; 2: digital; 3: both simulated and digital)";
              }
    
              leaf authentication-name {
                type string {
                  length "1..253";
                }
                config false;
                description
                  "User authentication name.";
              }
    
              leaf ppp-id {
                type string {
                  length "1..253";
                }
                config false;
                description
                  "Index of a PPP entry.";
              }
    
              leaf interface-id {
                type uint32 {
                  range "0..4294967295";
                }
                config false;
                description
                  "Index of the tunnel source interface.";
              }
    
              leaf window-idle-timer-flag {
                type boolean;
                config false;
                description
                  "Flag of the idle-cut timer for the tunnel.";
              }
    
              leaf ctrl-call-ack-timer-flag {
                type boolean;
                config false;
                description
                  "Flag of the timeout timer for control packets.";
              }
    
              leaf result-code {
                type uint16 {
                  range "0..65535";
                }
                config false;
                description
                  "Error code for a session teardown cause.";
              }
    
              leaf trace-id {
                type uint32 {
                  range "0..4294967295";
                }
                config false;
                description "Service trace ID.";
              }
    
              leaf outer-dscp {
                type string {
                  length "1..253";
                }
                config false;
                description
                  "DSCP value in the outer VLAN tag of data packets.";
              }
            }  // list lns-session-calling-number
          }  // container lns-session-calling-numbers
    
          container rui-statistics {
            config false;
            description
              "L2tp Redundant User Information statistics.";
            container tunnel {
              description
                "L2tp tunnel backup statistics.";
              leaf establish-receive {
                type uint32;
                description
                  "The number of tunnel establish Receive.";
              }
    
              leaf teardown-receive {
                type uint32;
                description
                  "The number of teardown receive.";
              }
    
              leaf establish-send {
                type uint32;
                description
                  "The number of tunnel establish send.";
              }
    
              leaf teardown-send {
                type uint32;
                description
                  "The number of tunnel teardown send.";
              }
    
              leaf hello-packet-send {
                type uint32;
                description
                  "The number of hello packet send.";
              }
    
              leaf zlb-packet-send {
                type uint32;
                description
                  "The number of ZLB packet send.";
              }
    
              leaf hello-packet-receive {
                type uint32;
                description
                  "The number of hello packet receive.";
              }
    
              leaf zlb-packet-receive {
                type uint32;
                description
                  "The number of ZLB packet receive.";
              }
    
              leaf peer-hello {
                type uint32;
                description
                  "The number of peer Hello.";
              }
    
              leaf peer-zlb {
                type uint32;
                description
                  "The number of peer ZLB.";
              }
            }  // container tunnel
    
            container session {
              description
                "L2tp Session backup statistics.";
              leaf establish-receive {
                type uint32;
                description
                  "The number of session establish receive.";
              }
    
              leaf teardown-receive {
                type uint32;
                description
                  "The number of session teardown receive.";
              }
    
              leaf establish-send {
                type uint32;
                description
                  "The number of session establish send.";
              }
    
              leaf teardown-send {
                type uint32;
                description
                  "The number of session teardown send.";
              }
            }  // container session
    
            container lastest-received-message {
              description
                "Statistics of backup.";
              leaf tunnel-drop {
                type uint32;
                description
                  "The number of last tunnel drop message.";
              }
    
              leaf tunnel-update {
                type uint32;
                description
                  "The number of last tunnel update message.";
              }
    
              leaf tunnel-create {
                type uint32;
                description
                  "The number of last tunnel create message.";
              }
    
              leaf tunnel-teardown {
                type uint32;
                description
                  "The number of last tunnel teardown message.";
              }
    
              leaf hello-or-zlb {
                type uint32;
                description
                  "The number of last Hello or ZLB message.";
              }
    
              leaf session-drop {
                type uint32;
                description
                  "The number of last session drop message.";
              }
    
              leaf session-update {
                type uint32;
                description
                  "The number of last session update message.";
              }
    
              leaf session-create {
                type uint32;
                description
                  "The number of last session create message.";
              }
    
              leaf session-teardown {
                type uint32;
                description
                  "The number of last session teardown message.";
              }
            }  // container lastest-received-message
    
            container lastest-tunnel-records {
              description
                "List of l2tp tunnel backup statistics in detail.";
              list lastest-tunnel-record {
                key "index";
                description
                  "Statistics of l2tp tunnel backup statistics in detail.";
                leaf index {
                  type uint32 {
                    range "1..100";
                  }
                  description "Index.";
                }
    
                leaf local-id {
                  type uint32 {
                    range "1..65535";
                  }
                  description "Local tunnel ID.";
                }
    
                leaf remote-id {
                  type uint32 {
                    range "1..65535";
                  }
                  description
                    "Remote tunnel ID.";
                }
    
                leaf type {
                  type enumeration {
                    enum "last-tunnel-drop" {
                      value 0;
                      description
                        "Last tunnel drop.";
                    }
                    enum "last-tunnel-update" {
                      value 1;
                      description
                        "Last tunnel update.";
                    }
                    enum "last-tunnel-create" {
                      value 2;
                      description
                        "Last tunnel create.";
                    }
                    enum "last-tunnel-teardown" {
                      value 3;
                      description
                        "Last tunnel teardown.";
                    }
                    enum "last-hello-or-zlb" {
                      value 4;
                      description
                        "Last Hello or ZLB.";
                    }
                  }
                  description "Type.";
                }
    
                leaf date {
                  type string {
                    length "1..32";
                  }
                  description "Date.";
                }
    
                leaf time {
                  type string {
                    length "1..32";
                  }
                  description "Time.";
                }
    
                leaf peer-ip-address {
                  type string {
                    length "1..32";
                  }
                  description "Peer IP.";
                }
    
                leaf source-ip-address {
                  type string {
                    length "1..32";
                  }
                  description "Source IP.";
                }
    
                leaf l2tp-group-name {
                  type string {
                    length "1..32";
                  }
                  description "L2TP group name.";
                }
    
                leaf old-life {
                  type uint32;
                  description
                    "Old timestamp of tunnel.";
                }
    
                leaf new-life {
                  type uint32;
                  description
                    "New timestamp of tunnel.";
                }
              }  // list lastest-tunnel-record
            }  // container lastest-tunnel-records
    
            container lastest-session-records {
              description
                "List of l2tp Session backup statistics in detail.";
              list lastest-session-record {
                key "index";
                description
                  "Statistics of l2tp Session backup statistics in detail.";
                leaf index {
                  type uint32 {
                    range "1..100";
                  }
                  description "Index.";
                }
    
                leaf local-session-id {
                  type uint16 {
                    range "1..65535";
                  }
                  description
                    "Local session ID.";
                }
    
                leaf remote-session-id {
                  type uint16 {
                    range "1..65535";
                  }
                  description
                    "Remote session ID.";
                }
    
                leaf local-tunnel-id {
                  type uint32 {
                    range "1..65535";
                  }
                  description "Local tunnel ID.";
                }
    
                leaf remote-tunnel-id {
                  type uint32 {
                    range "1..65535";
                  }
                  description
                    "Remote tunnel ID.";
                }
    
                leaf type {
                  type enumeration {
                    enum "last-session-drop" {
                      value 5;
                      description
                        "Last session drop.";
                    }
                    enum "last-session-update" {
                      value 6;
                      description
                        "Last session update.";
                    }
                    enum "last-session-create" {
                      value 7;
                      description
                        "Last session create.";
                    }
                    enum "last-session-teardown" {
                      value 8;
                      description
                        "Last session teardown.";
                    }
                  }
                  description "Type.";
                }
    
                leaf date {
                  type string {
                    length "1..32";
                  }
                  description "Date.";
                }
    
                leaf time {
                  type string {
                    length "1..32";
                  }
                  description "Time.";
                }
    
                leaf peer-ip-address {
                  type string {
                    length "1..32";
                  }
                  description "Peer IP.";
                }
    
                leaf source-ip-address {
                  type string {
                    length "1..32";
                  }
                  description "Source IP.";
                }
    
                leaf l2tp-group-name {
                  type string {
                    length "1..32";
                  }
                  description "L2TP group name.";
                }
    
                leaf pppoe-session-mac {
                  type string {
                    length "1..30";
                  }
                  description
                    "MAC address of a PPPoE user.";
                }
    
                leaf pppoe-session-id {
                  type uint16 {
                    range "1..65535";
                  }
                  description
                    "Session ID of a PPPoE user.";
                }
              }  // list lastest-session-record
            }  // container lastest-session-records
          }  // container rui-statistics
    
          container disaster-statistics {
            config false;
            description
              "List of L2TP disaster recovery statistics.";
            list disaster-statistic {
              key "up-id";
              description
                "Display L2TP disaster recovery statistics.";
              leaf up-id {
                type uint32 {
                  range
                    "1024..2023 | 2048..3047 | 3072..4071 | 4096..5095";
                }
                must
                  "../up-id <= (/bras-cu-controller:bras-cu-controller/bras-cu-controller:global-attribute/bras-cu-controller:up-base-id + 999) and ../up-id >= /bras-cu-controller:bras-cu-controller/bras-cu-controller:global-attribute/bras-cu-controller:up-base-id";
                description "UP ID.";
              }
    
              container tunnel {
                description
                  "L2tp tunnel backup statistics.";
                leaf establish-receive {
                  type uint32;
                  description
                    "The number of tunnel establish Receive.";
                }
    
                leaf teardown-receive {
                  type uint32;
                  description
                    "The number of teardown receive.";
                }
    
                leaf establish-send {
                  type uint32;
                  description
                    "The number of tunnel establish send.";
                }
    
                leaf teardown-send {
                  type uint32;
                  description
                    "The number of tunnel teardown send.";
                }
    
                leaf hello-packet-send {
                  type uint32;
                  description
                    "The number of hello packet send.";
                }
    
                leaf zlb-packet-send {
                  type uint32;
                  description
                    "The number of ZLB packet send.";
                }
    
                leaf hello-packet-receive {
                  type uint32;
                  description
                    "The number of hello packet receive.";
                }
    
                leaf zlb-packet-receive {
                  type uint32;
                  description
                    "The number of ZLB packet receive.";
                }
    
                leaf peer-hello {
                  type uint32;
                  description
                    "The number of peer Hello.";
                }
    
                leaf peer-zlb {
                  type uint32;
                  description
                    "The number of peer ZLB.";
                }
              }  // container tunnel
    
              container session {
                description
                  "L2tp Session backup statistics.";
                leaf establish-receive {
                  type uint32;
                  description
                    "The number of session establish receive.";
                }
    
                leaf teardown-receive {
                  type uint32;
                  description
                    "The number of session teardown receive.";
                }
    
                leaf establish-send {
                  type uint32;
                  description
                    "The number of session establish send.";
                }
    
                leaf teardown-send {
                  type uint32;
                  description
                    "The number of session teardown send.";
                }
              }  // container session
    
              container lastest-received-message {
                description
                  "Statistics of backup.";
                leaf tunnel-drop {
                  type uint32;
                  description
                    "The number of last tunnel drop message.";
                }
    
                leaf tunnel-update {
                  type uint32;
                  description
                    "The number of last tunnel update message.";
                }
    
                leaf tunnel-create {
                  type uint32;
                  description
                    "The number of last tunnel create message.";
                }
    
                leaf tunnel-teardown {
                  type uint32;
                  description
                    "The number of last tunnel teardown message.";
                }
    
                leaf hello-or-zlb {
                  type uint32;
                  description
                    "The number of last Hello or ZLB message.";
                }
    
                leaf session-drop {
                  type uint32;
                  description
                    "The number of last session drop message.";
                }
    
                leaf session-update {
                  type uint32;
                  description
                    "The number of last session update message.";
                }
    
                leaf session-create {
                  type uint32;
                  description
                    "The number of last session create message.";
                }
    
                leaf session-teardown {
                  type uint32;
                  description
                    "The number of last session teardown message.";
                }
              }  // container lastest-received-message
    
              container lastest-tunnel-records {
                description
                  "List of l2tp tunnel backup statistics in detail.";
                list lastest-tunnel-record {
                  key "index";
                  description
                    "Statistics of l2tp tunnel backup statistics in detail.";
                  leaf index {
                    type uint32 {
                      range "1..100";
                    }
                    description "Index.";
                  }
    
                  leaf local-id {
                    type uint32 {
                      range "1..65535";
                    }
                    description
                      "Local tunnel ID.";
                  }
    
                  leaf remote-id {
                    type uint32 {
                      range "1..65535";
                    }
                    description
                      "Remote tunnel ID.";
                  }
    
                  leaf type {
                    type enumeration {
                      enum "last-tunnel-drop" {
                        value 0;
                        description
                          "Last tunnel drop.";
                      }
                      enum "last-tunnel-update" {
                        value 1;
                        description
                          "Last tunnel update.";
                      }
                      enum "last-tunnel-create" {
                        value 2;
                        description
                          "Last tunnel create.";
                      }
                      enum
                        "last-tunnel-teardown" {
                        value 3;
                        description
                          "Last tunnel teardown.";
                      }
                      enum "last-hello-or-zlb" {
                        value 4;
                        description
                          "Last Hello or ZLB.";
                      }
                    }
                    description "Type.";
                  }
    
                  leaf date {
                    type string {
                      length "1..32";
                    }
                    description "Date.";
                  }
    
                  leaf time {
                    type string {
                      length "1..32";
                    }
                    description "Time.";
                  }
    
                  leaf peer-ip-address {
                    type string {
                      length "1..32";
                    }
                    description "Peer IP.";
                  }
    
                  leaf source-ip-address {
                    type string {
                      length "1..32";
                    }
                    description "Source IP.";
                  }
    
                  leaf l2tp-group-name {
                    type string {
                      length "1..32";
                    }
                    description
                      "L2TP group name.";
                  }
    
                  leaf old-life {
                    type uint32;
                    description
                      "Old timestamp of tunnel.";
                  }
    
                  leaf new-life {
                    type uint32;
                    description
                      "New timestamp of tunnel.";
                  }
                }  // list lastest-tunnel-record
              }  // container lastest-tunnel-records
    
              container lastest-session-records {
                description
                  "List of l2tp Session backup statistics in detail.";
                list lastest-session-record {
                  key "index";
                  description
                    "Statistics of l2tp Session backup statistics in detail.";
                  leaf index {
                    type uint32 {
                      range "1..100";
                    }
                    description "Index.";
                  }
    
                  leaf local-session-id {
                    type uint16 {
                      range "1..65535";
                    }
                    description
                      "Local session ID.";
                  }
    
                  leaf remote-session-id {
                    type uint16 {
                      range "1..65535";
                    }
                    description
                      "Remote session ID.";
                  }
    
                  leaf local-tunnel-id {
                    type uint32 {
                      range "1..65535";
                    }
                    description
                      "Local tunnel ID.";
                  }
    
                  leaf remote-tunnel-id {
                    type uint32 {
                      range "1..65535";
                    }
                    description
                      "Remote tunnel ID.";
                  }
    
                  leaf type {
                    type enumeration {
                      enum "last-session-drop" {
                        value 5;
                        description
                          "Last session drop.";
                      }
                      enum "last-session-update" {
                        value 6;
                        description
                          "Last session update.";
                      }
                      enum "last-session-create" {
                        value 7;
                        description
                          "Last session create.";
                      }
                      enum
                        "last-session-teardown" {
                        value 8;
                        description
                          "Last session teardown.";
                      }
                    }
                    description "Type.";
                  }
    
                  leaf date {
                    type string {
                      length "1..32";
                    }
                    description "Date.";
                  }
    
                  leaf time {
                    type string {
                      length "1..32";
                    }
                    description "Time.";
                  }
    
                  leaf peer-ip-address {
                    type string {
                      length "1..32";
                    }
                    description "Peer IP.";
                  }
    
                  leaf source-ip-address {
                    type string {
                      length "1..32";
                    }
                    description "Source IP.";
                  }
    
                  leaf l2tp-group-name {
                    type string {
                      length "1..32";
                    }
                    description
                      "L2TP group name.";
                  }
    
                  leaf pppoe-session-mac {
                    type string {
                      length "1..30";
                    }
                    description
                      "MAC address of a PPPoE user.";
                  }
    
                  leaf pppoe-session-id {
                    type uint16 {
                      range "1..65535";
                    }
                    description
                      "Session ID of a PPPoE user.";
                  }
                }  // list lastest-session-record
              }  // container lastest-session-records
            }  // list disaster-statistic
          }  // container disaster-statistics
    
          container pim-sm-statistics {
            config false;
            description
              "Statistics of l2tp tunnel information of Pim-Sm.";
            container lns-tunnel-items {
              description
                "List of l2tp tunnel item information.";
              list lns-tunnel-item {
                key "local-id user-id";
                description
                  "Statistics of l2tp tunnel item information.";
                leaf local-id {
                  type uint32 {
                    range "1..65535";
                  }
                  description "Local tunnel ID.";
                }
    
                leaf user-id {
                  type uint32;
                  description "User ID.";
                }
    
                leaf user-name {
                  type string {
                    length "1..253";
                  }
                  description "User Name.";
                }
    
                leaf interface-name {
                  type string {
                    length "1..49";
                  }
                  description "Interface Name.";
                }
    
                leaf ipv4-address {
                  type inet:ipv4-address-no-zone;
                  description "IPv4 Address.";
                }
    
                leaf vpn-name {
                  type string {
                    length "1..31";
                  }
                  description "Vpn Name.";
                }
    
                leaf pe-vlan-id {
                  type uint32;
                  description "PeVLAN ID.";
                }
    
                leaf ce-vlan-id {
                  type uint32;
                  description "CeVLAN ID.";
                }
    
                leaf ipv6-address {
                  type string {
                    length "1..127";
                  }
                  description "IPv6 Address.";
                }
    
                leaf access-type {
                  type enumeration {
                    enum "pppolns" {
                      value 10;
                      description "Pppolns.";
                    }
                  }
                  description "Access Type.";
                }
              }  // list lns-tunnel-item
            }  // container lns-tunnel-items
    
            container lns-tunnel-slots {
              description
                "List of l2tp tunnel information of slot.";
              list lns-tunnel-slot {
                key "slot-id local-id";
                description
                  "Statistics of l2tp tunnel information of slot.";
                leaf slot-id {
                  type string {
                    length "1..15";
                  }
                  description "Slot ID.";
                }
    
                leaf local-id {
                  type uint32 {
                    range "1..65535";
                  }
                  description "Local tunnel ID.";
                }
    
                leaf remote-address {
                  type inet:ipv4-address-no-zone;
                  description "Remote Address.";
                }
    
                leaf total-session-number {
                  type uint32;
                  description
                    "Total session number.";
                }
    
                leaf pim-sm-session-number {
                  type uint32;
                  description "Pim-sm sessions.";
                }
    
                leaf remote-name {
                  type string {
                    length "1..253";
                  }
                  description "Remote name.";
                }
              }  // list lns-tunnel-slot
            }  // container lns-tunnel-slots
          }  // container pim-sm-statistics
        }  // container bras-l2tp-access
    
        rpc reset-down-lns {
          description
            "Delete the locked LNS IP node of the specific parameter.";
          input {
            choice reset-type {
              mandatory true;
              description "Reset type.";
              case peer-ip {
                description
                  "Reset down lns by peer ip address.";
                leaf lns-ip {
                  type inet:ipv4-address-no-zone;
                  mandatory true;
                  description "Lns IP address.";
                }
    
                leaf vpn-name {
                  type leafref {
                    path "/ni:network-instance/ni:instances/ni:instance/ni:name";
                  }
                  description
                    "Name of a specified VPN instance.";
                }
              }  // case peer-ip
    
              case l2tp-group {
                description
                  "Reset down lns by l2tp-group.";
                leaf group-name {
                  type leafref {
                    path "/bras-l2tp-access:bras-l2tp-access/bras-l2tp-access:l2tp-groups/bras-l2tp-access:l2tp-group/bras-l2tp-access:name";
                  }
                  mandatory true;
                  description "L2TP group name.";
                }
              }  // case l2tp-group
    
              case tunnel-id {
                description
                  "Reset down lns by tunnel id.";
                leaf tunnel-id {
                  type uint32 {
                    range "1..65535";
                  }
                  mandatory true;
                  description
                    "Local ID of a L2TP tunnel.";
                }
              }  // case tunnel-id
            }  // choice reset-type
          }
        }  // rpc reset-down-lns
    
        rpc cu-reset-down-lns {
          description
            "Delete the locked LNS IP node of the specific parameter.";
          input {
            leaf up-id {
              type leafref {
                path "/bras-cu-controller:bras-cu-controller/bras-cu-controller:resource-ups/bras-cu-controller:resource-up/bras-cu-controller:up-id";
              }
              mandatory true;
              description "The available upid.";
            }
    
            choice reset-type {
              mandatory true;
              description "Reset type.";
              case peer-ip {
                description
                  "Reset down lns by peer ip address.";
                leaf lns-ip {
                  type inet:ipv4-address-no-zone;
                  mandatory true;
                  description "Lns IP address.";
                }
    
                leaf vpn-name {
                  type leafref {
                    path "/ni:network-instance/ni:instances/ni:instance/ni:name";
                  }
                  description
                    "Name of a specified VPN instance.";
                }
              }  // case peer-ip
    
              case l2tp-group {
                description
                  "Reset down lns by l2tp-group.";
                leaf group-name {
                  type leafref {
                    path "/bras-l2tp-access:bras-l2tp-access/bras-l2tp-access:l2tp-groups/bras-l2tp-access:l2tp-group/bras-l2tp-access:name";
                  }
                  mandatory true;
                  description "L2TP group name.";
                }
              }  // case l2tp-group
    
              case tunnel-id {
                description
                  "Reset down lns by tunnel id.";
                leaf tunnel-id {
                  type uint32 {
                    range "1..65535";
                  }
                  mandatory true;
                  description
                    "Local ID of a L2TP tunnel.";
                }
              }  // case tunnel-id
            }  // choice reset-type
          }
        }  // rpc cu-reset-down-lns
      }  // module huawei-bras-l2tp-access
    

© 2023 YumaWorks, Inc. All rights reserved.