junos-rpc-traceroute

Junos RPC YANG module for traceroute command(s)

  • Version: 2019-01-01

    junos-rpc-traceroute@2019-01-01


    
      module junos-rpc-traceroute {
    
        yang-version 1;
    
        namespace
          "http://yang.juniper.net/junos/rpc/traceroute";
    
        prefix traceroute;
    
        import junos-common-types {
          prefix jt;
          revision-date "2019-01-01";
        }
    
        organization "Juniper Networks, Inc.";
    
        contact "yang-support@juniper.net";
    
        description
          "Junos RPC YANG module for traceroute command(s)";
    
        revision "2019-01-01" {
          description "Junos: 21.3R1.9";
        }
    
    
        rpc traceroute {
          description
            "Trace route to remote host";
          input {
            leaf gateway {
              type string;
              description
                "Address of router gateway to route through";
            }
    
            leaf ttl {
              type string;
              description
                "IP maximum time-to-live value (or IPv6 maximum hop-limit value)";
            }
    
            leaf wait {
              type string;
              units "seconds";
              description
                "Number of seconds to wait for response";
            }
    
            leaf no-resolve {
              type empty;
              description
                "Don't attempt to print addresses symbolically";
            }
    
            leaf source {
              type string;
              description
                "Source address to use in outgoing traceroute packets";
            }
    
            leaf tos {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type int32 {
                  range "0 .. 255";
                }
              }
              description
                "IP type-of-service field (IPv4)";
            }
    
            leaf as-number-lookup {
              type empty;
              description
                "Look up AS numbers for each hop";
            }
    
            leaf bypass-routing {
              type empty;
              description
                "Bypass routing table, use specified interface";
            }
    
            leaf inet {
              type empty;
              description
                "Force traceroute to IPv4 destination";
            }
    
            leaf inet6 {
              type empty;
              description
                "Force traceroute to IPv6 destination";
            }
    
            leaf next-hop {
              type string;
              description "Next-hop address";
            }
    
            leaf interface {
              type union {
                type jt:interface-name;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              description
                "Name of interface to use for outgoing traffic";
            }
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance for traceroute attempt";
            }
    
            leaf vpn-interface {
              type union {
                type jt:interface-name;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              status deprecated;
              description
                "VPN interface for traceroute attempt";
            }
    
            leaf propagate-ttl {
              type empty;
              description
                "Enable propagate-ttl for locally sourced RE traffic";
            }
    
            leaf port {
              type union {
                type uint32;
                type string {
                  pattern "<.*>|$.*";
                }
              }
              description
                "Base port to use in traceroute probes";
            }
    
            leaf host {
              type string;
              mandatory true;
              description
                "Hostname or address of remote host";
            }
    
            leaf logical-system {
              type string;
              description
                "Name of logical system";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml traceroute-results;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc traceroute
    
        rpc request-traceroute-ethernet {
          description
            "Trace route to an ethernet host by unicast mac address";
          input {
            leaf ttl {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type int32 {
                  range "1 .. 255";
                }
              }
              description
                "Maximum time-to-live value";
            }
    
            leaf wait {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type int32 {
                  range "1 .. 255";
                }
              }
              units "seconds";
              description
                "Number of seconds to wait for response";
            }
    
            leaf maintenance-domain {
              type string {
                length "1 .. 45";
              }
              mandatory true;
              description
                "Name of maintenance domain";
            }
    
            leaf maintenance-association {
              type string {
                length "1 .. 45";
              }
              mandatory true;
              description
                "Name of maintenance association";
            }
    
            leaf host {
              type jt:mac-unicast;
              description
                "MAC address of remote host in xx:xx:xx:xx:xx:xx format";
            }
    
            leaf mep {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type int32 {
                  range "1 .. 8191";
                }
              }
              description
                "MEP identifier of remote host (default 1)";
            }
    
            leaf local-mep {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type int32 {
                  range "1 .. 8191";
                }
              }
              description
                "MEP identifier of local host";
            }
    
            leaf priority {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type int32 {
                  range "0 .. 7";
                }
              }
              description
                "Frame priority (802.1p) value";
            }
    
            leaf verbosity {
              type enumeration {
                enum "brief" {
                  value 0;
                  description
                    "Display brief output";
                }
                enum "detail" {
                  value 1;
                  description
                    "Display detail output";
                }
              }
              default "brief";
            }
    
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml ethtraceroute-results;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-traceroute-ethernet
    
        rpc request-traceroute-overlay {
          description "Traceroute overlay path";
          input {
            leaf tunnel-type {
              type enumeration {
                enum "vxlan" {
                  value 0;
                  description
                    "Vxlan tunnel-type";
                }
              }
              default "vxlan";
              description "Tunnel type";
            }
    
            leaf vni {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 16777215";
                }
              }
              mandatory true;
              description
                "Value of the vni that identifies the overlay segment";
            }
    
            leaf tunnel-src {
              type string;
              mandatory true;
              description
                "Source VTEP IP address";
            }
    
            leaf tunnel-dst {
              type string;
              mandatory true;
              description
                "Remote VTEP IP address";
            }
    
            choice address {
              leaf mac {
                type jt:mac-unicast;
                description
                  "Validate MAC address";
              }
            }  // choice address
    
            leaf ttl {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 255";
                }
              }
              default "255";
              description
                "TTL to use in the OAM packets";
            }
    
            leaf hash-input-interface {
              type union {
                type jt:interface-device;
                type string {
                  pattern "<.*>|$.*";
                }
              }
            }
    
            leaf hash-source-mac {
              type jt:mac-unicast;
            }
    
            leaf hash-destination-mac {
              type jt:mac-unicast;
            }
    
            leaf hash-protocol {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 255";
                }
              }
            }
    
            leaf hash-source-address {
              type string;
              description "IPv4 or IPv6 address";
            }
    
            leaf hash-destination-address {
              type string;
              description "IPv4 or IPv6 address";
            }
    
            leaf hash-source-port {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 65535";
                }
              }
            }
    
            leaf hash-destination-port {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 65535";
                }
              }
            }
    
            leaf hash-vlan {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 4094";
                }
              }
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-traceroute-overlay
    
        rpc request-traceroute-ce-ip {
          description "Traceroute CE IP address";
          input {
            leaf ip {
              type string;
              mandatory true;
              description
                "IPv4/IPv6 address or prefix of CE to be pinged";
            }
    
            leaf instance {
              type string;
              mandatory true;
              description
                "VPLS or EVPN instance name";
            }
    
            leaf source-ip {
              type string;
              mandatory true;
              description "Source IP address";
            }
    
            leaf ttl {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 255";
                }
              }
              default "64";
              description
                "IP maximum time-to-live value (or IPv6 maximum hop-limit value)";
            }
    
            leaf vni {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 16777214";
                }
              }
              mandatory true;
              description "VNI identifier";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml traceroute-ceip-results;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc request-traceroute-ce-ip
    
        rpc traceroute-mpls-ldp {
          description "Trace FEC paths";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
    
            leaf fec {
              type jt:ipprefix;
              mandatory true;
              description
                "IP address and optional prefix length of FEC";
            }
    
            leaf retries {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 9";
                }
              }
              description
                "Number of times to resend probe";
            }
    
            leaf source {
              type jt:ipprefix;
              description
                "Source address to use when sending probes";
            }
    
            leaf exp {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "0 .. 7";
                }
              }
              description
                "Class-of-service to use when sending probes";
            }
    
            leaf detail {
              type empty;
              description
                "Display detailed output";
            }
    
            leaf no-resolve {
              type empty;
              description
                "Don't attempt to print addresses symbolically";
            }
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance for traceroute attempt";
            }
    
            leaf ttl {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 255";
                }
              }
              description
                "Maximum time-to-live value";
            }
    
            leaf wait {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "5 .. 15";
                }
              }
              description
                "Number of seconds to wait before resending probe";
            }
    
            leaf paths {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 255";
                }
              }
              description
                "Maximum number of paths to traverse";
            }
    
            leaf update {
              type empty;
              description
                "Update database contents with traceroute results";
            }
    
            leaf fanout {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 64";
                }
              }
              description
                "Maximum number of nexthops to search per node";
            }
    
            leaf destination {
              type jt:ipv4addr;
              description
                "Destination address to use when sending probes";
            }
    
            leaf pipe-mode {
              type empty;
              description
                "Traces only the outermost FEC";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml tracelsp;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc traceroute-mpls-ldp
    
        rpc traceroute-mpls-sr-isis {
          description "Trace ISIS prefix";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
    
            leaf fec {
              type jt:ipprefix;
              mandatory true;
              description
                "IP address and optional prefix length of FEC";
            }
    
            leaf retries {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 9";
                }
              }
              description
                "Number of times to resend probe";
            }
    
            leaf source {
              type jt:ipprefix;
              description
                "Source address to use when sending probes";
            }
    
            leaf exp {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "0 .. 7";
                }
              }
              description
                "Class-of-service to use when sending probes";
            }
    
            leaf detail {
              type empty;
              description
                "Display detailed output";
            }
    
            leaf no-resolve {
              type empty;
              description
                "Don't attempt to print addresses symbolically";
            }
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance for traceroute attempt";
            }
    
            leaf ttl {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 255";
                }
              }
              description
                "Maximum time-to-live value";
            }
    
            leaf wait {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "5 .. 15";
                }
              }
              description
                "Number of seconds to wait before resending probe";
            }
    
            leaf fanout {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 64";
                }
              }
              description
                "Maximum number of nexthops to search per node";
            }
    
            leaf paths {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 255";
                }
              }
              description
                "Maximum number of paths to traverse";
            }
    
            leaf destination {
              type jt:ipprefix;
              description
                "Destination address to use when sending probes";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml tracelsp;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc traceroute-mpls-sr-isis
    
        rpc traceroute-mpls-sr-ospf {
          description "Trace OSPF prefix";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
    
            leaf fec {
              type jt:ipprefix;
              mandatory true;
              description
                "IP address and optional prefix length of FEC";
            }
    
            leaf retries {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 9";
                }
              }
              description
                "Number of times to resend probe";
            }
    
            leaf source {
              type jt:ipprefix;
              description
                "Source address to use when sending probes";
            }
    
            leaf exp {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "0 .. 7";
                }
              }
              description
                "Class-of-service to use when sending probes";
            }
    
            leaf detail {
              type empty;
              description
                "Display detailed output";
            }
    
            leaf no-resolve {
              type empty;
              description
                "Don't attempt to print addresses symbolically";
            }
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance for traceroute attempt";
            }
    
            leaf ttl {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 255";
                }
              }
              description
                "Maximum time-to-live value";
            }
    
            leaf wait {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "5 .. 15";
                }
              }
              description
                "Number of seconds to wait before resending probe";
            }
    
            leaf fanout {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 64";
                }
              }
              description
                "Maximum number of nexthops to search per node";
            }
    
            leaf paths {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 255";
                }
              }
              description
                "Maximum number of paths to traverse";
            }
    
            leaf destination {
              type jt:ipv4addr;
              description
                "Destination address to use when sending probes";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml tracelsp;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc traceroute-mpls-sr-ospf
    
        rpc traceroute-mpls-sr-srte-egress {
          description
            "Trace to/install IP address to use when sending probes";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
    
            leaf egress-ip {
              type jt:ipprefix;
              mandatory true;
              description
                "To/Install address to use when sending probes";
            }
    
            leaf color {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 4294967295";
                }
              }
              description
                "Color identifier for the tunnel end-point";
            }
    
            leaf tunnel-source {
              type enumeration {
                enum "static" {
                  value 0;
                  description
                    "Static configuration";
                }
                enum "bgp-sr-te" {
                  value 1;
                  description
                    "BGP-SR-TE configuration";
                }
              }
              description
                "Source protocol used to create tunnel";
            }
    
            leaf skip-fec-validation {
              type empty;
              description
                "Skip fec validation/ use NIL fec";
            }
    
            leaf active {
              type empty;
              description
                "Use forwarding path/nexthops from the RIB table";
            }
    
            leaf secondary {
              type empty;
              description
                "Use configured secondary segment list for the given SR path";
            }
    
            leaf segment-list {
              type string {
                length "1 .. 64";
              }
              description
                "Segment list to use when sending probes";
            }
    
            leaf retries {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 9";
                }
              }
              description
                "Number of times to resend probe";
            }
    
            leaf source {
              type jt:ipprefix;
              description
                "Source address to use when sending probes";
            }
    
            leaf exp {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "0 .. 7";
                }
              }
              description
                "Class-of-service to use when sending probes";
            }
    
            leaf detail {
              type empty;
              description
                "Display detailed output";
            }
    
            leaf no-resolve {
              type empty;
              description
                "Don't attempt to print addresses symbolically";
            }
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance for traceroute attempt";
            }
    
            leaf ttl {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 255";
                }
              }
              description
                "Maximum time-to-live value";
            }
    
            leaf wait {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "5 .. 15";
                }
              }
              description
                "Number of seconds to wait before resending probe";
            }
    
            leaf fanout {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 64";
                }
              }
              description
                "Maximum number of nexthops to search per node";
            }
    
            leaf paths {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 255";
                }
              }
              description
                "Maximum number of paths to traverse";
            }
    
            leaf destination {
              type jt:ipprefix;
              description
                "Destination address to use when sending probes";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml tracelsp;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc traceroute-mpls-sr-srte-egress
    
        rpc traceroute-mpls-sr-srte-srp {
          description
            "Trace Source Path routing to use when sending probes";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
    
            leaf lsp-name {
              type string {
                length "1 .. 64";
              }
              mandatory true;
              description
                "Source path routing name";
            }
    
            leaf tunnel-source {
              type enumeration {
                enum "static" {
                  value 0;
                  description
                    "Static configuration";
                }
                enum "pcep" {
                  value 1;
                  description
                    "PCEP configuration";
                }
              }
              description
                "Source protocol used to create tunnel";
            }
    
            leaf skip-fec-validation {
              type empty;
              description "Skip fec validation";
            }
    
            leaf active {
              type empty;
              description
                "Use forwarding path/nexthops from the RIB table";
            }
    
            leaf secondary {
              type empty;
              description
                "Use configured secondary segment list for the given SR path";
            }
    
            leaf egress-ip {
              type jt:ipprefix;
              description
                "To/Install address to use when sending probes";
            }
    
            leaf color {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 4294967295";
                }
              }
              description
                "Color identifier for the tunnel end-point";
            }
    
            leaf segment-list {
              type string {
                length "1 .. 64";
              }
              description
                "Segment list to use when sending probes";
            }
    
            leaf retries {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 9";
                }
              }
              description
                "Number of times to resend probe";
            }
    
            leaf source {
              type jt:ipprefix;
              description
                "Source address to use when sending probes";
            }
    
            leaf exp {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "0 .. 7";
                }
              }
              description
                "Class-of-service to use when sending probes";
            }
    
            leaf detail {
              type empty;
              description
                "Display detailed output";
            }
    
            leaf no-resolve {
              type empty;
              description
                "Don't attempt to print addresses symbolically";
            }
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance for traceroute attempt";
            }
    
            leaf ttl {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 255";
                }
              }
              description
                "Maximum time-to-live value";
            }
    
            leaf wait {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "5 .. 15";
                }
              }
              description
                "Number of seconds to wait before resending probe";
            }
    
            leaf fanout {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 64";
                }
              }
              description
                "Maximum number of nexthops to search per node";
            }
    
            leaf paths {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 255";
                }
              }
              description
                "Maximum number of paths to traverse";
            }
    
            leaf destination {
              type jt:ipprefix;
              description
                "Destination address to use when sending probes";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml tracelsp;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc traceroute-mpls-sr-srte-srp
    
        rpc traceroute-mpls-sr-srte-label-stack {
          description
            "Label stack for traceroute packets";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
    
            leaf-list labels {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "16 .. 1048575";
                }
              }
              ordered-by user;
              description
                "Labels in label stack - [label1 label2 ... label(top)]";
            }
    
            leaf nexthop-interface {
              type string;
              mandatory true;
              description
                "Outgoing interface for the traceroute packet";
            }
    
            leaf nexthop-address {
              type jt:ipaddr;
              mandatory true;
              description
                "Nexthop IP address for the traceroute packet";
            }
    
            leaf egress {
              type jt:ipaddr;
              description "Egress IP address";
            }
    
            leaf detail {
              type empty;
              description
                "Display detailed output";
            }
    
            leaf no-resolve {
              type empty;
              description
                "Don't attempt to print addresses symbolically";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml tracelsp;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc traceroute-mpls-sr-srte-label-stack
    
        rpc traceroute-mpls-bgp {
          description "Trace FEC paths";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
    
            leaf fec {
              type jt:ipprefix;
              mandatory true;
              description
                "IP address and optional prefix length of FEC";
            }
    
            leaf retries {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 9";
                }
              }
              description
                "Number of times to resend probe";
            }
    
            leaf source {
              type jt:ipprefix;
              description
                "Source address to use when sending probes";
            }
    
            leaf exp {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "0 .. 7";
                }
              }
              description
                "Class-of-service to use when sending probes";
            }
    
            leaf detail {
              type empty;
              description
                "Display detailed output";
            }
    
            leaf no-resolve {
              type empty;
              description
                "Don't attempt to print addresses symbolically";
            }
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance for traceroute attempt";
            }
    
            leaf ttl {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 255";
                }
              }
              description
                "Maximum time-to-live value";
            }
    
            leaf wait {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "5 .. 15";
                }
              }
              description
                "Number of seconds to wait before resending probe";
            }
    
            leaf paths {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 255";
                }
              }
              description
                "Maximum number of paths to traverse";
            }
    
            leaf pipe-mode {
              type empty;
              description
                "Traces only the outermost FEC";
            }
    
            leaf fanout {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 64";
                }
              }
              description
                "Maximum number of nexthops to search per node";
            }
    
            leaf destination {
              type jt:ipv4addr;
              description
                "Destination address to use when sending probes";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml tracelsp;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc traceroute-mpls-bgp
    
        rpc traceroute-mpls-rsvp {
          description
            "Trace RSVP-signaled LSP paths";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
    
            leaf lsp-name {
              type string {
                length "1 .. 64";
              }
              mandatory true;
              description "Name of LSP";
            }
    
            leaf egress {
              type jt:ipv4addr;
              description
                "Request only a specific multipoint egress to respond";
            }
    
            leaf multipoint {
              type empty;
              description "Probe multipoint LSP";
            }
    
            leaf ttl {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 255";
                }
              }
              description
                "Maximum time-to-live value";
            }
    
            leaf retries {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 9";
                }
              }
              description
                "Number of times to resend probe";
            }
    
            leaf source {
              type jt:ipprefix;
              description
                "Source address to use when sending probes";
            }
    
            leaf exp {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "0 .. 7";
                }
              }
              description
                "Class-of-service to use when sending probes";
            }
    
            leaf detail {
              type empty;
              description
                "Display detailed output";
            }
    
            leaf no-resolve {
              type empty;
              description
                "Don't attempt to print addresses symbolically";
            }
    
            leaf routing-instance {
              type string;
              description
                "Name of routing instance for traceroute attempt";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml tracelsp;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc traceroute-mpls-rsvp
    
        rpc traceroute-mpls-l2vpn {
          description "Trace L2vpn fec129";
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml tracepw;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc traceroute-mpls-l2vpn
    
        rpc traceroute-mpls-mspw {
          description
            "Trace the Layer 2 VPN connection";
          input {
            choice daemon-select {
              leaf logical-system {
                type string;
                description
                  "Name of logical system";
              }
            }  // choice daemon-select
    
            leaf interface {
              type string {
                length "1 .. 64";
              }
              mandatory true;
              description
                "Name of l2vpn fec129 interface";
            }
    
            leaf ttl {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 255";
                }
              }
              description
                "Maximum time-to-live value";
            }
    
            leaf retries {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "1 .. 9";
                }
              }
              description
                "Number of times to resend probe";
            }
    
            leaf source {
              type jt:ipprefix;
              description
                "Source address to use when sending probes";
            }
    
            leaf exp {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint8 {
                  range "0 .. 7";
                }
              }
              description
                "Class-of-service to use when sending probes";
            }
    
            leaf detail {
              type empty;
              description
                "Display detailed output";
            }
    
            leaf no-resolve {
              type empty;
              description
                "Don't attempt to print addresses symbolically";
            }
          }
    
          output {
            choice output_c {
              leaf output {
                type string;
              }
              anyxml tracelsp;
              anyxml multi-routing-engine-results;
            }  // choice output_c
          }
        }  // rpc traceroute-mpls-mspw
    
        grouping command-forwarding {
          choice chassis-selector {
            leaf all-chassis {
              type empty;
              description "All chassis";
            }
            leaf all-lcc {
              type empty;
              description "All LCC chassis";
            }
            leaf scc {
              type empty;
              description "SCC";
            }
            leaf sfc {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              description "SFC";
            }
            leaf lcc {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              description "Specific LCC";
            }
            leaf node {
              type string;
              description "Specific node";
            }
            leaf bsys {
              type empty;
              description "Base system";
            }
            leaf gnf {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "1 .. 10";
                }
              }
              description
                "Specific guest network function";
            }
            leaf all-gnfs {
              type empty;
              description
                "All guest network functions";
            }
            leaf all-system {
              type empty;
              description
                "All system (BSYS and GNFs)";
            }
            leaf server {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32 {
                  range "0 .. 1";
                }
              }
              description "Specific server slot";
            }
            leaf all-servers {
              type empty;
              description "All servers";
            }
            leaf vnf {
              type string;
              description
                "Specific virtual-network-function";
            }
            leaf all-vnfs {
              type empty;
              description
                "All virtual-network-functions";
            }
          }  // choice chassis-selector
    
          choice re-selector {
            leaf re0 {
              type empty;
              description "RE0";
            }
            leaf re1 {
              type empty;
              description "RE1";
            }
            leaf routing-engine {
              type enumeration {
                enum "local" {
                  value 0;
                  description
                    "Local routing engine";
                }
                enum "other" {
                  value 1;
                  description
                    "Other routing engine";
                }
                enum "master" {
                  value 2;
                  description
                    "Master routing engine";
                }
                enum "backup" {
                  value 3;
                  description
                    "Backup routing engine";
                }
                enum "both" {
                  value 4;
                  description
                    "Both routing engines";
                }
              }
              description
                "Specific routing engine";
            }
          }  // choice re-selector
    
          choice lr-selector {
            leaf logical-system {
              type string;
              description
                "Name of logical system, or 'all'";
            }
          }  // choice lr-selector
    
          choice tenant-selector {
            leaf tenant {
              type string;
              description
                "Name of tenant, or 'all'";
            }
          }  // choice tenant-selector
    
          choice vc-selector {
            leaf local {
              type empty;
              description
                "Local virtual chassis member";
            }
            leaf all-members {
              type empty;
              description
                "All virtual chassis members";
            }
            leaf member {
              type union {
                type string {
                  pattern "<.*>|$.*";
                }
                type uint32;
              }
              description
                "Specific virtual chassis member";
            }
          }  // choice vc-selector
        }  // grouping command-forwarding
      }  // module junos-rpc-traceroute
    

© 2023 YumaWorks, Inc. All rights reserved.