huawei-emdi

Enhanced Media Delivery Index.

  • Version: 2020-03-09

    huawei-emdi@2020-03-09


    
      module huawei-emdi {
    
        yang-version 1;
    
        namespace 'urn:huawei:yang:huawei-emdi';
    
        prefix emdi;
    
        import ietf-inet-types {
          prefix inet;
        }
        import huawei-extension {
          prefix ext;
        }
        import huawei-ifm {
          prefix ifm;
        }
        import huawei-network-instance {
          prefix ni;
        }
        import huawei-l2vpn {
          prefix l2vpn;
        }
        import huawei-l3vpn {
          prefix l3vpn;
        }
        import huawei-bd {
          prefix bd;
        }
        import ietf-yang-types {
          prefix yang;
        }
    
        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
          "Enhanced Media Delivery Index.";
    
        reference
          "Huawei private.";
    
    
        revision "2020-03-09" {
          description
            "Modify description for YANG check.";
          reference
            "Huawei private.";
    
        }
    
        revision "2020-01-09" {
          description
            "Modify support-filter of slot-id.";
          reference
            "Huawei private.";
    
        }
    
        revision "2020-01-02" {
          description
            "Modify consistency between YANG Cabilty and YANG library.";
          reference
            "Huawei private.";
    
        }
    
        revision "2019-11-11" {
          description
            "Modify emdi-bind-slots to choice-case structure bind-lpu.";
          reference
            "Huawei private.";
    
        }
    
        revision "2019-06-27" {
          description "Init revision.";
          reference
            "Huawei private.";
    
        }
    
        ext:task-name "emdi";
    
        typedef channel-ref {
          type leafref {
            path "/emdi:emdi/emdi:emdi-channels/emdi:emdi-channel/emdi:channel-name";
          }
          description
            "This type is used by data models that need to reference configured channels.";
        }
    
        container emdi {
          description
            "On-board EMDI detection that obtains packet header information to sample multicast quality data.";
          container emdi-enable {
            presence "Enable EMDI";
            description
              "Enable/disable EMDI detection.";
            container emdi-global {
              description
                "Configure global EMDI attribute information.";
              leaf monitor-period {
                type enumeration {
                  enum "second-10s" {
                    value 10;
                    description
                      "Monitor period is 10 second.";
                  }
                  enum "second-30s" {
                    value 30;
                    description
                      "Monitor period is 30 second.";
                  }
                  enum "second-60s" {
                    value 60;
                    description
                      "Monitor period is 60 second.";
                  }
                }
                default 'second-60s';
                description
                  "EMDI monitoring period, which controls the detection interval.";
              }
    
              leaf suppress-times {
                type uint8 {
                  range "3..10";
                }
                default '3';
                description
                  "Alarm suppression time. When the number of consecutive detection periods during which a specified alarm threshold is reached exceeds a specified suppression threshold, an alarm is generated.";
              }
    
              leaf loss-rate-threshold-sd {
                ext:dynamic-default {
                  ext:default-value "38" {
                    when "../monitor-period = 'second-60s'";
                    description "The default value is 38 when monitor-period is 60.";
                  }
                  ext:default-value "100" {
                    when "../monitor-period = 'second-10s' or ../monitor-period = 'second-30s'";
                    description "The default value is 100 when monitor-period is 10 or 30.";
                  }
                }
                type uint16 {
                  range "1..5000";
                }
                description
                  "Threshold for generating an SD channel packet loss alarm.";
              }
    
              leaf loss-rate-threshold-hd {
                ext:dynamic-default {
                  ext:default-value "9" {
                    when "../monitor-period = 'second-60s'";
                    description "The default value is 9 when monitor-period is 60.";
                  }
                  ext:default-value "100" {
                    when "../monitor-period = 'second-10s' or ../monitor-period = 'second-30s'";
                    description "The default value is 100 when monitor-period is 10 or 30.";
                  }
                }
                type uint16 {
                  range "1..5000";
                }
                description
                  "Threshold for generating an HD channel packet loss alarm.";
              }
    
              leaf loss-rate-threshold-4k {
                ext:dynamic-default {
                  ext:default-value "3" {
                    when "../monitor-period = 'second-60s'";
                    description "The default value is 3 when monitor-period is 60.";
                  }
                  ext:default-value "100" {
                    when "../monitor-period = 'second-10s' or ../monitor-period = 'second-30s'";
                    description "The default value is 100 when monitor-period is 10 or 30.";
                  }
                }
                type uint16 {
                  range "1..5000";
                }
                description
                  "Threshold for generating a 4K channel packet loss alarm.";
              }
    
              leaf disorder-rate-threshold-sd {
                ext:dynamic-default {
                  ext:default-value "38" {
                    when "../monitor-period = 'second-60s'";
                    description "The default value is 38 when monitor-period is 60.";
                  }
                  ext:default-value "100" {
                    when "../monitor-period = 'second-10s' or ../monitor-period = 'second-30s'";
                    description "The default value is 100 when monitor-period is 10 or 30.";
                  }
                }
                type uint16 {
                  range "1..5000";
                }
                description
                  "Threshold for generating an SD channel packet disorder alarm.";
              }
    
              leaf disorder-rate-threshold-hd {
                ext:dynamic-default {
                  ext:default-value "9" {
                    when "../monitor-period = 'second-60s'";
                    description "The default value is 9 when monitor-period is 60.";
                  }
                  ext:default-value "100" {
                    when "../monitor-period = 'second-10s' or ../monitor-period = 'second-30s'";
                    description "The default value is 100 when monitor-period is 10 or 30.";
                  }
                }
                type uint16 {
                  range "1..5000";
                }
                description
                  "Alarm threshold for the packet disorder rate of HD channels.";
              }
    
              leaf disorder-rate-threshold-4k {
                ext:dynamic-default {
                  ext:default-value "3" {
                    when "../monitor-period = 'second-60s'";
                    description "The default value is 3 when monitor-period is 60.";
                  }
                  ext:default-value "100" {
                    when "../monitor-period = 'second-10s' or ../monitor-period = 'second-30s'";
                    description "The default value is 100 when monitor-period is 10 or 30.";
                  }
                }
                type uint16 {
                  range "1..5000";
                }
                description
                  "Alarm threshold for the packet disorder rate of 4K channels.";
              }
    
              leaf mpls-enable {
                type enumeration {
                  enum "disable" {
                    value 0;
                    description
                      "Disable MPLS tunnel detection.";
                  }
                  enum "enable" {
                    value 1;
                    description
                      "Enable MPLS tunnel detection.";
                  }
                }
                default 'disable';
                description
                  "In the P node scenario, enable MPLS tunnel detection to ensure that the P node detection function is proper.";
              }
    
              leaf jitter-enable {
                type enumeration {
                  enum "disable" {
                    value 0;
                    description
                      "Disable jitter detection.";
                  }
                  enum "enable" {
                    value 1;
                    description
                      "Enable jitter detection.";
                  }
                }
                default 'disable';
                description
                  "Whether to enable the jitter detection function for multicast packets.";
              }
    
              leaf monitor-rate-only {
                type enumeration {
                  enum "disable" {
                    value 0;
                    description
                      "Only disable rate detection.";
                  }
                  enum "enable" {
                    value 1;
                    description
                      "Only enable rate detection.";
                  }
                }
                default 'disable';
                description
                  "Only packet rate information is detected.";
              }
    
              leaf age-periods {
                type uint8 {
                  range "3..60";
                }
                default "10";
                description
                  "Bier channel statistics age periods.";
              }
            }  // container emdi-global
    
            container emdi-channel-groups {
              description
                "List of configure channel group information. Multiple channels can be bound to a channel group.";
              list emdi-channel-group {
                key "channel-group-name";
                max-elements 32;
                description
                  "Configure channel group information. Multiple channels can be bound to a channel group.";
                leaf channel-group-name {
                  type string {
                    length "1..31";
                  }
                  description
                    "Channel group name.";
                }
    
                choice channel-type {
                  description
                    "Configure EMDI channel information.";
                  case emdi-channel {
                    description
                      "Configure channel information.";
                    container emdi-channels {
                      description
                        "List of configure channel information.";
                      list emdi-channel {
                        key "channel-name";
                        max-elements 2100;
                        description
                          "Configure channel information. The group-address and source-address combination of different instances cannot overlap.";
                        leaf channel-name {
                          type string {
                            length "1..31";
                          }
                          must
                            "count(../../../../emdi-channel-group/emdi-channels/emdi-channel/channel-name[.= current()]) + count(../../../../emdi-channel-group/emdi-bier-channels/emdi-bier-channel/channel-name[.= current()]) <= 1";
                          description
                            "Channel name.";
                        }
    
                        leaf source-address {
                          type inet:ipv4-address-no-zone;
                          mandatory true;
                          description
                            "Multicast IP source address.";
                        }
    
                        leaf group-address {
                          type inet:ipv4-address-no-zone;
                          mandatory true;
                          description
                            "Multicast IP address.";
                        }
    
                        choice channel-group-parameters {
                          description
                            "EMDI channel group parameters.";
                          case vpn-name {
                            description
                              "Specify the name of a VPN instance. Multicast traffic is bound to a VPN tunnel.";
                            leaf vpn-name {
                              type leafref {
                                path "/ni:network-instance/ni:instances/ni:instance/ni:name";
                              }
                              must
                                "/ni:network-instance/ni:instances/ni:instance[ni:name=current()]/l3vpn:afs/l3vpn:af[l3vpn:type='ipv4-unicast'] and ../vpn-name!='_public_'";
                              description
                                "Specify the name of a VPN instance. Multicast traffic is bound to a VPN tunnel.";
                            }
                          }  // case vpn-name
    
                          case vlan-id {
                            description
                              "VLAN information. Multicast traffic is bound to VLANs.";
                            leaf vlan-id {
                              type uint16 {
                                range "1..4094";
                              }
                              description
                                "VLAN information. Multicast traffic is bound to VLANs.";
                            }
                          }  // case vlan-id
    
                          case vsi-name {
                            description
                              "Name of a VSI. Multicast traffic is bound to a VSI tunnel.";
                            leaf vsi-name {
                              type leafref {
                                path "/l2vpn:l2vpn/l2vpn:instances/l2vpn:instance/l2vpn:name";
                              }
                              must
                                "/l2vpn:l2vpn/l2vpn:instances/l2vpn:instance[l2vpn:name=current()][l2vpn:type='vpls']";
                              description
                                "Name of a VSI. Multicast traffic is bound to a VSI tunnel.";
                            }
                          }  // case vsi-name
    
                          case bd-id {
                            description
                              "DB information. Multicast traffic is bound to a BD.";
                            leaf bd-id {
                              type leafref {
                                path "/bd:bd/bd:instances/bd:instance/bd:id";
                              }
                              description
                                "DB information. Multicast traffic is bound to a BD.";
                            }
                          }  // case bd-id
    
                          case transit {
                            description
                              "In the P node scenario, enable the transit detection function to ensure that the P node detection function is proper.";
                            leaf transit {
                              type empty;
                              description
                                "In the P node scenario, enable the transit detection function to ensure that the P node detection function is proper.";
                            }
                          }  // case transit
                        }  // choice channel-group-parameters
    
                        leaf pt-value {
                          type uint16 {
                            range
                              "25..34 | 96..127";
                          }
                          must
                            "(../clock-rate='clock-90khz') or (../clock-rate!='clock-90khz' and ../pt-value >= 96 and ../pt-value <= 127)";
                          default "33";
                          description
                            "Payload type. Only payload type (PT) videos are detected.";
                        }
    
                        leaf clock-rate {
                          type enumeration {
                            enum "clock-90khz" {
                              value 0;
                              description
                                "Clock rate 90kHz frequency.";
                            }
                            enum
                              "clock-27000khz" {
                              value 1;
                              description
                                "Clock rate 27000kHz frequency.";
                            }
                            enum
                              "clock-148500khz" {
                              value 2;
                              description
                                "Clock rate 148500kHz frequency.";
                            }
                            enum
                              "clock-about-148mhz" {
                              value 3;
                              description
                                "Clock rate 148.5/1.001MHz frequency.";
                            }
                          }
                          must
                            "(../clock-rate='clock-90khz') or (../clock-rate!='clock-90khz' and ../pt-value >= 96 and ../pt-value <= 127)";
                          default 'clock-90khz';
                          description
                            "Clock frequency information.";
                        }
    
                        leaf uncompressed {
                          type empty;
                          description
                            "Whether non-compressed multicast traffic detection is enabled.";
                        }
                      }  // list emdi-channel
                    }  // container emdi-channels
                  }  // case emdi-channel
    
                  case emdi-bier-channel {
                    description
                      "Configure bier channel information.";
                    container emdi-bier-channels {
                      description
                        "List of configure bier channel information.";
                      list emdi-bier-channel {
                        key "channel-name";
                        max-elements 2100;
                        description
                          "Configure bier channel information.";
                        leaf channel-name {
                          type string {
                            length "1..31";
                          }
                          must
                            "count(../../../../emdi-channel-group/emdi-channels/emdi-channel/channel-name[.= current()]) + count(../../../../emdi-channel-group/emdi-bier-channels/emdi-bier-channel/channel-name[.= current()]) <= 1";
                          description
                            "Channel name.";
                        }
    
                        leaf source-address {
                          type inet:ipv4-address-no-zone;
                          mandatory true;
                          description
                            "Multicast IP source address.";
                        }
    
                        leaf group-address {
                          type inet:ipv4-address-no-zone;
                          mandatory true;
                          description
                            "Multicast IP address.";
                        }
    
                        leaf bier-vpn-name {
                          type leafref {
                            path "/ni:network-instance/ni:instances/ni:instance/ni:name";
                          }
                          must
                            "/ni:network-instance/ni:instances/ni:instance[ni:name=current()]/l3vpn:afs/l3vpn:af[l3vpn:type='ipv4-unicast'] and ../bier-vpn-name!='_public_'";
                          mandatory true;
                          description
                            "Specify the name of a VPN instance. Multicast traffic is bound to a VPN tunnel.";
                        }
    
                        leaf sub-domain {
                          type uint16 {
                            range "0..255";
                          }
                          mandatory true;
                          description
                            "The bier sub-domain.";
                        }
    
                        leaf bsl {
                          type enumeration {
                            enum "bsl-64" {
                              value 64;
                              description
                                "The bit string length is 64.";
                            }
                            enum "bsl-128" {
                              value 128;
                              description
                                "The bit string length is 128.";
                            }
                            enum "bsl-256" {
                              value 256;
                              description
                                "The bit string length is 256.";
                            }
                          }
                          mandatory true;
                          description
                            "The bit string length.";
                        }
                      }  // list emdi-bier-channel
                    }  // container emdi-bier-channels
                  }  // case emdi-bier-channel
                }  // choice channel-type
              }  // list emdi-channel-group
            }  // container emdi-channel-groups
    
            container emdi-lpu-groups {
              description
                "List of configure Board group information.";
              list emdi-lpu-group {
                ext:generated-by "system" {
                  ext:filter "lpu-group-name='_default_'";
                  description "The default board group named _default_ is automatically generated by the system.";
                }
                ext:operation-exclude "update" {
                  ext:filter "lpu-group-name='_default_'";
                  description "The default board group named _default_ cannot be updated.";
                }
                key "lpu-group-name";
                max-elements 32;
                description
                  "Configure board group information.";
                leaf lpu-group-name {
                  type string {
                    length "1..31";
                  }
                  description
                    "Board group name.";
                }
    
                choice bind-lpu {
                  description
                    "Bind slot <all> or <slot-number>.";
                  case bind-all {
                    description
                      "Bind slot <all>.";
                    container bind-all {
                      description
                        "Configure bind slot <all>.";
                      leaf all {
                        type empty;
                        description
                          "Bind slot <all>.";
                      }
                    }  // container bind-all
                  }  // case bind-all
    
                  case bind-slots {
                    description
                      "Bind slot <slot-number>.";
                    leaf-list slot {
                      type string {
                        length "1..15";
                      }
                      max-elements 128;
                      description
                        "Configure slot number.";
                    }
                  }  // case bind-slots
                }  // choice bind-lpu
              }  // list emdi-lpu-group
            }  // container emdi-lpu-groups
    
            container channel-group-bind-lpu-groups {
              description
                "List of configure binding between a channel group and a board.";
              list channel-group-bind-lpu-group {
                key "lpu-group-name channel-group-name";
                unique "channel-group-name";
                max-elements 32;
                description
                  "Configure binding between a channel group and a board.";
                leaf lpu-group-name {
                  type leafref {
                    path "../../../emdi-lpu-groups/emdi-lpu-group/lpu-group-name";
                  }
                  description
                    "Name of a bound board group.";
                }
    
                leaf channel-group-name {
                  type leafref {
                    path "../../../emdi-channel-groups/emdi-channel-group/channel-group-name";
                  }
                  description
                    "Name of a bound channel group.";
                }
              }  // list channel-group-bind-lpu-group
            }  // container channel-group-bind-lpu-groups
    
            container outbound-channel-group-bind-lpu-groups {
              description
                "List of configure outbound binding between a channel group and a board.";
              list outbound-channel-group-bind-lpu-group {
                key "lpu-group-name channel-group-name";
                unique "channel-group-name";
                max-elements 32;
                description
                  "Configure outbound binding between a channel group and a board.";
                leaf lpu-group-name {
                  type leafref {
                    path "../../../emdi-lpu-groups/emdi-lpu-group/lpu-group-name";
                  }
                  description
                    "Name of a bound board group.";
                }
    
                leaf channel-group-name {
                  type leafref {
                    path "../../../emdi-channel-groups/emdi-channel-group/channel-group-name";
                  }
                  description
                    "Name of a bound channel group.";
                }
              }  // list outbound-channel-group-bind-lpu-group
            }  // container outbound-channel-group-bind-lpu-groups
    
            container bier-enable {
              description
                "Configure bier lpu group.";
              leaf lpu-group-name {
                type leafref {
                  path "../../emdi-lpu-groups/emdi-lpu-group/lpu-group-name";
                }
                description
                  "Name of a bound board group.";
              }
            }  // container bier-enable
          }  // container emdi-enable
    
          container emdi-history-records {
            config false;
            description
              "List of query historical EMDI detection state.";
            list emdi-history-record {
              key "channel-name record-index direction";
              config false;
              description
                "Query historical EMDI detection state.";
              leaf channel-name {
                type string {
                  length "1..31";
                }
                config false;
                description "Channel name.";
              }
    
              leaf record-index {
                type uint16 {
                  range "0..1000";
                }
                config false;
                description
                  "Index of each detection message. The value 0 indicates that no abnormal flow.";
              }
    
              leaf direction {
                type enumeration {
                  enum "inbound" {
                    value 0;
                    description "Inbound.";
                  }
                  enum "outbound" {
                    value 1;
                    description "Outbound.";
                  }
                }
                config false;
                description
                  "Specify the direction of EMDI.";
              }
    
              leaf record-time {
                type string {
                  length "1..19";
                }
                config false;
                description
                  "Time when each piece of information is detected.";
              }
    
              leaf monitor-period {
                type enumeration {
                  enum "second-10s" {
                    value 10;
                    description
                      "Monitor period is 10 second.";
                  }
                  enum "second-30s" {
                    value 30;
                    description
                      "Monitor period is 30 second.";
                  }
                  enum "second-60s" {
                    value 60;
                    description
                      "Monitor period is 60 second.";
                  }
                }
                config false;
                description
                  "Detection period of each detection message.";
              }
    
              leaf monitor-status {
                type enumeration {
                  enum "normal" {
                    value 0;
                    description "Status normal.";
                  }
                  enum "car-drop" {
                    value 1;
                    description
                      "Status abnormal, NP drop.";
                  }
                  enum "rate-only" {
                    value 2;
                    description
                      "Only the rate of video streams is detected.";
                  }
                }
                config false;
                description
                  "Detection status of each detection message.";
              }
    
              leaf receive-packet {
                type uint64;
                config false;
                description
                  "Number of received packets.";
              }
    
              leaf rate-pps {
                type uint64;
                units "pps";
                config false;
                description
                  "Rate (pps) at which packets are received.";
              }
    
              leaf rate-bps {
                type uint64;
                units "bit/s";
                config false;
                description
                  "Rate (bit/s) at which packets are received.";
              }
    
              leaf lost-packet {
                type uint64;
                config false;
                description
                  "Number of lost packets on a channel.";
              }
    
              leaf disorder-packet {
                type uint64;
                config false;
                description
                  "Number of disordered packets.";
              }
    
              leaf rtp-lr {
                type uint32;
                units "0.001 %";
                config false;
                description
                  "Packet loss rate of a channel.";
              }
    
              leaf rtp-ser {
                type uint32;
                units "0.001 %";
                config false;
                description
                  "Check the channel disorder rate.";
              }
    
              leaf rtp-jitter {
                type string {
                  length "1..9";
                }
                config false;
                description
                  "Check the jitter of the channel.";
              }
    
              leaf slot-id {
                ext:support-filter "true";
                type string {
                  length "1..15";
                }
                config false;
                description "Slot ID.";
              }
    
              leaf interface-name {
                type string {
                  length "1..63";
                }
                config false;
                description "Interface name.";
              }
    
              leaf latest-rate {
                type uint64;
                units "pps";
                description "Latest rate.";
              }
    
              leaf latest-detect-time {
                type yang:date-and-time;
                description
                  "Latest detect time.";
              }
            }  // list emdi-history-record
          }  // container emdi-history-records
    
          container bier-history-records {
            config false;
            description
              "List of query historical BIER EMDI detection state.";
            list bier-history-record {
              key "source-address group-address vpn-label bfir-id sub-domain bsl si record-index slot-id";
              description
                "Query historical BIER EMDI detection state.";
              leaf source-address {
                type inet:ipv4-address-no-zone;
                description
                  "Multicast IP source address.";
              }
    
              leaf group-address {
                type inet:ipv4-address-no-zone;
                description
                  "Multicast IP address.";
              }
    
              leaf vpn-label {
                type uint32;
                description
                  "Vpn label of vpn in bier.";
              }
    
              leaf bfir-id {
                type uint16;
                description
                  "Bit forwarding router ID.";
              }
    
              leaf sub-domain {
                type uint16 {
                  range "0..255";
                }
                description "Bier sub domain.";
              }
    
              leaf bsl {
                type enumeration {
                  enum "bsl-64" {
                    value 64;
                    description
                      "The bit string length is 64.";
                  }
                  enum "bsl-128" {
                    value 128;
                    description
                      "The bit string length is 128.";
                  }
                  enum "bsl-256" {
                    value 256;
                    description
                      "The bit string length is 256.";
                  }
                }
                description "Bit string length.";
              }
    
              leaf si {
                type uint16 {
                  range "0..255";
                }
                description "Set identifier.";
              }
    
              leaf record-index {
                type uint16 {
                  range "0..1000";
                }
                description
                  "Index of each detection message. The value 0 indicates that no abnormal flow.";
              }
    
              leaf slot-id {
                type string {
                  length "1..15";
                }
                description "Slot ID.";
              }
    
              leaf record-time {
                type string {
                  length "1..19";
                }
                description
                  "Time when each piece of information is detected.";
              }
    
              leaf monitor-period {
                type enumeration {
                  enum "second-10s" {
                    value 10;
                    description
                      "Monitor period is 10 second.";
                  }
                  enum "second-30s" {
                    value 30;
                    description
                      "Monitor period is 30 second.";
                  }
                  enum "second-60s" {
                    value 60;
                    description
                      "Monitor period is 60 second.";
                  }
                }
                description
                  "Detection period of each detection message.";
              }
    
              leaf monitor-status {
                type enumeration {
                  enum "normal" {
                    value 0;
                    description "Status normal.";
                  }
                  enum "car-drop" {
                    value 1;
                    description
                      "Status abnormal, NP drop.";
                  }
                  enum "rate-only" {
                    value 2;
                    description
                      "Only the rate of video streams is detected.";
                  }
                }
                description
                  "Detection status of each detection message.";
              }
    
              leaf receive-packet {
                type uint64;
                description
                  "Number of received packets.";
              }
    
              leaf rate-pps {
                type uint64;
                units "pps";
                description
                  "Rate (pps) at which packets are received.";
              }
    
              leaf rate-bps {
                type uint64;
                units "bit/s";
                description
                  "Rate (bit/s) at which packets are received.";
              }
    
              leaf lost-packet {
                type uint64;
                description
                  "Number of lost packets on a channel.";
              }
    
              leaf disorder-packet {
                type uint64;
                description
                  "Number of disordered packets.";
              }
    
              leaf rtp-lr {
                type uint32;
                units "0.001 %";
                description
                  "Packet loss rate of a channel.";
              }
    
              leaf rtp-ser {
                type uint32;
                units "0.001 %";
                description
                  "Check the channel disorder rate.";
              }
    
              leaf latest-rate {
                type uint64;
                units "pps";
                description "Latest rate.";
              }
    
              leaf latest-detect-time {
                type yang:date-and-time;
                description
                  "Latest detect time.";
              }
            }  // list bier-history-record
          }  // container bier-history-records
    
          container bier-out-history-records {
            config false;
            description
              "List of query historical BIER EMDI out detection state.";
            list bier-out-history-record {
              key "source-address group-address vpn-label bfir-id sub-domain bsl si record-index slot-id interface-name token";
              description
                "Query historical BIER EMDI out detection state.";
              leaf source-address {
                type inet:ipv4-address-no-zone;
                description
                  "Multicast IP source address.";
              }
    
              leaf group-address {
                type inet:ipv4-address-no-zone;
                description
                  "Multicast IP address.";
              }
    
              leaf vpn-label {
                type uint32;
                description
                  "Vpn label of vpn in bier.";
              }
    
              leaf bfir-id {
                type uint16;
                description
                  "Bit forwarding router ID.";
              }
    
              leaf sub-domain {
                type uint16 {
                  range "0..255";
                }
                description "Bier sub domain.";
              }
    
              leaf bsl {
                type enumeration {
                  enum "bsl-64" {
                    value 64;
                    description
                      "The bit string length is 64.";
                  }
                  enum "bsl-128" {
                    value 128;
                    description
                      "The bit string length is 128.";
                  }
                  enum "bsl-256" {
                    value 256;
                    description
                      "The bit string length is 256.";
                  }
                }
                description "Bit string length.";
              }
    
              leaf si {
                type uint16 {
                  range "0..255";
                }
                description "Set identifier.";
              }
    
              leaf record-index {
                type uint16 {
                  range "0..1000";
                }
                description
                  "Index of each detection message. The value 0 indicates that no abnormal flow.";
              }
    
              leaf slot-id {
                type string {
                  length "1..15";
                }
                description "Slot ID.";
              }
    
              leaf interface-name {
                type string {
                  length "1..63";
                }
                description "Interface name.";
              }
    
              leaf token {
                type uint32;
                description
                  "Multicast leaf token.";
              }
    
              leaf record-time {
                type string {
                  length "1..19";
                }
                description
                  "Time when each piece of information is detected.";
              }
    
              leaf monitor-period {
                type enumeration {
                  enum "second-10s" {
                    value 10;
                    description
                      "Monitor period is 10 second.";
                  }
                  enum "second-30s" {
                    value 30;
                    description
                      "Monitor period is 30 second.";
                  }
                  enum "second-60s" {
                    value 60;
                    description
                      "Monitor period is 60 second.";
                  }
                }
                description
                  "Detection period of each detection message.";
              }
    
              leaf monitor-status {
                type enumeration {
                  enum "normal" {
                    value 0;
                    description "Status normal.";
                  }
                  enum "car-drop" {
                    value 1;
                    description
                      "Status abnormal, NP drop.";
                  }
                  enum "rate-only" {
                    value 2;
                    description
                      "Only the rate of video streams is detected.";
                  }
                }
                description
                  "Detection status of each detection message.";
              }
    
              leaf receive-packet {
                type uint64;
                description
                  "Number of received packets.";
              }
    
              leaf rate-pps {
                type uint64;
                units "pps";
                description
                  "Rate (pps) at which packets are received.";
              }
    
              leaf rate-bps {
                type uint64;
                units "bit/s";
                description
                  "Rate (bit/s) at which packets are received.";
              }
    
              leaf lost-packet {
                type uint64;
                description
                  "Number of lost packets on a channel.";
              }
    
              leaf disorder-packet {
                type uint64;
                description
                  "Number of disordered packets.";
              }
    
              leaf rtp-lr {
                type uint32;
                units "0.001 %";
                description
                  "Packet loss rate of a channel.";
              }
    
              leaf rtp-ser {
                type uint32;
                units "0.001 %";
                description
                  "Check the channel disorder rate.";
              }
    
              leaf latest-rate {
                type uint64;
                units "pps";
                description "Latest rate.";
              }
    
              leaf latest-detect-time {
                type yang:date-and-time;
                description
                  "Latest detect time.";
              }
            }  // list bier-out-history-record
          }  // container bier-out-history-records
    
          container emdi-channels {
            config false;
            description "List of Channel state.";
            list emdi-channel {
              key "channel-name";
              config false;
              description "Channel state.";
              leaf channel-name {
                type string {
                  length "1..31";
                }
                config false;
                description "Channel name.";
              }
            }  // list emdi-channel
          }  // container emdi-channels
    
          container emdi-telem-reps {
            config false;
            description
              "List of EMDI Telemetry IPTV Report Yang Models state.";
            list emdi-telem-rep {
              key "vr-id channel-name";
              config false;
              description
                "EMDI Telemetry IPTV Report Yang Model state.";
              leaf vr-id {
                type uint32 {
                  range "0..32";
                }
                config false;
                description
                  "Index of the VR that the channel belongs to.";
              }
    
              leaf channel-name {
                type channel-ref;
                config false;
                description
                  "Name of the multicast channel.";
              }
    
              leaf channel-source-address {
                type inet:ipv4-address-no-zone;
                config false;
                description
                  "IPv4 source adddress of the multicast channel.";
              }
    
              leaf channel-group-address {
                type inet:ipv4-address-no-zone;
                config false;
                description
                  "IPv4 group adddress of the multicast channel.";
              }
    
              leaf channel-vpn-type {
                type uint32 {
                  range "0..4";
                }
                config false;
                description
                  "The VPN type that the multicast channel belongs to.";
              }
    
              leaf vpn-name {
                type string {
                  length "1..31";
                }
                config false;
                description
                  "The L3VPN name of the multicast channel.";
              }
    
              leaf vlan-id {
                type uint32 {
                  range "0..65535";
                }
                config false;
                description
                  "The L2VPN VLAN Id of the multicast channel.";
              }
    
              leaf vsi-name {
                type string {
                  length "1..31";
                }
                config false;
                description
                  "The L2VPN VSI name of the multicast channel.";
              }
    
              leaf bd-id {
                type uint32 {
                  range "0..16777215";
                }
                config false;
                description
                  "The L2VPN BD name of the multicast channel.";
              }
    
              leaf report-period {
                type uint32 {
                  range "0..65535";
                }
                units "s";
                config false;
                description
                  "The EMDI statistics data report period.";
              }
    
              leaf report-time {
                type uint64;
                units "s";
                config false;
                description
                  "The report time of current report period.";
              }
    
              leaf total-recv-packets {
                type uint64;
                config false;
                description
                  "The total received RTP packets number in current report period.";
              }
    
              leaf total-loss-packets {
                type uint64;
                config false;
                description
                  "The total lost RTP packets number in current report period.";
              }
    
              leaf total-disorderd-packets {
                type uint64;
                config false;
                description
                  "The total disordered RTP packets number in current report period.";
              }
    
              leaf monitor-period {
                type uint32 {
                  range "0..65535";
                }
                units "s";
                config false;
                description
                  "The EMDI statistics data monitor period.";
              }
    
              leaf monitor-time {
                type uint64;
                units "s";
                config false;
                description
                  "The start time of current monitor period.";
              }
    
              leaf worst-recv-packets {
                type uint64;
                config false;
                description
                  "The received RTP packets number in the worst monitor period in current report period.";
              }
    
              leaf worst-loss-packets {
                type uint64;
                config false;
                description
                  "The lost RTP packets number in the worst monitor period in current report period.";
              }
    
              leaf worst-disorderd-packets {
                type uint64;
                config false;
                description
                  "The disordered RTP packets number in the worst monitor period in current report period.";
              }
            }  // list emdi-telem-rep
          }  // container emdi-telem-reps
    
          container emdi-telem-rtps {
            config false;
            description
              "List of EMDI Telemetry RTP Report Yang Models state.";
            list emdi-telem-rtp {
              key "vr-id channel-name";
              config false;
              description
                "EMDI Telemetry RTP Report Yang Model state.";
              leaf vr-id {
                type uint32 {
                  range "0..32";
                }
                config false;
                description
                  "Index of the VR that the channel belongs to.";
              }
    
              leaf channel-name {
                type channel-ref;
                config false;
                description
                  "Name of the multicast channel.";
              }
    
              leaf channel-source-address {
                type inet:ipv4-address-no-zone;
                config false;
                description
                  "IPv4 source adddress of the multicast channel.";
              }
    
              leaf channel-group-address {
                type inet:ipv4-address-no-zone;
                config false;
                description
                  "IPv4 group adddress of the multicast channel.";
              }
    
              leaf channel-vpn-type {
                type uint32 {
                  range "0..4";
                }
                config false;
                description
                  "The VPN type that the multicast channel belongs to.";
              }
    
              leaf vpn-name {
                type string {
                  length "1..31";
                }
                config false;
                description
                  "The L3VPN name of the multicast channel.";
              }
    
              leaf vlan-id {
                type uint32 {
                  range "0..65535";
                }
                config false;
                description
                  "The L2VPN VLAN Id of the multicast channel.";
              }
    
              leaf vsi-name {
                type string {
                  length "1..31";
                }
                config false;
                description
                  "The L2VPN VSI name of the multicast channel.";
              }
    
              leaf bd-id {
                type uint32 {
                  range "0..16777215";
                }
                config false;
                description
                  "The L2VPN BD name of the multicast channel.";
              }
    
              leaf report-period {
                type uint32 {
                  range "0..65535";
                }
                units "s";
                config false;
                description
                  "The EMDI statistics data report period.";
              }
    
              leaf report-time {
                type uint64;
                units "s";
                config false;
                description
                  "The report time of current report period.";
              }
    
              leaf recv-packets {
                type uint64;
                config false;
                description
                  "The received RTP packets number in current report period.";
              }
    
              leaf loss-packets {
                type uint64;
                config false;
                description
                  "The lost RTP packets number in current report period.";
              }
    
              leaf disorderd-packets {
                type uint64;
                config false;
                description
                  "The disordered RTP packets number in current report period.";
              }
    
              leaf monitor-period {
                type uint32 {
                  range "0..65535";
                }
                units "s";
                config false;
                description
                  "The EMDI statistics data monitor period.";
              }
    
              leaf monitor-time {
                type uint64;
                units "s";
                config false;
                description
                  "The start time of current monitor period.";
              }
            }  // list emdi-telem-rtp
          }  // container emdi-telem-rtps
    
          container out-telem-reps {
            config false;
            description
              "List of outbound EMDI Telemetry IPTV Report Yang Models state.";
            list out-telem-rep {
              key "vr-id channel-name slot-id";
              config false;
              description
                "Outbound EMDI Telemetry IPTV Report Yang Model state.";
              leaf vr-id {
                type uint32;
                config false;
                description
                  "Index of the VR that the channel belongs to.";
              }
    
              leaf channel-name {
                type channel-ref;
                config false;
                description
                  "Name of the multicast channel.";
              }
    
              leaf slot-id {
                type string {
                  length "1..15";
                }
                config false;
                description
                  "Slot name of the multicast channel.";
              }
    
              leaf channel-source-address {
                type inet:ipv4-address-no-zone;
                config false;
                description
                  "IPv4 source adddress of the multicast channel.";
              }
    
              leaf channel-group-address {
                type inet:ipv4-address-no-zone;
                config false;
                description
                  "IPv4 group adddress of the multicast channel.";
              }
    
              leaf channel-vpn-type {
                type uint32 {
                  range "0..1";
                }
                config false;
                description
                  "The VPN type that the multicast channel belongs to.";
              }
    
              leaf vpn-name {
                type string {
                  length "1..31";
                }
                config false;
                description
                  "The L3VPN name of the multicast channel.";
              }
    
              leaf interface-name {
                type string {
                  length "1..63";
                }
                config false;
                description
                  "Interface name of the multicast channel.";
              }
    
              leaf report-period {
                type uint32 {
                  range "0..65535";
                }
                units "s";
                config false;
                description
                  "The EMDI statistics data report period.";
              }
    
              leaf report-time {
                type uint64;
                units "s";
                config false;
                description
                  "The report time of current report period.";
              }
    
              leaf total-recv-packets {
                type uint64;
                config false;
                description
                  "The total received REP packets number in current report period.";
              }
    
              leaf total-loss-packets {
                type uint64;
                config false;
                description
                  "The total lost REP packets number in current report period.";
              }
    
              leaf total-disorderd-packets {
                type uint64;
                config false;
                description
                  "The total disordered REP packets number in current report period.";
              }
    
              leaf monitor-period {
                type uint32 {
                  range "0..65535";
                }
                units "s";
                config false;
                description
                  "The EMDI statistics data monitor period.";
              }
    
              leaf monitor-time {
                type uint64;
                units "s";
                config false;
                description
                  "The start time of current monitor period.";
              }
    
              leaf worst-recv-packets {
                type uint64;
                config false;
                description
                  "The received REP packets number in the worst monitor period in current report period.";
              }
    
              leaf worst-loss-packets {
                type uint64;
                config false;
                description
                  "The lost REP packets number in the worst monitor period in current report period.";
              }
    
              leaf worst-disorderd-packets {
                type uint64;
                config false;
                description
                  "The disordered REP packets number in the worst monitor period in current report period.";
              }
            }  // list out-telem-rep
          }  // container out-telem-reps
    
          container bier-telem-reps {
            config false;
            description
              "List of EMDI BIER telemetry IPTV report state.";
            list bier-telem-rep {
              key "vr-id source-address group-address vpn-label sub-domain bsl si bfr-id slot-id";
              description
                "EMDI BIER telemetry IPTV report state.";
              leaf vr-id {
                type uint32;
                description
                  "Index of the VR that the channel belongs to.";
              }
    
              leaf source-address {
                type inet:ipv4-address-no-zone;
                description
                  "IPv4 source adddress of the multicast channel.";
              }
    
              leaf group-address {
                type inet:ipv4-address-no-zone;
                description
                  "IPv4 group adddress of the multicast channel.";
              }
    
              leaf vpn-label {
                type uint32 {
                  range "0..1048575";
                }
                description
                  "The VPN label that the multicast channel belongs to.";
              }
    
              leaf sub-domain {
                type uint16 {
                  range "0..255";
                }
                description
                  "The sub domain of the bier multicast.";
              }
    
              leaf bsl {
                type enumeration {
                  enum "bsl-64" {
                    value 64;
                    description
                      "The bit string length is 64.";
                  }
                  enum "bsl-128" {
                    value 128;
                    description
                      "The bit string length is 128.";
                  }
                  enum "bsl-256" {
                    value 256;
                    description
                      "The bit string length is 256.";
                  }
                }
                description "Bit string length.";
              }
    
              leaf si {
                type uint16 {
                  range "0..255";
                }
                description
                  "Index of each detection message.";
              }
    
              leaf bfr-id {
                type uint16 {
                  range "1..65535";
                }
                description
                  "Bit forwarding router (BFR) ID.";
              }
    
              leaf slot-id {
                type string {
                  length "1..15";
                }
                description
                  "Slot name of the multicast channel.";
              }
    
              leaf report-period {
                type uint32 {
                  range "0..65535";
                }
                units "s";
                description
                  "The EMDI statistics data report period.";
              }
    
              leaf report-time {
                type uint64;
                units "s";
                description
                  "The report time of current report period.";
              }
    
              leaf total-recv-packets {
                type uint64;
                description
                  "The total received RTP packets number in current report period.";
              }
    
              leaf total-loss-packets {
                type uint64;
                description
                  "The total lost RTP packets number in current report period.";
              }
    
              leaf total-disorderd-packets {
                type uint64;
                description
                  "The total disordered RTP packets number in current report period.";
              }
    
              leaf monitor-period {
                type enumeration {
                  enum "second-10s" {
                    value 10;
                    description
                      "Monitor period is 10 second.";
                  }
                  enum "second-30s" {
                    value 30;
                    description
                      "Monitor period is 30 second.";
                  }
                  enum "second-60s" {
                    value 60;
                    description
                      "Monitor period is 60 second.";
                  }
                }
                description
                  "The EMDI statistics data monitor period.";
              }
    
              leaf monitor-time {
                type uint64;
                units "s";
                description
                  "The start time of current monitor period.";
              }
    
              leaf worst-recv-packets {
                type uint64;
                description
                  "The received RTP packets number in the worst monitor period in current report period.";
              }
    
              leaf worst-loss-packets {
                type uint64;
                description
                  "The lost RTP packets number in the worst monitor period in current report period.";
              }
    
              leaf worst-disorderd-packets {
                type uint64;
                description
                  "The disordered RTP packets number in the worst monitor period in current report period.";
              }
    
              leaf vpn-name {
                type string {
                  length "1..31";
                }
                description
                  "The L3VPN name of the multicast channel.";
              }
            }  // list bier-telem-rep
          }  // container bier-telem-reps
    
          container bier-telem-rtps {
            config false;
            description
              "List of EMDI telemetry RTP report state.";
            list bier-telem-rtp {
              key "vr-id source-address group-address vpn-label sub-domain bsl si bfr-id slot-id";
              description
                "EMDI BIER telemetry RTP report state.";
              leaf vr-id {
                type uint32;
                description
                  "Index of the VR that the channel belongs to.";
              }
    
              leaf source-address {
                type inet:ipv4-address-no-zone;
                description
                  "IPv4 source adddress of the multicast channel.";
              }
    
              leaf group-address {
                type inet:ipv4-address-no-zone;
                description
                  "IPv4 group adddress of the multicast channel.";
              }
    
              leaf vpn-label {
                type uint32 {
                  range "0..1048575";
                }
                description
                  "The VPN label that the multicast channel belongs to.";
              }
    
              leaf sub-domain {
                type uint16 {
                  range "0..255";
                }
                description
                  "The sub domain of the bier multicast.";
              }
    
              leaf bsl {
                type enumeration {
                  enum "bsl-64" {
                    value 64;
                    description
                      "The bit string length is 64.";
                  }
                  enum "bsl-128" {
                    value 128;
                    description
                      "The bit string length is 128.";
                  }
                  enum "bsl-256" {
                    value 256;
                    description
                      "The bit string length is 256.";
                  }
                }
                description "Bit string length.";
              }
    
              leaf si {
                type uint16 {
                  range "0..255";
                }
                description
                  "Index of each detection message.";
              }
    
              leaf bfr-id {
                type uint16 {
                  range "1..65535";
                }
                description
                  "Bit forwarding router (BFR) ID.";
              }
    
              leaf slot-id {
                type string {
                  length "1..15";
                }
                description
                  "Slot name of the multicast channel.";
              }
    
              leaf report-period {
                type uint32 {
                  range "0..65535";
                }
                units "s";
                description
                  "The EMDI statistics data report period.";
              }
    
              leaf report-time {
                type uint64;
                units "s";
                description
                  "The report time of current report period.";
              }
    
              leaf recv-packets {
                type uint64;
                description
                  "The received RTP packets number in current report period.";
              }
    
              leaf loss-packets {
                type uint64;
                description
                  "The lost RTP packets number in current report period.";
              }
    
              leaf disorderd-packets {
                type uint64;
                description
                  "The disordered RTP packets number in current report period.";
              }
    
              leaf monitor-period {
                type enumeration {
                  enum "second-10s" {
                    value 10;
                    description
                      "Monitor period is 10 second.";
                  }
                  enum "second-30s" {
                    value 30;
                    description
                      "Monitor period is 30 second.";
                  }
                  enum "second-60s" {
                    value 60;
                    description
                      "Monitor period is 60 second.";
                  }
                }
                description
                  "The EMDI statistics data monitor period.";
              }
    
              leaf monitor-time {
                type uint64;
                units "s";
                description
                  "The start time of current monitor period.";
              }
    
              leaf vpn-name {
                type string {
                  length "1..31";
                }
                description
                  "The L3VPN name of the multicast channel.";
              }
            }  // list bier-telem-rtp
          }  // container bier-telem-rtps
    
          container bier-out-telem-reps {
            config false;
            description
              "List of outbound EMDI telemetry IPTV report state.";
            list bier-out-telem-rep {
              key "vr-id source-address group-address vpn-label sub-domain bsl si bfr-id interface-name slot-id";
              description
                "Outbound EMDI BIER telemetry IPTV report state.";
              leaf vr-id {
                type uint32;
                description
                  "Index of the VR that the channel belongs to.";
              }
    
              leaf source-address {
                type inet:ipv4-address-no-zone;
                description
                  "IPv4 source adddress of the multicast channel.";
              }
    
              leaf group-address {
                type inet:ipv4-address-no-zone;
                description
                  "IPv4 group adddress of the multicast channel.";
              }
    
              leaf vpn-label {
                type uint32 {
                  range "0..1048575";
                }
                description
                  "The VPN label that the multicast channel belongs to.";
              }
    
              leaf sub-domain {
                type uint16 {
                  range "0..255";
                }
                description
                  "The sub domain of the bier multicast.";
              }
    
              leaf bsl {
                type enumeration {
                  enum "bsl-64" {
                    value 64;
                    description
                      "The bit string length is 64.";
                  }
                  enum "bsl-128" {
                    value 128;
                    description
                      "The bit string length is 128.";
                  }
                  enum "bsl-256" {
                    value 256;
                    description
                      "The bit string length is 256.";
                  }
                }
                description "Bit string length.";
              }
    
              leaf si {
                type uint16 {
                  range "0..255";
                }
                description
                  "Index of each detection message.";
              }
    
              leaf bfr-id {
                type uint16 {
                  range "1..65535";
                }
                description
                  "Bit forwarding router (BFR) ID.";
              }
    
              leaf interface-name {
                type string {
                  length "1..63";
                }
                description
                  "Interface name of the multicast channel.";
              }
    
              leaf slot-id {
                type string {
                  length "1..15";
                }
                description
                  "Slot name of the multicast channel.";
              }
    
              leaf report-period {
                type uint32 {
                  range "0..65535";
                }
                units "s";
                description
                  "The EMDI statistics data report period.";
              }
    
              leaf report-time {
                type uint64;
                units "s";
                description
                  "The report time of current report period.";
              }
    
              leaf total-recv-packets {
                type uint64;
                description
                  "The total received REP packets number in current report period.";
              }
    
              leaf total-loss-packets {
                type uint64;
                description
                  "The total lost REP packets number in current report period.";
              }
    
              leaf total-disorderd-packets {
                type uint64;
                description
                  "The total disordered REP packets number in current report period.";
              }
    
              leaf monitor-period {
                type enumeration {
                  enum "second-10s" {
                    value 10;
                    description
                      "Monitor period is 10 second.";
                  }
                  enum "second-30s" {
                    value 30;
                    description
                      "Monitor period is 30 second.";
                  }
                  enum "second-60s" {
                    value 60;
                    description
                      "Monitor period is 60 second.";
                  }
                }
                description
                  "The EMDI statistics data monitor period.";
              }
    
              leaf monitor-time {
                type uint64;
                units "s";
                description
                  "The start time of current monitor period.";
              }
    
              leaf worst-recv-packets {
                type uint64;
                description
                  "The received REP packets number in the worst monitor period in current report period.";
              }
    
              leaf worst-loss-packets {
                type uint64;
                description
                  "The lost REP packets number in the worst monitor period in current report period.";
              }
    
              leaf worst-disorderd-packets {
                type uint64;
                description
                  "The disordered REP packets number in the worst monitor period in current report period.";
              }
    
              leaf vpn-name {
                type string {
                  length "1..31";
                }
                description
                  "The L3VPN name of the multicast channel.";
              }
            }  // list bier-out-telem-rep
          }  // container bier-out-telem-reps
    
          container bier-out-telem-rtps {
            config false;
            description
              "List of outbound EMDI telemetry RTP report state.";
            list bier-out-telem-rtp {
              key "vr-id source-address group-address vpn-label sub-domain bsl si bfr-id interface-name slot-id";
              description
                "Outbound EMDI BIER telemetry RTP report state.";
              leaf vr-id {
                type uint32;
                description
                  "Index of the VR that the channel belongs to.";
              }
    
              leaf source-address {
                type inet:ipv4-address-no-zone;
                description
                  "IPv4 source adddress of the multicast channel.";
              }
    
              leaf group-address {
                type inet:ipv4-address-no-zone;
                description
                  "IPv4 group adddress of the multicast channel.";
              }
    
              leaf vpn-label {
                type uint32 {
                  range "0..1048575";
                }
                description
                  "The VPN label that the multicast channel belongs to.";
              }
    
              leaf sub-domain {
                type uint16 {
                  range "0..255";
                }
                description
                  "The sub domain of the bier multicast.";
              }
    
              leaf bsl {
                type enumeration {
                  enum "bsl-64" {
                    value 64;
                    description
                      "The bit string length is 64.";
                  }
                  enum "bsl-128" {
                    value 128;
                    description
                      "The bit string length is 128.";
                  }
                  enum "bsl-256" {
                    value 256;
                    description
                      "The bit string length is 256.";
                  }
                }
                description "Bit string length.";
              }
    
              leaf si {
                type uint16 {
                  range "0..255";
                }
                description
                  "Index of each detection message.";
              }
    
              leaf bfr-id {
                type uint16 {
                  range "1..65535";
                }
                description
                  "Bit forwarding router (BFR) ID.";
              }
    
              leaf interface-name {
                type string {
                  length "1..63";
                }
                description
                  "Interface name of the multicast channel.";
              }
    
              leaf slot-id {
                type string {
                  length "1..15";
                }
                description
                  "Slot name of the multicast channel.";
              }
    
              leaf report-period {
                type uint32 {
                  range "0..65535";
                }
                units "s";
                description
                  "The EMDI statistics data report period.";
              }
    
              leaf report-time {
                type uint64;
                units "s";
                description
                  "The report time of current report period.";
              }
    
              leaf recv-packets {
                type uint64;
                description
                  "The received RTP packets number in current report period.";
              }
    
              leaf loss-packets {
                type uint64;
                description
                  "The lost RTP packets number in current report period.";
              }
    
              leaf disorderd-packets {
                type uint64;
                description
                  "The disordered RTP packets number in current report period.";
              }
    
              leaf monitor-period {
                type enumeration {
                  enum "second-10s" {
                    value 10;
                    description
                      "Monitor period is 10 second.";
                  }
                  enum "second-30s" {
                    value 30;
                    description
                      "Monitor period is 30 second.";
                  }
                  enum "second-60s" {
                    value 60;
                    description
                      "Monitor period is 60 second.";
                  }
                }
                description
                  "The EMDI statistics data monitor period.";
              }
    
              leaf monitor-time {
                type uint64;
                units "s";
                description
                  "The start time of current monitor period.";
              }
    
              leaf vpn-name {
                type string {
                  length "1..31";
                }
                description
                  "The L3VPN name of the multicast channel.";
              }
            }  // list bier-out-telem-rtp
          }  // container bier-out-telem-rtps
        }  // container emdi
    
        rpc reset-statistic-history {
          ext:node-ref "/emdi/emdi-history-statistic-records/emdi-history-statistic-record";
          description
            "Reset channel statistics.";
          input {
            leaf channel-name {
              type string {
                length "1..31";
              }
              description "Channel name.";
            }
          }
        }  // rpc reset-statistic-history
    
        rpc reset-outbound-history-statistic {
          ext:node-ref "/emdi/emdi-history-statistic-records/emdi-history-statistic-record";
          description
            "Reset outbound channel statistics.";
          input {
            leaf slot-id {
              type string {
                length "1..15";
              }
              mandatory true;
              description "Slot ID.";
            }
    
            leaf channel-name {
              type string {
                length "1..31";
              }
              description "Channel name.";
            }
          }
        }  // rpc reset-outbound-history-statistic
    
        rpc reset-bier-statistic-history {
          ext:node-ref "/emdi/bier-history-records/bier-history-record";
          description
            "Reset BIER channel statistics.";
          input {
            leaf slot-id {
              type string {
                length "1..15";
              }
              mandatory true;
              description "Slot ID.";
            }
          }
        }  // rpc reset-bier-statistic-history
    
        rpc reset-bier-out-statistic-history {
          ext:node-ref "/emdi/bier-out-history-records/bier-out-history-record";
          description
            "Reset outbound BIER channel statistics.";
          input {
            leaf slot-id {
              type string {
                length "1..15";
              }
              mandatory true;
              description "Slot ID.";
            }
          }
        }  // rpc reset-bier-out-statistic-history
    
        rpc filter-history-statistic {
          ext:node-ref "/emdi/emdi-history-statistic-records/emdi-history-statistic-record";
          description
            "Filter EMDI history statistics.";
          input {
            leaf channel-name {
              type string {
                length "1..31";
              }
              description "Channel name.";
            }
    
            leaf start-index {
              type uint16 {
                range "1..1000";
              }
              description
                "Start index. This parameter is used only as a filter criterion and is not displayed.";
            }
    
            leaf end-index {
              type uint16 {
                range "1..1000";
              }
              description
                "End index. It is only used as a filter criterion and is not displayed.";
            }
    
            leaf last-record-num {
              type uint8 {
                range "1..5";
              }
              description
                "Query the latest specified number of detection records. This parameter is used only as a filter criterion and is not displayed.";
            }
    
            leaf direction {
              type enumeration {
                enum "inbound" {
                  value 0;
                  description "Inbound.";
                }
                enum "outbound" {
                  value 1;
                  description "Outbound.";
                }
              }
              description
                "Specify the direction of EMDI.";
            }
    
            leaf slot-id {
              type string {
                length "1..15";
              }
              description "Slot ID.";
            }
          }
    
          output {
            container emdi-history-statistic-records {
              description
                "List of configure query historical EMDI detection information.";
              list emdi-history-statistic-record {
                key "channel-name record-index direction";
                description
                  "Configure query historical EMDI detection information.";
                leaf channel-name {
                  type string {
                    length "1..31";
                  }
                  description "Channel name.";
                }
    
                leaf record-index {
                  type uint16 {
                    range "1..1000";
                  }
                  description
                    "Index of each detection message.";
                }
    
                leaf direction {
                  type enumeration {
                    enum "inbound" {
                      value 0;
                      description "Inbound.";
                    }
                    enum "outbound" {
                      value 1;
                      description "Outbound.";
                    }
                  }
                  description
                    "Specify the direction of EMDI.";
                }
    
                leaf record-time {
                  type string {
                    length "1..19";
                  }
                  description
                    "Time when each piece of information is detected.";
                }
    
                leaf monitor-period {
                  type enumeration {
                    enum "second-10s" {
                      value 10;
                      description
                        "Monitor period is 10 second.";
                    }
                    enum "second-30s" {
                      value 30;
                      description
                        "Monitor period is 30 second.";
                    }
                    enum "second-60s" {
                      value 60;
                      description
                        "Monitor period is 60 second.";
                    }
                  }
                  description
                    "Detection period of each detection message.";
                }
    
                leaf monitor-status {
                  type enumeration {
                    enum "normal" {
                      value 0;
                      description
                        "Status normal.";
                    }
                    enum "car-drop" {
                      value 1;
                      description
                        "Status abnormal, NP drop.";
                    }
                    enum "rate-only" {
                      value 2;
                      description
                        "Only the rate of video streams is detected.";
                    }
                  }
                  description
                    "Detection status of each detection message.";
                }
    
                leaf receive-packet {
                  type uint64;
                  description
                    "Number of received packets.";
                }
    
                leaf rate-pps {
                  type uint64;
                  units "pps";
                  description
                    "Rate (pps) at which packets are received.";
                }
    
                leaf rate-bps {
                  type uint64;
                  units "bit/s";
                  description
                    "Rate (bit/s) at which packets are received.";
                }
    
                leaf lost-packet {
                  type uint64;
                  description
                    "Number of lost packets on a channel.";
                }
    
                leaf disorder-packet {
                  type uint64;
                  description
                    "Number of disordered packets.";
                }
    
                leaf rtp-lr {
                  type uint32;
                  units "0.001 %";
                  description
                    "Packet loss rate of a channel.";
                }
    
                leaf rtp-ser {
                  type uint32;
                  units "0.001 %";
                  description
                    "Check the channel disorder rate.";
                }
    
                leaf rtp-jitter {
                  type string {
                    length "1..9";
                  }
                  description
                    "Check the jitter of the channel.";
                }
    
                leaf slot-id {
                  type string {
                    length "1..15";
                  }
                  description "Slot ID.";
                }
    
                leaf interface-name {
                  type string {
                    length "1..63";
                  }
                  description "Interface name.";
                }
              }  // list emdi-history-statistic-record
            }  // container emdi-history-statistic-records
          }
        }  // rpc filter-history-statistic
    
        augment /ifm:ifm/ifm:interfaces/ifm:interface {
          description
            "Adds interface configuration to ifm interface model.";
          container emdi {
            description
              "Configure outbound channel in a interface.";
            leaf-list emdi-channel-name {
              when
                "../../ifm:type='Ethernet' or
                  ../../ifm:type='GigabitEthernet' or
                  ../../ifm:type='Eth-Trunk' or
                  ../../ifm:type='FlexE'";
              type leafref {
                path "/emdi:emdi/emdi:emdi-enable/emdi:emdi-channel-groups/emdi:emdi-channel-group/emdi:emdi-channels/emdi:emdi-channel/emdi:channel-name";
              }
              must
                "/emdi:emdi/emdi:emdi-enable/emdi:outbound-channel-group-bind-lpu-groups/emdi:outbound-channel-group-bind-lpu-group/emdi:channel-group-name = /emdi:emdi/emdi:emdi-enable/emdi:emdi-channel-groups/emdi:emdi-channel-group[emdi:emdi-channels/emdi:emdi-channel/emdi:channel-name = current()]/emdi:channel-group-name";
              max-elements 20;
              description
                "Configure name of a emdi channel bind in a interface.";
            }
          }  // container emdi
        }
      }  // module huawei-emdi
    

© 2023 YumaWorks, Inc. All rights reserved.