huawei-diagnostic-tools-ipv6

IPv6 diagnosis tool.

  • Version: 2020-09-10

    huawei-diagnostic-tools-ipv6@2020-09-10


    
      submodule huawei-diagnostic-tools-ipv6 {
    
        yang-version 1;
    
        belongs-to huawei-diagnostic-tools {
            prefix diagnostic-tools;
        }
    
        import huawei-pub-type {
          prefix pub-type;
        }
        import huawei-network-instance {
          prefix ni;
        }
        import huawei-ifm {
          prefix ifm;
        }
        import ietf-yang-types {
          prefix yang;
        }
        import ietf-inet-types {
          prefix inet;
        }
        import huawei-extension {
          prefix ext;
        }
    
        include huawei-diagnostic-tools-common;
        include huawei-diagnostic-tools-type;
    
        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 "IPv6 diagnosis tool.";
    
        revision "2020-09-10" {
          description
            "Add fast reply inbound node.";
          reference
            "Huawei private.";
    
        }
    
        revision "2019-04-09" {
          description "Initial revision.";
          reference
            "Huawei private.";
    
        }
    
    
        grouping ip6-ping-trace-result-type {
          description
            "IPv6 ping trace test result.";
          container ping-results {
            config false;
            description "List of test result.";
            list ping-result {
              key "test-name";
              config false;
              description
                "Statistics of test result of a certain hop in the test path. For a ping-type test, there is only one test result.";
              leaf test-name {
                type string {
                  length "1..32";
                }
                config false;
                description "Test name.";
              }
    
              leaf packet-recv {
                type uint32 {
                  range "0..4294967295";
                }
                config false;
                description
                  "Total number of received packets.";
              }
    
              leaf packet-send {
                type uint32 {
                  range "0..4294967295";
                }
                config false;
                description
                  "Total number of sent packets.";
              }
    
              leaf loss-ratio {
                type pub-type:percent {
                  range "0..100";
                }
                units "%";
                config false;
                description
                  "Packet loss ratio of a test.";
              }
    
              leaf rtt-min {
                type uint32 {
                  range "0..4294967295";
                }
                units "ms";
                config false;
                description
                  "Minimum RTT of all test packets.";
              }
    
              leaf rtt-max {
                type uint32 {
                  range "0..4294967295";
                }
                units "ms";
                config false;
                description
                  "Maximum RTT of all test packets.";
              }
    
              leaf average-rtt {
                type uint32 {
                  range "0..4294967295";
                }
                units "ms";
                config false;
                description
                  "Average RTT of all test packets.";
              }
    
              leaf status {
                type dgntl-test-status-type;
                config false;
                description "Test status.";
              }
    
              leaf error-type {
                type dgntl-error-type;
                config false;
                status deprecated;
                description
                  "Test operation status.";
              }
    
              container ping-result-details {
                config false;
                description
                  "List of ping results of all packets in a test.";
                list ping-result-detail {
                  key "index";
                  config false;
                  description
                    "Statistics of probe result.";
                  leaf index {
                    type uint32 {
                      range "0..4294967295";
                    }
                    config false;
                    description
                      "Serial number of a test packet received by a certain hop.";
                  }
    
                  leaf dest-ip-addr {
                    type inet:ipv6-address-no-zone;
                    config false;
                    description
                      "Destination address of the related hop in a test.";
                  }
    
                  leaf packet-size {
                    type uint32 {
                      range "0..4294967295";
                    }
                    config false;
                    description
                      "Number of bytes in a received response packet.";
                  }
    
                  leaf ttl {
                    type uint8 {
                      range "1..255";
                    }
                    config false;
                    description
                      "Hop limit of received response packets.";
                  }
    
                  leaf rtt {
                    type uint32 {
                      range "0..4294967295";
                    }
                    units "ms";
                    config false;
                    description
                      "RTT of test packets.";
                  }
    
                  leaf result-type {
                    type detail-result-type;
                    config false;
                    description
                      "Result of packet sending, which is either success or timeout.";
                  }
    
                  leaf is-delete {
                    ext:support-filter "true";
                    type boolean;
                    config false;
                    description
                      "Enable/disable the function of deleting test results.";
                  }
    
                  leaf system-time {
                    type yang:date-and-time;
                    config false;
                    description
                      "System time of response packets.";
                  }
    
                  leaf incoming-if-name {
                    type string {
                      length "1..255";
                    }
                    config false;
                    description
                      "The logical source interface of echo response packet.";
                  }
    
                  leaf incoming-phy-if-name {
                    type string {
                      length "1..255";
                    }
                    config false;
                    description
                      "The physical source interface of echo response packet.";
                  }
                }  // list ping-result-detail
              }  // container ping-result-details
            }  // list ping-result
          }  // container ping-results
    
          container trace-results {
            config false;
            description "List of test result.";
            list trace-result {
              key "test-name";
              config false;
              description
                "Statistics of trace test result.";
              leaf test-name {
                type string {
                  length "1..32";
                }
                config false;
                description "Test name.";
              }
    
              leaf status {
                type dgntl-test-status-type;
                config false;
                description "Test status.";
              }
    
              leaf error-type {
                type dgntl-error-type;
                config false;
                status deprecated;
                description
                  "Test operation status.";
              }
    
              container trace-result-details {
                config false;
                status deprecated;
                description
                  "List of ping results of all packets in a test.";
                list trace-result-detail {
                  key "index";
                  config false;
                  status deprecated;
                  description
                    "Statistics of ping result of a single packet in a test.";
                  leaf index {
                    type uint32;
                    config false;
                    status deprecated;
                    description
                      "Serial number of a hop in the test path. For a ping-type test such as the ping test or LSP ping test, there is only one hop in the test path, so the value is 1. For a trace-type test such as the trace test or LSP trace test, the value indicates the exact serial number of a hop in the test path.";
                  }
    
                  leaf ttl {
                    type uint8 {
                      range "1..255";
                    }
                    config false;
                    status deprecated;
                    description
                      "TTL of received response packets.";
                  }
    
                  leaf rtt {
                    type uint32;
                    config false;
                    status deprecated;
                    description
                      "RTT of test packets.";
                  }
    
                  leaf dest-ip-addr {
                    type inet:ipv6-address-no-zone;
                    config false;
                    status deprecated;
                    description
                      "Destination address of the related hop in a test.";
                  }
    
                  leaf is-delete {
                    ext:support-filter "true";
                    type boolean;
                    config false;
                    status deprecated;
                    description
                      "Enable/disable the function of deleting test results.";
                  }
                }  // list trace-result-detail
              }  // container trace-result-details
    
              container hops {
                config false;
                description
                  "List of hop results.";
                list hop {
                  key "hop-index";
                  config false;
                  description
                    "Statistics of hop result.";
                  leaf hop-index {
                    type uint32;
                    config false;
                    description
                      "The index of the hop.";
                  }
    
                  leaf is-delete {
                    ext:support-filter "true";
                    type boolean;
                    config false;
                    description
                      "Enable/disable the function of deleting test results.";
                  }
    
                  container probes {
                    config false;
                    description
                      "List of probe results.";
                    list probe {
                      key "probe-index";
                      config false;
                      description
                        "Statistics of probe result.";
                      leaf probe-index {
                        type uint32;
                        config false;
                        description
                          "The index of the probe packet.";
                      }
    
                      leaf rtt {
                        type uint32;
                        config false;
                        description
                          "RTT of test packets, expressed in milliseconds.";
                      }
    
                      leaf replier {
                        type inet:ipv6-address-no-zone;
                        config false;
                        description
                          "Reply address of the related hop in a test.";
                      }
    
                      leaf result-type {
                        type probe-result-type;
                        config false;
                        description
                          "Result of packet sending, which is either success or timeout.";
                      }
    
                      leaf srh-segment-left {
                        type uint32;
                        config false;
                        description
                          "Segments left.";
                      }
    
                      container mpls-labels {
                        config false;
                        description
                          "List of MPLS label informations.";
                        list mpls-label {
                          key "label-index";
                          config false;
                          description
                            "Statistics of MPLS label information.";
                          leaf label-index {
                            type uint32;
                            config false;
                            description
                              "Label index.";
                          }
    
                          leaf label-value {
                            type uint32;
                            config false;
                            description
                              "Show MPLS label value.";
                          }
    
                          leaf label-exp {
                            type uint32;
                            config false;
                            description
                              "Show MPLS label exp.";
                          }
    
                          leaf label-stack-bottom {
                            type uint32;
                            config false;
                            description
                              "Show MPLS label stack bottom flag.";
                          }
    
                          leaf label-ttl {
                            type uint32;
                            config false;
                            description
                              "Show MPLS label TTL.";
                          }
                        }  // list mpls-label
                      }  // container mpls-labels
    
                      container srh-sids {
                        config false;
                        description
                          "List of SID informations.";
                        list srh-sid {
                          key "sid-index";
                          config false;
                          description
                            "Statistics of SID information.";
                          leaf sid-index {
                            type uint32;
                            config false;
                            description
                              "SID index.";
                          }
    
                          leaf sid {
                            type inet:ipv6-address-no-zone;
                            config false;
                            description
                              "Segment ID.";
                          }
                        }  // list srh-sid
                      }  // container srh-sids
    
                      leaf slice-id {
                        type uint32;
                        config false;
                        description
                          "Network slice ID.";
                      }
                    }  // list probe
                  }  // container probes
                }  // list hop
              }  // container hops
            }  // list trace-result
          }  // container trace-results
        }  // grouping ip6-ping-trace-result-type
    
        rpc ipv6-start-ping {
          ext:node-ref "/diagnostic-tools:diagnostic-tools/diagnostic-tools:ipv6/diagnostic-tools:ping-results";
          description "Start IPv6 ping.";
          input {
            leaf test-name {
              type string {
                length "1..32";
              }
              mandatory true;
              description "Test name.";
            }
    
            leaf dest-addr {
              type pub-type:host-name;
              description
                "Destination address of the string type. You can click this node to set different types of addresses and deploy the configurations together with the configuration of the destination address type node. If the destination address type is set to IPv4, this parameter is set to IPv4. If the destination address type is set to IPv6, this parameter is set to IPv6.";
            }
    
            leaf source-address {
              type inet:ipv6-address-no-zone;
              description
                "Source address of the string type. You can click this node to set different types of addresses and deploy the configurations together with the configuration of the source address type node. If the source address type is set to IPv4, this parameter is set to IPv4. If the source address type is set to IPv6, this parameter is set to IPv6.";
            }
    
            leaf vrf-name {
              type leafref {
                path "/ni:network-instance/ni:instances/ni:instance/ni:name";
              }
              description
                "Name of a VPN instance.";
            }
    
            leaf interval {
              type uint32 {
                range "1..10000";
              }
              units "ms";
              description
                "Interval for sending test packets.";
            }
    
            leaf packet-size {
              type uint32 {
                range "20..9600";
              }
              description
                "Number of bytes in a sent test packet.";
            }
    
            leaf packet-count {
              type uint32 {
                range "1..4294967295";
              }
              description
                "Number of sent test packets.";
            }
    
            leaf timeout {
              type uint32 {
                range "0..65535";
              }
              units "ms";
              description
                "Time to wait for a response packet after a test packet is sent. If no response packet is received within the timeout period, the system considers that the test packet times out.";
            }
    
            leaf ttl {
              type uint8 {
                range "1..255";
              }
              description "Time to live.";
            }
    
            leaf if-name {
              type leafref {
                path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
              }
              description
                "The out interface for sending packets.";
            }
    
            leaf inbound-reply-fast {
              type boolean;
              must
                "../if-name and not(../nexthop-address) and not(../source-if-name)";
              description
                "Enable/disable fast reply from the specified Eth-Trunk member interface.";
            }
    
            leaf source-if-name {
              type leafref {
                path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
              }
              description
                "The source interface for echo requests.";
            }
    
            leaf segment-by-segment {
              type boolean;
              description "Segment by segment.";
            }
    
            leaf min-packet-size {
              type uint32 {
                range "20..9600";
              }
              description
                "The minimum size of packet to be sent.";
            }
    
            leaf max-packet-size {
              type uint32 {
                range "20..9600";
              }
              description
                "The maximum size of packet to be sent.";
            }
    
            leaf step-size {
              type uint32 {
                range "1..1000";
              }
              description
                "Increasing step size.";
            }
    
            leaf nexthop-address {
              type inet:ipv6-address-no-zone;
              description
                "Next hop IPv6 address.";
            }
    
            leaf ignore-mtu {
              type boolean;
              description "Check MTU flag.";
            }
    
            leaf show-system-time {
              type boolean;
              description
                "Show sending echo-request packet time flag.";
            }
    
            leaf show-incoming-if-name {
              type boolean;
              description
                "Interface name of incoming packet.";
            }
    
            leaf ipv6-forwarding {
              type boolean;
              description
                "Request packet forwarded by IPv6.";
            }
    
            choice priority {
              description "Priority type.";
              case dscp-value {
                description "DSCP value.";
                leaf dscp {
                  type uint32 {
                    range "0..63";
                  }
                  description "DSCP value.";
                }
              }  // case dscp-value
    
              case tos-value {
                description "ToS value.";
                leaf tos {
                  type uint8 {
                    range "0..255";
                  }
                  description "ToS.";
                }
              }  // case tos-value
            }  // choice priority
    
            leaf pattern {
              type string {
                length "1..8";
              }
              description "Packet fill.";
            }
    
            leaf sid1 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid2 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid3 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid4 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid5 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid6 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid7 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid8 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid9 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid10 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid11 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf network-slice-id {
              when "../sid1";
              type uint32 {
                range "1..4294967295";
              }
              description "Network slice ID.";
            }
    
            leaf force-match-slice {
              when
                "../sid1 and ../network-slice-id";
              type empty;
              description
                "Mandatory match network slice.";
            }
    
            leaf service-class {
              type service-class-value;
              description "Service class.";
            }
          }
        }  // rpc ipv6-start-ping
    
        rpc ipv6-stop-ping {
          ext:node-ref "/diagnostic-tools:diagnostic-tools/diagnostic-tools:ipv6/diagnostic-tools:ping-results";
          description "Stop IPv6 ping.";
          input {
            leaf test-name {
              type leafref {
                path "/diagnostic-tools:diagnostic-tools/diagnostic-tools:ipv6/diagnostic-tools:ping-results/diagnostic-tools:ping-result/diagnostic-tools:test-name";
              }
              mandatory true;
              description "Test name.";
            }
          }
        }  // rpc ipv6-stop-ping
    
        rpc ipv6-delete-ping {
          ext:node-ref "/diagnostic-tools:diagnostic-tools/diagnostic-tools:ipv6/diagnostic-tools:ping-results";
          description "Delete IPv6 ping.";
          input {
            leaf test-name {
              type leafref {
                path "/diagnostic-tools:diagnostic-tools/diagnostic-tools:ipv6/diagnostic-tools:ping-results/diagnostic-tools:ping-result/diagnostic-tools:test-name";
              }
              mandatory true;
              description "Test name.";
            }
          }
        }  // rpc ipv6-delete-ping
    
        rpc ipv6-start-trace {
          ext:node-ref "/diagnostic-tools:diagnostic-tools/diagnostic-tools:ipv6/diagnostic-tools:trace-results";
          description "Start IPv6 trace.";
          input {
            leaf test-name {
              type string {
                length "1..32";
              }
              mandatory true;
              description "Test name.";
            }
    
            leaf dest-addr {
              type pub-type:host-name;
              description
                "Destination address of the string type. You can click this node to set different types of addresses and deploy the configurations together with the configuration of the destination address type node. If the destination address type is set to IPv4, this parameter is set to IPv4. If the destination address type is set to IPv6, this parameter is set to IPv6.";
            }
    
            leaf source-address {
              type inet:ipv6-address-no-zone;
              description
                "Source address of the string type. You can click this node to set different types of addresses and deploy the configurations together with the configuration of the source address type node. If the source address type is set to IPv4, this parameter is set to IPv4. If the source address type is set to IPv6, this parameter is set to IPv6.";
            }
    
            leaf vrf-name {
              type leafref {
                path "/ni:network-instance/ni:instances/ni:instance/ni:name";
              }
              description
                "Name of a VPN instance.";
            }
    
            leaf packet-size {
              type uint32 {
                range "20..9600";
              }
              description
                "Number of bytes in a sent test packet.";
            }
    
            leaf count {
              type uint32 {
                range "1..65535";
              }
              description
                "Number of sent test packets.";
            }
    
            leaf timeout {
              type uint32 {
                range "0..65535";
              }
              units "ms";
              description
                "Time to wait for a response packet after a test packet is sent. If no response packet is received within the timeout period, the system considers that the test packet times out.";
            }
    
            leaf first-ttl {
              type uint8 {
                range "1..255";
              }
              description
                "TTL of the first packet in a test.";
            }
    
            leaf max-ttl {
              type uint8 {
                range "1..255";
              }
              description "TTL of test packets.";
            }
    
            leaf udp-port {
              type uint32 {
                range "0..65535";
              }
              description
                "Destination port number.";
            }
    
            leaf show-mpls-label {
              type boolean;
              description
                "Show MPLS label information flag.";
            }
    
            leaf overlay {
              type boolean;
              description "Overlay.";
            }
    
            leaf nexthop-address {
              type inet:ipv6-address-no-zone;
              description
                "Next hop IPv6 address.";
            }
    
            leaf if-name {
              type leafref {
                path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
              }
              description
                "The out interface for sending packets.";
            }
    
            choice priority {
              description "Priority type.";
              case dscp-value {
                description "DSCP value.";
                leaf dscp {
                  type uint32 {
                    range "0..63";
                  }
                  default "0";
                  description "DSCP value.";
                }
              }  // case dscp-value
            }  // choice priority
    
            leaf pass-route {
              type boolean;
              description
                "If not check pass route.";
            }
    
            leaf sid1 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid2 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid3 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid4 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid5 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid6 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid7 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid8 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid9 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid10 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf sid11 {
              type inet:ipv6-address-no-zone;
              description "Segment ID.";
            }
    
            leaf network-slice-id {
              when "../sid1";
              type uint32 {
                range "1..4294967295";
              }
              description "Network slice ID.";
            }
    
            leaf force-match-slice {
              when
                "../sid1 and ../network-slice-id";
              type empty;
              description
                "Mandatory match network slice.";
            }
    
            leaf service-class {
              type service-class-value;
              description "Service class.";
            }
          }
        }  // rpc ipv6-start-trace
    
        rpc ipv6-stop-trace {
          ext:node-ref "/diagnostic-tools:diagnostic-tools/diagnostic-tools:ipv6/diagnostic-tools:trace-results";
          description "Stop IPv6 trace.";
          input {
            leaf test-name {
              type leafref {
                path "/diagnostic-tools:diagnostic-tools/diagnostic-tools:ipv6/diagnostic-tools:trace-results/diagnostic-tools:trace-result/diagnostic-tools:test-name";
              }
              mandatory true;
              description "Test name.";
            }
          }
        }  // rpc ipv6-stop-trace
    
        rpc ipv6-delete-trace {
          ext:node-ref "/diagnostic-tools:diagnostic-tools/diagnostic-tools:ipv6/diagnostic-tools:trace-results";
          description "Delete IPv6 trace.";
          input {
            leaf test-name {
              type leafref {
                path "/diagnostic-tools:diagnostic-tools/diagnostic-tools:ipv6/diagnostic-tools:trace-results/diagnostic-tools:trace-result/diagnostic-tools:test-name";
              }
              mandatory true;
              description "Test name.";
            }
          }
        }  // rpc ipv6-delete-trace
    
        augment /diagnostic-tools:diagnostic-tools {
          description "List of IPv6 tests.";
          container ipv6 {
            config false;
            description
              "Statistics of IPv6 tests.";
            uses ip6-ping-trace-result-type;
          }  // container ipv6
        }
      }  // submodule huawei-diagnostic-tools-ipv6
    

© 2023 YumaWorks, Inc. All rights reserved.