Junos RPC YANG module for traceroute command(s)
Version: 2019-01-01
module junos-ex-rpc-traceroute { yang-version 1; namespace "http://yang.juniper.net/junos-ex/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-ex-rpc-traceroute
© 2023 YumaWorks, Inc. All rights reserved.