NED RPC YANG module for IOS Copyright (c) 2016-2020 by Cisco Systems, Inc. All rights reserved.
Version: 2021-03-01
module Cisco-IOS-XE-rpc { yang-version 1; namespace "http://cisco.com/ns/yang/Cisco-IOS-XE-rpc"; prefix ios-xe-rpc; import cisco-semver { prefix cisco-semver; } import ietf-inet-types { prefix inet; } include Cisco-IOS-XE-aaa-rpc; include Cisco-IOS-XE-arp-rpc; include Cisco-IOS-XE-bgp-rpc; include Cisco-IOS-XE-crypto-rpc; include Cisco-IOS-XE-multicast-rpc; include Cisco-IOS-XE-dhcp-rpc; include Cisco-IOS-XE-ospf-rpc; include Cisco-IOS-XE-platform-rpc; organization "Cisco Systems"; contact "<mailto:cs-yang@cisco.com>"; description "NED RPC YANG module for IOS Copyright (c) 2016-2020 by Cisco Systems, Inc. All rights reserved."; revision "2021-03-01" { description "- Added factory reset support"; } revision "2020-11-01" { description "Added clear iox feature corrected new keyword addition"; } revision "2020-07-01" { description "Added multicast feature RPC"; } revision "2020-03-01" { description "Added a container in monitor capture"; } revision "2019-11-01" { description "Added new test RPC"; } revision "2019-07-01" { description "Establish semantic version baseline"; } revision "2018-11-25" { description "Exec command to send AMP file analysis apikey"; } revision "2018-11-07" { description "Cleanup spelling errors in description statements"; } revision "2018-11-06" { description "Add UTD database update EXEC command"; } revision "2018-10-29" { description "Added range-string for debug ipsec command"; } revision "2018-10-12" { description "Added crypto pki debug and exec commands"; } revision "2018-10-02" { description "Add unmount command in existing hw-module chain"; } revision "2018-10-01" { description "Add IPSEC no debug exec commands"; } revision "2018-09-20" { description "Add IPSEC debug exec commands"; } revision "2018-08-17" { description "Added cts credential * and clear cts * commands"; } revision "2018-08-05" { description "Add License Install Commands"; } revision "2018-08-01" { description "Add UTD clear commands"; } revision "2018-07-30" { description "Add hw-module commands"; } revision "2018-06-18" { description "Update UTD signature update EXEC command to include local file support"; } revision "2018-05-21" { description "Add Umbrella clear commands"; } revision "2018-04-18" { description "Add ZBFW clear commands"; } revision "2018-03-14" { description "Add UTD signature update EXEC command"; } revision "2017-12-18" { description "Add GIR start maintenance and stop maintenance EXEC commands"; } revision "2017-12-06" { description "Add Viptela clear aaa local user lockout username <> command"; } revision "2017-11-27" { description "Add Viptela clear and release commands"; } revision "2017-11-21" { description "Clear flow commands"; } revision "2017-11-14" { description "Add app-hosting and guestshell EXEC commands"; } revision "2017-11-04" { description "Add reason to reload"; } revision "2017-10-12" { description "Added more nodes to the license RPC"; } revision "2017-10-10" { description "Add copy and delete EXEC commands"; } revision "2017-09-21" { description "Add virtual-service EXEC commands"; } revision "2017-08-28" { description "Added the force option to the reload RPC"; } revision "2017-07-13" { description "Added service sd-avc CLI"; } revision "2017-02-07" { description "Initial revision"; } cisco-semver:module-version "3.2.0"; cisco-semver:module-version "3.1.0"; cisco-semver:module-version "3.0.0"; cisco-semver:module-version "2.1.0"; cisco-semver:module-version "2.0.0"; cisco-semver:module-version "1.0.0"; rpc default { description "Set a command to its defaults"; input { choice default-choice { mandatory true; leaf interface { type string { pattern '[A-Za-z]([\w/.-]+)'; } description "Select an interface to configure"; } } // choice default-choice } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc default rpc clear { description "Clear"; input { choice clear-choice { mandatory true; leaf interface { type string { pattern '[A-Za-z]([\w/.-]+)'; } description "Select an interface to clear"; } leaf count { type string { pattern '[A-Za-z]([\w/.-]+)'; } description "Select an interface to clear"; } container ip { choice ip-protocol { case bgp-case { container bgp { description "Clear BGP connections"; leaf peer-address-drop-node-name { type union { type inet:ipv4-address; type inet:ipv6-address; } description "BGP neighbor address to clear"; } leaf vrf { type string; description "Select a VPN Routing/Forwarding instance"; } } // container bgp } // case bgp-case case dhcp-case { container dhcp { description "Delete items from the DHCP database"; container binding { description "DHCP address bindings"; leaf vrf { type string; description "DHCP vrf bindings"; } leaf all-drop-node-name { type string { pattern '[*]'; } mandatory true; description "Clear all automatic bindings"; } } // container binding } // container dhcp } // case dhcp-case case ospf-case { container ospf { leaf id-drop-node-name { type uint16; description "Process ID number"; } leaf process { type empty; description "Reset OSPF process"; } } // container ospf } // case ospf-case } // choice ip-protocol } // container ip case arp-cache-case { container arp-cache { presence "true"; description "Clear the entire ARP cache"; leaf vrf { type string; description "Clear entries for a VPN Routing/Forwarding instance"; } leaf interface { type string { pattern '[A-Za-z]([\w/.-]+)'; } description "Clear the entire ARP cache on the interface"; } leaf ip-drop-node-name { type inet:ipv4-address; description "IP address"; } } // container arp-cache } // case arp-cache-case case aaa-case { container aaa { description "Clear AAA values"; container local { description "Clear AAA local method options"; container user { description "Clear local AAA users"; container lockout { description "Clear locked out local AAA users"; leaf username { type string; description "Username of the locked-user"; } } // container lockout } // container user } // container local } // container aaa } // case aaa-case case platform-case { container platform { description "Clear platform information"; choice platform-choice { case condition-case { description "Clear conditional debug and packet-trace configuration and data"; container condition { leaf all { type empty; description "Clear all config and data"; } } // container condition } // case condition-case case packet-trace-case { description "Clear packet-trace configuration and data"; container packet-trace { choice packet-trace-choice { leaf configuration { type empty; description "Clear packet-trace configuration"; } leaf statistics { type empty; description "Clear packet-trace statistics"; } } // choice packet-trace-choice } // container packet-trace } // case packet-trace-case container hardware { description "Clear platform hardware information"; container qfp { description "Quantum Flow Processor"; container active { description "Active instance"; container feature { description "Clear features"; choice feature-choice { container umbrella { description "Clear QFP Umbrella"; container datapath { description "Clear Umbrella datapath"; leaf stats { type empty; description "Clear Umbrella datapath stats"; } } // container datapath } // container umbrella } // choice feature-choice } // container feature } // container active } // container qfp } // container hardware } // choice platform-choice } // container platform } // case platform-case leaf iox { type empty; description "Clear all IOX data to the default, initial IOX state"; } } // choice clear-choice } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc clear rpc crypto { description "Encryption related commands"; input { container pki { description "Public key components"; choice subcommand { container benchmark { description "Benchmark commands"; leaf start { type uint16 { range "0..9990"; } description "Collection limit"; } leaf wrap { when "../start"; type empty; description "Wrap data to the start of buffer"; } leaf stop { type empty; description "stop collecting benchmark data"; } } // container benchmark container crl { description "CRL command"; leaf refresh-cache { type empty; description "Refresh the CRL in cache"; } leaf request { type string; description "Requests a current CRL"; } } // container crl container authenticate { description "Authenticate trustpoint"; leaf name-drop-node-name { type string; description "trustpoint name"; } } // container authenticate container enroll { description "enroll trustpoint"; leaf name-drop-node-name { type string; description "trustpoint name"; } } // container enroll container export { description "export certificate"; leaf name-drop-node-name { type string; description "trustpoint name"; } leaf pkcs12 { type string; description "PKCS12 bundle url"; } leaf password { type string; description "PKCS12 bundle password"; } } // container export container import { description "import certificate"; leaf name-drop-node-name { type string; description "trustpoint name"; } leaf certificate { type empty; description "import id certificate"; } leaf pkcs12 { type string; description "PKCS12 bundle url"; } leaf password { type string; description "PKCS12 bundle password"; } } // container import container certificate { description "validate certificate"; leaf validate { type string; description "trustpoint name"; } } // container certificate container server { description "Server command"; leaf name-drop-node-name { type string; description "server name"; } container grant { description "Grant enrollment requests"; leaf id-drop-node-name { type uint16 { range "1..999"; } description "Enrollment id"; } leaf all { type empty; description "Grant all pending requests"; } } // container grant container password { description "One time password for SCEP enrollment"; container generate { presence "true"; description "Generate password"; leaf minutes-drop-node-name { type uint16 { range "1..1440"; } description "Validity in minutes"; } } // container generate } // container password container reject { description "Reject enrollment requests"; leaf id-drop-node-name { type uint16 { range "1..999"; } description "Enrollment id"; } leaf all { type empty; description "Reject all pending requests"; } } // container reject container remove { description "Remove enrollment requests"; leaf id-drop-node-name { type uint16 { range "1..999"; } description "Enrollment id"; } leaf all { type empty; description "Remove all pending requests"; } } // container remove container request { description "Retrieve an enrollment request"; container pkcs10 { description "PKCS10 enrollment request"; leaf location-drop-node-name { type enumeration { enum "bootflash:" { value 0; } enum "cns:" { value 1; } enum "disk0:" { value 2; } enum "disk1:" { value 3; } enum "flash:" { value 4; } enum "ftp:" { value 5; } enum "http:" { value 6; } enum "https:" { value 7; } enum "null:" { value 8; } enum "nvram:" { value 9; } enum "pram:" { value 10; } enum "rcp:" { value 11; } enum "scep" { value 12; } enum "scp:" { value 13; } enum "sftp:" { value 14; } enum "system:" { value 15; } enum "tar:" { value 16; } enum "terminal" { value 17; } enum "tftp:" { value 18; } enum "tmpsys:" { value 19; } enum "tti" { value 20; } enum "unix:" { value 21; } enum "webui:" { value 22; } } description "Retrieval location"; } choice format { leaf base64 { type empty; description "output in base64 format"; } leaf pem { type empty; description "output in pem format"; } container hex { presence "true"; description "output in hex format"; leaf tid-drop-node-name { type string; description "Transaction ID"; } leaf nonce-drop-node-name { type string; description "nonce"; } leaf rid-drop-node-name { type uint16 { range "1..999"; } description "Request ID"; } } // container hex } // choice format } // container pkcs10 } // container request leaf revoke { type string { pattern '([0-9a-fA-FxX]+)'; } description "revoke certificate"; } leaf unrevoke { type string { pattern '([0-9a-fA-FxX]+)'; } description "unrevoke certificate"; } leaf start { type empty; description "Start server"; } leaf stop { type empty; description "Stop server"; } container trim { description "Trim the CRL based on expired certificates"; leaf url { type enumeration { enum "bootflash:" { value 0; } enum "cns:" { value 1; } enum "disk0:" { value 2; } enum "disk1:" { value 3; } enum "flash:" { value 4; } enum "ftp:" { value 5; } enum "http:" { value 6; } enum "https:" { value 7; } enum "null:" { value 8; } enum "nvram:" { value 9; } enum "pram:" { value 10; } enum "rcp:" { value 11; } enum "scp:" { value 12; } enum "sftp:" { value 13; } enum "system:" { value 14; } enum "tar:" { value 15; } enum "tftp:" { value 16; } enum "tmpsys:" { value 17; } enum "unix:" { value 18; } enum "webui:" { value 19; } } description "location of expired certs file"; } leaf verbose { type empty; } } // container trim } // container server } // choice subcommand } // container pki container key { description "Key related commands."; container zeroize { description "Remove RSA/EC keys"; leaf rsa { type string; description "Remove RSA keys"; } } // container zeroize } // container key container generate { description "Generate new keys"; container ec { description "Generate EC keys for ECDSA"; leaf keysize { type enumeration { enum "256" { value 0; } enum "384" { value 1; } } description "Number of bits"; } leaf exportable { type empty; description "Allow key to be exported"; } leaf label { type string; description "Provide a label"; } } // container ec container rsa { presence "true"; description "Generate RSA keys"; leaf encryption { type empty; description "Generate a general purpose RSA key pair for signing and encryption"; } leaf exportable { type empty; description "Allow the key to be exported"; } leaf general-keys { type empty; description "Generate a general purpose RSA key pair for signing and encryption"; } leaf label { type string; description "Provide a label"; } leaf modulus { type uint16 { range "360..4096"; } description "Provide number of modulus bits on the command line"; } leaf on { type string; description "create key on specified device."; } leaf redundancy { type empty; description "Allow the key to be synced to high-availability peer"; } leaf signature { type empty; description "Generate a general purpose RSA key pair for signing and encryption"; } leaf storage { type string; description "Store key on specified device"; } leaf usage-keys { type empty; description "Generate separate RSA key pairs for signing and encryption"; } } // container rsa } // container generate container export { description "Export keys"; list ec { key "label"; description "Export EC keys"; leaf label { type string; } container pem { description "File type to export"; choice terminal-url { container terminal { description "Export via the terminal (cut-and-paste)"; choice des-3des { leaf pk-3des { type string; description "Encrypt the private key with 3DES"; } leaf des { type string; description "Encrypt the private key with DES"; } } // choice des-3des } // container terminal container url { description "Export via the file systems"; leaf file { type string { pattern '(((bootflash:)|(crashinfo:)|(flash:)|(ftp:)|(http:)|(https:)|(null:)|(nvram:)|(pram:)|(rcp:)|(scp:)|(system:)|(tar:)|(tftp:)|(tmpfs:)|(webui:)).*)'; } } choice des-3des { leaf url-3des { type string; description "Encrypt the private key with 3DES"; } leaf des { type string; description "Encrypt the private key with DES"; } } // choice des-3des } // container url } // choice terminal-url } // container pem } // list ec list rsa { key "label"; description "Export RSRA keys"; leaf label { type string; } container pem { description "File type to export"; choice terminal-url { container terminal { description "Export via the terminal (cut-and-paste)"; choice des-3des { leaf pk-3des { type string; description "Encrypt the private key with 3DES"; } leaf des { type string; description "Encrypt the private key with DES"; } } // choice des-3des } // container terminal container url { description "Export via the file systems"; leaf file { type string { pattern '(((bootflash:)|(crashinfo:)|(flash:)|(ftp:)|(http:)|(https:)|(null:)|(nvram:)|(pram:)|(rcp:)|(scp:)|(system:)|(tar:)|(tftp:)|(tmpfs:)|(webui:)).*)'; } } choice des-3des { leaf url-3des { type string; description "Encrypt the private key with 3DES"; } leaf des { type string; description "Encrypt the private key with DES"; } } // choice des-3des } // container url } // choice terminal-url } // container pem } // list rsa } // container export container import { description "Import keys"; list ec { key "name"; description "Import EC keys"; leaf name { type string; } leaf exportable { type empty; description "Allow key to be exported"; } choice terminal-url { leaf terminal { type string; description "Import via the terminal (cut-and-paste)"; } container url { description "Export via the file systems"; leaf file { type string { pattern '(((bootflash:)|(cns:)|(crashinfo:)|(flash:)|(ftp:)|(http:)|(https:)|(null:)|(nvram:)|(pram:)|(rcp:)|(scp:)|(system:)|(tar:)|(tftp:)|(tmpfs:)|(webui:)).*)'; } } leaf key { type string; } } // container url } // choice terminal-url } // list ec list rsa { key "label"; description "Import RSA keys"; leaf label { type string; } leaf encryption { type empty; description "Encryption key"; } leaf exportable { type empty; description "Allow the key to be exported"; } leaf general-purpose { type empty; description "General Purpose key"; } leaf on { type string; description "Make this an on-token key"; } leaf pem { type empty; description "File type to import"; } leaf redundancy { type empty; description "Sync this key to the standby"; } leaf signature { type empty; description "Signature key"; } leaf storage { type string; description "Store key on specified device"; } leaf usage-keys { type empty; description "Usage key pairs"; } choice terminal-url { leaf terminal { type string; description "Import via the terminal (cut-and-paste)"; } container url { description "Export via the file systems"; leaf file { type string { pattern '(((bootflash:)|(cns:)|(crashinfo:)|(flash:)|(ftp:)|(http:)|(https:)|(null:)|(nvram:)|(pram:)|(rcp:)|(scp:)|(system:)|(tar:)|(tftp:)|(tmpfs:)|(webui:)).*)'; } } leaf key { type string; } } // container url } // choice terminal-url } // list rsa } // container import } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc crypto rpc release { description "Release a resource"; input { leaf dhcp { type string; description "Release a dhcp lease (an interface)"; } } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc release rpc reload { description "Halt and perform a cold restart"; input { leaf force { type boolean; description "Force a restart even if there is unsaved config"; } leaf reason { type string; description "Reload reason"; } } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc reload rpc factory-reset { description "Perform a factory reset of the device"; input { container all { presence "true"; description "Perform a factory reset of the device. This will restore the device to the factory setting and is an irreversible operation"; } // container all leaf keep-licensing-info { type empty; description "Perform a factory reset of the device. This will keep some licensing specific information"; } } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc factory-reset rpc license { input { choice license-command-choice { container smart { choice smart-choice { container save { choice save-case { container usage { choice usage-case { container all { leaf file { type string { pattern '(((bootflash:)|(flash:)|(ftp:)|(http:)|(https:)|(nvram:)|(param:)|(scp:)|(syslog)|(system:)|(tftp:)|(tmpsys:)).*)'; } description "The local or network file path to write the RUM reports to."; } } // container all container unreported { leaf file { type string { pattern '(((bootflash:)|(flash:)|(ftp:)|(http:)|(https:)|(nvram:)|(param:)|(scp:)|(syslog)|(system:)|(tftp:)|(tmpsys:)).*)'; } description "The local or network file path to write the RUM reports to."; } } // container unreported } // choice usage-case leaf days { type uint32 { range "1..1000000"; } description "Save RUM reports that include measurements in the specified number of days"; } leaf file { type string { pattern '(((bootflash:)|(flash:)|(ftp:)|(http:)|(https:)|(nvram:)|(param:)|(scp:)|(syslog)|(system:)|(tftp:)|(tmpsys:)).*)'; } description "The local or network file path to write the RUM reports to."; } } // container usage leaf trust-request { type string { pattern '(((bootflash:)|(flash:)|(ftp:)|(http:)|(https:)|(nvram:)|(param:)|(scp:)|(syslog)|(system:)|(tftp:)|(tmpsys:)).*)'; } description "The local or network file path to write the trust request to."; } } // choice save-case } // container save container authorization { choice authorization-choice { container request { leaf add { type string; description "The feature name to get the authorization code for The smart agent will look this up in it's mapping table and get the proper entitlement tag for it."; } leaf replace { type string; description "The feature name to get the authorization code for The smart agent will look this up in it's mapping table and get the proper entitlement tag for it."; } leaf all { type empty; description "Applies to an HA configuration."; } leaf local { type empty; description "The authorization request will only be for the active device."; } } // container request container return { leaf all { type empty; description "Applies to an HA configuration."; } leaf local { type empty; description "The authorization request will only be for the active device."; } leaf offline { type string; description "Returns a currently installed authorization code offline."; } leaf online { type empty; description "Returns a currently installed authorization code online."; } } // container return } // choice authorization-choice } // container authorization leaf import { type string; mandatory true; description "The local or network file path to read from"; } container trust { leaf idtoken { type string; mandatory true; description "The ID token used to establish trust."; } leaf all { type empty; description "If true perform the operation for all devices in an HA configuration."; } leaf local { type empty; description "If false then only establish trust for the active device."; } leaf force { type empty; description "Force the trust establishment even if the product instance has already establish trust with the Cisco Smart Software Management."; } } // container trust container register { leaf idtoken { type string; mandatory true; } leaf force { type empty; description "Forcefully register"; } } // container register leaf deregister { type empty; } container renew { choice renew-choice { mandatory true; leaf ID { type empty; } leaf auth { type empty; } } // choice renew-choice } // container renew } // choice smart-choice } // container smart leaf install { type string { pattern '(((bootflash:)|(flash:)|(ftp:)|(http:)|(https:)|(nvram:)|(param:)|(scp:)|(syslog)|(system:)|(tftp:)|(tmpsys:)).*)'; } description "Install license information"; } leaf clear { type string; description "Clear license information. Feature name to clear"; } } // choice license-command-choice } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc license rpc service { description "IOS integrated service enablement"; input { choice services-choice { container waas { description "WAAS service"; container wcm { description "Configure WAAS Central Manager (WCM)"; choice wcm-choices { container ip { description "ipv4"; leaf address { type inet:ipv4-address; } } // container ip container ipv6 { description "ipv6 address"; leaf address { type inet:ipv6-address; } } // container ipv6 } // choice wcm-choices } // container wcm } // container waas container sd-avc { description "SD-AVC service management"; choice sd-avc-choice { mandatory true; leaf activate { type empty; } container configure { container gateway { leaf interface { type string; } leaf service-ip { type inet:ipv4-address; } leaf activate { type empty; } } // container gateway } // container configure leaf connect { type empty; } leaf help { type empty; } leaf deactivate { type empty; } container install { leaf package { type string; } } // container install leaf status { type empty; } leaf unconfigure { type empty; } leaf uninstall { type empty; } container upgrade { leaf package { type string; } } // container upgrade } // choice sd-avc-choice } // container sd-avc } // choice services-choice } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc service rpc virtual-service { description "Virtual-service management"; input { choice operation { mandatory true; container install { leaf name { type string; } leaf package { type string; } leaf media { type string; } } // container install container uninstall { leaf name { type string; } } // container uninstall container upgrade { leaf name { type string; } leaf package { type string; } } // container upgrade container move { leaf name { type string; mandatory true; } choice file-choice { mandatory true; container core { leaf to { type string { pattern '(((bootflash:)|(flash:)|(harddisk:)).*)'; } } } // container core container log { leaf to { type string { pattern '(((bootflash:)|(flash:)|(harddisk:)).*)'; } } } // container log } // choice file-choice } // container move } // choice operation } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc virtual-service rpc copy { description "Copy from one file to another"; input { leaf source-drop-node-name { type string { pattern '((((bootflash:)|(harddisk:)|(flash:)|(nvram:)|(ftp:)|(http:)|(https:)|(scp:)|(tftp:)).*)|((running-config)|(startup-config)))'; } mandatory true; } leaf destination-drop-node-name { type string { pattern '((((bootflash:)|(harddisk:)|(flash:)|(nvram:)|(ftp:)|(http:)|(https:)|(scp:)|(tftp:)).*)|((running-config)|(startup-config)))'; } mandatory true; } } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc copy rpc delete { description "Delete a file"; input { leaf filename-drop-node-name { type string { pattern '(((bootflash:)|(harddisk:)|(flash:)|(nvram:)).*)'; } mandatory true; } } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc delete rpc app-hosting { description "App-hosting management"; input { choice lifecycle { mandatory true; container install { leaf appid { type string; } leaf package { type string; } } // container install container uninstall { leaf appid { type string; } } // container uninstall container activate { leaf appid { type string; } } // container activate container deactivate { leaf appid { type string; } } // container deactivate container start { leaf appid { type string; } } // container start container stop { leaf appid { type string; } } // container stop container upgrade { leaf appid { type string; } leaf package { type string; } } // container upgrade container verification { leaf enable { type empty; } leaf disable { type empty; } } // container verification container move { choice type-choice { mandatory true; case appid-case { leaf appid { type string; mandatory true; } choice file-choice { mandatory true; container core { leaf to { type string { pattern '(((bootflash:)|(flash:)|(harddisk:)).*)'; } } } // container core container log { leaf to { type string { pattern '(((bootflash:)|(flash:)|(harddisk:)).*)'; } } } // container log } // choice file-choice } // case appid-case container system { container techsupport { leaf to { type string { pattern '(((bootflash:)|(flash:)|(harddisk:)).*)'; } } } // container techsupport } // container system } // choice type-choice } // container move } // choice lifecycle } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc app-hosting rpc guestshell { description "guestshell managementshell"; input { choice action { mandatory true; leaf destroy { type empty; description "Destroy guestshell"; } leaf disable { type empty; description "Disable guestshell"; } leaf enable { type empty; description "Enable guestshell"; } } // choice action } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc guestshell rpc start { description "Start system operations"; input { leaf maintenance { type empty; description "GIR start maintenance mode"; } } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc start rpc stop { description "Stop system operations"; input { leaf maintenance { type empty; description "GIR stop maintenance mode"; } } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc stop rpc hw-module { description "Control of individual components in the system"; input { container switch { description "Switch in the system"; leaf switch-number-drop-node-name { type uint8 { range "1..8"; } description "Switch number in the Stack (Refer to show switch CLI)"; } container usbflash1 { description "USB SSD"; choice umount-sec { mandatory true; leaf unmount { type empty; description "unmount on usbflash1"; } container security { description "Security on usbflash1"; choice security-choice { mandatory true; container enable { presence "true"; description "Enable security on usbflash1"; leaf password { type string; description "Enter password for enabling security on usbflash1"; } } // container enable container disable { presence "true"; description "Disable security on usbflash1"; leaf password { type string; description "Enter password for Disabling security on usbflash1"; } } // container disable container unlock { presence "true"; description "Unlock security on usbflash1"; leaf password { type string; description "Enter password for unlock security on usbflash1"; } } // container unlock } // choice security-choice } // container security } // choice umount-sec } // container usbflash1 } // container switch } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc hw-module rpc debug { description "Debug"; input { choice debug-choice { mandatory true; case crypto-case { container crypto { description "Cryptographic subsystem"; container pki { description "PKI debugging information"; leaf API { type empty; description "PKI API debugging information"; } leaf callbacks { type empty; description "PKI callbacks debugging information"; } leaf messages { type empty; description "PKI messages debugging information"; } leaf scep { type empty; description "PKI scep debugging information"; } container server { presence "true"; description "PKI server debugging information"; leaf performance { type empty; description "PKI server performance debugging information"; } } // container server container transactions { presence "true"; description "PKI transaction debugging information"; leaf performance { type empty; description "PKI transaction performance debugging information"; } } // container transactions leaf validation { type empty; description "PKI validation debugging information"; } } // container pki leaf est-client { type empty; description "EST client debugging information"; } leaf ha { type empty; description "PKI HA debugging information"; } } // container crypto } // case crypto-case case platform-case { container platform { description "Debug platform information"; choice platform-choice { container condition { choice condition-choice { leaf start { type empty; description "Start conditional debug"; } leaf stop { type empty; description "Stop conditional debug"; } container direction-drop-node-name { choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice leaf no { type empty; description "for no debug platform ..."; } } // container direction-drop-node-name container application { leaf app-name-drop-node-name { type string; mandatory true; description "Application name"; } choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice leaf no { type empty; description "for no debug platform ..."; } } // container application container mpls { choice mpls-choice { container label-drop-node-name { leaf label-id-drop-node-name { type uint32 { range "0..1048575"; } mandatory true; description "MPLS label id"; } leaf depth-drop-node-name { type uint8 { range "0..127"; } description "Depth of specified MPLS label, 1 for top label"; } leaf application { type string; description "Debug Application conditions"; } choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container label-drop-node-name container application { leaf app-name-drop-node-name { type string; mandatory true; description "Application name"; } choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container application choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // choice mpls-choice leaf no { type empty; description "for no debug platform ..."; } } // container mpls container ipv4 { choice ipv4-choice { choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice container ipv4addr-drop-node-name { leaf ip-addr-drop-node-name { type string; mandatory true; description "IPv4 address A.B.C.D/nn"; } choice ipv4addr-choice { container application { leaf app-name-drop-node-name { type string; mandatory true; description "Application name"; } choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container application choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // choice ipv4addr-choice } // container ipv4addr-drop-node-name case access-list-case { description "Set acl for conditional debug"; container access-list { leaf acl-name-drop-node-name { type string; mandatory true; description "ACL name"; } choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container access-list } // case access-list-case } // choice ipv4-choice leaf no { type empty; description "for no debug platform ..."; } } // container ipv4 container ipv6 { choice ipv6-choice { choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice container ipv6addr-drop-node-name { leaf ip-addr-drop-node-name { type string; mandatory true; description "IPv6 address X:X:X:X::X/<0-128>"; } choice ipv6addr-choice { container application { leaf app-name-drop-node-name { type string; mandatory true; description "Application name"; } choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container application choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // choice ipv6addr-choice } // container ipv6addr-drop-node-name case access-list-case { description "Set acl for conditional debug"; container access-list { leaf acl-name-drop-node-name { type string; mandatory true; description "ACL name"; } choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container access-list } // case access-list-case } // choice ipv6-choice leaf no { type empty; description "for no debug platform ..."; } } // container ipv6 container match { choice match-choice { case ipv4-case { description "Debug IPv4 conditions"; container ipv4 { choice ipv4-choice { container protocol { description "Protocols"; choice protocol-choice { case icmp-case { description "Filter by ICMP protocol"; container icmp { choice source-choice { leaf src-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any source host"; } leaf host { type ios-types:ipv4-host; description "A single source host"; } } // choice source-choice container dst-addr-drop-node-name { choice destination-choice { leaf dest-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any destination host"; } leaf host { type ios-types:ipv4-host; description "A single destination host"; } } // choice destination-choice } // container dst-addr-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container icmp } // case icmp-case case tcp-case { description "Filter by TCP protocol"; container tcp { choice source-choice { leaf src-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any source host"; } leaf host { type ios-types:ipv4-host; description "A single source host"; } } // choice source-choice choice src-port-choice { leaf eq { type inet:port-number; description "Match only packets on a given port number up to 10 ports"; } leaf gt { type inet:port-number; description "Match only packets with a greater port number"; } leaf lt { type inet:port-number; description "Match only packets with a lower port number"; } leaf neq { type inet:port-number; description "Match only packets not on a given port number up to 10 ports"; } case src-range-case { leaf range { type inet:port-number; description "Match only packets in the range of port numbers"; } leaf src-range2-drop-node-name { type inet:port-number; description "Match only packets in the range of port numbers"; } } // case src-range-case } // choice src-port-choice container dst-addr-port-drop-node-name { choice destination-choice { leaf dest-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any destination host"; } leaf host { type ios-types:ipv4-host; description "A single destination host"; } } // choice destination-choice choice dst-port-choice { leaf eq { type inet:port-number; description "Match only packets on a given port number up to 10 ports"; } leaf gt { type inet:port-number; description "Match only packets with a greater port number"; } leaf lt { type inet:port-number; description "Match only packets with a lower port number"; } leaf neq { type inet:port-number; description "Match only packets not on a given port number up to 10 ports"; } case dst-range-case { leaf range { type inet:port-number; description "Match only packets in the range of port numbers"; } leaf dst-range2-drop-node-name { type inet:port-number; description "Match only packets in the range of port numbers"; } } // case dst-range-case } // choice dst-port-choice } // container dst-addr-port-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container tcp } // case tcp-case case udp-case { description "Filter by UDP protocol"; container udp { choice source-choice { leaf src-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any source host"; } leaf host { type ios-types:ipv4-host; description "A single source host"; } } // choice source-choice choice src-port-choice { leaf eq { type inet:port-number; description "Match only packets on a given port number up to 10 ports"; } leaf gt { type inet:port-number; description "Match only packets with a greater port number"; } leaf lt { type inet:port-number; description "Match only packets with a lower port number"; } leaf neq { type inet:port-number; description "Match only packets not on a given port number up to 10 ports"; } case src-range-case { leaf range { type inet:port-number; description "Match only packets in the range of port numbers"; } leaf src-range2-drop-node-name { type inet:port-number; description "Match only packets in the range of port numbers"; } } // case src-range-case } // choice src-port-choice container dst-addr-port-drop-node-name { choice destination-choice { leaf dest-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any destination host"; } leaf host { type ios-types:ipv4-host; description "A single destination host"; } } // choice destination-choice choice dst-port-choice { leaf eq { type inet:port-number; description "Match only packets on a given port number up to 10 ports"; } leaf gt { type inet:port-number; description "Match only packets with a greater port number"; } leaf lt { type inet:port-number; description "Match only packets with a lower port number"; } leaf neq { type inet:port-number; description "Match only packets not on a given port number up to 10 ports"; } case dst-range-case { leaf range { type inet:port-number; description "Match only packets in the range of port numbers"; } leaf dst-range2-drop-node-name { type inet:port-number; description "Match only packets in the range of port numbers"; } } // case dst-range-case } // choice dst-port-choice } // container dst-addr-port-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container udp } // case udp-case case proto-num-case { description "Filter by protocol number"; container proto-num-drop-node-name { leaf protonum-drop-node-name { type uint8 { range "0..255"; } mandatory true; description "An IP protocol number<0-255>"; } choice source-choice { leaf src-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any source host"; } leaf host { type ios-types:ipv4-host; description "A single source host"; } } // choice source-choice container dst-addr-drop-node-name { choice destination-choice { leaf dest-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any destination host"; } leaf host { type ios-types:ipv4-host; description "A single destination host"; } } // choice destination-choice } // container dst-addr-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container proto-num-drop-node-name } // case proto-num-case } // choice protocol-choice } // container protocol container ipv4-addr-drop-node-name { choice source-choice { leaf src-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any source host"; } leaf host { type ios-types:ipv4-host; description "A single source host"; } } // choice source-choice container dst-addr-drop-node-name { choice destination-choice { leaf dest-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any destination host"; } leaf host { type ios-types:ipv4-host; description "A single destination host"; } } // choice destination-choice } // container dst-addr-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container ipv4-addr-drop-node-name } // choice ipv4-choice } // container ipv4 } // case ipv4-case case ipv6-case { description "Debug IPv6 conditions"; container ipv6 { choice ipv6-choice { container protocol { description "Protocols"; choice protocol-choice { case icmp-case { description "Filter by ICMP protocol"; container icmp { choice source-choice { leaf source-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice source-choice container dst-addr-drop-node-name { choice destination-choice { leaf destination-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice destination-choice } // container dst-addr-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container icmp } // case icmp-case case tcp-case { description "Filter by TCP protocol"; container tcp { choice source-choice { leaf source-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice source-choice choice src-port-choice { leaf eq { type inet:port-number; description "Match only packets on a given port number"; } leaf gt { type inet:port-number; description "Match only packets with a greater port number"; } leaf lt { type inet:port-number; description "Match only packets with a lower port number"; } leaf neq { type inet:port-number; description "Match only packets not on a given port number"; } case src-range-case { leaf range { type inet:port-number; description "Match only packets in the range of port numbers"; } leaf src-range2-drop-node-name { type inet:port-number; description "Match only packets in the range of port numbers"; } } // case src-range-case } // choice src-port-choice container dst-addr-port-drop-node-name { choice destination-choice { leaf destination-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice destination-choice choice dst-port-choice { leaf eq { type inet:port-number; description "Match only packets on a given port number"; } leaf gt { type inet:port-number; description "Match only packets with a greater port number"; } leaf lt { type inet:port-number; description "Match only packets with a lower port number"; } leaf neq { type inet:port-number; description "Match only packets not on a given port number"; } case dst-range-case { leaf range { type inet:port-number; description "Match only packets in the range of port numbers"; } leaf dst-range2-drop-node-name { type inet:port-number; description "Match only packets in the range of port numbers"; } } // case dst-range-case } // choice dst-port-choice } // container dst-addr-port-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container tcp } // case tcp-case case udp-case { description "Filter by UDP protocol"; container udp { choice source-choice { leaf source-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice source-choice choice src-port-choice { leaf eq { type inet:port-number; description "Match only packets on a given port number"; } leaf gt { type inet:port-number; description "Match only packets with a greater port number"; } leaf lt { type inet:port-number; description "Match only packets with a lower port number"; } leaf neq { type inet:port-number; description "Match only packets not on a given port number"; } case src-range-case { leaf range { type inet:port-number; description "Match only packets in the range of port numbers"; } leaf src-range2-drop-node-name { type inet:port-number; description "Match only packets in the range of port numbers"; } } // case src-range-case } // choice src-port-choice container dst-addr-port-drop-node-name { choice destination-choice { leaf destination-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice destination-choice choice dst-port-choice { leaf eq { type inet:port-number; description "Match only packets on a given port number"; } leaf gt { type inet:port-number; description "Match only packets with a greater port number"; } leaf lt { type inet:port-number; description "Match only packets with a lower port number"; } leaf neq { type inet:port-number; description "Match only packets not on a given port number"; } case dst-range-case { leaf range { type inet:port-number; description "Match only packets in the range of port numbers"; } leaf dst-range2-drop-node-name { type inet:port-number; description "Match only packets in the range of port numbers"; } } // case dst-range-case } // choice dst-port-choice } // container dst-addr-port-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container udp } // case udp-case case proto-num-case { description "Filter by protocol number"; container proto-num-drop-node-name { leaf protonum-drop-node-name { type uint8 { range "0..255"; } mandatory true; description "An IP protocol number<0-255>"; } choice source-choice { leaf source-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice source-choice container dst-addr-drop-node-name { choice destination-choice { leaf destination-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice destination-choice } // container dst-addr-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container proto-num-drop-node-name } // case proto-num-case } // choice protocol-choice } // container protocol container ipv6-addr-drop-node-name { choice source-choice { leaf source-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice source-choice container dst-addr-drop-node-name { choice destination-choice { leaf destination-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice destination-choice } // container dst-addr-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container ipv6-addr-drop-node-name } // choice ipv6-choice } // container ipv6 } // case ipv6-case } // choice match-choice leaf no { type empty; description "for no debug platform ..."; } } // container match container interface { leaf interface-name-drop-node-name { type string; mandatory true; description "interface name"; } choice interface-choice { choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice container application { leaf app-name-drop-node-name { type string; mandatory true; description "Application name"; } choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container application container ipv4 { choice ipv4-choice { choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice container ipv4addr-drop-node-name { leaf ip-addr-drop-node-name { type string; mandatory true; description "IPv4 address A.B.C.D/nn"; } choice ipv4addr-choice { container application { leaf app-name-drop-node-name { type string; mandatory true; description "Application name"; } choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container application choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // choice ipv4addr-choice } // container ipv4addr-drop-node-name case access-list-case { description "Set acl for conditional debug"; container access-list { leaf acl-name-drop-node-name { type string; mandatory true; description "ACL name"; } choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container access-list } // case access-list-case } // choice ipv4-choice } // container ipv4 container ipv6 { choice ipv6-choice { choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice container ipv6addr-drop-node-name { leaf ip-addr-drop-node-name { type string; mandatory true; description "IPv6 address X:X:X:X::X/<0-128>"; } choice ipv6addr-choice { container application { leaf app-name-drop-node-name { type string; mandatory true; description "Application name"; } choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container application choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // choice ipv6addr-choice } // container ipv6addr-drop-node-name case access-list-case { description "Set acl for conditional debug"; container access-list { leaf acl-name-drop-node-name { type string; mandatory true; description "ACL name"; } choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container access-list } // case access-list-case } // choice ipv6-choice } // container ipv6 container match { choice match-choice { case ipv4-case { description "Debug IPv4 conditions"; container ipv4 { choice ipv4-choice { container protocol { description "Protocols"; choice protocol-choice { case icmp-case { description "Filter by ICMP protocol"; container icmp { choice source-choice { leaf src-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any source host"; } leaf host { type ios-types:ipv4-host; description "A single source host"; } } // choice source-choice container dst-addr-drop-node-name { choice destination-choice { leaf dest-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any destination host"; } leaf host { type ios-types:ipv4-host; description "A single destination host"; } } // choice destination-choice } // container dst-addr-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container icmp } // case icmp-case case tcp-case { description "Filter by TCP protocol"; container tcp { choice source-choice { leaf src-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any source host"; } leaf host { type ios-types:ipv4-host; description "A single source host"; } } // choice source-choice choice src-port-choice { leaf eq { type inet:port-number; description "Match only packets on a given port number up to 10 ports"; } leaf gt { type inet:port-number; description "Match only packets with a greater port number"; } leaf lt { type inet:port-number; description "Match only packets with a lower port number"; } leaf neq { type inet:port-number; description "Match only packets not on a given port number up to 10 ports"; } case src-range-case { leaf range { type inet:port-number; description "Match only packets in the range of port numbers"; } leaf src-range2-drop-node-name { type inet:port-number; description "Match only packets in the range of port numbers"; } } // case src-range-case } // choice src-port-choice container dst-addr-port-drop-node-name { choice destination-choice { leaf dest-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any destination host"; } leaf host { type ios-types:ipv4-host; description "A single destination host"; } } // choice destination-choice choice dst-port-choice { leaf eq { type inet:port-number; description "Match only packets on a given port number up to 10 ports"; } leaf gt { type inet:port-number; description "Match only packets with a greater port number"; } leaf lt { type inet:port-number; description "Match only packets with a lower port number"; } leaf neq { type inet:port-number; description "Match only packets not on a given port number up to 10 ports"; } case dst-range-case { leaf range { type inet:port-number; description "Match only packets in the range of port numbers"; } leaf dst-range2-drop-node-name { type inet:port-number; description "Match only packets in the range of port numbers"; } } // case dst-range-case } // choice dst-port-choice } // container dst-addr-port-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container tcp } // case tcp-case case udp-case { description "Filter by UDP protocol"; container udp { choice source-choice { leaf src-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any source host"; } leaf host { type ios-types:ipv4-host; description "A single source host"; } } // choice source-choice choice src-port-choice { leaf eq { type inet:port-number; description "Match only packets on a given port number up to 10 ports"; } leaf gt { type inet:port-number; description "Match only packets with a greater port number"; } leaf lt { type inet:port-number; description "Match only packets with a lower port number"; } leaf neq { type inet:port-number; description "Match only packets not on a given port number up to 10 ports"; } case src-range-case { leaf range { type inet:port-number; description "Match only packets in the range of port numbers"; } leaf src-range2-drop-node-name { type inet:port-number; description "Match only packets in the range of port numbers"; } } // case src-range-case } // choice src-port-choice container dst-addr-port-drop-node-name { choice destination-choice { leaf dest-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any destination host"; } leaf host { type ios-types:ipv4-host; description "A single destination host"; } } // choice destination-choice choice dst-port-choice { leaf eq { type inet:port-number; description "Match only packets on a given port number up to 10 ports"; } leaf gt { type inet:port-number; description "Match only packets with a greater port number"; } leaf lt { type inet:port-number; description "Match only packets with a lower port number"; } leaf neq { type inet:port-number; description "Match only packets not on a given port number up to 10 ports"; } case dst-range-case { leaf range { type inet:port-number; description "Match only packets in the range of port numbers"; } leaf dst-range2-drop-node-name { type inet:port-number; description "Match only packets in the range of port numbers"; } } // case dst-range-case } // choice dst-port-choice } // container dst-addr-port-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container udp } // case udp-case case proto-num-case { description "Filter by protocol number"; container proto-num-drop-node-name { leaf protonum-drop-node-name { type uint8 { range "0..255"; } mandatory true; description "An IP protocol number<0-255>"; } choice source-choice { leaf src-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any source host"; } leaf host { type ios-types:ipv4-host; description "A single source host"; } } // choice source-choice container dst-addr-drop-node-name { choice destination-choice { leaf dest-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any destination host"; } leaf host { type ios-types:ipv4-host; description "A single destination host"; } } // choice destination-choice } // container dst-addr-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container proto-num-drop-node-name } // case proto-num-case } // choice protocol-choice } // container protocol container ipv4-addr-drop-node-name { choice source-choice { leaf src-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any source host"; } leaf host { type ios-types:ipv4-host; description "A single source host"; } } // choice source-choice container dst-addr-drop-node-name { choice destination-choice { leaf dest-ipv4-address-drop-node-name { type string; } leaf any { type empty; description "Any destination host"; } leaf host { type ios-types:ipv4-host; description "A single destination host"; } } // choice destination-choice } // container dst-addr-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container ipv4-addr-drop-node-name } // choice ipv4-choice } // container ipv4 } // case ipv4-case case ipv6-case { description "Debug IPv6 conditions"; container ipv6 { choice ipv6-choice { container protocol { description "Protocols"; choice protocol-choice { case icmp-case { description "Filter by ICMP protocol"; container icmp { choice source-choice { leaf source-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice source-choice container dst-addr-drop-node-name { choice destination-choice { leaf destination-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice destination-choice } // container dst-addr-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container icmp } // case icmp-case case tcp-case { description "Filter by TCP protocol"; container tcp { choice source-choice { leaf source-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice source-choice choice src-port-choice { leaf eq { type inet:port-number; description "Match only packets on a given port number"; } leaf gt { type inet:port-number; description "Match only packets with a greater port number"; } leaf lt { type inet:port-number; description "Match only packets with a lower port number"; } leaf neq { type inet:port-number; description "Match only packets not on a given port number"; } case src-range-case { leaf range { type inet:port-number; description "Match only packets in the range of port numbers"; } leaf src-range2-drop-node-name { type inet:port-number; description "Match only packets in the range of port numbers"; } } // case src-range-case } // choice src-port-choice container dst-addr-port-drop-node-name { choice destination-choice { leaf destination-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice destination-choice choice dst-port-choice { leaf eq { type inet:port-number; description "Match only packets on a given port number"; } leaf gt { type inet:port-number; description "Match only packets with a greater port number"; } leaf lt { type inet:port-number; description "Match only packets with a lower port number"; } leaf neq { type inet:port-number; description "Match only packets not on a given port number"; } case dst-range-case { leaf range { type inet:port-number; description "Match only packets in the range of port numbers"; } leaf dst-range2-drop-node-name { type inet:port-number; description "Match only packets in the range of port numbers"; } } // case dst-range-case } // choice dst-port-choice } // container dst-addr-port-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container tcp } // case tcp-case case udp-case { description "Filter by UDP protocol"; container udp { choice source-choice { leaf source-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice source-choice choice src-port-choice { leaf eq { type inet:port-number; description "Match only packets on a given port number"; } leaf gt { type inet:port-number; description "Match only packets with a greater port number"; } leaf lt { type inet:port-number; description "Match only packets with a lower port number"; } leaf neq { type inet:port-number; description "Match only packets not on a given port number"; } case src-range-case { leaf range { type inet:port-number; description "Match only packets in the range of port numbers"; } leaf src-range2-drop-node-name { type inet:port-number; description "Match only packets in the range of port numbers"; } } // case src-range-case } // choice src-port-choice container dst-addr-port-drop-node-name { choice destination-choice { leaf destination-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice destination-choice choice dst-port-choice { leaf eq { type inet:port-number; description "Match only packets on a given port number"; } leaf gt { type inet:port-number; description "Match only packets with a greater port number"; } leaf lt { type inet:port-number; description "Match only packets with a lower port number"; } leaf neq { type inet:port-number; description "Match only packets not on a given port number"; } case dst-range-case { leaf range { type inet:port-number; description "Match only packets in the range of port numbers"; } leaf dst-range2-drop-node-name { type inet:port-number; description "Match only packets in the range of port numbers"; } } // case dst-range-case } // choice dst-port-choice } // container dst-addr-port-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container udp } // case udp-case case proto-num-case { description "Filter by protocol number"; container proto-num-drop-node-name { leaf protonum-drop-node-name { type uint8 { range "0..255"; } mandatory true; description "An IP protocol number<0-255>"; } choice source-choice { leaf source-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice source-choice container dst-addr-drop-node-name { choice destination-choice { leaf destination-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice destination-choice } // container dst-addr-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container proto-num-drop-node-name } // case proto-num-case } // choice protocol-choice } // container protocol container ipv6-addr-drop-node-name { choice source-choice { leaf source-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice source-choice container dst-addr-drop-node-name { choice destination-choice { leaf destination-prefix-drop-node-name { type ios-types:ipv6-prefix; } leaf any { type empty; } leaf host { type ios-types:ip-host; } } // choice destination-choice } // container dst-addr-drop-node-name choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container ipv6-addr-drop-node-name } // choice ipv6-choice } // container ipv6 } // case ipv6-case } // choice match-choice } // container match container mpls { choice mpls-choice { container label-drop-node-name { leaf label-id-drop-node-name { type uint32 { range "0..1048575"; } mandatory true; description "MPLS label id"; } leaf depth-drop-node-name { type uint8 { range "0..127"; } description "Depth of specified MPLS label, 1 for top label"; } leaf application { type string; description "Debug Application conditions"; } choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container label-drop-node-name container application { leaf app-name-drop-node-name { type string; mandatory true; description "Application name"; } choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // container application choice direction-choice { leaf both { type empty; description "Simultaneous ingress and egress debug"; } leaf ingress { type empty; description "Ingress only debug"; } leaf egress { type empty; description "Egress only debug"; } } // choice direction-choice } // choice mpls-choice } // container mpls } // choice interface-choice leaf no { type empty; description "for no debug platform ..."; } } // container interface container feature { description "For a specific feature"; choice feature-choice { container ipsec { description "IPSEC feature"; container dataplane { description "packet/flow information"; choice dataplane-debug-choice { container submode { description "submode information"; choice submode-choice { container all { description "ipsec all submode"; container level { choice level-choice { leaf error { type empty; description "Enable error debug"; } leaf info { type empty; description "Enable info debug"; } leaf verbose { type empty; description "Enable verbose debug"; } leaf warning { type empty; description "Enable warning debug"; } } // choice level-choice } // container level } // container all container cce { description "ipsec cce submode"; container level { choice level-choice { leaf error { type empty; description "Enable error debug"; } leaf info { type empty; description "Enable info debug"; } leaf verbose { type empty; description "Enable verbose debug"; } leaf warning { type empty; description "Enable warning debug"; } } // choice level-choice } // container level } // container cce container pkt-dump { description "ipsec pkt-dump submode"; container level { choice level-choice { leaf error { type empty; description "Enable error debug"; } leaf info { type empty; description "Enable info debug"; } leaf verbose { type empty; description "Enable verbose debug"; } leaf warning { type empty; description "Enable warning debug"; } } // choice level-choice } // container level } // container pkt-dump } // choice submode-choice } // container submode leaf droptype { type union { type uint8 { range "1..113"; } type ios-types:range-string; } description "Set debug droptype"; } leaf pktcorrupt { type uint8 { range "1..255"; } description "Set debug pkt corruption"; } } // choice dataplane-debug-choice leaf no { type empty; description "for no debug platform condition feature ipsec dataplane ..."; } } // container dataplane } // container ipsec container multicast { description "MULTICAST feature"; choice multicast-choice { container controlplane { description "control plane information"; container level { description "debug level information"; choice level-choice { leaf error { type empty; description "Enable error debug"; } leaf info { type empty; description "Enable info debug"; } leaf verbose { type empty; description "Enable verbose debug"; } leaf warning { type empty; description "Enable warning debug"; } } // choice level-choice leaf no { type empty; description "for no debug platform condition feature multicast ..."; } } // container level } // container controlplane container dataplane { description "packet/flow information"; choice dataplane-debug-choice { container v4mcast { description "ipv4 mcast feature"; container submode { description "submode information"; choice submode-choice { leaf all { type empty; description "all information"; } leaf boundary { type empty; description "boundary information"; } leaf config { type empty; description "config information"; } leaf error { type empty; description "error information"; } leaf packet { type empty; description "packet information"; } leaf sr { type empty; description "sr information"; } leaf state { type empty; description "state information"; } } // choice submode-choice leaf no { type empty; description "for no debug platform condition feature multicast ..."; } } // container submode } // container v4mcast container v6mcast { description "ipv6 mcast feature"; container submode { description "submode information"; choice submode-choice { leaf all { type empty; description "all information"; } leaf boundary { type empty; description "boundary information"; } leaf config { type empty; description "config information"; } leaf error { type empty; description "error information"; } leaf packet { type empty; description "packet information"; } leaf sr { type empty; description "sr information"; } leaf state { type empty; description "state information"; } } // choice submode-choice leaf no { type empty; description "for no debug platform condition feature multicast ..."; } } // container submode } // container v6mcast } // choice dataplane-debug-choice } // container dataplane } // choice multicast-choice } // container multicast } // choice feature-choice } // container feature } // choice condition-choice } // container condition container packet-trace { choice packet-trace-choice { leaf statistics { type empty; description "Enable packet trace statistics"; } container drop { presence "true"; description "Trace drops only"; leaf code { type uint16 { range "0..65534"; } description "Trace specific drop code value <0-65534>"; } } // container drop container inject { presence "true"; description "Trace injects only"; leaf code { type uint16 { range "0..65534"; } description "Trace specific inject code value <0-65534>"; } } // container inject container punt { presence "true"; description "Trace punt only"; leaf code { type uint16 { range "0..65534"; } description "Trace specific punt code value <0-65534>"; } } // container punt container packet { description "Packet count"; leaf packet-num-drop-node-name { type uint16 { range "16..8192"; } mandatory true; description "Packet count, value must be a power of two <16-8192>"; } container option-grp1-drop-node-name { leaf data-size { type uint16 { range "2048..16384"; } description "Size of trace data in bytes, value must be a power of two <2048-16384>"; } leaf fia-trace { type empty; description "Trace of visited feature entries"; } leaf circular { type empty; description "Capture last set of packets"; } } // container option-grp1-drop-node-name container option-grp2-drop-node-name { leaf circular { type empty; description "Capture last set of packets"; } leaf summary-only { type empty; description "Summary of the trace"; } } // container option-grp2-drop-node-name } // container packet container copy { description "Copy packet data"; container packet { description "Copy parts of packets received or sent"; choice direction-choice { mandatory true; leaf both { type empty; description "Copy incoming and outgoing packets"; } leaf input { type empty; description "Copy incoming packets"; } leaf output { type empty; description "Copy outgoing packets"; } } // choice direction-choice choice layer-choice { leaf l2 { type empty; description "Copy starting from layer 2"; } leaf l3 { type empty; description "Copy starting from layer 3"; } leaf l4 { type empty; description "Copy starting from layer 4"; } } // choice layer-choice leaf size { type uint16 { range "16..2048"; } description "Packet size in bytes, value must be a power of two"; } } // container packet } // container copy } // choice packet-trace-choice leaf no { type empty; description "for no debug platform ..."; } } // container packet-trace } // choice platform-choice } // container platform } // case platform-case } // choice debug-choice } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc debug rpc monitor { description "monitor"; input { leaf capture { type string; description "Capture session"; } leaf match { type string; description "Describe filters inline"; } leaf interface { type string; description "Interface"; } choice capture-direction-choice { leaf both { type empty; } leaf in { type empty; } leaf out { type empty; } } // choice capture-direction-choice container buffer { description "Buffer options"; leaf size { type uint8 { range "1..100"; } description "Size of buffer in MB"; } leaf circular { type empty; description "circular buffer"; } } // container buffer container limit { description "Limit Packets Captured"; leaf duration { type uint32 { range "1..1000000"; } description "Limit total duration of capture in seconds"; } leaf every { type uint32 { range "2..100000"; } description "Limit capture to one in every nth packet"; } leaf packet-len { type uint16 { range "64..9500"; } description "Limit the packet length to capture"; } leaf packets { type uint32 { range "1..100000"; } description "Limit number of packets to capture"; } leaf pps { type uint32 { range "1..1000000"; } description "Limit number of packets per second to capture"; } } // container limit choice capture-command-choice { leaf start { type empty; description "Enable session capture points"; } leaf stop { type empty; description "Disable session capture points"; } leaf stop_export { type empty; description "Export session capture buffer"; } } // choice capture-command-choice } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc monitor rpc pnpa { description "Plug and play command"; input { container service { description "Service Name"; choice service-choice { container wakeup { description "Wake up Profile"; leaf profile-drop-node-name { type string; description "Profile name"; } } // container wakeup leaf reset { type empty; description "Reset PnP config"; } } // choice service-choice } // container service } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc pnpa rpc test { description "test exec command"; input { choice test-feature { } // choice test-feature } output { leaf result { type string; description "Output returned by the network element"; } } } // rpc test } // module Cisco-IOS-XE-rpc
© 2023 YumaWorks, Inc. All rights reserved.