Difference between revisions of "Yuma yangcli Manual"

From Yuma123 Wiki
Jump to navigationJump to search
 
(5 intermediate revisions by the same user not shown)
Line 8: Line 8:
   
   
<center>Version 2.10</center>
+
<center>Version yuma123-2.11</center>
   
 
= Preface =
 
= Preface =
 
== Legal Statements ==
 
== Legal Statements ==
Copyright 2009 2012, Andy Bierman, All Rights Reserved.
+
Copyright 2009 - 2012, Andy Bierman, All Rights Reserved.
   
Copyright 2013 2017, Vladimir Vassilev, All Rights Reserved.
+
Copyright 2013 - 2018, Vladimir Vassilev, All Rights Reserved.
   
 
== Additional Resources ==
 
== Additional Resources ==
This document assumes you have successfully set up the software as
+
This document assumes you have successfully set up the software as described in the printed document:
described in the printed document:
 
   
   
Line 36: Line 35:
 
[[Yuma Developer Manual]]
 
[[Yuma Developer Manual]]
   
There are several sources of free information and tools for use with
+
There are several sources of free information and tools for use with YANG and/or NETCONF.
YANG and/or NETCONF.
 
   
 
The following section lists the resources available at this time.
 
The following section lists the resources available at this time.
Line 45: Line 43:
 
** [http://www.netconfcentral.org/ http://www.netconfcentral.org/]
 
** [http://www.netconfcentral.org/ http://www.netconfcentral.org/]
 
** Yuma Home Page
 
** Yuma Home Page
*** Free information on NETCONF and YANG, tutorials, on-line YANG module
+
*** Free information on NETCONF and YANG, tutorials, on-line YANG module validation and documentation database
validation and documentation database
 
 
* '''Yuma SourceFource OpenSource Project'''
 
* '''Yuma SourceFource OpenSource Project'''
** [http://sourceforge.net/projects/yuma/
+
** [http://sourceforge.net/projects/yuma/ http://sourceforge.net/projects/yuma/]
http://sourceforge.net/projects/yuma/]
 
 
*** Download Yuma source and binaries; project forums and help
 
*** Download Yuma source and binaries; project forums and help
 
* '''Yang Central'''
 
* '''Yang Central'''
Line 55: Line 51:
 
** Free information and tutorials on YANG, free YANG tools for download
 
** Free information and tutorials on YANG, free YANG tools for download
 
* '''NETCONF Working Group Wiki Page'''
 
* '''NETCONF Working Group Wiki Page'''
** [http://trac.tools.ietf.org/wg/netconf/trac/wiki
+
** [http://trac.tools.ietf.org/wg/netconf/trac/wiki http://trac.tools.ietf.org/wg/netconf/trac/wiki]
  +
** Free information on NETCONF standardization activities and NETCONF implementations
http://trac.tools.ietf.org/wg/netconf/trac/wiki]
 
** Free information on NETCONF standardization activities and NETCONF
 
implementations
 
 
* '''NETCONF WG Status Page'''
 
* '''NETCONF WG Status Page'''
 
** http://tools.ietf.org/wg/netconf/
 
** http://tools.ietf.org/wg/netconf/
 
** IETF Internet draft status for NETCONF documents
 
** IETF Internet draft status for NETCONF documents
 
* '''libsmi Home Page'''
 
* '''libsmi Home Page'''
** [http://www.ibr.cs.tu-bs.de/projects/libsmi/
+
** [http://www.ibr.cs.tu-bs.de/projects/libsmi/ http://www.ibr.cs.tu-bs.de/projects/libsmi/]
http://www.ibr.cs.tu-bs.de/projects/libsmi/]
 
 
** Free tools such as smidump, to convert SMIv2 to YANG
 
** Free tools such as smidump, to convert SMIv2 to YANG
 
* '''YumaWorks'''
 
* '''YumaWorks'''
 
** [http://www.yumaworks.com/ http://www.yumaworks.com]
 
** [http://www.yumaworks.com/ http://www.yumaworks.com]
 
** Offers support, training, and consulting for Yuma.
 
** Offers support, training, and consulting for Yuma.
** Offers YumaPro, a professional version of Yuma that includes
+
** Offers YumaPro, a professional version of Yuma that includes concurrency, external database support, sub-agent support, multiple northbound interfaces, and more. API compatible with Yuma. Availability: September, 2012. Licensed.
concurrency, external database support, sub-agent support, multiple
 
northbound interfaces, and more. API compatible with Yuma. Availability:
 
September, 2012. Licensed.
 
 
* '''Transpacket'''
 
* '''Transpacket'''
 
** [http://www.transpacket.com/ http://www.transpacket.com]
 
** [http://www.transpacket.com/ http://www.transpacket.com]
  +
** Uses Yuma for configuration and monitoring of its products.
** Offers Linux based embedded operating system distribution which uses
 
  +
Yuma for configuration and monitoring.
 
** Offers support, training, and consulting for YANG and netconf.
 
 
=== Mailing Lists ===
 
=== Mailing Lists ===
 
* '''NETCONF Working Group'''
 
* '''NETCONF Working Group'''
 
** http://www.ietf.org/html.charters/netconf-charter.html
 
** http://www.ietf.org/html.charters/netconf-charter.html
** Technical issues related to the NETCONF protocol are discussed on the
+
** Technical issues related to the NETCONF protocol are discussed on the NETCONF WG mailing list. Refer to the instructions on the WEB page for joining the mailing list.
NETCONF WG mailing list. Refer to the instructions on the WEB page for
 
joining the mailing list.
 
 
* '''NETMOD Working Group'''
 
* '''NETMOD Working Group'''
** [http://www.ietf.org/html.charters/netmod-charter.html
+
** [http://www.ietf.org/html.charters/netmod-charter.html http://www.ietf.org/html.charters/netmod-charter.html]
  +
** Technical issues related to the YANG language and YANG data types are discussed on the NETMOD WG mailing list. Refer to the instructions on the WEB page for joining the mailing list.
http://www.ietf.org/html.charters/netmod-charter.html]
 
** Technical issues related to the YANG language and YANG data types are
 
discussed on the NETMOD WG mailing list. Refer to the instructions on
 
the WEB page for joining the mailing list.
 
   
 
== Conventions Used in this Document ==
 
== Conventions Used in this Document ==
Line 103: Line 87:
   
 
|-
 
|-
  +
| '''--foo'''
| style="border-top:none;border-bottom:0.05pt solid
 
  +
| CLI parameter foo
#000000;border-left:0.05pt solid
 
#000000;border-right:none;padding:0.0382in;"| '''--foo'''
 
| style="border-top:none;border-bottom:0.05pt solid
 
#000000;border-left:0.05pt solid #000000;border-right:0.05pt solid
 
#000000;padding:0.0382in;"| CLI parameter foo
 
   
 
|-
 
|-
  +
| '''<nowiki><foo></nowiki>'''
| style="border-top:none;border-bottom:0.05pt solid
 
  +
| XML parameter foo
#000000;border-left:0.05pt solid
 
#000000;border-right:none;padding:0.0382in;"|
 
'''<nowiki><foo></nowiki>'''
 
| style="border-top:none;border-bottom:0.05pt solid
 
#000000;border-left:0.05pt solid #000000;border-right:0.05pt solid
 
#000000;padding:0.0382in;"| XML parameter foo
 
   
 
|-
 
|-
  +
| '''foo'''
| style="border-top:none;border-bottom:0.05pt solid
 
  +
| '''yangcli''' command or parameter
#000000;border-left:0.05pt solid
 
#000000;border-right:none;padding:0.0382in;"| '''foo'''
 
| style="border-top:none;border-bottom:0.05pt solid
 
#000000;border-left:0.05pt solid #000000;border-right:0.05pt solid
 
#000000;padding:0.0382in;"| '''yangcli''' command or parameter
 
   
 
|-
 
|-
  +
| '''$FOO'''
| style="border-top:none;border-bottom:0.05pt solid
 
  +
| Environment variable FOO
#000000;border-left:0.05pt solid
 
#000000;border-right:none;padding:0.0382in;"| '''$FOO'''
 
| style="border-top:none;border-bottom:0.05pt solid
 
#000000;border-left:0.05pt solid #000000;border-right:0.05pt solid
 
#000000;padding:0.0382in;"| Environment variable FOO
 
   
 
|-
 
|-
  +
| '''$$foo'''
| style="border-top:none;border-bottom:0.05pt solid
 
  +
| '''yangcli''' global variable foo
#000000;border-left:0.05pt solid
 
#000000;border-right:none;padding:0.0382in;"| '''$$foo'''
 
| style="border-top:none;border-bottom:0.05pt solid
 
#000000;border-left:0.05pt solid #000000;border-right:0.05pt solid
 
#000000;padding:0.0382in;"| '''yangcli''' global variable foo
 
   
 
|-
 
|-
  +
| some text
| style="border-top:none;border-bottom:0.05pt solid
 
  +
| Example command or PDU
#000000;border-left:0.05pt solid
 
#000000;border-right:none;padding:0.0382in;"| some text
 
| style="border-top:none;border-bottom:0.05pt solid
 
#000000;border-left:0.05pt solid #000000;border-right:0.05pt solid
 
#000000;padding:0.0382in;"| Example command or PDU
 
   
 
|-
 
|-
  +
| some text
| style="border-top:none;border-bottom:0.05pt solid
 
  +
| Plain text
#000000;border-left:0.05pt solid
 
#000000;border-right:none;padding:0.0382in;"| some text
 
| style="border-top:none;border-bottom:0.05pt solid
 
#000000;border-left:0.05pt solid #000000;border-right:0.05pt solid
 
#000000;padding:0.0382in;"| Plain text
 
   
 
|}
 
|}
Line 166: Line 121:
   
 
== Introduction ==
 
== Introduction ==
The '''yangcli''' program is a NETCONF over SSH client application. It
+
The '''yangcli''' program is a NETCONF over SSH client application. It is driven directly by YANG modules, and provides a simple but powerful application interface for any YANG file. There is no configuration required at all to use any YANG file, although there are some YANG extensions that will be utilized if present.
is driven directly by YANG modules, and provides a simple but powerful
 
application interface for any YANG file. There is no configuration
 
required at all to use any YANG file, although there are some YANG
 
extensions that will be utilized if present.
 
   
 
=== Features ===
 
=== Features ===
 
The '''yangcli''' client has the following features:
 
The '''yangcli''' client has the following features:
   
* <nowiki>Automatic support for all NETCONF protocol operations,
+
* <nowiki>Automatic support for all NETCONF protocol operations, including several 'short-hand' commands for the most common operations, like <edit-config> and <get-config>.</nowiki>
  +
* Automated database locking, unlocking and error cleanup, using the high-level''' get-locks''' and '''release-locks''' commands.
including several 'short-hand' commands for the most common operations,
 
  +
* <nowiki>Automatic, standards-based, server schema synchronization, using the YANG module capability URI information in the <hello> PDU, and the <get-schema> operation:</nowiki>
like <edit-config> and <get-config>.</nowiki>
 
  +
** For each session, the exact view of the server schema definition tree is created, based on the module capability:
* Automated database locking, unlocking and error cleanup, using the
 
high-level''' get-locks''' and '''release-locks''' commands.
 
* <nowiki>Automatic, standards-based, server schema synchronization,
 
using the YANG module capability URI information in the <hello> PDU, and
 
the <get-schema> operation:</nowiki>
 
** For each session, the exact view of the server schema definition tree
 
is created, based on the module capability:
 
 
*** module namespace
 
*** module namespace
 
*** module name
 
*** module name
Line 190: Line 135:
 
*** enabled features
 
*** enabled features
 
*** names of any modules that contain deviations for this module
 
*** names of any modules that contain deviations for this module
** The help text and parameter validation for each session will be
+
** The help text and parameter validation for each session will be tailored to the capabilities advertised by the server.
  +
** Parses each potential matching YANG file to make sure the module name, revision date, and namespace URI value are all exactly the same as the values in the module capability URI.
tailored to the capabilities advertised by the server.
 
  +
* Understands all NETCONF protocol capabilities, and complex hard-wired logic simplifies protocol usage, and allows high-level commands to pick appropriate defaults for many RPC operation parameters.
** Parses each potential matching YANG file to make sure the module
 
  +
* Load any YANG module at boot-time or run-time and start using it immediately.
name, revision date, and namespace URI value are all exactly the same as
 
the values in the module capability URI.
 
* Understands all NETCONF protocol capabilities, and complex hard-wired
 
logic simplifies protocol usage, and allows high-level commands to pick
 
appropriate defaults for many RPC operation parameters.
 
* Load any YANG module at boot-time or run-time and start using it
 
immediately.
 
 
* Full concurrent support for multiple revisions of the same module.
 
* Full concurrent support for multiple revisions of the same module.
 
* Supports NETCONF notifications, including :interleave capability.
 
* Supports NETCONF notifications, including :interleave capability.
 
* Full XPath 1.0 and subtree filtering support.
 
* Full XPath 1.0 and subtree filtering support.
* Automatic support for all YANG language mechanisms, including
+
* Automatic support for all YANG language mechanisms, including extensions.
  +
* Any YANG '''<nowiki><rpc></nowiki>''' operation is automatically available as a '''yangcli''' command.
extensions.
 
  +
* Uses YANG files directly as input, so no pre-processing or configuration needed to use a new module.
* Any YANG '''<nowiki><rpc></nowiki>''' operation is automatically
 
  +
* Can be called from '''unix''' scripts in 'batch-mode' to automatically establish a NETCONF session, issue a command or invoke a yangcli script, close the session, and return the results.
available as a '''yangcli''' command.
 
  +
* Extensive interactive shell environment, including user variables, file variables, smart parameter set completion, and a simple scripting environment for automatic operation.
* Uses YANG files directly as input, so no pre-processing or
 
configuration needed to use a new module.
 
* Can be called from '''unix''' scripts in 'batch-mode' to automatically
 
establish a NETCONF session, issue a command or invoke a yangcli script,
 
close the session, and return the results.
 
* Extensive interactive shell environment, including user variables,
 
file variables, smart parameter set completion, and a simple scripting
 
environment for automatic operation.
 
 
* Automatic, context-sensitive (tab key) command-line completion.
 
* Automatic, context-sensitive (tab key) command-line completion.
* Full support for XPath, instance-identifier, leafref, and identityref
+
* Full support for XPath, instance-identifier, leafref, and identityref parameters.
  +
* Automatic, context-sensitive help system, based completely on YANG files and using the exact modules supported by the current NETCONF session, if connected.
parameters.
 
  +
* Full, customizable command line editing, using '''emacs''' by default, but '''vi''' or a custom set of keystroke bindings are also supported.
* Automatic, context-sensitive help system, based completely on YANG
 
files and using the exact modules supported by the current NETCONF
 
session, if connected.
 
* Full, customizable command line editing, using '''emacs''' by default,
 
but '''vi''' or a custom set of keystroke bindings are also supported.
 
 
* Command line history and command recall.
 
* Command line history and command recall.
 
* Store and recall command line history files for later use.
 
* Store and recall command line history files for later use.
* <nowiki>Automatic NETCONF session management, including support for
+
* <nowiki>Automatic NETCONF session management, including support for all YANG extensions to the <capability> element.</nowiki>
  +
* Automatic recognition and support for all NETCONF 'capability' related operations.
all YANG extensions to the <capability> element.</nowiki>
 
* Automatic recognition and support for all NETCONF 'capability' related
+
* Automatic support for all YANG additions to the NETCONF protocol, such as the '''insert''' operation
  +
* Unlimited nested scripts with up to 10 parameters each can automate testing and other management tasks
operations.
 
* Automatic support for all YANG additions to the NETCONF protocol, such
 
as the '''insert''' operation
 
* Unlimited nested scripts with up to 10 parameters each can automate
 
testing and other management tasks
 
 
* User configurable command aliases that can be saved and restored.
 
* User configurable command aliases that can be saved and restored.
   
 
=== Starting yangcli ===
 
=== Starting yangcli ===
The current working directory in use when '''yangcli''' is invoked is
+
The current working directory in use when '''yangcli''' is invoked is important. It is most convenient to run '''yangcli''' from a work directory, rather than the installation directory or within the module library.
important. It is most convenient to run '''yangcli''' from a work
 
directory, rather than the installation directory or within the module
 
library.
 
   
 
The '''yangcli''' program can be invoked several ways:
 
The '''yangcli''' program can be invoked several ways:
Line 269: Line 190:
   
   
* To start an interactive session and append to an existing log
+
* To start an interactive session and append to an existing log file:<br/>
file:<br/>
 
   
   
'''yangcli'' --''logfile''<nowiki>=mylogfile
+
'''yangcli'' --''logfile''<nowiki>=mylogfile </nowiki>''--log-append'''
</nowiki>''--log-append'''
 
   
   
Line 283: Line 202:
   
   
* To begin to connect to a server upon startup, provide the
+
* To begin to connect to a server upon startup, provide the '''--server''' parameter. The '''connect''' command will be started upon startup and the user will be prompted to enter the rest of the mandatory parameters to the '''connect''' command.<br/>
'''--server''' parameter. The '''connect''' command will be started upon
 
startup and the user will be prompted to enter the rest of the mandatory
 
parameters to the '''connect''' command.<br/>
 
   
   
Line 292: Line 208:
   
   
  +
* To connect to a server and automatically connect without any interactive interruption, enter the '''--server''', '''--user''', and '''--password''' parameters. A session startup will be attempted right away, using these parameters. Any optional parameters for the '''connect''' command ('''--port''' or '''--timeout''') may be entered as well. All parameters can be entered from a config file, and/or the command line.<br/>
* To connect to a server and automatically connect without any
 
interactive interruption, enter the '''--server''', '''--user''', and
 
'''--password''' parameters. A session startup will be attempted right
 
away, using these parameters. Any optional parameters for the
 
'''connect''' command ('''--port''' or '''--timeout''') may be entered
 
as well. All parameters can be entered from a config file, and/or the
 
command line.<br/>
 
   
   
Line 305: Line 215:
   
   
* To automatically connect to a server, run a script in non-interactive
+
* To automatically connect to a server, run a script in non-interactive mode, and then remain connected to the server, add the '''--run-script''' parameter to the connection parameters. The '''--runpath''' parameter can also be entered, if needed.<br/>
mode, and then remain connected to the server, add the
 
'''--run-script''' parameter to the connection parameters. The
 
'''--runpath''' parameter can also be entered, if needed.<br/>
 
   
   
Line 316: Line 223:
   
   
* To automatically connect to a server, run a script in non-interactive
+
* To automatically connect to a server, run a script in non-interactive mode, and then exit the program, add the '''--batch-mode''' and '''--run-script''' parameters to the connection parameters. The '''--runpath''' parameter can also be entered, if needed.<br/>
mode, and then exit the program, add the '''--batch-mode''' and
 
'''--run-script''' parameters to the connection parameters. The
 
'''--runpath''' parameter can also be entered, if needed.<br/>
 
   
   
Line 327: Line 231:
   
   
* To automatically connect to a server, and run a single command instead
+
* To automatically connect to a server, and run a single command instead of a script, and then exit, use the '''--run-command''' parameter instead of the '''--run-script''' parameter. The''' --batch-mode''' parameter can be left out to remain in the current session (in interactive mode) after the command is invoked.
of a script, and then exit, use the '''--run-command''' parameter
 
instead of the '''--run-script''' parameter. The''' --batch-mode'''
 
parameter can be left out to remain in the current session (in
 
interactive mode) after the command is invoked.
 
   
 
'''yangcli --server=myserver.example.com \'''
 
'''yangcli --server=myserver.example.com \'''
Line 340: Line 240:
 
To terminate the '''yangcli''' program, use the '''quit''' command.
 
To terminate the '''yangcli''' program, use the '''quit''' command.
   
The control-C character sequence will also cause the program to be
+
The control-C character sequence will also cause the program to be terminated.
terminated.
 
   
 
=== Statements ===
 
=== Statements ===
The '''yangcli''' script interpreter accepts several types of
+
The '''yangcli''' script interpreter accepts several types of statements:
statements:
 
   
   
Line 353: Line 251:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| <center>'''type'''</center>
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| <center>'''description'''</center>
#000000;border-left:0.5pt solid
 
  +
| <center>'''example'''</center>
#000000;border-right:none;padding:0.0382in;"|
 
<center>'''type'''</center>
 
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"|
 
<center>'''description'''</center>
 
|
 
<center>'''example'''</center>
 
   
 
|-
 
|-
  +
| command
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>invoke a local command and/or send an <rpc> to the server</nowiki>
#000000;border-left:0.5pt solid
 
  +
| sget /system
#000000;border-right:none;padding:0.0382in;"| command
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| <nowiki>invoke a local
 
command and/or send an <rpc> to the server</nowiki>
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| sget /system
 
   
 
|-
 
|-
  +
| variable assignment
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| set a user variable to some value
#000000;border-left:0.5pt solid
 
  +
| $system = sget /system
#000000;border-right:none;padding:0.0382in;"| variable assignment
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| set a user variable to
 
some value
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| $system = sget /system
 
   
 
|-
 
|-
  +
| file assignment
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| set the contents of a file to some value
#000000;border-left:0.5pt solid
 
  +
| @save.txt = $system
#000000;border-right:none;padding:0.0382in;"| file assignment
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| set the contents of a file
 
to some value
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| @save.txt = $system
 
   
 
|-
 
|-
  +
| variable deletion
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| delete a user variable or clear a system variable
#000000;border-left:0.5pt solid
 
  +
| $system =
#000000;border-right:none;padding:0.0382in;"| variable deletion
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| delete a user variable or
 
clear a system variable
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| $system =
 
   
 
|}
 
|}
 
A command can be as simple like 'get' or complex, like 'edit-config'.
 
A command can be as simple like 'get' or complex, like 'edit-config'.
   
A variable assignment sets the specified user or system variable to the
+
A variable assignment sets the specified user or system variable to the right hand side of the expression. An expression has many forms, including the result from a local command or a remote NETCONF operation.
right hand side of the expression. An expression has many forms,
 
including the result from a local command or a remote NETCONF operation.
 
   
If a string that matches a command is used as the assignment value, then
+
If a string that matches a command is used as the assignment value, then it must be entered in quotes (single or double). For example, the''' $$default-operation''' system configuration variable accepts enumeration values which also match RPC commands:
it must be entered in quotes (single or double). For example, the'''
 
$$default-operation''' system configuration variable accepts enumeration
 
values which also match RPC commands:
 
   
   
Line 428: Line 286:
   
   
A file assignment is essentially the same as a variable assignment,
+
A file assignment is essentially the same as a variable assignment, except the right hand side of the expression is saved in the specified file, instead of a user variable.
except the right hand side of the expression is saved in the specified
 
file, instead of a user variable.
 
   
To delete a user variable, leave the right hand side of the expression
+
To delete a user variable, leave the right hand side of the expression empty (or just whitespace).
empty (or just whitespace).
 
   
 
Note: More statement types will be available in the next release.
 
Note: More statement types will be available in the next release.
   
 
=== Commands ===
 
=== Commands ===
The yangcli program has several built-in commands, defined in
+
The yangcli program has several built-in commands, defined in '''yangcli.yang''', '''yuma'''-'''netconf.yang,''' and '''notifications.yang'''.
'''yangcli.yang''', '''yuma'''-'''netconf.yang,''' and
 
'''notifications.yang'''.
 
   
The YANG '''rpc''' statement is used to define the syntax and behavior
+
The YANG '''rpc''' statement is used to define the syntax and behavior of each command.
of each command.
 
   
 
There are 2 types of yangcli commands:
 
There are 2 types of yangcli commands:
   
* '''local''': the command is executed within the yangcli application,
+
* '''local''': the command is executed within the yangcli application, and can be invoked at any time.
  +
* '''remote''': the command is executed on the remote server, and is only available when a NETCONF session is active. Any YANG '''rpc''' statement that '''yangcli''' does not recognize as a local command is treated as a remote command available on the server.
and can be invoked at any time.
 
* '''remote''': the command is executed on the remote server, and is
 
only available when a NETCONF session is active. Any YANG '''rpc'''
 
statement that '''yangcli''' does not recognize as a local command is
 
treated as a remote command available on the server.
 
   
 
<center>'''Local Commands'''</center>
 
<center>'''Local Commands'''</center>
Line 459: Line 307:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| <center>'''command'''</center>
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| <center>'''description'''</center>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"|
 
<center>'''command'''</center>
 
|
 
<center>'''description'''</center>
 
   
 
|-
 
|-
  +
| alias
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Show or set a specific yangcli command alias
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| alias
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Show or set a specific yangcli command alias
 
   
 
|-
 
|-
  +
| aliases
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Manage the yangcli command aliases
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| aliases
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Manage the yangcli command aliases
 
   
 
|-
 
|-
  +
| cd
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Change the current working directory
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| cd
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Change the current working directory
 
   
 
|-
 
|-
  +
| connect
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Connect to a server and start a NETCONF session
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| connect
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Connect to a server and start a NETCONF
 
session
 
   
 
|-
 
|-
  +
| elif
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Start an 'else-if' conditional block
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| elif
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Start an 'else-if' conditional block
 
   
 
|-
 
|-
  +
| else
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Start an 'else' conditional block
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| else
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Start an 'else' conditional block
 
   
 
|-
 
|-
  +
| end
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| End an 'if' or 'while' block
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| end
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| End an 'if' or 'while' block
 
   
 
|-
 
|-
  +
| eval
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Evaluate an XPath expression
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| eval
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Evaluate an XPath expression
 
   
 
|-
 
|-
  +
| eventlog
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| View or clear the notification event log
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| eventlog
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| View or clear the notification event log
 
   
 
|-
 
|-
  +
| fill
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Fill a user variable
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| fill
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Fill a user variable
 
   
 
|-
 
|-
  +
| help
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Get context-sensitive help
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| help
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Get context-sensitive help
 
   
 
|-
 
|-
  +
| history
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Manage the command history buffer
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| history
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Manage the command history buffer
 
   
 
|-
 
|-
  +
| if
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Start an 'if' conditional block
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| if
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Start an 'if' conditional block
 
   
 
|-
 
|-
  +
| list
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| List modules, objects, or other properties of the session
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| list
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| List modules, objects, or other properties
 
of the session
 
   
 
|-
 
|-
  +
| log-debug
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Log a debug message
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| log-debug
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Log a debug message
 
   
 
|-
 
|-
  +
| log-error
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Log an error message
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| log-error
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Log an error message
 
   
 
|-
 
|-
  +
| log-info
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Log an info message
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| log-info
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Log an info message
 
   
 
|-
 
|-
  +
| log-warn
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Log a warning message
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| log-warn
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Log a warning message
 
   
 
|-
 
|-
  +
| mgrload
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Load a YANG file into the client only
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| mgrload
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Load a YANG file into the client only
 
   
 
|-
 
|-
  +
| pwd
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Print the current working directoty
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| pwd
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Print the current working directoty
 
   
 
|-
 
|-
  +
| quit
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Exit the program
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| quit
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Exit the program
 
   
 
|-
 
|-
  +
| recall
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Recall a line from the command history buffer
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| recall
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Recall a line from the command history
 
buffer
 
   
 
|-
 
|-
  +
| run
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Run a script
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| run
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Run a script
 
   
 
|-
 
|-
  +
| show
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Show variables and objects currently available
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| show
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Show variables and objects currently
 
available
 
   
 
|-
 
|-
  +
| start-timer
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Start a script timer
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| start-timer
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Start a script timer
 
   
 
|-
 
|-
  +
| stop-timer
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Stop a script timer and display the elapsed time
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| stop-timer
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Stop a script timer and display the elapsed
 
time
 
   
 
|-
 
|-
  +
| unset
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Remove a command alias from memory
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| unset
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Remove a command alias from memory
 
   
 
|-
 
|-
  +
| uservars
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Manage the yangcli user variables
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| uservars
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Manage the yangcli user variables
 
   
 
|-
 
|-
  +
| while
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Start a 'while' conditional loop block
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| while
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Start a 'while' conditional loop block
 
   
 
|}
 
|}
The following table shows the standard NETCONF protocol operations that
+
The following table shows the standard NETCONF protocol operations that are directly available for use, depending on the capabilities of the server.
are directly available for use, depending on the capabilities of the
 
server.
 
   
   
Line 714: Line 435:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| <center>'''command'''</center>
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| <center>'''description'''</center>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"|
 
<center>'''command'''</center>
 
|
 
<center>'''description'''</center>
 
   
 
|-
 
|-
  +
| cancel-commit
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Cancel the current confirmed commit procedure
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| cancel-commit
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Cancel the current confirmed commit
 
procedure
 
   
 
|-
 
|-
  +
| close-session
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Close the current NETCONF session
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| close-session
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Close the current NETCONF session
 
   
 
|-
 
|-
  +
| commit
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Make the candidate database be the running config
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| commit
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Make the candidate database be the running
 
config
 
   
 
|-
 
|-
  +
| copy-config
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Copy an entire NETCONF database
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| copy-config
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Copy an entire NETCONF database
 
   
 
|-
 
|-
  +
| create-subscription
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Start receiving NETCONF notifications
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| create-subscription
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Start receiving NETCONF notifications
 
   
 
|-
 
|-
  +
| delete-config
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Delete an entire NETCONF database
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| delete-config
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Delete an entire NETCONF database
 
   
 
|-
 
|-
  +
| discard-changes
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Discard any edits in the candidate database
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| discard-changes
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Discard any edits in the candidate database
 
   
 
|-
 
|-
  +
| edit-config
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Alteration of the target database
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| edit-config
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Alteration of the target database
 
   
 
|-
 
|-
  +
| get
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Filtered retrieval of state data and running config
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| get
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Filtered retrieval of state data and running
 
config
 
   
 
|-
 
|-
  +
| get-config
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Filtered retrieval of any NETCONF database
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| get-config
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Filtered retrieval of any NETCONF database
 
   
 
|-
 
|-
  +
| get-schema
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Get a data model definition file from the server
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| get-schema
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Get a data model definition file from the
 
server
 
   
 
|-
 
|-
  +
| kill-session
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Force close another NETCONF session
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| kill-session
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Force close another NETCONF session
 
   
 
|-
 
|-
  +
| lock
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Lock a NETCONF database that is currently unlocked
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| lock
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Lock a NETCONF database that is currently
 
unlocked
 
   
 
|-
 
|-
  +
| unlock
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Unlock a NETCONF database that is currently locked
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| unlock
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Unlock a NETCONF database that is currently
 
locked
 
   
 
|-
 
|-
  +
| validate
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Validate the contents of a NETCONF database
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| validate
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Validate the contents of a NETCONF database
 
   
 
|}
 
|}
The following '''yangcli''' commands are available for simplified access
+
The following '''yangcli''' commands are available for simplified access to standard NETCONF operations
to standard NETCONF operations
 
   
   
Line 857: Line 507:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| <center>'''command'''</center>
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| <center>'''description'''</center>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"|
 
<center>'''command'''</center>
 
|
 
<center>'''description'''</center>
 
   
 
|-
 
|-
  +
| create
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>Invoke an <edit-config> create operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| create
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>Invoke an <edit-config> create
 
operation</nowiki>
 
   
 
|-
 
|-
  +
| delete
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>Invoke an <edit-config> delete operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| delete
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>Invoke an <edit-config> delete
 
operation</nowiki>
 
   
 
|-
 
|-
  +
| get-locks
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>Lock all the databases with the <lock> operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| get-locks
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>Lock all the databases with the
 
<lock> operation</nowiki>
 
   
 
|-
 
|-
  +
| insert
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>Invoke an <edit-config> YANG insert operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| insert
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>Invoke an <edit-config> YANG insert
 
operation</nowiki>
 
   
 
|-
 
|-
  +
| merge
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>Invoke an <edit-config> merge operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| merge
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>Invoke an <edit-config> merge
 
operation</nowiki>
 
   
 
|-
 
|-
  +
| release-locks
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>Unlock all the locked databases with the <unlock> operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| release-locks
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>Unlock all the locked databases with
 
the <unlock> operation</nowiki>
 
   
 
|-
 
|-
  +
| remove
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>Invoke an <edit-config> remove operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| remove
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>Invoke an <edit-config> remove
 
operation</nowiki>
 
   
 
|-
 
|-
  +
| replace
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>Invoke an <edit-config> replace operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| replace
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>Invoke an <edit-config> replace
 
operation</nowiki>
 
   
 
|-
 
|-
  +
| save
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Save the current edits on the server in NV-storage
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| save
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Save the current edits on the server in
 
NV-storage
 
   
 
|-
 
|-
  +
| sget
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>Invoke a <get> operation with a subtree filter</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| sget
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>Invoke a <get> operation with a
 
subtree filter</nowiki>
 
   
 
|-
 
|-
  +
| sget-config
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>Invoke a <get-config> operation with a subtree filter</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| sget-config
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>Invoke a <get-config> operation with
 
a subtree filter</nowiki>
 
   
 
|-
 
|-
  +
| xget
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>Invoke a <get> operation with an XPath filter</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| xget
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>Invoke a <get> operation with an
 
XPath filter</nowiki>
 
   
 
|-
 
|-
  +
| xget-config
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>Invoke a <get-config> operation with an XPath filter</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| xget-config
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>Invoke a <get-config> operation with
 
an XPath filter</nowiki>
 
   
 
|}
 
|}
The following table shows the extended NETCONF protocol operations that
+
The following table shows the extended NETCONF protocol operations that are available on the '''netconfd''' server only.
are available on the '''netconfd''' server only.
 
   
   
Line 991: Line 571:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| <center>'''command'''</center>
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| <center>'''description'''</center>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"|
 
<center>'''command'''</center>
 
|
 
<center>'''description'''</center>
 
   
 
|-
 
|-
  +
| get-my-session
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Retrieve session customization parameters
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| get-my-session
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Retrieve session customization parameters
 
   
 
|-
 
|-
  +
| load
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Load a module into the server.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| load
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Load a module into the server.
 
   
 
|-
 
|-
  +
| no-op
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| No operation.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| no-op
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| No operation.
 
   
 
|-
 
|-
  +
| restart
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Restart the server.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| restart
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Restart the server.
 
   
 
|-
 
|-
  +
| set-log-level
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Set the server logging verbosity level.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| set-log-level
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Set the server logging verbosity level.
 
   
 
|-
 
|-
  +
| set-my-session
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Set session customization parameters.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| set-my-session
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Set session customization parameters.
 
   
 
|-
 
|-
  +
| shutdown
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Shutdown the server.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| shutdown
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Shutdown the server.
 
   
 
|}
 
|}
 
=== Variables ===
 
=== Variables ===
The '''yangcli''' program utilizes several types of user-accessible
+
The '''yangcli''' program utilizes several types of user-accessible variables. These variables can be listed with the ''''show vars'''' command and other commands as well.
variables. These variables can be listed with the ''''show vars''''
 
command and other commands as well.
 
   
A variable reference consists of 1 or 2 dollar signs ('$'), followed
+
A variable reference consists of 1 or 2 dollar signs ('$'), followed immediately by a valid identifier string (e.g., '''$$global-log''' or '''$local-log''').
immediately by a valid identifier string (e.g., '''$$global-log''' or
 
'''$local-log''').
 
   
Variables can be 1 or more characters in length, and follow the YANG
+
Variables can be 1 or more characters in length, and follow the YANG rules for identifier names. The first character must be a letter, 'A' to 'Z', or 'a' to 'z'. The 2<sup>nd</sup> to last characters can be a letter 'A' to 'Z', or 'a' to 'z', number ('0' to '9'), an underscore ('_'), a dash ('-'), or a period ('.') character.
rules for identifier names. The first character must be a letter, 'A' to
 
'Z', or 'a' to 'z'. The 2<sup>nd</sup> to last characters can be a
 
letter 'A' to 'Z', or 'a' to 'z', number ('0' to '9'), an underscore
 
('_'), a dash ('-'), or a period ('.') character.
 
   
   
Line 1,078: Line 618:
 
# Read-write local user variables
 
# Read-write local user variables
   
It is an error if a variable is referenced (in the right-hand-side of a
+
It is an error if a variable is referenced (in the right-hand-side of a statement) that does not exist.
statement) that does not exist.
 
   
   
The first 3 types are '''global variables''', which means that they are
+
The first 3 types are '''global variables''', which means that they are available to all run-levels of all scripts. The last type, called a '''local variable,''' is only visible to the current run-level of the current script (or interactive shell). Refer to the following section for more details on run levels.
available to all run-levels of all scripts. The last type, called a
 
'''local variable,''' is only visible to the current run-level of the
 
current script (or interactive shell). Refer to the following section
 
for more details on run levels.
 
   
   
Line 1,094: Line 629:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| <center>'''syntax'''</center>
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| <center>'''description'''</center>
#000000;border-left:0.5pt solid
 
  +
| <center>'''example'''</center>
#000000;border-right:none;padding:0.0382in;"|
 
<center>'''syntax'''</center>
 
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"|
 
<center>'''description'''</center>
 
|
 
<center>'''example'''</center>
 
   
 
|-
 
|-
  +
| <nowiki>$$<variable-name></nowiki>
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Left hand side: set the global variable to some value
#000000;border-left:0.5pt solid
 
  +
| $$saved_get = get
#000000;border-right:none;padding:0.0382in;"|
 
<nowiki>$$<variable-name></nowiki>
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Left hand side: set the
 
global variable to some value
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| $$saved_get = get
 
   
 
|-
 
|-
  +
| <nowiki>$$<variable-name></nowiki>
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Right hand side: access the value of a global variable
#000000;border-left:0.5pt solid
 
  +
| fill --target=\ $$mytarget
#000000;border-right:none;padding:0.0382in;"|
 
<nowiki>$$<variable-name></nowiki>
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Right hand side: access
 
the value of a global variable
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| fill --target=\ $$mytarget
 
   
 
|-
 
|-
  +
| <nowiki>$<variable-name></nowiki>
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Left hand side: set the local variable to some value
#000000;border-left:0.5pt solid
 
  +
| $myloglevel = \ $$log-level
#000000;border-right:none;padding:0.0382in;"|
 
<nowiki>$<variable-name></nowiki>
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Left hand side: set the
 
local variable to some value
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| $myloglevel = \ $$log-level
 
   
 
|-
 
|-
  +
| <nowiki>$<variable-name></nowiki>
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Right hand side: access the value of any variable with this name (try local, then global)
#000000;border-left:0.5pt solid
 
  +
| $myuser = $user
#000000;border-right:none;padding:0.0382in;"|
 
<nowiki>$<variable-name></nowiki>
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Right hand side: access
 
the value of any variable with this name (try local, then global)
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| $myuser = $user
 
   
 
|}
 
|}
The following table shows the '''unix''' environment variables that are
+
The following table shows the '''unix''' environment variables that are available as read-only global variables in '''yangcli'''. These variables are set once when the program is started, and cannot be used in the the left hand side of an assignment statement.
available as read-only global variables in '''yangcli'''. These
 
variables are set once when the program is started, and cannot be used
 
in the the left hand side of an assignment statement.
 
   
   
Line 1,169: Line 662:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| <center>'''variable'''</center>
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| <center>'''description'''</center>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"|
 
<center>'''variable'''</center>
 
|
 
<center>'''description'''</center>
 
   
 
|-
 
|-
  +
| $$HOME
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''HOME''' environment variable
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$HOME
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''HOME''' environment variable
 
   
 
|-
 
|-
  +
| $$HOSTNAME
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''HOST''' or '''HOSTNAME''' environment variable
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$HOSTNAME
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''HOST''' or '''HOSTNAME''' environment
 
variable
 
   
 
|-
 
|-
  +
| $$LANG
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''LANG''' environment variable
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$LANG
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''LANG''' environment variable
 
   
 
|-
 
|-
  +
| $$PWD
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''PWD''' environment variable, when '''yangcli''' was invoked
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$PWD
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''PWD''' environment variable, when
 
'''yangcli''' was invoked
 
   
 
|-
 
|-
  +
| $$SHELL
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''SHELL''' environment variable
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$SHELL
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''SHELL''' environment variable
 
   
 
|-
 
|-
  +
| $$USER
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''USER''' environment variable
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$USER
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''USER''' environment variable
 
   
 
|-
 
|-
  +
| $$YUMA_DATAPATH
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''YUMA_DATAPATH''' environment variable
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$YUMA_DATAPATH
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''YUMA_DATAPATH''' environment variable
 
   
 
|-
 
|-
  +
| $$YUMA_HOME
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''YUMA_HOME''' environment variable
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$YUMA_HOME
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''YUMA_HOME''' environment variable
 
   
 
|-
 
|-
  +
| $$YUMA_MODPATH
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''YUMA_MODPATH''' environment variable
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$YUMA_MODPATH
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''YUMA_MODPATH''' environment variable
 
   
 
|-
 
|-
  +
| $$YUMA_RUNPATH
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''YUMA_RUNPATH''' environment variable
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$YUMA_RUNPATH
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''YUMA_RUNPATH''' environment variable
 
   
 
|}
 
|}
The following table shows the CLI configuration parameters that can be
+
The following table shows the CLI configuration parameters that can be read or changed (but not deleted). If a particular parameter was not set during program invocation, then the associated variable will contain the empty string.
read or changed (but not deleted). If a particular parameter was not set
 
during program invocation, then the associated variable will contain the
 
empty string.
 
   
   
Line 1,270: Line 714:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| <center>'''variable'''</center>
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| <center>'''description'''</center>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"|
 
<center>'''variable'''</center>
 
|
 
<center>'''description'''</center>
 
   
 
|-
 
|-
  +
| $$alt-names
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''–alt-names''' configuration parameter
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$alt-names
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''–alt-names''' configuration parameter
 
   
 
|-
 
|-
  +
| $$autocomp
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the -'''-autocomp''' configuration parameter
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$autocomp
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the -'''-autocomp''' configuration parameter
 
   
 
|-
 
|-
  +
| $$autoload
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''--autoload''' configuration parameter
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$autoload
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''--autoload''' configuration parameter
 
   
 
|-
 
|-
  +
| $$baddata
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''--baddata''' configuration parameter
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$baddata
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''--baddata''' configuration parameter
 
   
 
|-
 
|-
  +
| $$default-module
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''--default-module''' configuration parameter
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$default-module
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''--default-module''' configuration
 
parameter
 
   
 
|-
 
|-
  +
| $$default-operation
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>the <default-operation> parameter for the <edit-config> operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$default-operation
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>the <default-operation> parameter
 
for the <edit-config> operation</nowiki>
 
   
 
|-
 
|-
  +
| $$display-mode
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''--display-mode''' configuration parameter
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$display-mode
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''--display-mode''' configuration
 
parameter
 
   
 
|-
 
|-
  +
| $$error-option
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>the default <error-option> parameter for the <edit-config> operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$error-option
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>the default <error-option> parameter
 
for the <edit-config> operation</nowiki>
 
   
 
|-
 
|-
  +
| $$fixorder
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''--fixorder''' configuration parameter
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$fixorder
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''--fixorder''' configuration parameter
 
   
 
|-
 
|-
  +
| $$indent
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''–indent''' configuration parameter
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$indent
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''–indent''' configuration parameter
 
   
 
|-
 
|-
  +
| $$log-level
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''--log-level''' configuration parameter
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$log-level
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''--log-level''' configuration
 
parameter
 
   
 
|-
 
|-
  +
| $$match-names
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''–match-names''' configuration parameter
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$match-names
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''–match-names''' configuration
 
parameter
 
   
 
|-
 
|-
  +
| $$optional
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''--optional''' configuration parameter
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$optional
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''--optional''' configuration parameter
 
   
 
|-
 
|-
  +
| $$server
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''--server''' configuration parameter
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$server
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''--server''' configuration parameter
 
   
 
|-
 
|-
  +
| $$test-option
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>the <test-option> parameter for the <edit-config> operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$test-option
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>the <test-option> parameter for the
 
<edit-config> operation</nowiki>
 
   
 
|-
 
|-
  +
| $$time-rpcs
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''–time-rpcs''' configuration parameter
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$time-rpcs
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''–time-rpcs''' configuration parameter
 
   
 
|-
 
|-
  +
| $$timeout
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''--timeout''' configuration parameter
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$timeout
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''--timeout''' configuration parameter
 
   
 
|-
 
|-
  +
| $$use-xmlheader
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''–use-xmlheader '''configuration parameter
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$use-xmlheader
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''–use-xmlheader '''configuration
 
parameter
 
   
 
|-
 
|-
  +
| $$user
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''--user''' configuration parameter
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$user
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''--user''' configuration parameter
 
   
 
|-
 
|-
  +
| $$with-defaults
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| the '''--with-defaults''' configuration parameter
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| $$with-defaults
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| the '''--with-defaults''' configuration
 
parameter
 
   
 
|}
 
|}
Line 1,450: Line 801:
   
   
If a unrecognized global variable (e.g., $$foo) is used in the left-hand
+
If a unrecognized global variable (e.g., $$foo) is used in the left-hand side of an assignment statement, then a global user variable will be created with that name. If the global user variable already exists, then its value will be overwritten.
side of an assignment statement, then a global user variable will be
 
created with that name. If the global user variable already exists, then
 
its value will be overwritten.
 
   
The '''uservars''' command can be used to load or store these variables
+
The '''uservars''' command can be used to load or store these variables so they are loaded at boot-time. By default, the XML file used to store these variables is '''$HOME/.yuma/yangcli_uservars.xml'''.
so they are loaded at boot-time. By default, the XML file used to store
 
these variables is '''$HOME/.yuma/yangcli_uservars.xml'''.
 
   
   
Line 1,463: Line 809:
   
   
  +
If a local variable (e.g., $foo) is used in the left-hand side of an assignment statement, then a local user variable will be created with that name. If the local user variable already exists, then its value will be overwritten. If the variable is created within a script (i.e., run-level greater than zero), then it will be deleted when the script exits.
If a local variable (e.g., $foo) is used in the left-hand side of an
 
assignment statement, then a local user variable will be created with
 
that name. If the local user variable already exists, then its value
 
will be overwritten. If the variable is created within a script (i.e.,
 
run-level greater than zero), then it will be deleted when the script
 
exits.
 
   
   
 
=== Files ===
 
=== Files ===
File contents can be used in '''yangcli''' statements, similar to user
+
File contents can be used in '''yangcli''' statements, similar to user variables.
variables.
 
   
A file reference consist of the 'at-sign' character ('@') followed
+
A file reference consist of the 'at-sign' character ('@') followed immediately by a valid file specification.
immediately by a valid file specification.
 
   
   
@foo.yang = get-schema --identifier=foo --version=””
+
@foo.yang = get-schema --identifier=foo --version=”” --format=”YANG”
--format=”YANG”
 
   
 
mgrload --module=foo
 
mgrload --module=foo
   
   
  +
If the file extension is “'''.yang'''”, “'''.log'''”, “'''.txt'''”, or “'''.text'''”, then the value (or command output) will be saved, and yangcli will strip off the outermost XML (if needed) to save the requested file as a pure text file. Otherwise, the file will be saved in XML format. The display mode set by the user can affect XML output. If the display mode i s'xml-nons' then XML without namespace (xmlns) attributes will be generated instead of normal XML.
If the file extension is “'''.yang'''”, “'''.log'''”, “'''.txt'''”, or
 
“'''.text'''”, then the value (or command output) will be saved, and
 
yangcli will strip off the outermost XML (if needed) to save the
 
requested file as a pure text file. Otherwise, the file will be saved in
 
XML format. The display mode set by the user can affect XML output. If
 
the display mode i s'xml-nons' then XML without namespace (xmlns)
 
attributes will be generated instead of normal XML.
 
   
Note: The '''--display-mode''' configuration parameter, and
+
Note: The '''--display-mode''' configuration parameter, and '''$$display-mode''' system variable, only affect the output and display of data in the yangcli program. NETCONF protocol messages are always sent in 'xml' mode.
'''$$display-mode''' system variable, only affect the output and display
 
of data in the yangcli program. NETCONF protocol messages are always
 
sent in 'xml' mode.
 
   
 
Files may also be used as parameter replacements, within a command.
 
Files may also be used as parameter replacements, within a command.
   
   
$saved_get = get [mailto:--filter%3D@filter.xml
+
$saved_get = get [mailto:--filter%3D@filter.xml --filter=@filter.xml] --with-defaults=explicit
--filter=@filter.xml] --with-defaults=explicit
 
   
   
Line 1,508: Line 836:
   
 
=== Scripts ===
 
=== Scripts ===
Any command can be entered at the interactive shell, or stored in a
+
Any command can be entered at the interactive shell, or stored in a script file, and invoked with the ''''run'''' command. Scripts are simply text files, and the extension used does not matter.
script file, and invoked with the ''''run'''' command. Scripts are
 
simply text files, and the extension used does not matter.
 
   
There are no formal templates for scripts, like there are for RPC
+
There are no formal templates for scripts, like there are for RPC operations, at this time. Instead, positional parameters can be passed to any script.
operations, at this time. Instead, positional parameters can be passed
 
to any script.
 
   
The parameters named '''--P1''' to '''--P9''' allow up to 9 parameters
+
The parameters named '''--P1''' to '''--P9''' allow up to 9 parameters to be passed to any script. Within each script, the numbered parameters ''''$1'''' to ''''$9'''' are available, and contain the value that was passed as the corresponding ---Pn” parameter when calling the script.
to be passed to any script. Within each script, the numbered parameters
 
''''$1'''' to ''''$9'''' are available, and contain the value that was
 
passed as the corresponding ---Pn” parameter when calling the script.
 
   
If a line contains only optional whitespace, followed by the pound sign
+
If a line contains only optional whitespace, followed by the pound sign character '#', then the line is treated as a comment. These lines will be skipped.
character '#', then the line is treated as a comment. These lines will
 
be skipped.
 
   
<nowiki>If an error occurs during a command within a script, or an
+
<nowiki>If an error occurs during a command within a script, or an <rpc-error> is received from the server during a NETCONF session, then the running script will be canceled, and if this was a nested script, then all parent scripts will also be canceled.</nowiki>
<rpc-error> is received from the server during a NETCONF session, then
 
the running script will be canceled, and if this was a nested script,
 
then all parent scripts will also be canceled.</nowiki>
 
   
   
Line 1,550: Line 866:
 
The '''run''' command can appear in a script.
 
The '''run''' command can appear in a script.
   
  +
When '''yangcli''' starts up, either in interactive mode or in batch mode, the script interpreter is at run level zero. Each time a '''run''' command is invoked, either at the command line or within a script currently being invoked, a new run level with the next higher value is assigned. Local variables are only visible within the current run level.
When '''yangcli''' starts up, either in interactive mode or in batch
 
mode, the script interpreter is at run level zero. Each time a '''run'''
 
command is invoked, either at the command line or within a script
 
currently being invoked, a new run level with the next higher value is
 
assigned. Local variables are only visible within the current run level.
 
   
 
A maximum of 512 run levels are supported in '''yangcli'''.
 
A maximum of 512 run levels are supported in '''yangcli'''.
   
Scripts can be called recursively, but a stop condition needs to be used
+
Scripts can be called recursively, but a stop condition needs to be used to break the recursion (e.g., call the script from within a conditional code block.
to break the recursion (e.g., call the script from within a conditional
 
code block.
 
   
   
Line 1,566: Line 876:
   
   
The 'if', 'elif', 'else', and 'end' commands are used to create an 'if
+
The 'if', 'elif', 'else', and 'end' commands are used to create an 'if command sequence'.
command sequence'.
 
   
Any other commands that appear between these commands are part of a
+
Any other commands that appear between these commands are part of a conditional command block.
conditional command block.
 
   
These blocks can be nested. The current conditional state is inherited,
+
These blocks can be nested. The current conditional state is inherited, so an if command sequence within a false conditional block will not be executed. A block can contain zero or more command lines,
so an if command sequence within a false conditional block will not be
 
executed. A block can contain zero or more command lines,
 
   
These command work exactly like an 'if' expression within a program
+
These command work exactly like an 'if' expression within a program language such as Python. Note that indentation is not significant, but it may be used to make scripts more readable.
language such as Python. Note that indentation is not significant, but
 
it may be used to make scripts more readable.
 
   
The 'if' command starts a new if-command sequence. It is followed by a
+
The 'if' command starts a new if-command sequence. It is followed by a conditional command block. This block ends when an 'elif', 'else', or 'end' command within the same if command block is encountered.
conditional command block. This block ends when an 'elif', 'else', or
 
'end' command within the same if command block is encountered.
 
   
At most, only one conditional code block within the if command sequence
+
At most, only one conditional code block within the if command sequence will be executed. Once a conditional command block has been exectuted, any remaining blocks will be skipped.
will be executed. Once a conditional command block has been exectuted,
 
any remaining blocks will be skipped.
 
   
All user and system variables that are available to the current script
+
All user and system variables that are available to the current script run level can be used within the XPath expressions for determining the conditional block state (true or false).
run level can be used within the XPath expressions for determining the
 
conditional block state (true or false).
 
   
   
Line 1,596: Line 894:
   
   
The 'while' and 'end' commands are used to create an 'while loop
+
The 'while' and 'end' commands are used to create an 'while loop sequence'.
sequence'.
 
   
Any other commands that appear between these commands are part of a
+
Any other commands that appear between these commands are part of a conditional command loop block.
conditional command loop block.
 
   
These blocks can be nested. The current conditional state is inherited,
+
These blocks can be nested. The current conditional state is inherited, so a while loop sequence within a false conditional block will not be executed. A block can contain zero or more command lines,
so a while loop sequence within a false conditional block will not be
 
executed. A block can contain zero or more command lines,
 
   
The loop condition can be a constant expression. The maxloops parameter
+
The loop condition can be a constant expression. The maxloops parameter will prevent infinite looping, and can be utilized to use the while loop sequence as a simple 'for' loop, iterating a specific number of times.
will prevent infinite looping, and can be utilized to use the while loop
 
sequence as a simple 'for' loop, iterating a specific number of times.
 
   
All user and system variables that are available to the current script
+
All user and system variables that are available to the current script run level can be used within the XPath expressions for determining the conditional block state (continue or terminate loop).
run level can be used within the XPath expressions for determining the
 
conditional block state (continue or terminate loop).
 
   
   
Line 1,653: Line 943:
   
 
=== Configuration Parameter List ===
 
=== Configuration Parameter List ===
The following configuration parameters are used by '''yangcli'''. Refer
+
The following configuration parameters are used by '''yangcli'''. Refer to the CLI Reference for more details.
to the CLI Reference for more details.
 
   
   
Line 1,662: Line 951:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| <center>'''parameter'''</center>
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| <center>'''description'''</center>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"|
 
<center>'''parameter'''</center>
 
|
 
<center>'''description'''</center>
 
   
 
|-
 
|-
  +
| --aliases-file
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specifies the command aliases file to use.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --aliases-file
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies the command aliases file to use.
 
   
 
|-
 
|-
  +
| --alt-names
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Controls whether alternate names will be checked for UrlPath searches.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --alt-names
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Controls whether alternate names will be
 
checked for UrlPath searches.
 
   
 
|-
 
|-
  +
| --autoaliases
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Controls automatic loading and saving of the command aliases
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --autoaliases
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Controls automatic loading and saving of the
 
command aliases
 
   
 
|-
 
|-
  +
| --autocomp
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Controls whether partial commands are allowed or not.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --autocomp
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Controls whether partial commands are
 
allowed or not.
 
   
 
|-
 
|-
  +
| --autohistory
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Controls whether th command line history buffer will be automatically loaded at startup and saved on exit.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --autohistory
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Controls whether th command line history
 
buffer will be automatically loaded at startup and saved on exit.
 
   
 
|-
 
|-
  +
| --autoload
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Controls whether modules used by the server will be loaded automatically, as needed.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --autoload
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Controls whether modules used by the server
 
will be loaded automatically, as needed.
 
   
 
|-
 
|-
  +
| --autouservars
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Controls automatic loading and saving of the global user variables
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --autouservars
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Controls automatic loading and saving of the
 
global user variables
 
   
 
|-
 
|-
  +
| --bad-data
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Controls how bad data about to be sent to the server is handled.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --bad-data
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Controls how bad data about to be sent to
 
the server is handled.
 
   
 
|-
 
|-
  +
| --batch-mode
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Indicates the interactive shell should not be used.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --batch-mode
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Indicates the interactive shell should not
 
be used.
 
   
 
|-
 
|-
  +
| --config
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specifies the configuration file to use for parameters.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --config
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies the configuration file to use for
 
parameters.
 
   
 
|-
 
|-
  +
| --datapath
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Sets the data file search path.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --datapath
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Sets the data file search path.
 
   
 
|-
 
|-
  +
| --default-module
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specifies the default module to use to resolve identifiers.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --default-module
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies the default module to use to
 
resolve identifiers.
 
   
 
|-
 
|-
  +
| --deviation
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Species one or more YANG modules to load as deviations.`
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --deviation
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Species one or more YANG modules to load as
 
deviations.`
 
   
 
|-
 
|-
  +
| --display-mode
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specifies how values should be displayed.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --display-mode
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies how values should be displayed.
 
   
 
|-
 
|-
  +
| --echo-replies
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Controls whether RPC replies will be displayed in the log output, if log-level >= 'info'
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --echo-replies
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Controls whether RPC replies will be
 
displayed in the log output, if log-level >= 'info'
 
   
 
|-
 
|-
  +
| --echo-requests
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Controls whether RPC requests will be displayed in the log output, if log-level >= 'info'
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --feature-disable
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Leaf list of features to disable
 
   
 
|-
 
|-
  +
| --feature-disable
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Leaf list of features to disable
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --feature-enable
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies a feature that should be enabled
 
   
 
|-
 
|-
  +
| --feature-enable
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specifies a feature that should be enabled
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --feature-enable-default
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies if a feature should be enabled or
 
disabled by default
 
   
 
|-
 
|-
  +
| --feature-enable-default
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specifies if a feature should be enabled or disabled by default
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --fixorder
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Controls whether PDUs are changed to
 
canonical order before sending them to the server.
 
   
 
|-
 
|-
  +
| --fixorder
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Controls whether PDUs are changed to canonical order before sending them to the server.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --force-target
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Controls whether the candidate or running
 
configuration datastore will be used as the default edit target, when
 
both are supported by the server.
 
   
 
|-
 
|-
  +
| --force-target
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Controls whether the candidate or running configuration datastore will be used as the default edit target, when both are supported by the server.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --help
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Get program help.
 
   
 
|-
 
|-
  +
| --help
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Get program help.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --help-mode
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Adjust the help output (--brief or --full).
 
   
 
|-
 
|-
  +
| --help-mode
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Adjust the help output (--brief or --full).
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --home
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Override the $HOME environment variable.
 
   
 
|-
 
|-
  +
| --home
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Override the $HOME environment variable.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --indent
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies the indent count to use when
 
writing data.
 
   
 
|-
 
|-
  +
| --indent
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specifies the indent count to use when writing data.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --log
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies the log file to use instead of
 
STDOUT.
 
   
 
|-
 
|-
  +
| --log
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specifies the log file to use instead of STDOUT.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --log-append
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Controls whether a log file will be reused
 
or overwritten.
 
   
 
|-
 
|-
  +
| --log-append
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Controls whether a log file will be reused or overwritten.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --log-level
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Controls the verbosity of logging messages.
 
   
 
|-
 
|-
  +
| --log-level
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Controls the verbosity of logging messages.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --match-names
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Match mode to use for UrlPath searches
 
   
 
|-
 
|-
  +
| --match-names
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Match mode to use for UrlPath searches
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --modpath
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Sets the module search path.
 
   
 
|-
 
|-
  +
| --modpath
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Sets the module search path.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --module
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies one or more YANG modules to load
 
upon startup.
 
   
 
|-
 
|-
  +
| --module
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specifies one or more YANG modules to load upon startup.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --ncport
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies the NETCONF server port number to
 
use in the '''connect''' command.
 
   
 
|-
 
|-
  +
| --ncport
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specifies the NETCONF server port number to use in the '''connect''' command.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --password
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies the password to use in the
 
'''connect''' command.
 
   
 
|-
 
|-
  +
| --password
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specifies the password to use in the '''connect''' command.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --private-key
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Contains the file path specification for the
 
file containing the client-side private key.
 
   
 
|-
 
|-
  +
| --private-key
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Contains the file path specification for the file containing the client-side private key.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --protocols
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Controls which NETCONF protocol versions
 
will be enabled
 
   
 
|-
 
|-
  +
| --protocols
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Controls which NETCONF protocol versions will be enabled
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --public-key
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Contains the file path specification for the
 
file containing the client-side public key.
 
   
 
|-
 
|-
  +
| --public-key
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Contains the file path specification for the file containing the client-side public key.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --runpath
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Sets the executable file search path.
 
   
 
|-
 
|-
  +
| --runpath
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Sets the executable file search path.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --run-command
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies the command to run at startup
 
time.
 
   
 
|-
 
|-
  +
| --run-command
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specifies the command to run at startup time.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --run-script
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies the script to run at startup time.
 
   
 
|-
 
|-
  +
| --run-script
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specifies the script to run at startup time.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --server
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies the server address to use in the
 
'''connect''' command.
 
   
 
|-
 
|-
  +
| --server
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specifies the server address to use in the '''connect''' command.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --subdirs
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies whether child sub-directories
 
should be searched when looking for files.
 
   
 
|-
 
|-
  +
| --subdirs
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specifies whether child sub-directories should be searched when looking for files.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --time-rpcs
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>Measure the round-trip time of each
 
<rpc> request</nowiki> <nowiki>and <rpc-reply> at the session
 
level.</nowiki>
 
   
 
|-
 
|-
  +
| --time-rpcs
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>Measure the round-trip time of each <rpc> request</nowiki> <nowiki>and <rpc-reply> at the session level.</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --timeout
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies the timeout to use in the
 
'''connect''' command.
 
   
 
|-
 
|-
  +
| --timeout
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specifies the timeout to use in the '''connect''' command.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --transport
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specified the transport protocol to use (ssh
 
or tcp)
 
   
 
|-
 
|-
  +
| --transport
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specified the transport protocol to use (ssh or tcp)
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --use-xmlheader
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies how file result variables will be
 
written for XML files. Controls whether the XML preamble header will be
 
written or not.
 
   
 
|-
 
|-
  +
| --use-xmlheader
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specifies how file result variables will be written for XML files. Controls whether the XML preamble header will be written or not.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --user
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| The default user name for NETCONF sessions.
 
   
 
|-
 
|-
  +
| --user
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| The default user name for NETCONF sessions.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --uservars-file
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies the global user variable files to
 
load.
 
   
 
|-
 
|-
  +
| --uservars-file
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Specifies the global user variable files to load.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --version
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Prints the program version and exits.
 
   
 
|-
 
|-
  +
| --version
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Prints the program version and exits.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --warn-idlen
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Controls how identifier lengths are checked.
 
   
 
|-
 
|-
  +
| --warn-idlen
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Controls how identifier lengths are checked.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --warn-linelen
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Controls how line lengths are checked.
 
   
 
|-
 
|-
  +
| --warn-linelen
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Controls how line lengths are checked.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| --warn-off
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Suppresses the specified warning number.
 
   
 
|-
 
|-
  +
| --warn-off
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Suppresses the specified warning number.
#000000;border-left:0.5pt solid
 
  +
#000000;border-right:none;padding:0.0382in;"| --yuma-home
 
  +
|-
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| --yuma-home
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Specifies the '''$YUMA_HOME''' project root
+
| Specifies the '''$YUMA_HOME''' project root to use when searching for files.
to use when searching for files.
 
   
 
|}
 
|}
  +
 
== Invoking Commands ==
 
== Invoking Commands ==
 
Commands can be entered with parameters:
 
Commands can be entered with parameters:
Line 2,127: Line 1,177:
 
merge target=/toaster/toastControl<br/> (will be prompted for value)
 
merge target=/toaster/toastControl<br/> (will be prompted for value)
   
When a command is entered, and the yangcli script interpreter is running
+
When a command is entered, and the yangcli script interpreter is running in interactive mode ('''--batch-mode''' not active), then the user will be prompted for any missing mandatory parameters.
in interactive mode ('''--batch-mode''' not active), then the user will
 
be prompted for any missing mandatory parameters.
 
   
If the '''--optional''' parameter is present (or the '''$$optional'''
+
If the '''--optional''' parameter is present (or the '''$$optional''' system variable is set to 'true'), then the user will be prompted for any optional parameters that are missing.
system variable is set to 'true'), then the user will be prompted for
 
any optional parameters that are missing.
 
   
 
A command has the basic form:
 
A command has the basic form:
   
'''<nowiki><name (QName)> </nowiki><nowiki><parameter (any YANG
+
'''<nowiki><name (QName)> </nowiki><nowiki><parameter (any YANG type)>*</nowiki>'''
type)>*</nowiki>'''
 
   
The command name is a qualified name matching the name used in the YANG
+
The command name is a qualified name matching the name used in the YANG rpc statement. This is followed by zero or more parameters (in any order).
rpc statement. This is followed by zero or more parameters (in any
 
order).
 
   
A command parameter has the same syntax as a CLI configuration
+
A command parameter has the same syntax as a CLI configuration parameter.
parameter.
 
   
 
The command name syntax is described below.
 
The command name syntax is described below.
   
An un-escaped end-of-line character ('enter key') terminates command
+
An un-escaped end-of-line character ('enter key') terminates command line input.
line input.
 
   
 
=== Command Prompt ===
 
=== Command Prompt ===
Line 2,159: Line 1,200:
   
   
If the script interpreter is idle and there is no NETCONF session
+
If the script interpreter is idle and there is no NETCONF session active, then the prompt is simply the program name:
active, then the prompt is simply the program name:
 
   
   
Line 2,166: Line 1,206:
   
   
<nowiki>If the script interpreter is idle and there is a NETCONF session
+
<nowiki>If the script interpreter is idle and there is a NETCONF session active, then the prompt is the program name, followed by ' <user>@<server>', depending on the parameters used in the </nowiki>'''connect''' command:
active, then the prompt is the program name, followed by '
 
<user>@<server>', depending on the parameters used in the
 
</nowiki>'''connect''' command:
 
   
   
Line 2,178: Line 1,215:
   
   
If a backslash, end-of-line sequence ended the previous line, the prompt
+
If a backslash, end-of-line sequence ended the previous line, the prompt will simply be the word 'more' indented 3 spaces:
will simply be the word 'more' indented 3 spaces:
 
   
   
Line 2,186: Line 1,222:
   
   
The 'more>' prompt will continue if the new line also ends in with an
+
The 'more>' prompt will continue if the new line also ends in with an escaped end-of-line. When a new line is finally terminated, all the fragments are spliced together and delivered as one command line.
escaped end-of-line. When a new line is finally terminated, all the
 
fragments are spliced together and delivered as one command line.
 
   
   
Note: context-sensitive command completion is not available in this
+
Note: context-sensitive command completion is not available in this mode.
mode.
 
   
   
Line 2,198: Line 1,231:
   
   
  +
If a partial command has been entered in interactive mode, and the script interpreter needs to prompt for a YANG 'choice' parameter, then a list of numbered cases will be presented, and the prompt will be the same as it was before (depending on whether a NETCONF session is active or not), except a colon character (':'), followed by the command name, will be added at the end. As long as parameters for the same command are being entered (i.e., prompted for child nodes within a selected case, the command name will be appended to the prompt.
If a partial command has been entered in interactive mode, and the
 
script interpreter needs to prompt for a YANG 'choice' parameter, then a
 
list of numbered cases will be presented, and the prompt will be the
 
same as it was before (depending on whether a NETCONF session is active
 
or not), except a colon character (':'), followed by the command name,
 
will be added at the end. As long as parameters for the same command are
 
being entered (i.e., prompted for child nodes within a selected case,
 
the command name will be appended to the prompt.
 
   
   
Line 2,226: Line 1,252:
   
   
<nowiki>If a partial command has been entered in interactive mode, and
+
<nowiki>If a partial command has been entered in interactive mode, and the script interpreter needs to prompt for a leaf or leaf-list, then the parameter name will appear in angle brackets ('<' and '>').</nowiki>
the script interpreter needs to prompt for a leaf or leaf-list, then the
 
parameter name will appear in angle brackets ('<' and '>').</nowiki>
 
   
 
Filling mandatory case /sget/input/from/from-cli:
 
Filling mandatory case /sget/input/from/from-cli:
Line 2,235: Line 1,259:
   
   
  +
If the ''''ncx:password'''' extension is part of the YANG definition for the leaf or leaf-list, then the characters entered at the prompt in this mode will not be echoed, and they will not be saved in the command history buffer. Any default value will not be printed either. Instead, 4 asterisks '****' will be printed, even though the correct value will be used in the command.
If the ''''ncx:password'''' extension is part of the YANG definition for
 
the leaf or leaf-list, then the characters entered at the prompt in this
 
mode will not be echoed, and they will not be saved in the command
 
history buffer. Any default value will not be printed either. Instead, 4
 
asterisks '****' will be printed, even though the correct value will be
 
used in the command.
 
   
<nowiki>If a default value is available, it will appear in square
+
<nowiki>If a default value is available, it will appear in square brackets ('[' and ']'). In this case, entering 'return' will not be interpreted as an empty string, but rather the default value that was presented.</nowiki>
brackets ('[' and ']'). In this case, entering 'return' will not be
 
interpreted as an empty string, but rather the default value that was
 
presented.</nowiki>
 
   
 
yangcli> connect
 
yangcli> connect
Line 2,265: Line 1,281:
   
   
Note: After a NETCONF session is terminated for any reason, the
+
Note: After a NETCONF session is terminated for any reason, the connection parameters will be remembered , and presented as defaults the next time the connect command is entered.
connection parameters will be remembered , and presented as defaults the
 
next time the connect command is entered.
 
   
   
Line 2,273: Line 1,287:
   
   
  +
If a conditional command (if, elif, else, or while command) is active, but the conditional expression is false, then any commands defined within that conditional block will not be executed. <nowiki>If this occurs in interactive mode instead of a script, the string '[F]' will be added to the command prompt. </nowiki>Note that the 'help' and 'log-info' commands do not get executed in the following example:
If a conditional command (if, elif, else, or while command) is active,
 
but the conditional expression is false, then any commands defined
 
within that conditional block will not be executed. <nowiki>If this
 
occurs in interactive mode instead of a script, the string '[F]' will be
 
added to the command prompt. </nowiki>Note that the 'help' and
 
'log-info' commands do not get executed in the following example:
 
   
   
Line 2,299: Line 1,308:
   
   
If there is a prefix (e.g., 'nc:get'), then it needs to be one of the
+
If there is a prefix (e.g., 'nc:get'), then it needs to be one of the XML prefixes in use at the time. Use the 'show modules' command to see the modules and prefixes in use. The YANG prefix will usually be the same as the XML prefix, but not always.
XML prefixes in use at the time. Use the 'show modules' command to see
 
the modules and prefixes in use. The YANG prefix will usually be the
 
same as the XML prefix, but not always.
 
   
XML prefixes are required to be unique, so if any 2 YANG modules pick
+
XML prefixes are required to be unique, so if any 2 YANG modules pick the same prefix, then 1 of them has to be changed for XML encoding purposes.
the same prefix, then 1 of them has to be changed for XML encoding
 
purposes.
 
   
If the '''--default-module''' configuration parameter (or
+
If the '''--default-module''' configuration parameter (or '''$$default-module''' system variable) is set, it will be used to resolve a command name without any prefix, if it is not a NETCONF or '''yangcli''' command.
'''$$default-module''' system variable) is set, it will be used to
 
resolve a command name without any prefix, if it is not a NETCONF or
 
'''yangcli''' command.
 
   
An error message will be printed if the command entered cannot be found
+
An error message will be printed if the command entered cannot be found in any YANG module, or if there are multiple commands that match the same string.
in any YANG module, or if there are multiple commands that match the
 
same string.
 
   
   
 
=== ncx:default-parm Extension ===
 
=== ncx:default-parm Extension ===
Each command may define a default parameter, by placing an
+
Each command may define a default parameter, by placing an ''''ncx:default-parm'''' extension in the rpc input section in the YANG rpc statement. This extension allows less typing in '''yangcli''' to accomplish the same thing.
''''ncx:default-parm'''' extension in the rpc input section in the YANG
 
rpc statement. This extension allows less typing in '''yangcli''' to
 
accomplish the same thing.
 
   
If the script interpreter encounters a string in the command line that
+
If the script interpreter encounters a string in the command line that is not a recognized parameter for that command, and there is a default parameter defined, then the string will be used as a value for the default parameter.
is not a recognized parameter for that command, and there is a default
 
parameter defined, then the string will be used as a value for the
 
default parameter.
 
   
For example, the 'show' parameter is the default parameter for the
+
For example, the 'show' parameter is the default parameter for the 'history' command, so both of these commands will be interpreted to mean the same thing:
'history' command, so both of these commands will be interpreted to mean
 
the same thing:
 
   
   
Line 2,338: Line 1,329:
   
   
Note: the default parameter does not allow the wrong form of a parameter
+
Note: the default parameter does not allow the wrong form of a parameter type to be entered, to accept the default for that parameter. For example, the 'show' parameter above has a default value of '25':
type to be entered, to accept the default for that parameter. For
 
example, the 'show' parameter above has a default value of '25':
 
   
   
Line 2,350: Line 1,339:
   
   
The following table shows the default parameters that are available at
+
The following table shows the default parameters that are available at this time.
this time.
 
   
   
Line 2,359: Line 1,347:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| <center>'''command'''</center>
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| <center>'''default parameter'''</center>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"|
 
<center>'''command'''</center>
 
|
 
<center>'''default parameter'''</center>
 
   
 
|-
 
|-
  +
| alias
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| var
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| alias
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| var
 
   
 
|-
 
|-
  +
| aliases
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| show
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| aliases
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| show
 
   
 
|-
 
|-
  +
| cd
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| dir
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| cd
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| dir
 
   
 
|-
 
|-
  +
| connect
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| server
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| connect
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| server
 
   
 
|-
 
|-
  +
| create
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| target
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| create
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| target
 
   
 
|-
 
|-
  +
| elif
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| expr
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| elif
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| expr
 
   
 
|-
 
|-
  +
| else
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| expr
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| else
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| expr
 
   
 
|-
 
|-
  +
| if
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| expr
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| if
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| expr
 
   
 
|-
 
|-
  +
| eventlog
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| show
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| eventlog
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| show
 
   
 
|-
 
|-
  +
| fill
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| target
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| fill
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| target
 
   
 
|-
 
|-
  +
| help
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| command
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| help
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| command
 
   
 
|-
 
|-
  +
| history
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| show
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| history
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| show
 
   
 
|-
 
|-
  +
| insert
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| target
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| insert
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| target
 
   
 
|-
 
|-
  +
| load
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| module
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| load
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| module
 
   
 
|-
 
|-
  +
| log-debug
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| msg
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| log-debug
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| msg
 
   
 
|-
 
|-
  +
| log-error
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| msg
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| log-error
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| msg
 
   
 
|-
 
|-
  +
| log-info
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| msg
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| log-info
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| msg
 
   
 
|-
 
|-
  +
| log-warn
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| msg
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| log-warn
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| msg
 
   
 
|-
 
|-
  +
| merge
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| target
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| merge
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| target
 
   
 
|-
 
|-
  +
| mgrload
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| module
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| mgrload
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| module
 
   
 
|-
 
|-
  +
| recall
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| index
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| recall
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| index
 
   
 
|-
 
|-
  +
| replace
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| target
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| replace
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| target
 
   
 
|-
 
|-
  +
| run
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| script
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| run
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| script
 
   
 
|-
 
|-
  +
| set-log-level
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| log-level
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| set-log-level
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| log-level
 
   
 
|-
 
|-
  +
| sget
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| target
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| sget
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| target
 
   
 
|-
 
|-
  +
| sget-config
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| target
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| sget-config
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| target
 
   
 
|-
 
|-
  +
| xget
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| select
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| xget
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| select
 
   
 
|-
 
|-
  +
| xget-config
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| select
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| xget-config
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| select
 
   
 
|-
 
|-
  +
| while
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| expr
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| while
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| expr
 
   
 
|}
 
|}
 
=== Parameter Mode Escape Commands ===
 
=== Parameter Mode Escape Commands ===
There are 4 escape sequence commands that can be used while entering
+
There are 4 escape sequence commands that can be used while entering parameters.
parameters.
 
   
They all begin with the question mark character ('?'), and end with the
+
They all begin with the question mark character ('?'), and end with the 'Enter' key.
'Enter' key.
 
   
Control key sequences are not used because that would interfere with
+
Control key sequences are not used because that would interfere with command line editing keys.
command line editing keys.
 
   
   
Line 2,615: Line 1,480:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| <center>'''escape sequence'''</center>
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| <center>'''description'''</center>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| <center>'''escape
 
sequence'''</center>
 
|
 
<center>'''description'''</center>
 
   
 
|-
 
|-
  +
| ?
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Print some help text
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| ?
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Print some help text
 
   
 
|-
 
|-
  +
| ??
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Get all available help text
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| ??
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Get all available help text
 
   
 
|-
 
|-
  +
| ?s
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Skip this parameter
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| ?s
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Skip this parameter
 
   
 
|-
 
|-
  +
| ?c
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| Cancel this command
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| ?c
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| Cancel this command
 
   
 
|}
 
|}
  +
Note: If the current parameter is considered hidden ('''ncx:hidden''' extension used in the YANG definition), then no help will be available for the parameter, even though it is accessible. This also apples to the '''help''' command. Any command or parameter designated as''' ncx:hidden''' will be treated as an unknown identifier, and no help will be given.
Note: If the current parameter is considered hidden ('''ncx:hidden'''
 
extension used in the YANG definition), then no help will be available
 
for the parameter, even though it is accessible. This also apples to the
 
'''help''' command. Any command or parameter designated as'''
 
ncx:hidden''' will be treated as an unknown identifier, and no help will
 
be given.
 
   
Note: Skipping mandatory nodes with the '?s' command is affected by the
+
Note: Skipping mandatory nodes with the '?s' command is affected by the '''--bad-data''' configuration parameter and '''$$bad-data''' system variable. An error, warning, or confirmation check may occur. Refer to the CLI Reference for more details.
'''--bad-data''' configuration parameter and '''$$bad-data''' system
 
variable. An error, warning, or confirmation check may occur. Refer to
 
the CLI Reference for more details.
 
   
Note: If there are any YANG defined values (e.g., enumeration, bits,
+
Note: If there are any YANG defined values (e.g., enumeration, bits, default-stmt) available for the current parameter, then pressing the tab key will list the full or partial completions available.
default-stmt) available for the current parameter, then pressing the tab
 
key will list the full or partial completions available.
 
   
 
=== Using XPath Expressions ===
 
=== Using XPath Expressions ===
There are some command parameters, such as the '''--target''' parameter
+
There are some command parameters, such as the '''--target''' parameter for the '''create''' command, that accept XPath absolute path expressions.
for the '''create''' command, that accept XPath absolute path
 
expressions.
 
   
If prefixes are present, then they must match the set of XML prefixes in
+
If prefixes are present, then they must match the set of XML prefixes in use at the time. Use the '''show modules''' command to see the current set of prefixes.
use at the time. Use the '''show modules''' command to see the current
 
set of prefixes.
 
   
If prefixes are not used, then the first available matching XML
+
If prefixes are not used, then the first available matching XML namespace will be used instead.
namespace will be used instead.
 
   
If the starting forward slash character ('/') is missing, then it will
+
If the starting forward slash character ('/') is missing, then it will be added.
be added.
 
   
   
Line 2,693: Line 1,522:
   
   
It is important to remember 2 simple rules to avoid common errors in
+
It is important to remember 2 simple rules to avoid common errors in XPath expressions:
XPath expressions:
 
   
  +
# String constants must be quoted with single quote characters.<nowiki>The expression [name=fred] is not the same as [foo='fred'].</nowiki>The former compares the 'name' node value to the 'fred' node value.The latter compares the 'name' node value to the string 'fred'.
# String constants must be quoted with single quote
 
  +
# The double quote character ('”') is not allowed in XPath '''--select''' parameter expressions because the expression will be sent to the server inside a double-quoted string.
characters.<nowiki>The expression [name=fred] is not the same as
 
[foo='fred'].</nowiki>The former compares the 'name' node value to the
 
'fred' node value.The latter compares the 'name' node value to the
 
string 'fred'.
 
# The double quote character ('”') is not allowed in XPath
 
'''--select''' parameter expressions because the expression will be sent
 
to the server inside a double-quoted string.
 
   
If an incomplete XPath absolute path expression is entered, and the
+
If an incomplete XPath absolute path expression is entered, and the script interpreter is in interactive mode, then the user will be prompted to fill in any missing mandatory nodes or key leafs.
script interpreter is in interactive mode, then the user will be
 
prompted to fill in any missing mandatory nodes or key leafs.
 
   
   
 
<nowiki># complete form of ifMtu leaf</nowiki>
 
<nowiki># complete form of ifMtu leaf</nowiki>
<nowiki>yangcli:fill>
+
<nowiki>yangcli:fill> /interfaces/interface[name='eth0']/ifMtu</nowiki>
/interfaces/interface[name='eth0']/ifMtu</nowiki>
 
 
<nowiki># incomplete form of ifMtu leaf</nowiki>
 
<nowiki># incomplete form of ifMtu leaf</nowiki>
   
Line 2,721: Line 1,540:
   
   
The '''--select''' parameter for the '''xget''' and '''xget-config'''
+
The '''--select''' parameter for the '''xget''' and '''xget-config''' commands accepts full XPath expressions. The expression must yield a node-set result in order to be used as a filter in NETCONF '''get''' and '''get-config''' operations.
commands accepts full XPath expressions. The expression must yield a
 
node-set result in order to be used as a filter in NETCONF '''get''' and
 
'''get-config''' operations.
 
   
One of the simplest XPath filters to use is the
+
One of the simplest XPath filters to use is the '''descendant-or-self'''<nowiki> filter ('//<expr>').</nowiki>
'''descendant-or-self'''<nowiki> filter ('//<expr>').</nowiki>
 
   
For example, this command will retrieve all instances of the 'ifMtu'
+
For example, this command will retrieve all instances of the 'ifMtu' leaf:
leaf:
 
   
   
Line 2,736: Line 1,550:
   
   
When interface (or any list) entries are returned by netconfd, they will
+
When interface (or any list) entries are returned by netconfd, they will contain the the entire path back to the root of the YANG module, not just the specified node. Also, any key leafs within a list are added. This is only done if the XPath expression is missing any predicates for key leafs.
contain the the entire path back to the root of the YANG module, not
 
just the specified node. Also, any key leafs within a list are added.
 
This is only done if the XPath expression is missing any predicates for
 
key leafs.
 
   
This is different than XPath 1.0 as used in XSLT. Since NETCONF
+
This is different than XPath 1.0 as used in XSLT. Since NETCONF '''get''' and '''get-config''' operations return complete XML instance documents, not node-sets, the ancestor nodes and naming nodes need to be added.
'''get''' and '''get-config''' operations return complete XML instance
 
documents, not node-sets, the ancestor nodes and naming nodes need to be
 
added.
 
   
 
<nowiki># reply shown with --display-mode=plain</nowiki>
 
<nowiki># reply shown with --display-mode=plain</nowiki>
Line 2,763: Line 1,570:
   
 
=== Special Parameter Handling ===
 
=== Special Parameter Handling ===
Some special handling of YANG data structures is done by the script
+
Some special handling of YANG data structures is done by the script interpreter.
interpreter.
 
   
   
Line 2,770: Line 1,576:
   
   
  +
Some parameters, such as the''' --source '''and '''--target''' parameters in many commands, are actually represented as a container with a single child -- a choice of several leaf nodes. In this situation, just the name of the desired leaf node can be entered (when in idle mode), as the 'contents' of the container parameter.
Some parameters, such as the''' --source '''and '''--target'''
 
parameters in many commands, are actually represented as a container
 
with a single child -- a choice of several leaf nodes. In this
 
situation, just the name of the desired leaf node can be entered (when
 
in idle mode), as the 'contents' of the container parameter.
 
   
   
Line 2,783: Line 1,585:
   
   
If a parameter name exact-match is not found, and a partial match is
+
If a parameter name exact-match is not found, and a partial match is attempted, then choice and case node names will be ignored, and not cause a match.
attempted, then choice and case node names will be ignored, and not
 
cause a match.
 
   
Since these nodes never appear in the XML PDUs they are treated as
+
Since these nodes never appear in the XML PDUs they are treated as transparent nodes (wrt/ parameter searches) unless they are specified with their full name.
transparent nodes (wrt/ parameter searches) unless they are specified
 
with their full name.
 
   
Parameters that are a choice of several nodes, similar to above, except
+
Parameters that are a choice of several nodes, similar to above, except without a parent container node, (e.g.,''' --help-mode''') can be omitted. The accessible child nodes within the case nodes can be entered directly (e.g., '''sget --target''' parameter).
without a parent container node, (e.g.,''' --help-mode''') can be
 
omitted. The accessible child nodes within the case nodes can be entered
 
directly (e.g., '''sget --target''' parameter).
 
   
   
<nowiki># this is not allowed because 'help-mode' is not
+
<nowiki># this is not allowed because 'help-mode' is not complete</nowiki>
complete</nowiki>
 
 
yangcli> help --command=help --help-mo=brief
 
yangcli> help --command=help --help-mo=brief
 
 
Line 2,815: Line 1,609:
   
   
When filling a data structure and a descendant node is entered, which is
+
When filling a data structure and a descendant node is entered, which is a YANG list or leaf-list, then multiple entries can be entered. After the node is filled in, there will be a prompt (Y/N, default no) to add more list or leaf-list entries.
a YANG list or leaf-list, then multiple entries can be entered. After
 
the node is filled in, there will be a prompt (Y/N, default no) to add
 
more list or leaf-list entries.
 
   
   
Line 2,824: Line 1,615:
   
   
The YANG binary data type is supported. Parameters of this type should
+
The YANG binary data type is supported. Parameters of this type should be entered in plain text and they will be converted to binary format.
be entered in plain text and they will be converted to binary format.
 
   
   
Line 2,831: Line 1,621:
 
The 'tab' key is used for context-sensitive command completion:
 
The 'tab' key is used for context-sensitive command completion:
   
* If no command has been started, a list of available commands is
+
* If no command has been started, a list of available commands is printed
  +
* If a partial command is entered, a list of commands which match the characters entered so far is printed
printed
 
* If a partial command is entered, a list of commands which match the
+
* If a command is entered, but no parameters, then a list of available parameters is printed
characters entered so far is printed
+
* If a command is entered, and the cursor is within a command name, then a list of parameters which match the characters entered so far is printed
* If a command is entered, but no parameters, then a list of available
+
* If a command is entered, and the cursor is after a command name, but not within a value string, then a list of available parameters is printed
  +
* If a command is entered, and the cursor is within a command value, then a list of possible values which match the characters entered so far is printed. Note that not all data types support value completion at this time.
parameters is printed
 
* If a command is entered, and the cursor is within a command name, then
+
* If no values are available, but a default value is known, that value will be printed
  +
* If a session is active, and whitespace followed by the forward slash '/' character is entered, a list of top-level data node names is printed. Once a top-level name and a trailing slash '/' character is entered, pressing the tab key again will print the names of the child nodes of the current data node. Only schema-node strings are supported at this time. Auto-completion will not work if predicates are present in the absolute path expression.
a list of parameters which match the characters entered so far is
 
printed
 
* If a command is entered, and the cursor is after a command name, but
 
not within a value string, then a list of available parameters is
 
printed
 
* If a command is entered, and the cursor is within a command value,
 
then a list of possible values which match the characters entered so far
 
is printed. Note that not all data types support value completion at
 
this time.
 
* If no values are available, but a default value is known, that value
 
will be printed
 
* If a session is active, and whitespace followed by the forward slash
 
'/' character is entered, a list of top-level data node names is
 
printed. Once a top-level name and a trailing slash '/' character is
 
entered, pressing the tab key again will print the names of the child
 
nodes of the current data node. Only schema-node strings are supported
 
at this time. Auto-completion will not work if predicates are present in
 
the absolute path expression.
 
   
 
Command list example: no NETCONF session is active:
 
Command list example: no NETCONF session is active:
Line 2,886: Line 1,659:
   
 
=== Command Line Editing ===
 
=== Command Line Editing ===
The command line parser is based on '''libtecla''', a freely available
+
The command line parser is based on '''libtecla''', a freely available library.
library.
 
   
 
The home page is located here:
 
The home page is located here:
   
[http://www.astro.caltech.edu/~mcs/tecla/
+
[http://www.astro.caltech.edu/~mcs/tecla/ http://www.astro.caltech.edu/~mcs/tecla/]
http://www.astro.caltech.edu/~mcs/tecla/]
 
   
   
 
The complete user guide for configuring '''libtecla''' is located here:
 
The complete user guide for configuring '''libtecla''' is located here:
   
[http://www.astro.caltech.edu/~mcs/tecla/tecla.html
+
[http://www.astro.caltech.edu/~mcs/tecla/tecla.html http://www.astro.caltech.edu/~mcs/tecla/tecla.html]
http://www.astro.caltech.edu/~mcs/tecla/tecla.html]
 
   
   
If the file '''$HOME/.teclarc''' exists, then '''libtecla''' will use it
+
If the file '''$HOME/.teclarc''' exists, then '''libtecla''' will use it to configure the key bindings.
to configure the key bindings.
 
   
By default, '''libtecla''' uses '''emacs''' key bindings. There is no
+
By default, '''libtecla''' uses '''emacs''' key bindings. There is no need for any further '''libtecla''' configuration if '''emacs''' mode is desired.
need for any further '''libtecla''' configuration if '''emacs''' mode is
 
desired.
 
   
In order to use the '''vi''' editor key bindings, the
+
In order to use the '''vi''' editor key bindings, the '''$HOME/.teclarc''' file must exist, and it must contain the following line:
'''$HOME/.teclarc''' file must exist, and it must contain the following
 
line:
 
   
   
Line 2,916: Line 1,681:
   
   
Custom key bindings are also available. Refer to the '''libtecla'''
+
Custom key bindings are also available. Refer to the '''libtecla''' documentation for more details on command line editing key customization.
documentation for more details on command line editing key
 
customization.
 
   
The control key sequence (^F == control key and f key at the same time).
+
The control key sequence (^F == control key and f key at the same time). The letter is not case-sensitive, so ^F and ^f are the same command.
The letter is not case-sensitive, so ^F and ^f are the same command.
 
   
The alt key sequence (M-f == alt key and f key at the same time). The
+
The alt key sequence (M-f == alt key and f key at the same time). The letter is not case-sensitive, so M-F and M-f are the same command.
letter is not case-sensitive, so M-F and M-f are the same command.
 
   
   
Line 2,935: Line 1,696:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| <center>'''command'''</center>
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| <center>'''description'''</center>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"|
 
<center>'''command'''</center>
 
|
 
<center>'''description'''</center>
 
   
 
|-
 
|-
  +
| ^F
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| cursor right
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| ^F
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| cursor right
 
   
 
|-
 
|-
  +
| ^B
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| cursor-left
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| ^B
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| cursor-left
 
   
 
|-
 
|-
  +
| ^A
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| beginning of line
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| ^A
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| beginning of line
 
   
 
|-
 
|-
  +
| ^E
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| end of line
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| ^E
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| end of line
 
   
 
|-
 
|-
  +
| ^U
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| delete line
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| ^U
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| delete line
 
   
 
|-
 
|-
  +
| M-f
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| forward-word
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| M-f
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| forward-word
 
   
 
|-
 
|-
  +
| M-b
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| backward word
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| M-b
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| backward word
 
   
 
|-
 
|-
  +
| ^P
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| up history
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| ^P
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| up history
 
   
 
|-
 
|-
  +
| ^N
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| down history
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| ^N
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| down history
 
   
 
|}
 
|}
 
=== Command History ===
 
=== Command History ===
Each command line is saved in the command history buffer, unless a
+
Each command line is saved in the command history buffer, unless a password is being entered in parameter mode.
password is being entered in parameter mode.
 
   
By default, the previous history line (if any) will be shown if the ^P
+
By default, the previous history line (if any) will be shown if the ^P key is pressed.
key is pressed.
 
   
By default, the next history line (if any) will be shown if the ^N key
+
By default, the next history line (if any) will be shown if the ^N key is pressed.
is pressed.
 
   
In addition, the '''history''' command can be used to control the
+
In addition, the '''history''' command can be used to control the command line buffer further. This command has 4 sub-modes:
command line buffer further. This command has 4 sub-modes:
 
   
 
* '''show''': show maximum of N history entries (default is 25)
 
* '''show''': show maximum of N history entries (default is 25)
Line 3,033: Line 1,750:
 
* '''load''': load the history buffer from a file
 
* '''load''': load the history buffer from a file
   
By default, the command line history buffer is loaded when the program
+
By default, the command line history buffer is loaded when the program starts, and saved when the program exits. This behavior can be turned off by setting the '''--autohistory''' configuration parameter to 'false'.
starts, and saved when the program exits. This behavior can be turned
 
off by setting the '''--autohistory''' configuration parameter to
 
'false'.
 
   
The '!' character is special when editing commands. If the first
+
The '!' character is special when editing commands. If the first character is '!', and it is followed by a number or a non-zero character, the line will be interpreted as a recall request:
character is '!', and it is followed by a number or a non-zero
 
character, the line will be interpreted as a recall request:
 
   
   
* yangcli> !42 <nowiki>== recall command number 42 (same as recall
+
* yangcli> !42 <nowiki>== recall command number 42 (same as recall 42)</nowiki>
  +
* yangcli> !get <nowiki>== recall the most recent command line starting with 'get'</nowiki>
42)</nowiki>
 
* yangcli> !get <nowiki>== recall the most recent command line starting
 
with 'get'</nowiki>
 
   
Refer to the Command Reference section for more details on the
+
Refer to the Command Reference section for more details on the '''history''' command.
'''history''' command.
 
   
 
=== Command Responses ===
 
=== Command Responses ===
The command output and debugging messages within yangcli is controlled
+
The command output and debugging messages within yangcli is controlled by the current log level (error, warn, info, debug, debug2, debug3).
by the current log level (error, warn, info, debug, debug2, debug3).
 
   
If a command is executed by the script interpreter, then a response will
+
If a command is executed by the script interpreter, then a response will be printed, depending on the log level value.
be printed, depending on the log level value.
 
   
If the log level is 'info' or higher, and there were no errors and no
+
If the log level is 'info' or higher, and there were no errors and no response, then the string 'OK' is printed.
response, then the string 'OK' is printed.
 
   
   
Line 3,067: Line 1,773:
   
   
If the log-level is set to 'error' or 'warn', then the 'OK' messages
+
If the log-level is set to 'error' or 'warn', then the 'OK' messages will be suppressed.
will be suppressed.
 
   
If the log level is set to 'debug' or higher, then responses from the
+
If the log level is set to 'debug' or higher, then responses from the server will be echoed to the log (file or STDOUT). <nowiki>The current display mode will be used when printing data structures such as <rpc-error> and <notification> element contents.</nowiki>
server will be echoed to the log (file or STDOUT). <nowiki>The current
 
display mode will be used when printing data structures such as
 
<rpc-error> and <notification> element contents.</nowiki>
 
   
If an error response is received from the server, it will always be
+
If an error response is received from the server, it will always be printed to the log.
printed to the log.
 
   
   
Line 3,098: Line 1,799:
   
   
Refer the the '''--log-level '''parameter in the CLI Reference for more
+
Refer the the '''--log-level '''parameter in the CLI Reference for more details.
details.
 
   
 
== NETCONF Sessions ==
 
== NETCONF Sessions ==
The '''yangcli''' program can be connected to one NETCONF server at a
+
The '''yangcli''' program can be connected to one NETCONF server at a time.
time.
 
   
 
Run multiple instances of yangcli to control multiple agents at once.
 
Run multiple instances of yangcli to control multiple agents at once.
Line 3,109: Line 1,808:
 
Use the connect command to start a NETCONF session.
 
Use the connect command to start a NETCONF session.
   
This section explains how to use '''yangcli''' to manage a NETCONF
+
This section explains how to use '''yangcli''' to manage a NETCONF server, once a session is established.
server, once a session is established.
 
   
<nowiki>When a NETCONF session starts up, a <capability> exchange is
+
<nowiki>When a NETCONF session starts up, a <capability> exchange is done, and the server reports exactly what content it supports. </nowiki>This information is used extensively to customize the session, and report errors and warnings for the session.
done, and the server reports exactly what content it supports.
 
</nowiki>This information is used extensively to customize the session,
 
and report errors and warnings for the session.
 
   
 
=== Connection Startup Screen ===
 
=== Connection Startup Screen ===
If the''' --log-level''' is set to 'info' of higher, then a startup
+
If the''' --log-level''' is set to 'info' of higher, then a startup screen will be displayed when a NETCONF session is started. It contains:
screen will be displayed when a NETCONF session is started. It contains:
 
   
 
* startup banner
 
* startup banner
Line 3,133: Line 1,827:
 
* '''with-defaults''' reporting capability reported by the server
 
* '''with-defaults''' reporting capability reported by the server
   
The following example shows a typical startup screen connecting to the
+
The following example shows a typical startup screen connecting to the '''netconfd''' server:
'''netconfd''' server:
 
   
   
Line 3,194: Line 1,887:
   
   
While a NETCONF session is active, the set of available YANG modules
+
While a NETCONF session is active, the set of available YANG modules will be set to the modules that the server is using, if the '''--autoload '''configuration parameter is enabled.
will be set to the modules that the server is using, if the
 
'''--autoload '''configuration parameter is enabled.
 
   
<nowiki>If the :schema-retrieval capability is also available on the
+
<nowiki>If the :schema-retrieval capability is also available on the server, then the <get-schema> operation will be attempted for any YANG module specified in the <hello> message capabilities, but not available to the </nowiki>'''yangcli''' program.
server, then the <get-schema> operation will be attempted for any YANG
 
module specified in the <hello> message capabilities, but not available
 
to the </nowiki>'''yangcli''' program.
 
   
  +
When the server module capabilities are analyzed by the '''yangcli''' client, the entire YANG module search path is checked for the specific module advertised in the capability. All the modules are partially parsed to check the actual namespace and revision date values. The following fields must exactly match in order for yangcli to use a local YANG module, if '''--autoload'''<nowiki>=true.</nowiki>
When the server module capabilities are analyzed by the '''yangcli'''
 
client, the entire YANG module search path is checked for the specific
 
module advertised in the capability. All the modules are partially
 
parsed to check the actual namespace and revision date values. The
 
following fields must exactly match in order for yangcli to use a local
 
YANG module, if '''--autoload'''<nowiki>=true.</nowiki>
 
   
 
* module name
 
* module name
Line 3,214: Line 1,897:
 
* module namespace
 
* module namespace
   
If the namespace URI value is different, it indicates that there is
+
If the namespace URI value is different, it indicates that there is either a bug in one of the conflicting YANG modules, or that two different naming authorities picked the same module name. In this case, a warning will be generated during session initialization.
either a bug in one of the conflicting YANG modules, or that two
 
different naming authorities picked the same module name. In this case,
 
a warning will be generated during session initialization.
 
   
Any data returned from the server for YANG modules not currently
+
Any data returned from the server for YANG modules not currently available will be treated as a YANG 'anyxml' node, instead of the (unknown) YANG data type.
available will be treated as a YANG 'anyxml' node, instead of the
 
(unknown) YANG data type.
 
   
<nowiki>If the module contains YANG features that are not advertised in
+
<nowiki>If the module contains YANG features that are not advertised in the <capabilities> exchange, then those data definitions will not be available (by default) for use in </nowiki>'''yangcli''' commands.
the <capabilities> exchange, then those data definitions will not be
 
available (by default) for use in </nowiki>'''yangcli''' commands.
 
   
If the module contains an object with a 'when' statement, and the 'when'
+
If the module contains an object with a 'when' statement, and the 'when' XPath expression evaluates to 'false', then that data definition will not be available (by default) for use in '''yangcli''' commands.
XPath expression evaluates to 'false', then that data definition will
 
not be available (by default) for use in '''yangcli''' commands.
 
   
The '''help'''<nowiki> command will be tailored to the modules,
+
The '''help'''<nowiki> command will be tailored to the modules, capabilities, features, and module deviations reported by the server in <capability> exchange.</nowiki>
capabilities, features, and module deviations reported by the server in
 
<capability> exchange.</nowiki>
 
   
 
=== Retrieving Data ===
 
=== Retrieving Data ===
There are 6 commands available to retrieve generic data (i.e., an
+
There are 6 commands available to retrieve generic data (i.e., an arbitrary subset of an entire NETCONF database):
arbitrary subset of an entire NETCONF database):
 
   
   
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| <center>'''command'''</center>
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| <center>'''description'''</center>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"|
 
<center>'''command'''</center>
 
|
 
<center>'''description'''</center>
 
   
 
|-
 
|-
  +
| get
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>raw NETCONF <get> operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| get
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>raw NETCONF <get> operation</nowiki>
 
   
 
|-
 
|-
  +
| get-config
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>raw NETCONF <get-config> operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| get-config
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>raw NETCONF <get-config>
 
operation</nowiki>
 
   
 
|-
 
|-
  +
| sget
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>high-level subtree filter, using the <get> protocol operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| sget
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>high-level subtree filter, using the
 
<get> protocol operation</nowiki>
 
   
 
|-
 
|-
  +
| sget-config
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>high-level subtree filter, using the <get-config> protocol operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| sget-config
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>high-level subtree filter, using the
 
<get-config> protocol operation</nowiki>
 
   
 
|-
 
|-
  +
| xget
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>high-level XPath filter, using the <get> protocol operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| xget
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>high-level XPath filter, using the
 
<get> protocol operation</nowiki>
 
   
 
|-
 
|-
  +
| xget-config
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>high-level XPath filter, using the <get-config> protocol operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| xget-config
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>high-level XPath filter, using the
 
<get-config> protocol operation</nowiki>
 
   
 
|}
 
|}
  +
All the high-level retrieval operations support the''' $$with-defaults''' system variable. <nowiki>The <with-defaults> parameter will be added the the NETCONF PDU if this variable is set to a value other than 'none' (the default). </nowiki>This system variable will be used as the default if not entered directly.
All the high-level retrieval operations support the'''
 
$$with-defaults''' system variable. <nowiki>The <with-defaults>
 
parameter will be added the the NETCONF PDU if this variable is set to a
 
value other than 'none' (the default). </nowiki>This system variable
 
will be used as the default if not entered directly.
 
   
   
Line 3,313: Line 1,947:
   
   
This parameter can also be specified directly, each time the command is
+
This parameter can also be specified directly, each time the command is used.
used.
 
   
   
Line 3,320: Line 1,953:
   
   
  +
The '''$$bad-data''' system variable is used to control how invalid operations and data are sent to the server. The '''xget''' and '''xget-config''' commands are affected by this parameter. If the ''':xpath '''capability was not advertised by the server when the session started, an error or warning may occur if these commands are used.
The '''$$bad-data''' system variable is used to control how invalid
 
operations and data are sent to the server. The '''xget''' and
 
'''xget-config''' commands are affected by this parameter. If the
 
''':xpath '''capability was not advertised by the server when the
 
session started, an error or warning may occur if these commands are
 
used.
 
   
If any data is received that '''yangcli''' does not understand, then a
+
If any data is received that '''yangcli''' does not understand, then a warning message will be printed and the data will be treated as if it was defined with the YANG ''''anyxml'''' data type.
warning message will be printed and the data will be treated as if it
 
was defined with the YANG ''''anyxml'''' data type.
 
   
   
 
=== Modifying Data ===
 
=== Modifying Data ===
The following commands are available to modify generic data (i.e., an
+
The following commands are available to modify generic data (i.e., an arbitrary subset of an entire NETCONF database):
arbitrary subset of an entire NETCONF database):
 
   
   
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| <center>'''command'''</center>
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| <center>'''description'''</center>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"|
 
<center>'''command'''</center>
 
|
 
<center>'''description'''</center>
 
   
 
|-
 
|-
  +
| commit
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>raw NETCONF <commit> operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| commit
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>raw NETCONF <commit>
 
operation</nowiki>
 
   
 
|-
 
|-
  +
| create
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>high-level <edit-config> operation, with nc:operation='create'</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| create
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>high-level <edit-config> operation,
 
with nc:operation='create'</nowiki>
 
   
 
|-
 
|-
  +
| delete
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>high-level <edit-config> operation, with nc:operation='delete'</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| delete
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>high-level <edit-config> operation,
 
with nc:operation='delete'</nowiki>
 
   
 
|-
 
|-
  +
| delete-config
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>raw NETCONF <delete-config> operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| delete-config
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>raw NETCONF <delete-config>
 
operation</nowiki>
 
   
 
|-
 
|-
  +
| discard-changes
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>raw NETCONF <discard-changes> operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| discard-changes
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>raw NETCONF <discard-changes>
 
operation</nowiki>
 
   
 
|-
 
|-
  +
| edit-config
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>raw NETCONF <edit-config> operation</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| edit-config
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>raw NETCONF <edit-config>
 
operation</nowiki>
 
   
 
|-
 
|-
  +
| fill
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| fill a variable for re-use in other operations
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| fill
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| fill a variable for re-use in other
 
operations
 
   
 
|-
 
|-
  +
| insert
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>high-level <edit-config> operation, with YANG insert operation extensions</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| insert
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>high-level <edit-config> operation,
 
with YANG insert operation extensions</nowiki>
 
   
 
|-
 
|-
  +
| lock
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| lock a NETCONF database
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| lock
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| lock a NETCONF database
 
   
 
|-
 
|-
  +
| merge
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>high-level <edit-config> operation, with nc:operation='merge'</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| merge
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>high-level <edit-config> operation,
 
with nc:operation='merge'</nowiki>
 
   
 
|-
 
|-
  +
| replace
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>high-level <edit-config> operation, with nc:operation='replace'</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| replace
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki>high-level <edit-config> operation,
 
with nc:operation='replace'</nowiki>
 
   
 
|-
 
|-
  +
| save
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| High level save operation, depending on the default target (candidate or running)
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| save
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| High level save operation, depending on the
 
default target (candidate or running)
 
   
 
|-
 
|-
  +
| unlock
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| unlock a NETCONF database
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| unlock
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| unlock a NETCONF database
 
   
 
|}
 
|}
All the high-level editing operations use the '''--target''' parameter
+
All the high-level editing operations use the '''--target''' parameter reported by the server when the session started up. If the server did not report the ''':candidate''' or ''':writable-running''' capabilities, then there will be no writable target, and an error will occur if these commands are entered.
reported by the server when the session started up. If the server did
 
not report the ''':candidate''' or ''':writable-running''' capabilities,
 
then there will be no writable target, and an error will occur if these
 
commands are entered.
 
   
  +
All the high-level editing operations support the''' $$default-operation '''system variable. <nowiki>The <default-operation> parameter will be added the the NETCONF <edit-config> PDU if this variable is set to a value other than 'not-used'. </nowiki>The default is the enumeration 'none', which means do not use any default operation, and only use the explicit '''nc:operation''' attribute.
All the high-level editing operations support the''' $$default-operation
 
'''system variable. <nowiki>The <default-operation> parameter will be
 
added the the NETCONF <edit-config> PDU if this variable is set to a
 
value other than 'not-used'. </nowiki>The default is the enumeration
 
'none', which means do not use any default operation, and only use the
 
explicit '''nc:operation''' attribute.
 
   
All the high-level editing operations support the''' $$test-option
+
All the high-level editing operations support the''' $$test-option '''system variable. <nowiki>The <test-option> parameter will be added the the NETCONF <edit-config> PDU if this variable is set to a value other than 'none' (the default). </nowiki>This system variable will be used as the default if not entered directly.
'''system variable. <nowiki>The <test-option> parameter will be added
 
the the NETCONF <edit-config> PDU if this variable is set to a value
 
other than 'none' (the default). </nowiki>This system variable will be
 
used as the default if not entered directly.
 
   
   
Line 3,487: Line 2,032:
   
   
This parameter can also be specified directly, each time the command is
+
This parameter can also be specified directly, each time the command is used.
used.
 
   
 
$newvalue = 1518
 
$newvalue = 1518
Line 3,497: Line 2,041:
   
   
All the high-level retrieval operations support the''' $$error-option
+
All the high-level retrieval operations support the''' $$error-option '''system variable. <nowiki>The <error-option> parameter will be added the the NETCONF <edit-config> PDU if this variable is set to a value other than 'none' (the default). </nowiki>This system variable will be used as the default if not entered directly.
'''system variable. <nowiki>The <error-option> parameter will be added
 
the the NETCONF <edit-config> PDU if this variable is set to a value
 
other than 'none' (the default). </nowiki>This system variable will be
 
used as the default if not entered directly.
 
   
   
Line 3,509: Line 2,049:
   
   
This parameter can also be specified directly, each time the command is
+
This parameter can also be specified directly, each time the command is used.
used.
 
   
   
Line 3,518: Line 2,057:
   
   
The high level '''save''' command is mapped to other commands, depending
+
The high level '''save''' command is mapped to other commands, depending on the capabilities reported by the server.
on the capabilities reported by the server.
 
   
   
Line 3,527: Line 2,065:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| <center>'''capabilities'''</center>
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| <center>'''real command(s)'''</center>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"|
 
<center>'''capabilities'''</center>
 
| <center>'''real
 
command(s)'''</center>
 
   
 
|-
 
|-
  +
| :candidate
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| commit
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| :candidate
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| commit
 
   
 
|-
 
|-
  +
| :writable-running
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki><none></nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| :writable-running
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki><none></nowiki>
 
   
 
|-
 
|-
  +
| :startup
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| copy-config --source=running \ --target=startup
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| :startup
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| copy-config --source=running \
 
--target=startup
 
   
 
|}
 
|}
 
=== Using Notifications ===
 
=== Using Notifications ===
The '''create-subscription''' command is used to start receiving
+
The '''create-subscription''' command is used to start receiving notifications.
notifications.
 
   
  +
The '''netconfd'''<nowiki> server will include a <sequence-id> element in any notification that is saved in the replay buffer. </nowiki><nowiki>This unsigned integer can be used to help debug notification filters (i.e., if non-consecutive <sequence-id> values are received, then the notification was filtered, or dropped due to access control policy).</nowiki>
The '''netconfd'''<nowiki> server will include a <sequence-id> element
 
in any notification that is saved in the replay buffer.
 
</nowiki><nowiki>This unsigned integer can be used to help debug
 
notification filters (i.e., if non-consecutive <sequence-id> values are
 
received, then the notification was filtered, or dropped due to access
 
control policy).</nowiki>
 
   
  +
If any replay notifications are desired, then the''' --startTime''' parameter must be included. <nowiki>At the end of the stored notifications, the server will send the <replayComplete> event. </nowiki>This notification type is not saved, and will not be found in the server replay buffer, if replay is supported by the server. The '''netconfd'''<nowiki> server will not include a <sequence-id> element in this notification type.</nowiki>
If any replay notifications are desired, then the''' --startTime'''
 
parameter must be included. <nowiki>At the end of the stored
 
notifications, the server will send the <replayComplete> event.
 
</nowiki>This notification type is not saved, and will not be found in
 
the server replay buffer, if replay is supported by the server. The
 
'''netconfd'''<nowiki> server will not include a <sequence-id> element
 
in this notification type.</nowiki>
 
   
  +
If the notification subscription should stop at a certain time, then the '''--stopTime''' parameter must be included. <nowiki>At the end of the stored notifications, the server will send the <replayComplete> event, followed by the <notificationComplete> event. </nowiki>. This notification type is not saved, and will not be found in the server replay buffer, if replay is supported by the server. The '''netconfd'''<nowiki> server will not include a <sequence-id> element in this notification type.</nowiki>
If the notification subscription should stop at a certain time, then the
 
'''--stopTime''' parameter must be included. <nowiki>At the end of the
 
stored notifications, the server will send the <replayComplete> event,
 
followed by the <notificationComplete> event. </nowiki>. This
 
notification type is not saved, and will not be found in the server
 
replay buffer, if replay is supported by the server. The
 
'''netconfd'''<nowiki> server will not include a <sequence-id> element
 
in this notification type.</nowiki>
 
   
Notifications are printed to the log, using the current
+
Notifications are printed to the log, using the current '''$$display-mode''' system variable setting, when and if they are received.
'''$$display-mode''' system variable setting, when and if they are
 
received.
 
   
Notifications are also logged. Use the '''eventlog''' command to access
+
Notifications are also logged. Use the '''eventlog''' command to access the notifications stored in the event log.
the notifications stored in the event log.
 
   
   
 
=== Configuration Parameters That Affect Sessions ===
 
=== Configuration Parameters That Affect Sessions ===
The '''--server''',''' --user''', and '''--password''' configuration
+
The '''--server''',''' --user''', and '''--password''' configuration parameters can be used to start a NETCONF session automatically at startup time. The connect command will only be attempted at startup time if the '''--server '''parameter is present.
parameters can be used to start a NETCONF session automatically at
 
startup time. The connect command will only be attempted at startup time
 
if the '''--server '''parameter is present.
 
   
If all 3 of these parameters are present at startup time, then no
+
If all 3 of these parameters are present at startup time, then no interactive prompting for additional optional parameters will be done. Instead the connect command will be invoked right away.
interactive prompting for additional optional parameters will be done.
 
Instead the connect command will be invoked right away.
 
   
During normal operation, the '''--optional''' configuration parameter,
+
During normal operation, the '''--optional''' configuration parameter, or the '''$$optional''' system variable, can be used to control interactive prompting for optional parameters.
or the '''$$optional''' system variable, can be used to control
 
interactive prompting for optional parameters.
 
   
The '''--server''' parameter is saved in the '''$$server''' system
+
The '''--server''' parameter is saved in the '''$$server''' system variable, which can be overwritten at any time. If set, this will be used as the initial default value for the '''--server''' parameter in the '''connect''' command.
variable, which can be overwritten at any time. If set, this will be
 
used as the initial default value for the '''--server''' parameter in
 
the '''connect''' command.
 
   
  +
The '''--fixorder''' configuration parameter can be used to control XML PDU ordering. If set to 'true', then the PDU will be reordered (if needed),to use the canonical order, according to the YANG specification. If 'false', the order parameters are entered at the command line will be their NETCONF PDU order as well. The default is 'true'. To send the server incorrectly ordered data structures on purposes, set this parameter to 'false'.
The '''--fixorder''' configuration parameter can be used to control XML
 
PDU ordering. If set to 'true', then the PDU will be reordered (if
 
needed),to use the canonical order, according to the YANG specification.
 
If 'false', the order parameters are entered at the command line will be
 
their NETCONF PDU order as well. The default is 'true'. To send the
 
server incorrectly ordered data structures on purposes, set this
 
parameter to 'false'.
 
   
The '''--user''' parameter is saved in the '''$$user''' system variable,
+
The '''--user''' parameter is saved in the '''$$user''' system variable, which can be overwritten at any time. If set, this will be used as the initial default value for the '''--user''' parameter in the '''connect''' command.
which can be overwritten at any time. If set, this will be used as the
 
initial default value for the '''--user''' parameter in the
 
'''connect''' command.
 
   
  +
The '''--with-defaults''' configuration parameter, or the '''$$with-defaults''' system variable, can be used to set the default value for the 'with-defaults' parameter extension for the NETCONF '''get''', '''get-config''', and '''copy-config''' protocol operations. The default is 'none'.
The '''--with-defaults''' configuration parameter, or the
 
'''$$with-defaults''' system variable, can be used to set the default
 
value for the 'with-defaults' parameter extension for the NETCONF
 
'''get''', '''get-config''', and '''copy-config''' protocol operations.
 
The default is 'none'.
 
   
The '''--error-option''' configuration parameter, or the
+
The '''--error-option''' configuration parameter, or the '''$$error-option''' system parameter, can be used to set the default value for the '''--error-option''' parameter for the NETCONF edit-config protocol operation. The default is 'none'.
'''$$error-option''' system parameter, can be used to set the default
 
value for the '''--error-option''' parameter for the NETCONF edit-config
 
protocol operation. The default is 'none'.
 
   
The '''--test-option''' configuration parameter, or the
+
The '''--test-option''' configuration parameter, or the '''$$test-option''' system parameter, can be used to set the default value for the '''--test-option''' parameter for the NETCONF edit-config protocol operation. The default is 'none'.
'''$$test-option''' system parameter, can be used to set the default
 
value for the '''--test-option''' parameter for the NETCONF edit-config
 
protocol operation. The default is 'none'.
 
   
  +
The '''--bad-data''' configuration parameter, or the '''$$bad-data''' system variable, can be used to control how '''yangcli''' handles parameter values that are known to be invalid, or usage of optional protocol operations that the current session does not support. The default value is 'check'. To use '''yangcli''' in a testing mode to send the server incorrect data on purpose, set this parameter to 'warn' or 'ignore'.
The '''--bad-data''' configuration parameter, or the '''$$bad-data'''
 
system variable, can be used to control how '''yangcli''' handles
 
parameter values that are known to be invalid, or usage of optional
 
protocol operations that the current session does not support. The
 
default value is 'check'. To use '''yangcli''' in a testing mode to send
 
the server incorrect data on purpose, set this parameter to 'warn' or
 
'ignore'.
 
   
   
 
=== Trouble-shooting NETCONF Session Problems ===
 
=== Trouble-shooting NETCONF Session Problems ===
If the NETCONF session does not start for any reason, one or more error
+
If the NETCONF session does not start for any reason, one or more error messages will be printed, and the prompt will indicate 'idle' mode. This section assumes that the server is '''netconfd''', and these debugging steps may not apply to all NETCONF agents.
messages will be printed, and the prompt will indicate 'idle' mode. This
 
section assumes that the server is '''netconfd''', and these debugging
 
steps may not apply to all NETCONF agents.
 
   
   
Line 3,668: Line 2,129:
 
* make sure a firewall is not blocking TCP port 830
 
* make sure a firewall is not blocking TCP port 830
 
** try to connect to the NETCONF server using the '''--port=22''' option
 
** try to connect to the NETCONF server using the '''--port=22''' option
* make sure the netconf-subsystem is configured correctly in
+
* make sure the netconf-subsystem is configured correctly in /etc/ssh/sshd_configthere should be the proper configuration commands for NETCONF to work. For example, the '''netconfd''' server configuration might look like this:
/etc/ssh/sshd_configthere should be the proper configuration commands
 
for NETCONF to work. For example, the '''netconfd''' server
 
configuration might look like this:
 
 
*
 
*
   
Line 3,679: Line 2,137:
   
   
* make sure the '''netconfd''' server is running. Use the unix 'ps'
+
* make sure the '''netconfd''' server is running. Use the unix 'ps' command, or check the '''netconfd''' log file, to make sure it is running.<br/>
command, or check the '''netconfd''' log file, to make sure it is
 
running.<br/>
 
   
   
Line 3,693: Line 2,149:
   
 
* make sure the password is correct
 
* make sure the password is correct
** This must be the valid password (in /etc/passwd or /etc/shadow) for
+
** This must be the valid password (in /etc/passwd or /etc/shadow) for the specified user name
the specified user name
 
   
 
'''If the NETCONF session stops responding:'''
 
'''If the NETCONF session stops responding:'''
Line 3,705: Line 2,160:
 
'''If the NETCONF server is not accepting a certain command:'''
 
'''If the NETCONF server is not accepting a certain command:'''
   
* make sure the command (or parameters used in the command) is actually
+
* make sure the command (or parameters used in the command) is actually supported by the server.
  +
** There may be features, when statements, or deviation statements that indicate the server does not support the command or one or more of its parameters.
supported by the server.
 
  +
* make sure that access control configured on the server is not blocking the command. The error-tag should be 'access-denied' in this case.
** There may be features, when statements, or deviation statements that
 
indicate the server does not support the command or one or more of its
 
parameters.
 
* make sure that access control configured on the server is not blocking
 
the command. The error-tag should be 'access-denied' in this case.
 
   
'''<nowiki>If the NETCONF server is not returning the expected data in a
+
'''<nowiki>If the NETCONF server is not returning the expected data in a <get> or <get-config> protocol operation::</nowiki>'''
<get> or <get-config> protocol operation::</nowiki>'''
 
   
 
* Make sure all the parameters are supported by the server
 
* Make sure all the parameters are supported by the server
** the''' :xpath'''<nowiki> capability must be advertised by the server
+
** the''' :xpath'''<nowiki> capability must be advertised by the server to use the 'select' attribute in the <get> or <get-config> operations</nowiki>
  +
** the ''':with-defaults'''<nowiki> capability must be advertised by the server to use the <with-defaults> parameter</nowiki>
to use the 'select' attribute in the <get> or <get-config>
 
  +
* if using a filter, try to retrieve the data without a filter and see if it is there
operations</nowiki>
 
  +
* make sure that access control configured on the server is not blocking the retrieval. There will not be any error reported in this case. <nowiki>The server will simply skip over any unauthorized data, and leave it out of the <rpc-reply>.</nowiki>
** the ''':with-defaults'''<nowiki> capability must be advertised by the
 
  +
* set the logging level to debug2 or higher, and look closely at the PDUs being sent to the server. Set the display mode to a value other than 'plain' to make sure the correct namespaces are being used in the request.
server to use the <with-defaults> parameter</nowiki>
 
* if using a filter, try to retrieve the data without a filter and see
 
if it is there
 
* make sure that access control configured on the server is not blocking
 
the retrieval. There will not be any error reported in this case.
 
<nowiki>The server will simply skip over any unauthorized data, and
 
leave it out of the <rpc-reply>.</nowiki>
 
* set the logging level to debug2 or higher, and look closely at the
 
PDUs being sent to the server. Set the display mode to a value other
 
than 'plain' to make sure the correct namespaces are being used in the
 
request.
 
   
'''<nowiki>If an <edit-config> operation is failing
+
'''<nowiki>If an <edit-config> operation is failing unexpectedly:</nowiki>'''
unexpectedly:</nowiki>'''
 
   
* make sure that access control configured on the server is not blocking
+
* make sure that access control configured on the server is not blocking the request. The error-tag should be 'access-denied' in this case.
the request. The error-tag should be 'access-denied' in this case.
 
 
* make sure an unsupported parameter or parameter value is not used
 
* make sure an unsupported parameter or parameter value is not used
** <nowiki><test-option> is not supported unless the
+
** <nowiki><test-option> is not supported unless the </nowiki>''':validate''' capability is advertised by the server
</nowiki>''':validate''' capability is advertised by the server
+
** <nowiki><error-option> = 'rollback-on-error' is not supported unless the </nowiki>''':rollback-on-error''' capability is advertised by the server
  +
* if the request contains an edit to a nested data structure, make sure the parent data structure(s) are in place as expected. <nowiki>The <default-operation> parameter is set to 'none' in the high level editing operations, so any data 'above' the edited data must already exist.</nowiki>
** <nowiki><error-option> = 'rollback-on-error' is not supported unless
 
  +
* set the logging level to debug2 or higher, and look closely at the PDUs being sent to the server. Set the display mode to a value other than 'plain' to make sure the correct namespaces are being used in the request.
the </nowiki>''':rollback-on-error''' capability is advertised by the
 
server
 
* if the request contains an edit to a nested data structure, make sure
 
the parent data structure(s) are in place as expected. <nowiki>The
 
<default-operation> parameter is set to 'none' in the high level editing
 
operations, so any data 'above' the edited data must already
 
exist.</nowiki>
 
* set the logging level to debug2 or higher, and look closely at the
 
PDUs being sent to the server. Set the display mode to a value other
 
than 'plain' to make sure the correct namespaces are being used in the
 
request.
 
   
 
== Command Reference ==
 
== Command Reference ==
This section describes all the '''yangcli''' local and remote commands
+
This section describes all the '''yangcli''' local and remote commands built-in when using the '''netconfd''' server.
built-in when using the '''netconfd''' server.
 
   
There may be more or less commands available, depending on the YANG
+
There may be more or less commands available, depending on the YANG modules actually loaded at the time.
modules actually loaded at the time.
 
   
The specific NETCONF capabilities needed are listed for each remote
+
The specific NETCONF capabilities needed are listed for each remote command. No capabilities are ever needed for a local command.
command. No capabilities are ever needed for a local command.
 
   
It is possible that other servers will support protocol operations that
+
It is possible that other servers will support protocol operations that '''netconfd''' does not support. If yangcli has the YANG file available for the module, then it can be managed with the high level commands. Low-level commands can still be used with external data (e.g., @mydatafile.xml).
'''netconfd''' does not support. If yangcli has the YANG file available
 
for the module, then it can be managed with the high level commands.
 
Low-level commands can still be used with external data (e.g.,
 
@mydatafile.xml).
 
   
Any YANG '''rpc''' statement can be used as a remote '''yangcli'''
+
Any YANG '''rpc''' statement can be used as a remote '''yangcli''' command. Refer to the server vendor documentation for details on the protocol operations, database contents, and notification definitions that they support.
command. Refer to the server vendor documentation for details on the
 
protocol operations, database contents, and notification definitions
 
that they support.
 
   
 
=== alias ===
 
=== alias ===
The '''alias''' command is used to set or display a specific command
+
The '''alias''' command is used to set or display a specific command alias, or display all command aliases if no parameter is given. It is similar to the 'alias' command in unix shells such as 'bash'.
alias, or display all command aliases if no parameter is given. It is
 
similar to the 'alias' command in unix shells such as 'bash'.
 
   
 
There are 3 forms of the '''alias''' command:
 
There are 3 forms of the '''alias''' command:
   
 
# '''alias''': display all command aliases in memory
 
# '''alias''': display all command aliases in memory
# '''alias <nowiki><name></nowiki>''': display the command alias with
+
# '''alias <nowiki><name></nowiki>''': display the command alias with the specified name
  +
# '''<nowiki>alias <name>=<value></nowiki>''': set the command alias with the specified name to the string value
the specified name
 
# '''<nowiki>alias <name>=<value></nowiki>''': set the command alias
 
with the specified name to the string value
 
   
 
Use the '''unset''' command to delete an alias.
 
Use the '''unset''' command to delete an alias.
Line 3,795: Line 2,209:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| var
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| var
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 3,847: Line 2,239:
 
** usage: optional
 
** usage: optional
 
** default: none
 
** default: none
** The ''''var'''' string must contain either a valid alias name or a
+
** The ''''var'''' string must contain either a valid alias name or a string setting an alias. There cannot be any whitespace between the '=' and other characters when setting an alias. The alias value must be quoted if it contains whitespace.
  +
*** A double-quoted string can contain single quotes: <nowiki>alias get-eth0=”xget /interfaces/interface[name='eth0']”</nowiki>
string setting an alias. There cannot be any whitespace between the '='
 
  +
*** A single-quoted string can contain double quotes: <nowiki>alias get-eth0='xget /interfaces/interface[name=”eth0”]'</nowiki>
and other characters when setting an alias. The alias value must be
 
  +
*** <nowiki>An unquoted string can be used if the <value> does not contain any whitespace:</nowiki> alias gc=get-config
quoted if it contains whitespace.
 
*** A double-quoted string can contain single quotes: <nowiki>alias
 
get-eth0=”xget /interfaces/interface[name='eth0']”</nowiki>
 
*** A single-quoted string can contain double quotes: <nowiki>alias
 
get-eth0='xget /interfaces/interface[name=”eth0”]'</nowiki>
 
*** <nowiki>An unquoted string can be used if the <value> does not
 
contain any whitespace:</nowiki> alias gc=get-config
 
   
 
Positive Response:
 
Positive Response:
Line 3,887: Line 2,273:
   
 
=== aliases ===
 
=== aliases ===
The '''aliases '''command is used to load, save, or clear the command
+
The '''aliases '''command is used to load, save, or clear the command aliases, or display all command aliases if no parameter is given.
aliases, or display all command aliases if no parameter is given.
 
   
 
There are 4 forms of the '''aliases''' command:
 
There are 4 forms of the '''aliases''' command:
   
# '''<nowiki>aliases [show]</nowiki>''': display all command aliases in
+
# '''<nowiki>aliases [show]</nowiki>''': display all command aliases in memory
memory
 
 
# '''aliases clear''': clear all command aliases in memory
 
# '''aliases clear''': clear all command aliases in memory
# '''<nowiki>aliases save [alias-filespec]</nowiki>''': save the command
+
# '''<nowiki>aliases save [alias-filespec]</nowiki>''': save the command aliases in memory in an '.aliases' file.
aliases in memory in an '.aliases' file.
+
# '''<nowiki>aliases load [alias-filespec]</nowiki>''': load the command aliases from an '.aliases' file into memory.
# '''<nowiki>aliases load [alias-filespec]</nowiki>''': load the command
 
aliases from an '.aliases' file into memory.
 
   
 
<center>'''aliases command'''</center>
 
<center>'''aliases command'''</center>
Line 3,905: Line 2,287:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 3,958: Line 2,318:
 
** default: show
 
** default: show
 
** '''clear'''
 
** '''clear'''
*** Delete all aliases from memory. This will not affect the aliases
+
*** Delete all aliases from memory. This will not affect the aliases file until the ''''aliases''' save' command is used, or the program exits and the '''–autoaliases''' parameter is set to 'true'.
file until the ''''aliases''' save' command is used, or the program
 
exits and the '''–autoaliases''' parameter is set to 'true'.
 
 
** '''load'''<nowiki> [alias-filespec]</nowiki>
 
** '''load'''<nowiki> [alias-filespec]</nowiki>
*** Load an aliases file into memory. If the 'alias-filespec' parameter
+
*** Load an aliases file into memory. If the 'alias-filespec' parameter is not given, then the default aliases file ($HOME/.yuma/.yangcli_aliases) will be used.
is not given, then the default aliases file
 
($HOME/.yuma/.yangcli_aliases) will be used.
 
 
** '''save'''<nowiki> [alias-filespec]</nowiki>
 
** '''save'''<nowiki> [alias-filespec]</nowiki>
*** Save the command aliases into memory to an alias file. If the
+
*** Save the command aliases into memory to an alias file. If the 'alias-filespec' parameter is not given, then the default aliases file ($HOME/.yuma/.yangcli_aliases) will be used.
'alias-filespec' parameter is not given, then the default aliases file
 
($HOME/.yuma/.yangcli_aliases) will be used.
 
 
** '''show'''
 
** '''show'''
 
*** Displays all aliases in memory.
 
*** Displays all aliases in memory.
Line 4,001: Line 2,355:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| dir
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| dir
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 4,077: Line 2,409:
   
 
=== close-session ===
 
=== close-session ===
The '''close-session''' command is used to terminate the current NETCONF
+
The '''close-session''' command is used to terminate the current NETCONF session. A NETCONF server should always accept this command if it is valid, and not reject it due to access control enforcement or if the server is in notification delivery mode.
session. A NETCONF server should always accept this command if it is
 
valid, and not reject it due to access control enforcement or if the
 
server is in notification delivery mode.
 
   
   
Line 4,088: Line 2,417:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yuma-netconf.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yuma-netconf.yang
 
   
 
|}
 
|}
Line 4,140: Line 2,447:
 
Positive Response:
 
Positive Response:
   
* the session is terminated and the command prompt is changed to
+
* the session is terminated and the command prompt is changed to indicate idle mode
indicate idle mode
 
   
 
Negative Response:
 
Negative Response:
   
* <nowiki>an <rpc-error> message will be printed describing the
+
* <nowiki>an <rpc-error> message will be printed describing the error</nowiki>
error</nowiki>
 
   
 
Usage:
 
Usage:
Line 4,162: Line 2,467:
   
 
=== commit ===
 
=== commit ===
The '''commit'''<nowiki> command is used to save the edits in the
+
The '''commit'''<nowiki> command is used to save the edits in the <candidate> database into the <running> database. </nowiki>If there are no edits it will have no effect.
<candidate> database into the <running> database. </nowiki>If there are
 
no edits it will have no effect.
 
   
 
<center>'''commit command'''</center>
 
<center>'''commit command'''</center>
Line 4,171: Line 2,474:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 2
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 2
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yuma-netconf.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yuma-netconf.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :candidate
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :candidate
 
   
 
|-
 
|-
  +
| Capabilities optional:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :confirmed-commit
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities optional:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :confirmed-commit
 
   
 
|}
 
|}
Line 4,240: Line 2,513:
 
** default: none
 
** default: none
 
** capabilities needed:''' ''':confirmed-commit
 
** capabilities needed:''' ''':confirmed-commit
** This parameter requests a confirmed commit procedure. The server will
+
** This parameter requests a confirmed commit procedure. The server will expect another '''commit''' command before the '''confirm-timeout''' time period expires.
expect another '''commit''' command before the '''confirm-timeout'''
 
time period expires.
 
   
 
* '''confirm-timeout'''
 
* '''confirm-timeout'''
Line 4,253: Line 2,524:
   
 
*
 
*
** This is the number of seconds to request before the timeout.The
+
** This is the number of seconds to request before the timeout.The ''''confirmed'''' leaf must also be present for this parameter to have any affect.
''''confirmed'''' leaf must also be present for this parameter to have
 
any affect.
 
 
* '''persist'''
 
* '''persist'''
 
** type: string
 
** type: string
Line 4,263: Line 2,532:
 
** type: string
 
** type: string
 
** usage: optional
 
** usage: optional
** persist ID used to conform a previously started the confirmed commit
+
** persist ID used to conform a previously started the confirmed commit procedure
procedure
 
   
 
Positive Response:
 
Positive Response:
   
* the session is terminated and the command prompt is changed to
+
* the session is terminated and the command prompt is changed to indicate idle mode
indicate idle mode
 
   
 
Negative Response:
 
Negative Response:
   
* <nowiki>an <rpc-error> message will be printed describing the
+
* <nowiki>an <rpc-error> message will be printed describing the error</nowiki>
error</nowiki>
 
   
 
Usage:
 
Usage:
Line 4,290: Line 2,556:
   
 
=== connect ===
 
=== connect ===
The '''connect''' command is used to start a session with a NETCONF
+
The '''connect''' command is used to start a session with a NETCONF server.
server.
 
   
If there already is a NETCONF session active, then an error message will
+
If there already is a NETCONF session active, then an error message will be printed and the command will not be executed.
be printed and the command will not be executed.
 
   
 
<center>'''connect command'''</center>
 
<center>'''connect command'''</center>
Line 4,301: Line 2,565:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| server
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| server
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 3
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 3
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 8
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 8
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 4,352: Line 2,594:
 
** type: inet:ip-address (string containing IP address or DNS name
 
** type: inet:ip-address (string containing IP address or DNS name
 
** usage: mandatory
 
** usage: mandatory
** default: previous server used, if any, will be presented as the
+
** default: previous server used, if any, will be presented as the default, but not used automatically
default, but not used automatically
 
 
** This parameter specifies the server address for the session.
 
** This parameter specifies the server address for the session.
   
Line 4,359: Line 2,600:
 
** type: string (ncx:password)
 
** type: string (ncx:password)
 
** usage: mandatory
 
** usage: mandatory
** default: previous password used, if any, will be presented as the
+
** default: previous password used, if any, will be presented as the default, but not used automatically
  +
** This parameter specifies the password string to use to establish the session. It will not be echoed in parameter mode or saved in the command history buffer.
default, but not used automatically
 
** This parameter specifies the password string to use to establish the
 
session. It will not be echoed in parameter mode or saved in the command
 
history buffer.
 
 
* '''port'''
 
* '''port'''
 
** type: uint16
 
** type: uint16
 
** usage: optional
 
** usage: optional
 
** default: 830
 
** default: 830
** This parameter specifies the TCP port number that should be used for
+
** This parameter specifies the TCP port number that should be used for the session.
the session.
 
 
* '''timeout'''
 
* '''timeout'''
** type: uint32 (0 = no timeout, otherwise the number of seconds to
+
** type: uint32 (0 = no timeout, otherwise the number of seconds to wait)
wait)
 
 
** usage: optional
 
** usage: optional
** default: set to the '''$$timeout''' system variable, default 30
+
** default: set to the '''$$timeout''' system variable, default 30 seconds
  +
** This parameter specifies the number of seconds to wait for a response from the server before giving up. The session will not be dropped if a remote command times out, but any late response will be dropped. A value of zero means no timeout should be used, and '''yangcli''' will wait forever for a response.
seconds
 
** This parameter specifies the number of seconds to wait for a response
 
from the server before giving up. The session will not be dropped if a
 
remote command times out, but any late response will be dropped. A value
 
of zero means no timeout should be used, and '''yangcli''' will wait
 
forever for a response.
 
 
* '''user'''
 
* '''user'''
 
** type: string
 
** type: string
 
** usage: mandatory
 
** usage: mandatory
** default: previous user name used, if any, will be presented as the
+
** default: previous user name used, if any, will be presented as the default, but not used automatically
  +
** This parameter specifies the user name to use for the session. This must be a valid user name on the NETCONF server.
default, but not used automatically
 
** This parameter specifies the user name to use for the session. This
 
must be a valid user name on the NETCONF server.
 
 
* '''protocols'''
 
* '''protocols'''
 
** type: bits (netconf1.0 netconf1.1)
 
** type: bits (netconf1.0 netconf1.1)
 
** usage: optional
 
** usage: optional
 
** default: '''--protocols''' configuration parameter setting
 
** default: '''--protocols''' configuration parameter setting
** Specifies which NETCONF protocol versions to enable. Overrides
+
** Specifies which NETCONF protocol versions to enable. Overrides '''–protocols '''configuration parameter.
'''–protocols '''configuration parameter.
 
 
* '''private-key'''
 
* '''private-key'''
 
** type: string
 
** type: string
 
** usage: optional
 
** usage: optional
 
** default: --private-key configuration parameter setting
 
** default: --private-key configuration parameter setting
** Specifies the SSH private key file to use. Overrides –private-key
+
** Specifies the SSH private key file to use. Overrides –private-key configuration parameter.
configuration parameter.
 
 
* '''public-key'''
 
* '''public-key'''
 
** type: string
 
** type: string
 
** usage: optional
 
** usage: optional
 
** default: '''--public-key''' configuration parameter setting
 
** default: '''--public-key''' configuration parameter setting
** Specifies the SSH public key file to use. Overrides '''–public-key
+
** Specifies the SSH public key file to use. Overrides '''–public-key '''configuration parameter.
'''configuration parameter.
 
   
 
Positive Response:
 
Positive Response:
   
* the session is started and the prompt changes to include the
+
* the session is started and the prompt changes to include the [mailto:'user@agent 'user@server]' string.
[mailto:'user@agent 'user@server]' string.
 
   
 
Negative Response:
 
Negative Response:
   
* One or more error messages will be printed. Refer to the section on
+
* One or more error messages will be printed. Refer to the section on trouble-shooting NETCONF Session problems for more details.
trouble-shooting NETCONF Session problems for more details.
 
   
 
Usage:
 
Usage:
   
   
yangcli> '''connect [http://www.example.com/ myserver] user=andy
+
yangcli> '''connect [http://www.example.com/ myserver] user=andy password=yangrocks'''
password=yangrocks'''
 
   
 
<nowiki><startup screen printed></nowiki>
 
<nowiki><startup screen printed></nowiki>
Line 4,428: Line 2,651:
   
 
=== copy-config ===
 
=== copy-config ===
The '''copy-config''' command is used to copy one entire NETCONF
+
The '''copy-config''' command is used to copy one entire NETCONF database to another location.
database to another location.
 
   
Not all possible parameter combinations will be supported by every
+
Not all possible parameter combinations will be supported by every server. In fact, the NETCONF protocol does not require any parameters to be supported unless the ''':startup''' or ''':url''' capabilities is supported by the server.
server. In fact, the NETCONF protocol does not require any parameters to
 
be supported unless the ''':startup''' or ''':url''' capabilities is
 
supported by the server.
 
   
   
Line 4,440: Line 2,659:
   
   
yangcli [mailto:andy@myagent andy@myserver]> '''copy-config
+
yangcli [mailto:andy@myagent andy@myserver]> '''copy-config source=running target=startup'''
source=running target=startup'''
 
   
   
This is the standard way to save a snapshot of the current running
+
This is the standard way to save a snapshot of the current running configuration in non-volatile storage, if the server has a separate startup database. If not, the server will automatically save any changes to the running configuration to non-volatile storage.
configuration in non-volatile storage, if the server has a separate
 
startup database. If not, the server will automatically save any changes
 
to the running configuration to non-volatile storage.
 
   
   
Line 4,455: Line 2,670:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 2
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 2
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 3
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 3
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yuma-netconf.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yuma-netconf.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Capabilities optional:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :candidate:startup:url:with-defaults
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities optional:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :candidate:startup:url:with-defaults
 
   
 
|}
 
|}
Line 4,523: Line 2,708:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the name of the source database for the copy
+
** This parameter specifies the name of the source database for the copy operation.
operation.
 
 
** container contents: 1 of N:
 
** container contents: 1 of N:
 
*** '''candidate'''
 
*** '''candidate'''
Line 4,540: Line 2,724:
 
*** '''url'''
 
*** '''url'''
 
**** type: yang:uri
 
**** type: yang:uri
**** capabilities needed: :url, and the scheme used in the URL must be
+
**** capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter
  +
**** To enter this parameter, the interactive mode must be used. The shorthand mode (source=url) cannot be used, since this parameter contains a string.
specified in the :url capability 'schemes' parameter
 
**** To enter this parameter, the interactive mode must be used. The
 
shorthand mode (source=url) cannot be used, since this parameter
 
contains a string.
 
 
* '''target'''
 
* '''target'''
 
** type: container with 1 of N choice of leafs
 
** type: container with 1 of N choice of leafs
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the name of the target database for the copy
+
** This parameter specifies the name of the target database for the copy operation.
operation.
 
 
** container contents: 1 of N:
 
** container contents: 1 of N:
 
*** '''candidate'''
 
*** '''candidate'''
Line 4,557: Line 2,737:
 
*** '''running'''
 
*** '''running'''
 
**** type: empty
 
**** type: empty
**** capabilities needed: :writable-running (still optional to
+
**** capabilities needed: :writable-running (still optional to implement)
implement)
 
 
***** '''netconfd''' does not support this mode
 
***** '''netconfd''' does not support this mode
 
*** '''startup'''
 
*** '''startup'''
Line 4,565: Line 2,744:
 
*** '''url'''
 
*** '''url'''
 
**** type: yang:uri
 
**** type: yang:uri
**** capabilities needed: :url, and the scheme used in the URL must be
+
**** capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter.
  +
**** To enter this parameter, the interactive mode must be used. The shorthand mode (target=url) cannot be used, since this parameter contains a string.
specified in the :url capability 'schemes' parameter.
 
**** To enter this parameter, the interactive mode must be used. The
 
shorthand mode (target=url) cannot be used, since this parameter
 
contains a string.
 
 
* '''with-defaults'''
 
* '''with-defaults'''
 
** type: enumeration (none report-all report-all-tagged trim explicit)
 
** type: enumeration (none report-all report-all-tagged trim explicit)
Line 4,575: Line 2,751:
 
** default: none
 
** default: none
 
** capabilities needed: with-defaults
 
** capabilities needed: with-defaults
** This parameter controls how nodes containing only default values are
+
** This parameter controls how nodes containing only default values are copied to the target database.
copied to the target database.
 
   
 
Positive Response:
 
Positive Response:
Line 4,585: Line 2,760:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
Line 4,609: Line 2,783:
 
Filling optional case /copy-config/input/target/config-source/url
 
Filling optional case /copy-config/input/target/config-source/url
 
<nowiki>Enter string value for leaf <url>:</nowiki>
 
<nowiki>Enter string value for leaf <url>:</nowiki>
yangcli andy@myserver:copy-config> [smb://configs/myconfig.xml
+
yangcli andy@myserver:copy-config> [smb://configs/myconfig.xml file://configs/myconfig.xml]
file://configs/myconfig.xml]
 
   
 
RPC OK Reply 12 for session 10:
 
RPC OK Reply 12 for session 10:
Line 4,620: Line 2,793:
   
 
=== create ===
 
=== create ===
The '''create'''<nowiki> command is a high-level <edit-config>
+
The '''create'''<nowiki> command is a high-level <edit-config> operation. </nowiki>It is used to create some new nodes in the default target database.
operation. </nowiki>It is used to create some new nodes in the default
 
target database.
 
   
A target node is specified (in 1 of 2 ways), and then the data structure
+
A target node is specified (in 1 of 2 ways), and then the data structure is filled in. Only mandatory nodes will be filled in unless the '''$$optional''' system variable is set to 'true'.
is filled in. Only mandatory nodes will be filled in unless the
 
'''$$optional''' system variable is set to 'true'.
 
   
Refer to the '''fill''' command for more details on interactive mode
+
Refer to the '''fill''' command for more details on interactive mode data structure completion.
data structure completion.
 
   
   
Line 4,637: Line 2,805:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| target
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| target
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 5
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 5
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :candidate or :writable-running
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :candidate or :writable-running
 
   
 
|}
 
|}
Line 4,697: Line 2,839:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the where '''yangcli''' should get the data
+
** This parameter specifies the where '''yangcli''' should get the data from, for the create operation. It is either a user variable or from interactive input at the command line.
from, for the create operation. It is either a user variable or from
 
interactive input at the command line.
 
 
*** '''varref'''
 
*** '''varref'''
 
**** type: string
 
**** type: string
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** This parameter specifies the name of the user variable to use for
+
**** This parameter specifies the name of the user variable to use for the target of the create operation. The parameter must exist (e.g., created with the '''fill''' command) or an error message will be printed.
the target of the create operation. The parameter must exist (e.g.,
 
created with the '''fill''' command) or an error message will be
 
printed.
 
 
*** '''case from-cli '''(not entered)
 
*** '''case from-cli '''(not entered)
 
**** '''target'''
 
**** '''target'''
Line 4,713: Line 2,850:
 
***** usage: mandatory
 
***** usage: mandatory
 
***** default: none
 
***** default: none
***** This parameter specifies the database target node of the create
+
***** This parameter specifies the database target node of the create operation. This is an '''ncx:schema-instance''' string, so any instance identifier, or absolute path expression, or something in between, is accepted.
operation. This is an '''ncx:schema-instance''' string, so any instance
 
identifier, or absolute path expression, or something in between, is
 
accepted.
 
 
**** '''urltarget'''
 
**** '''urltarget'''
 
***** type: string
 
***** type: string
 
***** usage: optional
 
***** usage: optional
 
***** default: none
 
***** default: none
***** This parameter specifies the database target node of the create
+
***** This parameter specifies the database target node of the create operation. This is an '''UrlPath''' string.
operation. This is an '''UrlPath''' string.
 
 
**** '''optional'''
 
**** '''optional'''
 
***** type: empty
 
***** type: empty
 
***** usage: optional
 
***** usage: optional
 
***** default: controlled by '''$$optional''' system variable
 
***** default: controlled by '''$$optional''' system variable
***** This parameter controls whether optional nodes within the target
+
***** This parameter controls whether optional nodes within the target will be filled in. It can be used to override the '''$$optional '''system variable, when it is set to 'false'.
will be filled in. It can be used to override the '''$$optional
 
'''system variable, when it is set to 'false'.
 
 
**** '''value'''
 
**** '''value'''
 
***** type: anyxml
 
***** type: anyxml
 
***** usage: mandatory
 
***** usage: mandatory
 
***** default: none
 
***** default: none
  +
***** This parameter specifies the value that should be used for the contents of the '''target''' parameter. If it is entered, then the interactive mode prompting for missing parameters will be skipped, if this parameter is complete (or all mandatory nodes present if the '''$$optional''' system variable is 'false'). For example, if the target is a leaf, then specifying this parameter will always cause the interactive prompt mode to be skipped.
***** This parameter specifies the value that should be used for the
 
contents of the '''target''' parameter. If it is entered, then the
 
interactive mode prompting for missing parameters will be skipped, if
 
this parameter is complete (or all mandatory nodes present if the
 
'''$$optional''' system variable is 'false'). For example, if the target
 
is a leaf, then specifying this parameter will always cause the
 
interactive prompt mode to be skipped.
 
 
* '''timeout'''
 
* '''timeout'''
** type: uint32 (0 = no timeout, otherwise the number of seconds to
+
** type: uint32 (0 = no timeout, otherwise the number of seconds to wait)
wait)
 
   
 
*
 
*
 
** usage: optional
 
** usage: optional
** default: set to the '''$$timeout''' system variable, default 30
+
** default: set to the '''$$timeout''' system variable, default 30 seconds
  +
** This parameter specifies the number of seconds to wait for a response from the server before giving up. The session will not be dropped if a remote command times out, but any late response will be dropped. A value of zero means no timeout should be used, and yangcli will wait forever for a response.
seconds
 
** This parameter specifies the number of seconds to wait for a response
 
from the server before giving up. The session will not be dropped if a
 
remote command times out, but any late response will be dropped. A value
 
of zero means no timeout should be used, and yangcli will wait forever
 
for a response.
 
   
 
System Variables:
 
System Variables:
   
 
* '''$$default-operation'''
 
* '''$$default-operation'''
** <nowiki>The <default-operation> parameter for the <edit-config>
+
** <nowiki>The <default-operation> parameter for the <edit-config> operation will be derived from this variable.</nowiki>
operation will be derived from this variable.</nowiki>
 
   
 
* '''$$error-option'''
 
* '''$$error-option'''
** <nowiki>The <error-option> parameter for the <edit-config> operation
+
** <nowiki>The <error-option> parameter for the <edit-config> operation will be derived from this variable</nowiki>
will be derived from this variable</nowiki>
 
 
* '''$$test-option'''
 
* '''$$test-option'''
** <nowiki>The <test-option> parameter for the <edit-config> operation
+
** <nowiki>The <test-option> parameter for the <edit-config> operation will be derived from this variable</nowiki>
will be derived from this variable</nowiki>
 
   
 
Positive Response:
 
Positive Response:
Line 4,775: Line 2,891:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
Line 4,785: Line 2,900:
 
RPC OK Reply 10 for session 10:
 
RPC OK Reply 10 for session 10:
   
yangcli [mailto:andy@www.example.com andy@myserver]> '''create
+
yangcli [mailto:andy@www.example.com andy@myserver]> '''create /nacm/rules/data-rule''' \
/nacm/rules/data-rule''' \
 
 
(user will be prompted to fill in the data-rule contents)
 
(user will be prompted to fill in the data-rule contents)
   
Line 4,792: Line 2,906:
   
 
yangcli [mailto:andy@www.example.com andy@myserver]> '''create \'''
 
yangcli [mailto:andy@www.example.com andy@myserver]> '''create \'''
'''<nowiki>target=/nacm/rules/data-rule[name='test
+
'''<nowiki>target=/nacm/rules/data-rule[name='test rule']/comment</nowiki>''' \
rule']/comment</nowiki>''' \
 
 
'''value=”this test rule is temporary. Do not remove!”'''
 
'''value=”this test rule is temporary. Do not remove!”'''
<nowiki>(no user prompting; <edit-config> request sent right
+
<nowiki>(no user prompting; <edit-config> request sent right away)</nowiki>
away)</nowiki>
 
   
 
RPC OK Reply 12 for session 10:
 
RPC OK Reply 12 for session 10:
Line 4,807: Line 2,919:
   
 
=== create-subscription ===
 
=== create-subscription ===
The create-subscription command is used to start receiving notifications
+
The create-subscription command is used to start receiving notifications from the server.
from the server.
 
   
The :notification capability must be supported by the server to use this
+
The :notification capability must be supported by the server to use this command.
command.
 
   
Unless the :interleave capability is also supported by the server, then
+
Unless the :interleave capability is also supported by the server, then only the '''close-session''' command can be used while notifications are being delivered.
only the '''close-session''' command can be used while notifications are
 
being delivered.
 
   
   
Line 4,823: Line 2,931:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 4
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 4
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| notifications.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| notifications.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :notification
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :notification
 
   
 
|-
 
|-
  +
| Capabilities optional:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :interleave
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities optional:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :interleave
 
   
 
|}
 
|}
Line 4,891: Line 2,969:
 
** usage: optional
 
** usage: optional
 
** default: 'NETCONF'
 
** default: 'NETCONF'
** This parameter specifies the name of the notification stream for this
+
** This parameter specifies the name of the notification stream for this subscription request. Only the 'NETCONF' stream is mandatory to implement. Any other stream contains vendor-specific content, and may not be fully supported, depending on the stream encoding.
subscription request. Only the 'NETCONF' stream is mandatory to
 
implement. Any other stream contains vendor-specific content, and may
 
not be fully supported, depending on the stream encoding.
 
 
* '''filter'''
 
* '''filter'''
** <nowiki>type: anyxml (same as the <get> or <get-config> filter
+
** <nowiki>type: anyxml (same as the <get> or <get-config> filter parameter)</nowiki>
parameter)</nowiki>
 
 
** usage: optional
 
** usage: optional
 
** default: none
 
** default: none
** This parameter specifies a boolean filter that should be applied to
+
** This parameter specifies a boolean filter that should be applied to the stream. <nowiki>This is the same format as the standard <filter> element in RFC 4741, except that instead of creating a subset of the database for an <rpc-reply> PDU, the filter is used as a boolean test to send or drop each notification delivered from the server.</nowiki>
  +
*** If any nodes are left in the 'test response', the server will send the entire notification.
the stream. <nowiki>This is the same format as the standard <filter>
 
  +
*** If the result is empty after the filter is applied to the “test response”, then the server will not send the notification at all.
element in RFC 4741, except that instead of creating a subset of the
 
  +
*** It is possible that access control will either cause the a notification to be dropped entirely, or may be pruned and still delivered. The standard is not clear on this topic. The '''netconfd'''<nowiki> server will prune any unauthorized payload from an eventType, but if the <eventType> itself is unauthorized, the entire notification will be dropped.</nowiki>
database for an <rpc-reply> PDU, the filter is used as a boolean test to
 
send or drop each notification delivered from the server.</nowiki>
 
*** If any nodes are left in the 'test response', the server will send
 
the entire notification.
 
*** If the result is empty after the filter is applied to the “test
 
response”, then the server will not send the notification at all.
 
*** It is possible that access control will either cause the a
 
notification to be dropped entirely, or may be pruned and still
 
delivered. The standard is not clear on this topic. The
 
'''netconfd'''<nowiki> server will prune any unauthorized payload from
 
an eventType, but if the <eventType> itself is unauthorized, the entire
 
notification will be dropped.</nowiki>
 
 
* '''startTime'''
 
* '''startTime'''
 
** type: yang:date-and-time
 
** type: yang:date-and-time
 
** usage: optional
 
** usage: optional
 
** default: none
 
** default: none
** This parameter causes any matching replay notifications to be
+
** This parameter causes any matching replay notifications to be delivered by the server, if notification replay is supported by the server. <nowiki>A notification will match if its <eventTime> value is greater or equal to the value of this parameter.</nowiki>
  +
** <nowiki>After all the replay notifications are delivered, the server will send a <replayComplete> eventType, indicating there are no more replay notifications that match the subscription request.</nowiki>
delivered by the server, if notification replay is supported by the
 
server. <nowiki>A notification will match if its <eventTime> value is
 
greater or equal to the value of this parameter.</nowiki>
 
** <nowiki>After all the replay notifications are delivered, the server
 
will send a <replayComplete> eventType, indicating there are no more
 
replay notifications that match the subscription request.</nowiki>
 
 
* '''stopTime'''
 
* '''stopTime'''
 
** type: yang:date-and-time
 
** type: yang:date-and-time
 
** usage: optional (not allowed unless startTime is also present)
 
** usage: optional (not allowed unless startTime is also present)
 
** default: none
 
** default: none
** This parameter causes any matching replay notifications to be
+
** This parameter causes any matching replay notifications to be delivered by the server, if notification replay is supported by the server. <nowiki>A notification will match if its <eventTime> value is less than the value of this parameter. </nowiki>
  +
*** This parameter must be greater than the '''startTime''' parameter, or an error will be returned by the server.
delivered by the server, if notification replay is supported by the
 
  +
*** If this parameter is used, then the entire subscription will stop after this specified time, even if it is in the future. <nowiki>The <notificationComplete> eventType will be sent by the server when this event occurs.</nowiki>
server. <nowiki>A notification will match if its <eventTime> value is
 
  +
*** If this parameter is not used (but '''startTime'''<nowiki> is used), then the server will continue to deliver 'live' notifications after the <replayComplete> eventType is sent by the server.</nowiki>
less than the value of this parameter. </nowiki>
 
*** This parameter must be greater than the '''startTime''' parameter,
 
or an error will be returned by the server.
 
*** If this parameter is used, then the entire subscription will stop
 
after this specified time, even if it is in the future. <nowiki>The
 
<notificationComplete> eventType will be sent by the server when this
 
event occurs.</nowiki>
 
*** If this parameter is not used (but '''startTime'''<nowiki> is used),
 
then the server will continue to deliver 'live' notifications after the
 
<replayComplete> eventType is sent by the server.</nowiki>
 
   
 
Positive Response:
 
Positive Response:
Line 4,951: Line 3,000:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
Line 4,961: Line 3,009:
 
RPC OK Reply 13 for session 10:
 
RPC OK Reply 13 for session 10:
   
yangcli [mailto:andy@www.example.com andy@myserver]>
+
yangcli [mailto:andy@www.example.com andy@myserver]> '''create-subscription \'''
'''create-subscription \'''
 
 
'''startTime=2009-01-01T00:00:00Z'''
 
'''startTime=2009-01-01T00:00:00Z'''
   
Line 4,975: Line 3,022:
   
 
=== delete ===
 
=== delete ===
The '''delete'''<nowiki> command is a high-level <edit-config>
+
The '''delete'''<nowiki> command is a high-level <edit-config> operation. </nowiki>It is used to delete an existing subtree in the default target database.
operation. </nowiki>It is used to delete an existing subtree in the
 
default target database.
 
   
A target node is specified, and then any missing key leafs (if any)
+
A target node is specified, and then any missing key leafs (if any) within the data structure are filled in. If the target is a leaf-list, then the user will be prompted for the value of the leaf-list node to be deleted.
within the data structure are filled in. If the target is a leaf-list,
 
then the user will be prompted for the value of the leaf-list node to be
 
deleted.
 
   
Refer to the '''fill''' command for more details on interactive mode
+
Refer to the '''fill''' command for more details on interactive mode data structure completion.
data structure completion.
 
   
   
Line 4,993: Line 3,034:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| target
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| target
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :candidate or :writable-running
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :candidate or :writable-running
 
   
 
|}
 
|}
Line 5,053: Line 3,068:
 
** usage: optional (urltarget or target must be present)
 
** usage: optional (urltarget or target must be present)
 
** default: none
 
** default: none
** This parameter specifies the database target node of the delete
+
** This parameter specifies the database target node of the delete operation. This is an '''ncx:schema-instance''' string, so any instance identifier, or absolute path expression, or something in between, is accepted.
operation. This is an '''ncx:schema-instance''' string, so any instance
 
identifier, or absolute path expression, or something in between, is
 
accepted.
 
 
* '''urltarget'''
 
* '''urltarget'''
 
**
 
**
Line 5,064: Line 3,076:
 
***** usage: optional
 
***** usage: optional
 
***** default: none
 
***** default: none
***** This parameter specifies the database target node of the delete
+
***** This parameter specifies the database target node of the delete operation. This is an '''UrlPath''' string.
operation. This is an '''UrlPath''' string.
 
   
 
System Variables:
 
System Variables:
   
 
* '''$$default-operation'''
 
* '''$$default-operation'''
** <nowiki>The <default-operation> parameter for the <edit-config>
+
** <nowiki>The <default-operation> parameter for the <edit-config> operation will be derived from this variable.</nowiki>
operation will be derived from this variable.</nowiki>
 
   
 
* '''$$error-option'''
 
* '''$$error-option'''
** <nowiki>The <error-option> parameter for the <edit-config> operation
+
** <nowiki>The <error-option> parameter for the <edit-config> operation will be derived from this variable</nowiki>
will be derived from this variable</nowiki>
 
 
* '''$$optional'''
 
* '''$$optional'''
** Controls whether optional descendant nodes will be filled into the
+
** Controls whether optional descendant nodes will be filled into the '''target''' parameter contents
'''target''' parameter contents
 
 
* '''$$test-option'''
 
* '''$$test-option'''
** <nowiki>The <test-option> parameter for the <edit-config> operation
+
** <nowiki>The <test-option> parameter for the <edit-config> operation will be derived from this variable</nowiki>
will be derived from this variable</nowiki>
 
   
 
Positive Response:
 
Positive Response:
Line 5,090: Line 3,097:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
   
   
yangcli [mailto:andy@www.example.com andy@myserver]> delete'''
+
yangcli [mailto:andy@www.example.com andy@myserver]> delete''' /nacm/rules/data-rule''' \
/nacm/rules/data-rule''' \
 
 
(user will be prompted to fill in the data-rule 'name' key leaf)
 
(user will be prompted to fill in the data-rule 'name' key leaf)
   
Line 5,103: Line 3,108:
   
 
yangcli [mailto:andy@www.example.com andy@myserver]> delete''' \'''
 
yangcli [mailto:andy@www.example.com andy@myserver]> delete''' \'''
'''<nowiki>target=/nacm/rules/data-rule[name='test
+
'''<nowiki>target=/nacm/rules/data-rule[name='test rule']/comment</nowiki>'''
  +
<nowiki>(no user prompting; <edit-config> request sent right away)</nowiki>
rule']/comment</nowiki>'''
 
<nowiki>(no user prompting; <edit-config> request sent right
 
away)</nowiki>
 
   
 
RPC OK Reply 16 for session 10:
 
RPC OK Reply 16 for session 10:
Line 5,117: Line 3,120:
   
 
=== delete-config ===
 
=== delete-config ===
The '''delete-config''' command is used to delete an entire NETCONF
+
The '''delete-config''' command is used to delete an entire NETCONF database.
database.
 
   
Not all possible '''target''' parameter values will be supported by
+
Not all possible '''target''' parameter values will be supported by every server. In fact, the NETCONF protocol does not require that any database be supported by this operation.
every server. In fact, the NETCONF protocol does not require that any
 
database be supported by this operation.
 
   
If the server supports the :url capability, then it may support deletion
+
If the server supports the :url capability, then it may support deletion of local file databases in this manner.:
of local file databases in this manner.:
 
   
   
Line 5,133: Line 3,132:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yuma-netconf.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yuma-netconf.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Capabilities optional:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :candidate:startup:url
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities optional:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :candidate:startup:url
 
   
 
|}
 
|}
Line 5,201: Line 3,170:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the name of the target database for the
+
** This parameter specifies the name of the target database for the delete operation.
delete operation.
 
 
** container contents: 1 of N:
 
** container contents: 1 of N:
 
*** '''startup'''
 
*** '''startup'''
Line 5,210: Line 3,178:
 
*** '''url'''
 
*** '''url'''
 
**** type: yang:uri
 
**** type: yang:uri
**** capabilities needed: :url, and the scheme used in the URL must be
+
**** capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter.
  +
**** To enter this parameter, the interactive mode must be used. The shorthand mode (target=url) cannot be used, since this parameter contains a string.
specified in the :url capability 'schemes' parameter.
 
**** To enter this parameter, the interactive mode must be used. The
 
shorthand mode (target=url) cannot be used, since this parameter
 
contains a string.
 
 
**** a server may support this parameter
 
**** a server may support this parameter
   
Line 5,224: Line 3,189:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
Line 5,242: Line 3,206:
   
 
=== discard-changes ===
 
=== discard-changes ===
  +
The '''discard-changes'''<nowiki> command is used to delete any edits that exist in the <candidate> database, on the NETCONF server. </nowiki>The server will only accept this command if the :candidate capability is supported. <nowiki>If the <candidate> database is locked by another session, then this request will fail with an 'in-use' error.</nowiki>
The '''discard-changes'''<nowiki> command is used to delete any edits
 
that exist in the <candidate> database, on the NETCONF server.
 
</nowiki>The server will only accept this command if the :candidate
 
capability is supported. <nowiki>If the <candidate> database is locked
 
by another session, then this request will fail with an 'in-use'
 
error.</nowiki>
 
   
   
Line 5,255: Line 3,214:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yuma-netconf.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yuma-netconf.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :candidate
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :candidate
 
   
 
|}
 
|}
Line 5,318: Line 3,251:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
Line 5,336: Line 3,268:
   
 
=== edit-config ===
 
=== edit-config ===
The edit-config command allows a subset of a NETCONF database on the
+
The edit-config command allows a subset of a NETCONF database on the server to be changed.
server to be changed.
 
   
If the server supports the ''':url''' capability, then it may support
+
If the server supports the ''':url''' capability, then it may support editing of local file databases.
editing of local file databases.
 
   
<nowiki>If the server supports the :candidate capability, then it will
+
<nowiki>If the server supports the :candidate capability, then it will allow edits to the <candidate> database.</nowiki>
allow edits to the <candidate> database.</nowiki>
 
   
<nowiki>If the server supports the :writable-running capability, it will
+
<nowiki>If the server supports the :writable-running capability, it will support edits to the <running> database.</nowiki>
support edits to the <running> database.</nowiki>
 
   
<nowiki>It is not likely that a server will support the <candidate> and
+
<nowiki>It is not likely that a server will support the <candidate> and <running> database as targets at the same time, since changes to the <running> configuration would not be reflected in the <candidate> database, while it was being edited by a different session.</nowiki>
<running> database as targets at the same time, since changes to the
 
<running> configuration would not be reflected in the <candidate>
 
database, while it was being edited by a different session.</nowiki>
 
   
   
Line 5,359: Line 3,284:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 2
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 2
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 5
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 5
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yuma-netconf.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yuma-netconf.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :candidate or :writable-running
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :candidate or :writable-running
 
   
 
|-
 
|-
  +
| Capabilities optional:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :url:rollback-on-error:validate
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities optional:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :url:rollback-on-error:validate
 
   
 
|}
 
|}
Line 5,427: Line 3,322:
 
** usage: optional
 
** usage: optional
 
** default: merge
 
** default: merge
** This parameter specifies which edit operation will be in effect at
+
** This parameter specifies which edit operation will be in effect at the start of the operation, before any '''nc:operation '''attribute is found.
  +
*** The high-level edit operations provided by '''yangcli''' will set this parameter to 'none'. This is the safest value, since only subtrees that have an explicit '''nc:operation''' attribute in effect can possibly be altered by the command.
the start of the operation, before any '''nc:operation '''attribute is
 
  +
*** If the value is 'merge', then any missing nodes in the database will be automatically created as needed.
found.
 
  +
*** If the value is 'replace', then the target database will be pruned to match the edits, as needed. Only the data from the '''config''' parameter will remain if this value is used. (Use with extreme caution).
*** The high-level edit operations provided by '''yangcli''' will set
 
this parameter to 'none'. This is the safest value, since only subtrees
 
that have an explicit '''nc:operation''' attribute in effect can
 
possibly be altered by the command.
 
*** If the value is 'merge', then any missing nodes in the database will
 
be automatically created as needed.
 
*** If the value is 'replace', then the target database will be pruned
 
to match the edits, as needed. Only the data from the '''config'''
 
parameter will remain if this value is used. (Use with extreme caution).
 
 
* '''error-option'''
 
* '''error-option'''
 
** type: enumeration (stop-on-error continue-on-error rollback-on-error
 
** type: enumeration (stop-on-error continue-on-error rollback-on-error
 
** usage: optional
 
** usage: optional
 
** default: stop-on-error
 
** default: stop-on-error
** This parameter specifies what the server should do when an error is
+
** This parameter specifies what the server should do when an error is encountered.
  +
*** The rollback-on-error value is only allowed if the ''':rollback-on-error''' capability is supported by the server.
encountered.
 
  +
*** The standard is not clear what continue-on-error really means. It is suggested that this value not be used. It is possible that the server will validate all input parameters before making any changes, no matter how this parameter is set.
*** The rollback-on-error value is only allowed if the
 
''':rollback-on-error''' capability is supported by the server.
 
*** The standard is not clear what continue-on-error really means. It is
 
suggested that this value not be used. It is possible that the server
 
will validate all input parameters before making any changes, no matter
 
how this parameter is set.
 
 
* '''choice edit-content''' (not entered)
 
* '''choice edit-content''' (not entered)
 
** '''config'''
 
** '''config'''
Line 5,456: Line 3,338:
 
*** usage: mandatory
 
*** usage: mandatory
 
*** default: none
 
*** default: none
*** This parameter specifies the subset of the database that should be
+
*** This parameter specifies the subset of the database that should be changed. This is the most common way to edit a NETCONF server database, since it is mandatory to support by all agents.
changed. This is the most common way to edit a NETCONF server database,
 
since it is mandatory to support by all agents.
 
 
** '''url'''
 
** '''url'''
 
*** type: yang:uri
 
*** type: yang:uri
*** capabilities needed:''' :url,''' and the scheme used in the URL must
+
*** capabilities needed:''' :url,''' and the scheme used in the URL must be specified in the ''':url''' capability 'schemes' parameter.
  +
*** To enter this parameter, the interactive mode must be used. The shorthand mode (target=url) cannot be used, since this parameter contains a string.
be specified in the ''':url''' capability 'schemes' parameter.
 
*** To enter this parameter, the interactive mode must be used. The
 
shorthand mode (target=url) cannot be used, since this parameter
 
contains a string.
 
 
* '''target'''
 
* '''target'''
 
** type: container with 1 of N choice of leafs
 
** type: container with 1 of N choice of leafs
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the name of the target database for the edit
+
** This parameter specifies the name of the target database for the edit operation.
operation.
 
 
** container contents: choice: 1 of N:
 
** container contents: choice: 1 of N:
 
*** '''candidate'''
 
*** '''candidate'''
Line 5,483: Line 3,359:
 
** usage: optional
 
** usage: optional
 
** default: set
 
** default: set
** This parameter specifies how the server should test the
+
** This parameter specifies how the server should test the '''edit-content''' parameter before using it.
  +
*** If the value is 'set' (normal case), the server will apply validation tests as needed for the individual data structures being edited
'''edit-content''' parameter before using it.
 
  +
*** The value 'test-then-set' is only allowed if the :validate capability is supported by the server. The server will test if the entire database will be valid after the edits are made, before making any changes to the candidate configuration.
*** If the value is 'set' (normal case), the server will apply
 
  +
**** This mode is very resource intensive. Set this parameter to 'set' for better performance, and run the validation tests manually with the '''validate''' command.
validation tests as needed for the individual data structures being
 
  +
*** The value 'test-only' is not supported by all agents. It will be in the next version of the NETCONF protocol, but is non-standard at this time.
edited
 
  +
**** Use this value to check if a specific edit should succeed or not, allowing errors to be corrected before altering the database for real.
*** The value 'test-then-set' is only allowed if the :validate
 
capability is supported by the server. The server will test if the
 
entire database will be valid after the edits are made, before making
 
any changes to the candidate configuration.
 
**** This mode is very resource intensive. Set this parameter to 'set'
 
for better performance, and run the validation tests manually with the
 
'''validate''' command.
 
*** The value 'test-only' is not supported by all agents. It will be in
 
the next version of the NETCONF protocol, but is non-standard at this
 
time.
 
**** Use this value to check if a specific edit should succeed or not,
 
allowing errors to be corrected before altering the database for real.
 
   
 
Positive Response:
 
Positive Response:
Line 5,508: Line 3,373:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
Line 5,530: Line 3,394:
   
 
=== elif ===
 
=== elif ===
The '''elif''' command is used to define a conditional command block
+
The '''elif''' command is used to define a conditional command block after an if command.
after an if command.
 
   
This command must be entered within the same script as the if command,
+
This command must be entered within the same script as the if command, when used within a script. It can be used zero or more times within an if command sequence.
when used within a script. It can be used zero or more times within an
 
if command sequence.
 
   
  +
The '''expr''' parameter is used to specify the XPath expression to test if the elif conditional block is true or false. A false block will be skipped and a true block will be executed. <nowiki>The command prompt will contain the string '[F]' while inside a false conditional block in interactive mode. </nowiki>This expression string should be entered with quotes to avoid misinterpreting any whitespace or special characters.
The '''expr''' parameter is used to specify the XPath expression to test
 
if the elif conditional block is true or false. A false block will be
 
skipped and a true block will be executed. <nowiki>The command prompt
 
will contain the string '[F]' while inside a false conditional block in
 
interactive mode. </nowiki>This expression string should be entered with
 
quotes to avoid misinterpreting any whitespace or special characters.
 
   
The '''docroot''' parameter (if present) specifies the XML document that
+
The '''docroot''' parameter (if present) specifies the XML document that the 'expr' parameter should be evaluated against. This is optional, since only XPath path expressions need to refer to a document.
the 'expr' parameter should be evaluated against. This is optional,
 
since only XPath path expressions need to refer to a document.
 
   
Even if the 'expr' expression is true, the conditional block will only
+
Even if the 'expr' expression is true, the conditional block will only be executed if no conditional block in the if command sequence has already been executed.
be executed if no conditional block in the if command sequence has
 
already been executed.
 
   
   
Line 5,577: Line 3,429:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| expr
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| expr
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 2
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 2
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 5,629: Line 3,459:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the XPath expression to determine if the
+
** This parameter specifies the XPath expression to determine if the following commands are within a true or false conditional block.
following commands are within a true or false conditional block.
 
 
* '''docroot'''
 
* '''docroot'''
 
** type: anyxml
 
** type: anyxml
 
** usage: optional (typically a variable reference is used)
 
** usage: optional (typically a variable reference is used)
 
** default: none
 
** default: none
** This parameter specifies the XML document that should be used if the
+
** This parameter specifies the XML document that should be used if the expr XPath expression references any path nodes.
expr XPath expression references any path nodes.
 
   
 
Positive Response:
 
Positive Response:
Line 5,647: Line 3,475:
 
** elif without a previous if command will cause an error
 
** elif without a previous if command will cause an error
 
** elif following an 'else' command will cause an error
 
** elif following an 'else' command will cause an error
** invalid XPath expression or invalid docroot reference will cause an
+
** invalid XPath expression or invalid docroot reference will cause an error
error
 
   
 
Usage:
 
Usage:
Line 5,659: Line 3,486:
   
 
=== else ===
 
=== else ===
The '''else''' command is used to define a final conditional command
+
The '''else''' command is used to define a final conditional command block after an if command.
block after an if command.
 
   
This command must be entered within the same script as the if command,
+
This command must be entered within the same script as the if command, when used within a script. It can be used zero or one time within an if command sequence.
when used within a script. It can be used zero or one time within an if
 
command sequence.
 
   
The conditional command block following the else command will only be
+
The conditional command block following the else command will only be executed if no conditional block has already been executed in the same if command sequence.
executed if no conditional block has already been executed in the same
 
if command sequence.
 
   
   
Line 5,695: Line 3,517:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 5,761: Line 3,561:
   
 
=== end ===
 
=== end ===
The '''end''' command is used to terminate a conditional command block
+
The '''end''' command is used to terminate a conditional command block after an if command block, or after a 'while' command.
after an if command block, or after a 'while' command.
 
   
This command must be entered within the same script as the if or while
+
This command must be entered within the same script as the if or while command, when used within a script.
command, when used within a script.
 
   
   
Line 5,799: Line 3,597:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 5,866: Line 3,642:
 
The '''eval''' command is used to evaluate an XPath expression..
 
The '''eval''' command is used to evaluate an XPath expression..
   
The '''expr''' parameter is used to specify the XPath expression to
+
The '''expr''' parameter is used to specify the XPath expression to evaluate. This expression string should be entered with quotes to avoid misinterpreting any whitespace or special characters.
evaluate. This expression string should be entered with quotes to avoid
 
misinterpreting any whitespace or special characters.
 
   
The '''docroot''' parameter (if present) specifies the XML document that
+
The '''docroot''' parameter (if present) specifies the XML document that the 'expr' parameter should be evaluated against. This is optional, since only XPath path expressions need to refer to a document.
the 'expr' parameter should be evaluated against. This is optional,
 
since only XPath path expressions need to refer to a document.
 
   
   
Line 5,880: Line 3,652:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| expr
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| expr
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 2
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 2
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| data
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| data
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 5,932: Line 3,682:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the XPath expression to determine if the
+
** This parameter specifies the XPath expression to determine if the following commands are within a true or false conditional block.
following commands are within a true or false conditional block.
 
 
* '''docroot'''
 
* '''docroot'''
 
** type: anyxml
 
** type: anyxml
 
** usage: optional (typically a variable reference is used)
 
** usage: optional (typically a variable reference is used)
 
** default: none
 
** default: none
** This parameter specifies the XML document that should be used if the
+
** This parameter specifies the XML document that should be used if the expr XPath expression references any path nodes.
expr XPath expression references any path nodes.
 
   
 
Positive Response:
 
Positive Response:
Line 5,950: Line 3,698:
 
** elif without a previous if command will cause an error
 
** elif without a previous if command will cause an error
 
** elif following an 'else' command will cause an error
 
** elif following an 'else' command will cause an error
** invalid XPath expression or invalid docroot reference will cause an
+
** invalid XPath expression or invalid docroot reference will cause an error
error
 
   
 
Output:
 
Output:
Line 5,957: Line 3,704:
 
* '''data'''
 
* '''data'''
 
** type: anyxml
 
** type: anyxml
** This element will contain the result from the XPath expression. A
+
** This element will contain the result from the XPath expression. A node-set result will produce a complex element return value, and all other XPath result types will produce a string return value.
node-set result will produce a complex element return value, and all
 
other XPath result types will produce a string return value.
 
   
 
Usage:
 
Usage:
Line 5,965: Line 3,710:
 
yangcli andy@myserver> '''$x = eval '$x + 1''''
 
yangcli andy@myserver> '''$x = eval '$x + 1''''
   
yangcli [mailto:andy@myagent andy@myserver]> '''$sysname = eval
+
yangcli [mailto:andy@myagent andy@myserver]> '''$sysname = eval '//sysName' docroot=$backup'''
'//sysName' docroot=$backup'''
 
   
   
 
=== eventlog ===
 
=== eventlog ===
The '''eventlog''' command is used to view or clear all or part of the
+
The '''eventlog''' command is used to view or clear all or part of the notification event log. This log will be empty if no well-formed notifications have been received from any server.
notification event log. This log will be empty if no well-formed
 
notifications have been received from any server.
 
   
The '''eventlog show''' command is used to display some event log
+
The '''eventlog show''' command is used to display some event log entries.
entries.
 
   
The''' eventlog clear''' command is used to delete some event log
+
The''' eventlog clear''' command is used to delete some event log entries.
entries.
 
   
If no parameters are entered, it is the same as entering 'eventlog
+
If no parameters are entered, it is the same as entering 'eventlog show=-1'.
show=-1'.
 
   
The event log is not automatically emptied when a session terminates, in
+
The event log is not automatically emptied when a session terminates, in case the session was dropped unexpectedly. New entries will be appended to the event log as new sessions and/or subscriptions are started.
case the session was dropped unexpectedly. New entries will be appended
 
to the event log as new sessions and/or subscriptions are started.
 
   
   
Line 5,993: Line 3,730:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| show
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| show
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 3
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 3
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 6,045: Line 3,760:
 
** usage: optional
 
** usage: optional
 
** default: show=-1 is used as the default if nothing entered
 
** default: show=-1 is used as the default if nothing entered
** This parameter specifies the event log action that should be
+
** This parameter specifies the event log action that should be performed.
performed.
 
 
*** '''clear'''
 
*** '''clear'''
 
**** type: int32 (-1 to clear all entries; 1 to max to delete N entries)
 
**** type: int32 (-1 to clear all entries; 1 to max to delete N entries)
 
**** usage: optional
 
**** usage: optional
 
**** default: -1
 
**** default: -1
**** This parameter specifies the maximum number of event log entries to
+
**** This parameter specifies the maximum number of event log entries to be deleted, starting from the oldest entries in the event log. The value -1 means delete all the entries. Otherwise the value must be greater than zero, and up to that many entries will be deleted.
be deleted, starting from the oldest entries in the event log. The value
 
-1 means delete all the entries. Otherwise the value must be greater
 
than zero, and up to that many entries will be deleted.
 
 
*** '''case show-case''' (not entered)
 
*** '''case show-case''' (not entered)
 
**** '''choice help-mode''' (not entered) (default choice is 'normal')
 
**** '''choice help-mode''' (not entered) (default choice is 'normal')
Line 6,061: Line 3,772:
 
****** usage: optional
 
****** usage: optional
 
****** default: none
 
****** default: none
****** This parameter specifies that brief documentation mode should be
+
****** This parameter specifies that brief documentation mode should be used. <nowiki>The event log index, sequence ID, and <eventType> will be displayed in this mode.</nowiki>
used. <nowiki>The event log index, sequence ID, and <eventType> will be
 
displayed in this mode.</nowiki>
 
 
***** '''normal'''
 
***** '''normal'''
 
****** type: empty
 
****** type: empty
 
****** usage: optional
 
****** usage: optional
 
****** default: none
 
****** default: none
****** This parameter specifies that normal documentation mode should be
+
****** This parameter specifies that normal documentation mode should be used. <nowiki>The event log index, <eventTime>, sequence ID, and <eventType> will be displayed in this mode.</nowiki>
used. <nowiki>The event log index, <eventTime>, sequence ID, and
 
<eventType> will be displayed in this mode.</nowiki>
 
 
***** '''full'''
 
***** '''full'''
 
****** type: empty
 
****** type: empty
 
****** usage: optional
 
****** usage: optional
 
****** default: none
 
****** default: none
****** This parameter specifies that full documentation mode should be
+
****** This parameter specifies that full documentation mode should be used. <nowiki>The event log index, <eventTime>, sequence ID, and <eventType> will be displayed in this mode. </nowiki>In addition, the entire contents of the notification PDU will be displayed, using the current '''$$display-mode''' setting.
used. <nowiki>The event log index, <eventTime>, sequence ID, and
 
<eventType> will be displayed in this mode. </nowiki>In addition, the
 
entire contents of the notification PDU will be displayed, using the
 
current '''$$display-mode''' setting.
 
 
**** '''show'''
 
**** '''show'''
 
***** type: int32 (-1 for all, 1 to max for N entries)
 
***** type: int32 (-1 for all, 1 to max for N entries)
 
***** usage: optional
 
***** usage: optional
 
***** default: -1
 
***** default: -1
***** This parameter specifies the number of event log entries that
+
***** This parameter specifies the number of event log entries that should be displayed. The value '-1' indicates all the entries should be displayed. Otherwise, the value must be greater than zero, indicating the number of entries to display.
should be displayed. The value '-1' indicates all the entries should be
 
displayed. Otherwise, the value must be greater than zero, indicating
 
the number of entries to display.
 
 
**** '''start'''
 
**** '''start'''
 
***** type: uint32
 
***** type: uint32
 
***** usage: optional
 
***** usage: optional
 
***** default: 0
 
***** default: 0
***** This parameter specifies the start position in the event log to
+
***** This parameter specifies the start position in the event log to start displaying entries. The first entry is number zero. Each time the event log is cleared, the numbering restarts.
start displaying entries. The first entry is number zero. Each time the
 
event log is cleared, the numbering restarts.
 
   
 
System Variables:
 
System Variables:
   
 
* $$display-mode
 
* $$display-mode
** The log entries printed when help-mode='full' are formatted according
+
** The log entries printed when help-mode='full' are formatted according to the current value of this system variable.
to the current value of this system variable.
 
   
 
Positive Response:
 
Positive Response:
Line 6,115: Line 3,812:
 
yangcli andy@myserver> '''eventlog show=5 start=3'''
 
yangcli andy@myserver> '''eventlog show=5 start=3'''
   
<nowiki> [3]</nowiki> <nowiki> [2009-07-10T02:21:10Z]
+
<nowiki> [3]</nowiki> <nowiki> [2009-07-10T02:21:10Z] (4)</nowiki> <nowiki><sysSessionStart> </nowiki>
(4)</nowiki> <nowiki><sysSessionStart> </nowiki>
+
<nowiki> [4]</nowiki> <nowiki> [2009-07-10T02:23:14Z] (5)</nowiki> <nowiki><sysSessionEnd> </nowiki>
<nowiki> [4]</nowiki> <nowiki> [2009-07-10T02:23:14Z]
+
<nowiki> [5]</nowiki> <nowiki> [2009-07-10T02:23:23Z] (6)</nowiki> <nowiki><sysSessionStart> </nowiki>
(5)</nowiki> <nowiki><sysSessionEnd> </nowiki>
+
<nowiki> [6]</nowiki> <nowiki> [2009-07-10T02:24:52Z] (7)</nowiki> <nowiki><sysConfigChange> </nowiki>
<nowiki> [5]</nowiki> <nowiki> [2009-07-10T02:23:23Z]
+
<nowiki> [7]</nowiki> <nowiki> [2009-07-10T02:24:57Z] (8)</nowiki> <nowiki><sysSessionEnd> </nowiki>
(6)</nowiki> <nowiki><sysSessionStart> </nowiki>
 
<nowiki> [6]</nowiki> <nowiki> [2009-07-10T02:24:52Z]
 
(7)</nowiki> <nowiki><sysConfigChange> </nowiki>
 
<nowiki> [7]</nowiki> <nowiki> [2009-07-10T02:24:57Z]
 
(8)</nowiki> <nowiki><sysSessionEnd> </nowiki>
 
   
 
yangcli andy@myserver>
 
yangcli andy@myserver>
   
 
=== fill ===
 
=== fill ===
The '''fill''' command is used to create a user variable for reuse in
+
The '''fill''' command is used to create a user variable for reuse in other commands.
other commands.
 
   
It is used in an assignment statement to create a variable from various
+
It is used in an assignment statement to create a variable from various sources.
sources.
 
   
If it is not used in an assignment statement, then the result will not
+
If it is not used in an assignment statement, then the result will not be saved, so the command will have no effect in this case.
be saved, so the command will have no effect in this case.
 
   
The value contents will mirror the subtree within the NETCONF database
+
The value contents will mirror the subtree within the NETCONF database indicated by the target parameter. If not completely provided, then missing descendant nodes will be filled in interactively, by prompting for each missing node.
indicated by the target parameter. If not completely provided, then
 
missing descendant nodes will be filled in interactively, by prompting
 
for each missing node.
 
   
   
Line 6,149: Line 3,835:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| target
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| target
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 2
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 2
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 3
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 3
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| data
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| data
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 6,201: Line 3,865:
 
** usage: optional
 
** usage: optional
 
** default: controlled by '''$$optional''' system variable
 
** default: controlled by '''$$optional''' system variable
** This parameter controls whether optional nodes within the target will
+
** This parameter controls whether optional nodes within the target will be filled in. It can be used to override the''' $$optional''' system variable, when it is set to 'false'.
be filled in. It can be used to override the''' $$optional''' system
 
variable, when it is set to 'false'.
 
 
* '''target'''
 
* '''target'''
 
** type: string
 
** type: string
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the database target node of the create
+
** This parameter specifies the database target node of the create operation. This is an '''ncx:schema-instance '''string, so any instance identifier, or absolute path expression, or something in between, is accepted.
operation. This is an '''ncx:schema-instance '''string, so any instance
 
identifier, or absolute path expression, or something in between, is
 
accepted.
 
 
* '''value'''
 
* '''value'''
 
** type: anyxml
 
** type: anyxml
Line 6,217: Line 3,876:
 
** default: none
 
** default: none
 
** This parameter specifies the content to use for the filled variable.
 
** This parameter specifies the content to use for the filled variable.
*** If this parameter is not entered, then the user will be prompted
+
*** If this parameter is not entered, then the user will be prompted interactively to fill in the '''target''' data structure.
  +
*** If a string is entered, then the target value being filled must be a leaf or leaf-list.
interactively to fill in the '''target''' data structure.
 
*** If a string is entered, then the target value being filled must be a
+
*** If a variable reference is entered, then it will be used as the content, if the target value being filled is a leaf or a leaf-list.
  +
*** If the target value is a complex object, then the referenced variable must also be a complex object of the same type.
leaf or leaf-list.
 
  +
*** An error will be reported if the global or local variable does not reference the same object type as the target parameter.
*** If a variable reference is entered, then it will be used as the
 
content, if the target value being filled is a leaf or a leaf-list.
 
*** If the target value is a complex object, then the referenced
 
variable must also be a complex object of the same type.
 
*** An error will be reported if the global or local variable does not
 
reference the same object type as the target parameter.
 
   
 
System Variables:
 
System Variables:
   
 
* $$optional
 
* $$optional
** Controls whether optional descendant nodes will be filled into the
+
** Controls whether optional descendant nodes will be filled into the '''target''' parameter contents
'''target''' parameter contents
 
   
 
Positive Response:
 
Positive Response:
Line 6,247: Line 3,900:
 
** type: anyxml
 
** type: anyxml
 
** The data structure will mirror the requested target object.
 
** The data structure will mirror the requested target object.
** The variable (if any) will retain the target object name and
+
** The variable (if any) will retain the target object name and namespace so it can be used in other operations more easily. In the example below, the '''$my_interface''' local variable will have the module name 'interfaces' and name 'interface', when used in other commands such as '''create''' or '''merge'''.
namespace so it can be used in other operations more easily. In the
 
example below, the '''$my_interface''' local variable will have the
 
module name 'interfaces' and name 'interface', when used in other
 
commands such as '''create''' or '''merge'''.
 
   
 
Usage:
 
Usage:
Line 6,272: Line 3,921:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 2
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 2
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| data
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| data
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yuma-netconf.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yuma-netconf.yang
 
   
 
|}
 
|}
Line 6,324: Line 3,951:
 
** usage: optional
 
** usage: optional
 
** default: none
 
** default: none
** This parameter specifies a boolean filter that should be applied to
+
** This parameter specifies a boolean filter that should be applied to the stream. <nowiki>Any data in the <running> database (or non-config data) that does not match the filter will be left out of the <rpc-reply> response.</nowiki>
the stream. <nowiki>Any data in the <running> database (or non-config
+
*** <nowiki>If no filter is used, the server will return the entire <running> database and all non-config data as well. </nowiki>This could be a lot of data, depending on the server.
data) that does not match the filter will be left out of the <rpc-reply>
+
*** <nowiki>If the result is empty after the filter is applied to the available data, then the server will send an empty <data> element in the <rpc-reply></nowiki>
  +
*** <nowiki>It is possible that access control will cause the <rpc-reply> to be pruned. </nowiki>The '''netconfd''' server will silently prune any unauthorized payload from the <nowiki><rpc-reply>.</nowiki>
response.</nowiki>
 
*** <nowiki>If no filter is used, the server will return the entire
 
<running> database and all non-config data as well. </nowiki>This could
 
be a lot of data, depending on the server.
 
*** <nowiki>If the result is empty after the filter is applied to the
 
available data, then the server will send an empty <data> element in the
 
<rpc-reply></nowiki>
 
*** <nowiki>It is possible that access control will cause the
 
<rpc-reply> to be pruned. </nowiki>The '''netconfd''' server will
 
silently prune any unauthorized payload from the
 
<nowiki><rpc-reply>.</nowiki>
 
 
* '''with-defaults'''
 
* '''with-defaults'''
 
** type: enumeration (none report-all report-all-tagged trim explicit)
 
** type: enumeration (none report-all report-all-tagged trim explicit)
Line 6,343: Line 3,960:
 
** default: none
 
** default: none
 
** capabilities needed: with-defaults
 
** capabilities needed: with-defaults
** <nowiki>This parameter controls how nodes containing only default
+
** <nowiki>This parameter controls how nodes containing only default values are returned in the <rpc-reply>.</nowiki>
values are returned in the <rpc-reply>.</nowiki>
 
   
 
Positive Response:
 
Positive Response:
Line 6,353: Line 3,969:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Output:
 
Output:
Line 6,360: Line 3,975:
 
* '''data'''
 
* '''data'''
 
** type: anyxml
 
** type: anyxml
** This element will contain the requested data from the
+
** This element will contain the requested data from the '''<nowiki><</nowiki>'''running> database, or non-config data from the server instrumentation.
'''<nowiki><</nowiki>'''running> database, or non-config data from the
 
server instrumentation.
 
   
 
Usage:
 
Usage:
Line 6,376: Line 3,989:
 
}
 
}
   
yangcli [mailto:andy@www.example.com andy@myserver]> '''get
+
yangcli [mailto:andy@www.example.com andy@myserver]> '''get [mailto:filter%3D@myfilter.xml filter=@myfilter.xml]
[mailto:filter%3D@myfilter.xml filter=@myfilter.xml]
 
   
 
RPC Data Reply 21 for session 10:
 
RPC Data Reply 21 for session 10:
Line 6,397: Line 4,009:
   
 
=== get-config ===
 
=== get-config ===
The '''get-config''' command is used to retrieve configuration data from
+
The '''get-config''' command is used to retrieve configuration data from the server.
the server.
 
   
   
Line 6,406: Line 4,017:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 3
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 3
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| data
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| data
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yuma-netconf.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yuma-netconf.yang
 
   
 
|}
 
|}
Line 6,458: Line 4,047:
 
** usage: optional
 
** usage: optional
 
** default: none
 
** default: none
** This parameter specifies a boolean filter that should be applied to
+
** This parameter specifies a boolean filter that should be applied to the stream. <nowiki>Any data in the <running> database (or non-config data) that does not match the filter will be left out of the <rpc-reply> response.</nowiki>
the stream. <nowiki>Any data in the <running> database (or non-config
+
*** <nowiki>If no filter is used, the server will return the entire <running> database and all non-config data as well. </nowiki>This could be a lot of data, depending on the server.
data) that does not match the filter will be left out of the <rpc-reply>
+
*** <nowiki>If the result is empty after the filter is applied to the available data, then the server will send an empty <data> element in the <rpc-reply></nowiki>
  +
*** <nowiki>It is possible that access control will cause the <rpc-reply> to be pruned. </nowiki>The '''netconfd''' server will silently prune any unauthorized payload from the <nowiki><rpc-reply>.</nowiki>
response.</nowiki>
 
*** <nowiki>If no filter is used, the server will return the entire
 
<running> database and all non-config data as well. </nowiki>This could
 
be a lot of data, depending on the server.
 
*** <nowiki>If the result is empty after the filter is applied to the
 
available data, then the server will send an empty <data> element in the
 
<rpc-reply></nowiki>
 
*** <nowiki>It is possible that access control will cause the
 
<rpc-reply> to be pruned. </nowiki>The '''netconfd''' server will
 
silently prune any unauthorized payload from the
 
<nowiki><rpc-reply>.</nowiki>
 
 
* '''source'''
 
* '''source'''
 
** type: container with 1 of N choice of leafs
 
** type: container with 1 of N choice of leafs
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the name of the source database for the
+
** This parameter specifies the name of the source database for the retrieval operation.
retrieval operation.
 
 
** container contents: 1 of N:
 
** container contents: 1 of N:
 
*** '''candidate'''
 
*** '''candidate'''
Line 6,490: Line 4,068:
 
*** '''url'''
 
*** '''url'''
 
**** type: yang:uri
 
**** type: yang:uri
**** capabilities needed: :url, and the scheme used in the URL must be
+
**** capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter
  +
**** To enter this parameter, the interactive mode must be used. The shorthand mode (source=url) cannot be used, since this parameter contains a string.
specified in the :url capability 'schemes' parameter
 
**** To enter this parameter, the interactive mode must be used. The
 
shorthand mode (source=url) cannot be used, since this parameter
 
contains a string.
 
 
* '''with-defaults'''
 
* '''with-defaults'''
 
** type: enumeration (none report-all report-all-tagged trim explicit)
 
** type: enumeration (none report-all report-all-tagged trim explicit)
Line 6,500: Line 4,075:
 
** default: none
 
** default: none
 
** capabilities needed: with-defaults
 
** capabilities needed: with-defaults
** <nowiki>This parameter controls how nodes containing only default
+
** <nowiki>This parameter controls how nodes containing only default values are returned in the <rpc-reply>.</nowiki>
values are returned in the <rpc-reply>.</nowiki>
 
   
 
Positive Response:
 
Positive Response:
Line 6,510: Line 4,084:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Output:
 
Output:
Line 6,517: Line 4,090:
 
* '''data'''
 
* '''data'''
 
** type: anyxml
 
** type: anyxml
** This element will contain the requested data from the '''source'''
+
** This element will contain the requested data from the '''source''' database.
database.
 
   
 
Usage:
 
Usage:
   
   
yangcli [mailto:andy@www.example.com andy@myserver]> '''$my-config
+
yangcli [mailto:andy@www.example.com andy@myserver]> '''$my-config =''' '''get-config target=running'''
=''' '''get-config target=running'''
 
   
 
RPC Data Reply 22 for session 10:
 
RPC Data Reply 22 for session 10:
Line 6,534: Line 4,105:
 
}
 
}
   
yangcli [mailto:andy@www.example.com andy@myserver]>
+
yangcli [mailto:andy@www.example.com andy@myserver]> '''@saved-config.xml =''' '''get-config \'''
'''@saved-config.xml =''' '''get-config \'''
 
 
[mailto:filter%3D@myfilter.xml filter=@myfilter.xml] \'''
 
[mailto:filter%3D@myfilter.xml filter=@myfilter.xml] \'''
 
'''target=candidate'''
 
'''target=candidate'''
Line 6,553: Line 4,123:
   
 
=== get-locks ===
 
=== get-locks ===
The '''get-locks'''<nowiki> command is a high-level wrapper for the
+
The '''get-locks'''<nowiki> command is a high-level wrapper for the <lock> operation. </nowiki><nowiki>It is used to lock all the databases (<running> plus <candidate> and/or <startup> if they exist). </nowiki>If all the locks cannot be obtained, then release all the locks that were obtained (all-or-nothing).
<lock> operation. </nowiki><nowiki>It is used to lock all the databases
 
(<running> plus <candidate> and/or <startup> if they exist). </nowiki>If
 
all the locks cannot be obtained, then release all the locks that were
 
obtained (all-or-nothing).
 
   
The entire time to wait for a lock in use is set with the lock-timeout
+
The entire time to wait for a lock in use is set with the lock-timeout parameter.
parameter.
 
   
<nowiki>The retry-interval parameter is used when the <lock> operation
+
<nowiki>The retry-interval parameter is used when the <lock> operation fails with a 'lock-denied' error-tag, because some other session has the lock.</nowiki>
fails with a 'lock-denied' error-tag, because some other session has the
 
lock.</nowiki>
 
   
<nowiki>If the <candidate> cannot be locked for another reason, a
+
<nowiki>If the <candidate> cannot be locked for another reason, a <discard-changes> operation will be attempted to clear any leftover edits.</nowiki>
<discard-changes> operation will be attempted to clear any leftover
 
edits.</nowiki>
 
   
Normally, the errors received while attempting to acquire locks are not
+
Normally, the errors received while attempting to acquire locks are not printed to the log, like normal commands. Instead, if $$log-level system parameter is set to 'debug2' or 'debug3', then these messages will be printed.
printed to the log, like normal commands. Instead, if $$log-level system
 
parameter is set to 'debug2' or 'debug3', then these messages will be
 
printed.
 
   
   
Line 6,581: Line 4,139:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 3
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 3
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 6,633: Line 4,169:
 
** usage: optional
 
** usage: optional
 
** default: 120 seconds (2 minutes)
 
** default: 120 seconds (2 minutes)
** This parameter specifies how long to wait for a lock that is in use
+
** This parameter specifies how long to wait for a lock that is in use by another session.
by another session.
 
 
* '''retry-interval'''
 
* '''retry-interval'''
 
** type: uint32 (seconds)
 
** type: uint32 (seconds)
Line 6,644: Line 4,179:
 
** usage: optional
 
** usage: optional
 
** default: true
 
** default: true
** This parameter controls whether the 'release-locks' command will be
+
** This parameter controls whether the 'release-locks' command will be called automatically if the entire set of required locks cannot be granted.
called automatically if the entire set of required locks cannot be
 
granted.
 
   
 
Positive Response:
 
Positive Response:
Line 6,655: Line 4,188:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
   
   
yangcli [mailto:andy@www.example.com andy@myserver]> '''get-locks
+
yangcli [mailto:andy@www.example.com andy@myserver]> '''get-locks lock-timeout=0'''
lock-timeout=0'''
 
 
 
 
<nowiki>Sending <lock> operations for get-locks... </nowiki>
 
<nowiki>Sending <lock> operations for get-locks... </nowiki>
Line 6,674: Line 4,205:
   
 
=== get-my-session ===
 
=== get-my-session ===
The''' get-my-session '''command is used to retrieve the session
+
The''' get-my-session '''command is used to retrieve the session customization parameters from the server. It is only supported by the '''netconfd''' server.
customization parameters from the server. It is only supported by the
 
'''netconfd''' server.
 
   
The session indent amount, session line size, and default behavior for
+
The session indent amount, session line size, and default behavior for the with-defaults parameter can be controlled at this time.
the with-defaults parameter can be controlled at this time.
 
   
   
Line 6,687: Line 4,215:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| data
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| data
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| mysession.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| mysession.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|}
 
|}
Line 6,747: Line 4,249:
 
Positive Response:
 
Positive Response:
   
* <nowiki>the server returns <indent>, <linesize>, and <with-defaults>
+
* <nowiki>the server returns <indent>, <linesize>, and <with-defaults> elements</nowiki>
elements</nowiki>
 
   
 
Negative Response:
 
Negative Response:
Line 6,754: Line 4,255:
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
   
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Output:
 
Output:
Line 6,768: Line 4,268:
 
* '''with-defaults'''
 
* '''with-defaults'''
 
** type: enumeration (none report-all trim explicit)
 
** type: enumeration (none report-all trim explicit)
** This parameter specifies the desired default with-defaults filtering
+
** This parameter specifies the desired default with-defaults filtering behavior for the session.
behavior for the session.
 
 
**
 
**
   
yangcli [mailto:andy@www.example.com andy@myserver]>'''
+
yangcli [mailto:andy@www.example.com andy@myserver]>''' get-my-session'''
get-my-session'''
 
 
RPC Data Reply 25 for session 10:
 
RPC Data Reply 25 for session 10:
 
rpc-reply {
 
rpc-reply {
Line 6,786: Line 4,284:
   
 
=== get-schema ===
 
=== get-schema ===
The''' get-schema''' command is used to retrieve data model definition
+
The''' get-schema''' command is used to retrieve data model definition files from the server. This is part of the NETCONF monitoring draft. The server must support the ''':schema-retrieval''' capability to use this command.
files from the server. This is part of the NETCONF monitoring draft. The
 
server must support the ''':schema-retrieval''' capability to use this
 
command.
 
   
If the server reports a module or module version that '''yangcli'''
+
If the server reports a module or module version that '''yangcli''' cannot find in its local module library, then an error message will be printed. The '''get-schema''' command can then be used to retrieve the missing module from the server.
cannot find in its local module library, then an error message will be
 
printed. The '''get-schema''' command can then be used to retrieve the
 
missing module from the server.
 
   
The '''ietf-netconf-monitoring.yang''' module includes a list of the
+
The '''ietf-netconf-monitoring.yang''' module includes a list of the schema supported by the server, which can be retrieved from a server that supports this module, such as '''netconfd'''.
schema supported by the server, which can be retrieved from a server
 
that supports this module, such as '''netconfd'''.
 
   
   
yangcli [mailto:andy@myagent andy@myserver]> '''sget
+
yangcli [mailto:andy@myagent andy@myserver]> '''sget /netconf-state/schemas'''
/netconf-state/schemas'''
 
   
   
<nowiki>The preceding command will return a <schemas> container with
+
<nowiki>The preceding command will return a <schemas> container with several <schema> child nodes. </nowiki>One example entry is shown below:
several <schema> child nodes. </nowiki>One example entry is shown below:
 
   
   
Line 6,820: Line 4,308:
   
   
<nowiki>The <identifier>, <version> and <format> leafs can be used as
+
<nowiki>The <identifier>, <version> and <format> leafs can be used as the corresponding parameter values for the </nowiki>'''get-schema''' command. See the example below for more details.
the corresponding parameter values for the </nowiki>'''get-schema'''
 
command. See the example below for more details.
 
   
   
Line 6,830: Line 4,316:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 3
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 3
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 3
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 3
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| data
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| data
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| ietf-netconf-monitoring.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| ietf-netconf-monitoring.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :schema-retrieval
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :schema-retrieval
 
   
 
|}
 
|}
Line 6,891: Line 4,351:
 
** default: none
 
** default: none
 
** This parameter specifies the name of the module to retrieve.
 
** This parameter specifies the name of the module to retrieve.
*** Do not use any path specification of file extension; just the module
+
*** Do not use any path specification of file extension; just the module name is entered.
  +
*** The name is case-sensitive, and must be specified exactly as defined.
name is entered.
 
*** The name is case-sensitive, and must be specified exactly as
 
defined.
 
 
* '''version'''
 
* '''version'''
 
** type: string
 
** type: string
Line 6,900: Line 4,358:
 
** default: none
 
** default: none
 
** This parameter specifies the version of the module to retrieve.
 
** This parameter specifies the version of the module to retrieve.
*** For YANG modules, this will be the most recent revision date string
+
*** For YANG modules, this will be the most recent revision date string defined in a module revision statement.
  +
*** If any version is acceptable, or if the specific version is not known, then use the empty string.
defined in a module revision statement.
 
*** If any version is acceptable, or if the specific version is not
 
known, then use the empty string.
 
 
* '''format'''
 
* '''format'''
 
** type: enumeration (XSD YANG YIN RNG)
 
** type: enumeration (XSD YANG YIN RNG)
Line 6,923: Line 4,379:
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
   
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Output:
 
Output:
Line 6,930: Line 4,385:
 
* data
 
* data
 
** type: anyxml
 
** type: anyxml
** '''yangcli''' will strip off this XML container if the command result
+
** '''yangcli''' will strip off this XML container if the command result is being saved to a text file. Only the YANG contents will be saved instead.
is being saved to a text file. Only the YANG contents will be saved
 
instead.
 
   
 
Usage:
 
Usage:
   
   
yangcli [mailto:andy@www.example.com andy@myserver]>
+
yangcli [mailto:andy@www.example.com andy@myserver]> '''@notifications.yang = get-schema \'''
'''@notifications.yang = get-schema \'''
 
 
'''identifier=notifications \'''
 
'''identifier=notifications \'''
 
'''version=2009-06-04 \'''
 
'''version=2009-06-04 \'''
Line 6,954: Line 4,406:
 
with the mgrload command)
 
with the mgrload command)
   
yangcli [mailto:andy@www.example.com andy@myserver]> '''mgrload
+
yangcli [mailto:andy@www.example.com andy@myserver]> '''mgrload notificications.yang'''
notificications.yang'''
 
   
 
OK
 
OK
Line 6,969: Line 4,420:
 
The help command is used to print documentation to STDOUT.
 
The help command is used to print documentation to STDOUT.
   
If no session is active, then only help for the local commands and the
+
If no session is active, then only help for the local commands and the standard NETCONF commands will be available.
standard NETCONF commands will be available.
 
   
If a NETCONF session is active, then the documentation shown will
+
If a NETCONF session is active, then the documentation shown will attempt to exactly match the capabilities of the server.
attempt to exactly match the capabilities of the server.
 
   
If additional (i.e., augment generated) parameters are available, then
+
If additional (i.e., augment generated) parameters are available, then they will be shown in the command output. If the server does not implement some parameters (e.g., feature not supported) then these parameters will not be shown in the command output.
they will be shown in the command output. If the server does not
 
implement some parameters (e.g., feature not supported) then these
 
parameters will not be shown in the command output.
 
   
If the server has modified an object with deviation statements, then the
+
If the server has modified an object with deviation statements, then the altered object will be shown.
altered object will be shown.
 
   
The '''ncx:hidden''' extension suppresses the '''help''' command. If
+
The '''ncx:hidden''' extension suppresses the '''help''' command. If this extension is present in the YANG definition associated with the request, then no help will be available for that object or command.
this extension is present in the YANG definition associated with the
 
request, then no help will be available for that object or command.
 
   
   
Line 6,993: Line 4,436:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| command
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| command
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 3
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 3
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 3
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 3
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| data
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| data
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| ietf-netconf-monitoring.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| ietf-netconf-monitoring.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :schema-retrieval
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :schema-retrieval
 
   
 
|}
 
|}
Line 7,054: Line 4,471:
 
*** usage: mandatory
 
*** usage: mandatory
 
*** default: none
 
*** default: none
*** This parameter specifies the name of the command for which
+
*** This parameter specifies the name of the command for which documentation is requested
documentation is requested
 
 
** '''commands'''
 
** '''commands'''
 
*** type: empty
 
*** type: empty
Line 7,065: Line 4,481:
 
*** usage: mandatory
 
*** usage: mandatory
 
*** default: none
 
*** default: none
*** This parameter specifies the name of the notification for which
+
*** This parameter specifies the name of the notification for which documentation is requested
documentation is requested
 
 
** '''object'''
 
** '''object'''
 
*** type: string
 
*** type: string
 
*** usage: mandatory
 
*** usage: mandatory
 
*** default: none
 
*** default: none
*** This parameter specifies the name of the NETCONF database object for
+
*** This parameter specifies the name of the NETCONF database object for which documentation is requested.
which documentation is requested.
 
 
**** Only top level objects are supported by this command.
 
**** Only top level objects are supported by this command.
**** Documentation for the entire object subtree will be printed, if the
+
**** Documentation for the entire object subtree will be printed, if the object is a container, choice, or list.
  +
**** Documentation for nested objects is only available in parameter mode, using the escape commands for help ('?') and full help ('??')
object is a container, choice, or list.
 
**** Documentation for nested objects is only available in parameter
 
mode, using the escape commands for help ('?') and full help ('??')
 
 
** '''type'''
 
** '''type'''
 
*** type: string
 
*** type: string
 
*** usage: mandatory
 
*** usage: mandatory
 
*** default: none
 
*** default: none
*** This parameter specifies the name of the YANG typedef for which
+
*** This parameter specifies the name of the YANG typedef for which documentation is requested
  +
*** Only top-level typedefs are supported by this command. Local typedefs within groupings, containers, or lists are not exportable in YANG.
documentation is requested
 
*** Only top-level typedefs are supported by this command. Local
 
typedefs within groupings, containers, or lists are not exportable in
 
YANG.
 
 
* '''choice help-mode''' (not entered) (default choice is 'normal')
 
* '''choice help-mode''' (not entered) (default choice is 'normal')
 
** '''brief'''
 
** '''brief'''
Line 7,092: Line 4,501:
 
*** usage: optional
 
*** usage: optional
 
*** default: none
 
*** default: none
*** This parameter specifies that brief documentation mode should be
+
*** This parameter specifies that brief documentation mode should be used.
used.
 
 
** '''normal'''
 
** '''normal'''
 
*** type: empty
 
*** type: empty
 
*** usage: optional
 
*** usage: optional
 
*** default: none
 
*** default: none
*** This parameter specifies that normal documentation mode should be
+
*** This parameter specifies that normal documentation mode should be used.
used.
 
 
** '''full'''
 
** '''full'''
 
*** type: empty
 
*** type: empty
 
*** usage: optional
 
*** usage: optional
 
*** default: none
 
*** default: none
*** This parameter specifies that full documentation mode should be
+
*** This parameter specifies that full documentation mode should be used.
used.
 
   
 
Positive Response:
 
Positive Response:
Line 7,154: Line 4,560:
   
 
notification sysConfigChange
 
notification sysConfigChange
<nowiki>Generated when the <running> configuration is changed.
+
<nowiki>Generated when the <running> configuration is changed. </nowiki>
</nowiki>
 
 
<nowiki>leaf userName [string] </nowiki>
 
<nowiki>leaf userName [string] </nowiki>
   
Line 7,171: Line 4,576:
   
 
=== history ===
 
=== history ===
The '''history''' command is used to show, clear, load, or save the
+
The '''history''' command is used to show, clear, load, or save the command line history buffer.
command line history buffer.
 
   
Use the '''recall''' command to recall a previously executed command
+
Use the '''recall''' command to recall a previously executed command line, after getting the line number from the '''history show''' command.
line, after getting the line number from the '''history show''' command.
 
   
All lines entered will be saved in the history buffer except an
+
All lines entered will be saved in the history buffer except an '''ncx:password''' value entered in parameter mode.
'''ncx:password''' value entered in parameter mode.
 
   
When '''yangcli''' starts, the command line history buffer is empty. If
+
When '''yangcli''' starts, the command line history buffer is empty. If a history file was previously stored with the '''history save''' command, then it can be recalled into the buffer with the '''history load '''command.
a history file was previously stored with the '''history save'''
 
command, then it can be recalled into the buffer with the '''history
 
load '''command.
 
   
The''' history clear''' command is used to delete the entire command
+
The''' history clear''' command is used to delete the entire command line history buffer.
line history buffer.
 
   
The numbering sequence for commands, starts from zero and keeps
+
The numbering sequence for commands, starts from zero and keeps incremented until the program exits. If the history buffer is cleared, then the number sequence will continue, not start over at zero.
incremented until the program exits. If the history buffer is cleared,
 
then the number sequence will continue, not start over at zero.
 
   
   
Line 7,198: Line 4,594:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| show
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| show
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 2
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 2
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| data
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| data
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 7,251: Line 4,625:
 
*** usage: optional
 
*** usage: optional
 
*** default: none
 
*** default: none
*** This parameter specifies that the history buffer should be cleared.
+
*** This parameter specifies that the history buffer should be cleared. Unless the contents have been saved with the '''history save''' command, there is no way to recover the cleared buffer contents after this command is executed.
Unless the contents have been saved with the '''history save''' command,
 
there is no way to recover the cleared buffer contents after this
 
command is executed.
 
 
** '''load'''
 
** '''load'''
 
*** type: string
 
*** type: string
 
*** usage: optional
 
*** usage: optional
 
*** default: $HOME/.yangcli_history
 
*** default: $HOME/.yangcli_history
*** This parameter specifies a command history file, and causes the
+
*** This parameter specifies a command history file, and causes the current command line history contents to be loaded from that file.
  +
*** Special processing for this command allows the history file to be omitted in idle mode, even though the load parameter is not type 'empty'.<br/>
current command line history contents to be loaded from that file.
 
*** Special processing for this command allows the history file to be
 
omitted in idle mode, even though the load parameter is not type
 
'empty'.<br/>
 
   
   
Line 7,275: Line 4,643:
 
*** usage: optional
 
*** usage: optional
 
*** default: $HOME/.yangcli_history
 
*** default: $HOME/.yangcli_history
*** This parameter specifies a command history file, and causes the
+
*** This parameter specifies a command history file, and causes the current command line history contents to be saved to that file.
  +
*** Special processing for this command allows the history file to be omitted in idle mode, even though the save parameter is not type 'empty'.<br/>
current command line history contents to be saved to that file.
 
*** Special processing for this command allows the history file to be
 
omitted in idle mode, even though the save parameter is not type
 
'empty'.<br/>
 
   
   
Line 7,291: Line 4,656:
 
*** usage: optional
 
*** usage: optional
 
*** default: -1
 
*** default: -1
*** This parameter specifies the maximum number of history entries to
+
*** This parameter specifies the maximum number of history entries to show.
  +
**** If no case is selected from this choice, then the command ''''history show=-1'''' will be used by default.
show.
 
**** If no case is selected from this choice, then the command
+
**** The '''help-mode''' choice parameter is only used with the '''history show''' command.
  +
***** If the '''--brief''' or '''--normal''' modes are selected the the format will include the command number and the command line.
''''history show=-1'''' will be used by default.
 
  +
***** If the '''--full''' mode is selected, then the command data and time will also be printed.
**** The '''help-mode''' choice parameter is only used with the
 
'''history show''' command.
+
* '''choice help-mode '''(not entered)This parameter is ignored unless the '''history show''' command is entered.
***** If the '''--brief''' or '''--normal''' modes are selected the the
 
format will include the command number and the command line.
 
***** If the '''--full''' mode is selected, then the command data and
 
time will also be printed.
 
* '''choice help-mode '''(not entered)This parameter is ignored unless
 
the '''history show''' command is entered.
 
 
** '''brief'''
 
** '''brief'''
 
*** type: empty
 
*** type: empty
 
*** usage: optional
 
*** usage: optional
 
*** default: none
 
*** default: none
*** This parameter specifies that brief documentation mode should be
+
*** This parameter specifies that brief documentation mode should be used.
used.
 
 
** '''normal'''
 
** '''normal'''
 
*** type: empty
 
*** type: empty
 
*** usage: optional
 
*** usage: optional
 
*** default: none
 
*** default: none
*** This parameter specifies that normal documentation mode should be
+
*** This parameter specifies that normal documentation mode should be used.
used.
 
 
** '''full'''
 
** '''full'''
 
*** type: empty
 
*** type: empty
 
*** usage: optional
 
*** usage: optional
 
*** default: none
 
*** default: none
*** This parameter specifies that full documentation mode should be
+
*** This parameter specifies that full documentation mode should be used.
used.
 
   
 
Positive Response:
 
Positive Response:
   
* the requested history entries will be printed for the '''history
+
* the requested history entries will be printed for the '''history show''' command
show''' command
 
 
* all other commands will return OK
 
* all other commands will return OK
   
Line 7,336: Line 4,691:
   
 
yangcli> '''history show=3 full'''
 
yangcli> '''history show=3 full'''
<nowiki>[27]</nowiki> 2009-07-04 09:25:34 sget /system
+
<nowiki>[27]</nowiki> 2009-07-04 09:25:34 sget /system --nofill
  +
<nowiki>[28]</nowiki> 2009-07-04 09:34:17 @myconfig = get-config source=running
--nofill
 
<nowiki>[28]</nowiki> 2009-07-04 09:34:17 @myconfig =
 
get-config source=running
 
 
<nowiki>[29]</nowiki> 2009-07-04 09:43:54 history show=3 full
 
<nowiki>[29]</nowiki> 2009-07-04 09:43:54 history show=3 full
   
Line 7,349: Line 4,702:
 
The '''if''' command is used to start a conditional command block.
 
The '''if''' command is used to start a conditional command block.
   
  +
The '''expr''' parameter is used to specify the XPath expression to test if the if conditional block is true or false. A false block will be skipped and a true block will be executed. <nowiki>The command prompt will contain the string '[F]' while inside a false conditional block in interactive mode. </nowiki>This expression string should be entered with quotes to avoid misinterpreting any whitespace or special characters.
The '''expr''' parameter is used to specify the XPath expression to test
 
if the if conditional block is true or false. A false block will be
 
skipped and a true block will be executed. <nowiki>The command prompt
 
will contain the string '[F]' while inside a false conditional block in
 
interactive mode. </nowiki>This expression string should be entered with
 
quotes to avoid misinterpreting any whitespace or special characters.
 
   
The '''docroot''' parameter (if present) specifies the XML document that
+
The '''docroot''' parameter (if present) specifies the XML document that the 'expr' parameter should be evaluated against. This is optional, since only XPath path expressions need to refer to a document.
the 'expr' parameter should be evaluated against. This is optional,
 
since only XPath path expressions need to refer to a document.
 
   
If the 'expr' expression is true, the conditional block will be
+
If the 'expr' expression is true, the conditional block will be executed, and no further conditional blocks within the same if command sequence will be executed.
executed, and no further conditional blocks within the same if command
 
sequence will be executed.
 
   
   
Line 7,389: Line 4,733:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| expr
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| expr
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 2
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 2
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 7,441: Line 4,763:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the XPath expression to determine if the
+
** This parameter specifies the XPath expression to determine if the following commands are within a true or false conditional block.
following commands are within a true or false conditional block.
 
 
* '''docroot'''
 
* '''docroot'''
 
** type: anyxml
 
** type: anyxml
 
** usage: optional (typically a variable reference is used)
 
** usage: optional (typically a variable reference is used)
 
** default: none
 
** default: none
** This parameter specifies the XML document that should be used if the
+
** This parameter specifies the XML document that should be used if the expr XPath expression references any path nodes.
expr XPath expression references any path nodes.
 
   
 
Positive Response:
 
Positive Response:
Line 7,457: Line 4,777:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
** invalid XPath expression or invalid docroot reference will cause an
+
** invalid XPath expression or invalid docroot reference will cause an error
error
 
   
 
Usage:
 
Usage:
Line 7,469: Line 4,788:
   
 
=== insert ===
 
=== insert ===
The insert command is used to insert or move YANG list or leaf-list data
+
The insert command is used to insert or move YANG list or leaf-list data into a NETCONF database. <nowiki>It is a high level command with utilizes the YANG 'insert' extensions to the NETCONF <edit-config> operation.</nowiki>
into a NETCONF database. <nowiki>It is a high level command with
 
utilizes the YANG 'insert' extensions to the NETCONF <edit-config>
 
operation.</nowiki>
 
   
   
Line 7,480: Line 4,796:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| target
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| target
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 2
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 2
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 7
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 7
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 7,532: Line 4,826:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the where '''yangcli''' should get the data
+
** This parameter specifies the where '''yangcli''' should get the data from, for the insert operation. It is either a user variable or from interactive input at the command line.
from, for the insert operation. It is either a user variable or from
 
interactive input at the command line.
 
 
*** '''varref'''
 
*** '''varref'''
 
**** type: string
 
**** type: string
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** This parameter specifies the name of the user variable to use for
+
**** This parameter specifies the name of the user variable to use for the target of the insert operation. The parameter must exist (e.g., created with the '''fill''' command) or an error message will be printed.
the target of the insert operation. The parameter must exist (e.g.,
 
created with the '''fill''' command) or an error message will be
 
printed.
 
 
*** '''case from-cli '''(not entered)
 
*** '''case from-cli '''(not entered)
 
**** '''target'''
 
**** '''target'''
Line 7,548: Line 4,837:
 
***** usage: mandatory
 
***** usage: mandatory
 
***** default: none
 
***** default: none
***** This parameter specifies the database target node of the insert
+
***** This parameter specifies the database target node of the insert operation. This is an '''ncx:schema-instance''' string, so any instance identifier, or absolute path expression, or something in between, is accepted.
operation. This is an '''ncx:schema-instance''' string, so any instance
 
identifier, or absolute path expression, or something in between, is
 
accepted.
 
 
**** '''optional'''
 
**** '''optional'''
 
***** type: empty
 
***** type: empty
 
***** usage: optional
 
***** usage: optional
 
***** default: controlled by '''$$optional''' system variable
 
***** default: controlled by '''$$optional''' system variable
***** This parameter controls whether optional nodes within the target
+
***** This parameter controls whether optional nodes within the target will be filled in. It can be used to override the '''$$optional''' system variable, when it is set to 'false'.
will be filled in. It can be used to override the '''$$optional'''
 
system variable, when it is set to 'false'.
 
 
**** '''value'''
 
**** '''value'''
 
***** type: anyxml
 
***** type: anyxml
 
***** usage: mandatory
 
***** usage: mandatory
 
***** default: none
 
***** default: none
  +
***** This parameter specifies the value that should be used for the contents of the '''target''' parameter. If it is entered, then the interactive mode prompting for missing parameters will be skipped, if this parameter is complete (or all mandatory nodes present if the '''$$optional''' system variable is 'false'). For example, if the target is a leaf, then specifying this parameter will always cause the interactive prompt mode to be skipped.
***** This parameter specifies the value that should be used for the
 
contents of the '''target''' parameter. If it is entered, then the
 
interactive mode prompting for missing parameters will be skipped, if
 
this parameter is complete (or all mandatory nodes present if the
 
'''$$optional''' system variable is 'false'). For example, if the target
 
is a leaf, then specifying this parameter will always cause the
 
interactive prompt mode to be skipped.
 
   
 
* '''edit-target'''
 
* '''edit-target'''
 
** type: string
 
** type: string
** usage: optional (must be present if the order parameter is set to
+
** usage: optional (must be present if the order parameter is set to 'before' or 'after').
'before' or 'after').
 
 
** default: none
 
** default: none
** This parameter specifies the value or key clause that should be used,
+
** This parameter specifies the value or key clause that should be used, as the list or leaf-list insertion point. It identifies the existing entry that the new entry will be inserted before or after, depending on the '''order''' parameter.
  +
*** For a leaf-list, the edit-target contains the value of the target leaf-list node within the configuration being edited. E.g., edit-target='fred'.
as the list or leaf-list insertion point. It identifies the existing
 
  +
*** For a list, the edit-target contains the key values of the target list node within the configuration being edited. <nowiki>E.g., edit-target=[name='fred'][zipcode=90210]. </nowiki>
entry that the new entry will be inserted before or after, depending on
 
the '''order''' parameter.
 
*** For a leaf-list, the edit-target contains the value of the target
 
leaf-list node within the configuration being edited. E.g.,
 
edit-target='fred'.
 
*** For a list, the edit-target contains the key values of the target
 
list node within the configuration being edited. <nowiki>E.g.,
 
edit-target=[name='fred'][zipcode=90210]. </nowiki>
 
 
* '''order'''
 
* '''order'''
 
** type: enumeration (first last before after)
 
** type: enumeration (first last before after)
 
** usage: optional
 
** usage: optional
 
** default: last
 
** default: last
** The insert order that should be used. If the value 'before' or
+
** The insert order that should be used. If the value 'before' or 'after' is selected, then the '''edit-target''' parameter must also be present.
'after' is selected, then the '''edit-target''' parameter must also be
 
present.
 
 
* '''operation'''
 
* '''operation'''
 
** type: enumeration (create merge replace)
 
** type: enumeration (create merge replace)
 
** usage: optional
 
** usage: optional
 
** default: merge
 
** default: merge
** This parameter specifies the '''nc:operation''' attribute value for
+
** This parameter specifies the '''nc:operation''' attribute value for the NETCONF <nowiki><edit-config> operation. </nowiki>The insert operation is secondary to the NETCONF operation attribute.
the NETCONF <nowiki><edit-config> operation. </nowiki>The insert
 
operation is secondary to the NETCONF operation attribute.
 
   
 
* '''timeout'''
 
* '''timeout'''
** type: uint32 (0 = no timeout, otherwise the number of seconds to
+
** type: uint32 (0 = no timeout, otherwise the number of seconds to wait)
wait)
 
   
 
*
 
*
 
** usage: optional
 
** usage: optional
** default: set to the '''$$timeout''' system variable, default 30
+
** default: set to the '''$$timeout''' system variable, default 30 seconds
  +
** This parameter specifies the number of seconds to wait for a response from the server before giving up. The session will not be dropped if a remote command times out, but any late response will be dropped. A value of zero means no timeout should be used, and yangcli will wait forever for a response.
seconds
 
** This parameter specifies the number of seconds to wait for a response
 
from the server before giving up. The session will not be dropped if a
 
remote command times out, but any late response will be dropped. A value
 
of zero means no timeout should be used, and yangcli will wait forever
 
for a response.
 
   
 
System Variables:
 
System Variables:
   
 
* '''$$default-operation'''
 
* '''$$default-operation'''
** <nowiki>The <default-operation> parameter for the <edit-config>
+
** <nowiki>The <default-operation> parameter for the <edit-config> operation will be derived from this variable.</nowiki>
operation will be derived from this variable.</nowiki>
 
   
 
* '''$$error-option'''
 
* '''$$error-option'''
** <nowiki>The <error-option> parameter for the <edit-config> operation
+
** <nowiki>The <error-option> parameter for the <edit-config> operation will be derived from this variable</nowiki>
will be derived from this variable</nowiki>
 
 
* '''$$test-option'''
 
* '''$$test-option'''
** <nowiki>The <test-option> parameter for the <edit-config> operation
+
** <nowiki>The <test-option> parameter for the <edit-config> operation will be derived from this variable</nowiki>
will be derived from this variable</nowiki>
 
   
 
Positive Response:
 
Positive Response:
Line 7,635: Line 4,892:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
Line 7,645: Line 4,901:
 
RPC OK Reply 25 for session 10:
 
RPC OK Reply 25 for session 10:
   
yangcli [mailto:andy@www.example.com andy@myserver]> '''insert
+
yangcli [mailto:andy@www.example.com andy@myserver]> '''insert /nacm/rules/data-rule''' \
/nacm/rules/data-rule''' \
 
 
'''order=after \'''
 
'''order=after \'''
 
'''<nowiki>edit-target=”[name='test-rule']”</nowiki>'''
 
'''<nowiki>edit-target=”[name='test-rule']”</nowiki>'''
Line 7,662: Line 4,917:
   
 
=== kill-session ===
 
=== kill-session ===
The''' kill-session''' command is used to terminate a NETCONF session
+
The''' kill-session''' command is used to terminate a NETCONF session (other than the current session). All NETCONF implementations must support this command. It is needed sometimes to unlock a NETCONF database locked by a session that is idle or stuck.
(other than the current session). All NETCONF implementations must
 
support this command. It is needed sometimes to unlock a NETCONF
 
database locked by a session that is idle or stuck.
 
   
If the '''lock'''<nowiki> command returns a 'lock-denied' <error-tag>,
+
If the '''lock'''<nowiki> command returns a 'lock-denied' <error-tag>, it will also include an <error-info> field called <session-id>. </nowiki>This is the session number that currently holds the requested lock. The same value should be used for the '''session-id''' parameter in this command, to terminate the session will the lock.
it will also include an <error-info> field called <session-id>.
 
</nowiki>This is the session number that currently holds the requested
 
lock. The same value should be used for the '''session-id''' parameter
 
in this command, to terminate the session will the lock.
 
   
 
Note: this is an extreme measure, which should be used with caution.
 
Note: this is an extreme measure, which should be used with caution.
Line 7,681: Line 4,929:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| target
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| target
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yuma-netconf.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yuma-netconf.yang
 
   
 
|}
 
|}
Line 7,733: Line 4,959:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the session number of the currently active
+
** This parameter specifies the session number of the currently active NETCONF session that should be terminated.
NETCONF session that should be terminated.
 
   
 
Positive Response:
 
Positive Response:
Line 7,743: Line 4,968:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
Line 7,761: Line 4,985:
   
 
=== list ===
 
=== list ===
This '''list''' command is used to display the commands, objects, and
+
This '''list''' command is used to display the commands, objects, and oids (object identifiers) that are available at the time.
oids (object identifiers) that are available at the time.
 
   
The '''list commands''' command will display the local commands and the
+
The '''list commands''' command will display the local commands and the remote commands that are available in the current NETCONF session, or which have been loaded with the '''mgrload''' command.
remote commands that are available in the current NETCONF session, or
 
which have been loaded with the '''mgrload''' command.
 
   
The '''list files '''command will display the data files that are in the
+
The '''list files '''command will display the data files that are in the current data search path. The module parameter has no affect in this mode.
current data search path. The module parameter has no affect in this
 
mode.
 
   
The '''list modules '''command will display the YANG files that are in
+
The '''list modules '''command will display the YANG files that are in the current YANG module search path. The module parameter has no affect in this mode.
the current YANG module search path. The module parameter has no affect
 
in this mode.
 
   
The''' list objects''' command will display the top-level objects that
+
The''' list objects''' command will display the top-level objects that are currently available in the current NETCONF session, or which have been loaded with the '''mgrload''' command.
are currently available in the current NETCONF session, or which have
 
been loaded with the '''mgrload''' command.
 
   
The''' list oids''' command will display the object identifiers of the
+
The''' list oids''' command will display the object identifiers of the top-level objects that are currently available in the current NETCONF session, or which have been loaded with the '''mgrload''' command.
top-level objects that are currently available in the current NETCONF
 
session, or which have been loaded with the '''mgrload''' command.
 
   
The '''list scripts '''command will display the script files that are in
+
The '''list scripts '''command will display the script files that are in the current script search path. The module parameter has no affect in this mode.
the current script search path. The module parameter has no affect in
 
this mode.
 
   
   
Line 7,794: Line 5,005:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 6
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 6
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| data
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| data
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
 
Command Parameters:
 
Command Parameters:
   
* '''choice help-mode '''(not entered)This parameter is ignored if the
+
* '''choice help-mode '''(not entered)This parameter is ignored if the listtype choice is set to ' the '''history show''' command is entered.
listtype choice is set to ' the '''history show''' command is entered.
 
 
** '''brief'''
 
** '''brief'''
 
*** type: empty
 
*** type: empty
 
*** usage: optional
 
*** usage: optional
 
*** default: none
 
*** default: none
*** This parameter specifies that brief documentation mode should be
+
*** This parameter specifies that brief documentation mode should be used.
used.
 
 
** '''normal'''
 
** '''normal'''
 
*** type: empty
 
*** type: empty
 
*** usage: optional
 
*** usage: optional
 
*** default: none
 
*** default: none
*** This parameter specifies that normal documentation mode should be
+
*** This parameter specifies that normal documentation mode should be used.
used.
 
 
** '''full'''
 
** '''full'''
 
*** type: empty
 
*** type: empty
 
*** usage: optional
 
*** usage: optional
 
*** default: none
 
*** default: none
*** This parameter specifies that full documentation mode should be
+
*** This parameter specifies that full documentation mode should be used.
used.
 
   
 
* '''choice 'listtype' '''(not entered)
 
* '''choice 'listtype' '''(not entered)
Line 7,871: Line 5,056:
 
*** usage: mandatory
 
*** usage: mandatory
 
*** default: none
 
*** default: none
*** This parameter specifies that the available commands should be
+
*** This parameter specifies that the available commands should be listed.
  +
**** If the '''help-mode''' is set to 'brief', then only the command names will be listed.
listed.
 
**** If the '''help-mode''' is set to 'brief', then only the command
+
**** If the '''help-mode''' is set to 'normal', then the XML prefix and the command name will be listed.
  +
**** If the '''help-mode''' is set to 'full', then the module name and the command name will be listed.
names will be listed.
 
**** If the '''help-mode''' is set to 'normal', then the XML prefix and
 
the command name will be listed.
 
**** If the '''help-mode''' is set to 'full', then the module name and
 
the command name will be listed.
 
 
** '''files'''
 
** '''files'''
 
*** type: empty
 
*** type: empty
 
*** usage: mandatory
 
*** usage: mandatory
 
*** default: none
 
*** default: none
*** This parameter specifies that all the data files in the current data
+
*** This parameter specifies that all the data files in the current data search path should be listed.
search path should be listed.
 
 
** '''modules'''
 
** '''modules'''
 
*** type: empty
 
*** type: empty
 
*** usage: mandatory
 
*** usage: mandatory
 
*** default: none
 
*** default: none
*** This parameter specifies that all the YANG files in the current
+
*** This parameter specifies that all the YANG files in the current module search path should be listed.
module search path should be listed.
 
 
** '''objects'''
 
** '''objects'''
 
*** type: empty
 
*** type: empty
 
*** usage: mandatory
 
*** usage: mandatory
 
*** default: none
 
*** default: none
*** This parameter specifies that the available top-level objects should
+
*** This parameter specifies that the available top-level objects should be listed.
  +
**** If the '''help-mode''' is set to 'brief', then only the object names will be listed.
be listed.
 
**** If the '''help-mode''' is set to 'brief', then only the object
+
**** If the '''help-mode''' is set to 'normal', then the XML prefix and the object name will be listed.
  +
**** If the '''help-mode''' is set to 'full', then the module name and the object name will be listed.
names will be listed.
 
**** If the '''help-mode''' is set to 'normal', then the XML prefix and
 
the object name will be listed.
 
**** If the '''help-mode''' is set to 'full', then the module name and
 
the object name will be listed.
 
 
** '''oids'''
 
** '''oids'''
 
*** type: empty
 
*** type: empty
 
*** usage: mandatory
 
*** usage: mandatory
 
*** default: none
 
*** default: none
*** This parameter specifies that the available top-level object
+
*** This parameter specifies that the available top-level object identifiers should be listed.
identifiers should be listed.
 
 
**** The '''help-mode''' parameter has no effect
 
**** The '''help-mode''' parameter has no effect
 
** '''scripts'''
 
** '''scripts'''
Line 7,914: Line 5,088:
 
*** usage: mandatory
 
*** usage: mandatory
 
*** default: none
 
*** default: none
*** This parameter specifies that all the script files in the current
+
*** This parameter specifies that all the script files in the current script search path should be listed.
script search path should be listed.
 
 
* '''module'''
 
* '''module'''
 
** type: string
 
** type: string
 
** usage: optional
 
** usage: optional
 
** default: none
 
** default: none
** This parameter specifies a module name. If present then only
+
** This parameter specifies a module name. If present then only information for the specified YANG module will be displayed.
information for the specified YANG module will be displayed.
 
   
 
Positive Response:
 
Positive Response:
Line 7,982: Line 5,154:
 
This command is only supported by the '''netconfd''' server.
 
This command is only supported by the '''netconfd''' server.
   
The YANG files must be available in the module search path for the
+
The YANG files must be available in the module search path for the server.
server.
 
   
Refer to the '''netconfd''' configuration section for more details on
+
Refer to the '''netconfd''' configuration section for more details on adding new YANG modules into the server.
adding new YANG modules into the server.
 
   
After using this command, the '''mgrload''' command may also be needed
+
After using this command, the '''mgrload''' command may also be needed to keep the current session synchronized with the server.
to keep the current session synchronized with the server.
 
   
Use the '''revision''' parameter to load a specific revision of a
+
Use the '''revision''' parameter to load a specific revision of a module.
module.
 
   
The server will return the revision date of the module that was loaded
+
The server will return the revision date of the module that was loaded (or already present).
(or already present).
 
   
   
Line 8,003: Line 5,170:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| module
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| module
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 3
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 3
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| data
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| data
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yuma-system.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yuma-system.yang
 
   
 
|}
 
|}
Line 8,065: Line 5,210:
 
** usage: optional (0 or more instances)
 
** usage: optional (0 or more instances)
 
** default: none
 
** default: none
** This parameter specifies a deviation module to load prior to loading
+
** This parameter specifies a deviation module to load prior to loading the requested module.
the requested module.
 
   
 
Positive Response:
 
Positive Response:
Line 8,075: Line 5,219:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
Line 8,092: Line 5,235:
   
 
=== lock ===
 
=== lock ===
The '''lock''' command is used to request a global lock on a NETCONF
+
The '''lock''' command is used to request a global lock on a NETCONF database. It is used, along with the '''unlock''' command, to obtain exclusive write access to the NETCONF server.
database. It is used, along with the '''unlock''' command, to obtain
 
exclusive write access to the NETCONF server.
 
   
The scope of a lock command is the lifetime of the session that
+
The scope of a lock command is the lifetime of the session that requested the lock. This means that if the session that owns the lock is dropped for any reason, all the locks it holds will be released immediately by the server.
requested the lock. This means that if the session that owns the lock is
 
dropped for any reason, all the locks it holds will be released
 
immediately by the server.
 
   
The use of database locks is optional in NETCONF, but it must be
+
The use of database locks is optional in NETCONF, but it must be implemented by every server. It is strongly suggested that locks be used if multiple managers are likely to log into the particular NETCONF server.
implemented by every server. It is strongly suggested that locks be used
 
if multiple managers are likely to log into the particular NETCONF
 
server.
 
   
 
One or more locks may be needed to execute a transaction safely:
 
One or more locks may be needed to execute a transaction safely:
   
* If the ''':writable-running'''<nowiki> capability is supported, then a
+
* If the ''':writable-running'''<nowiki> capability is supported, then a lock on the <running> database is needed. </nowiki>This database can be locked at any time.
lock on the <running> database is needed. </nowiki>This database can be
+
* If the ''':startup'''<nowiki> capability is supported, then a lock on the <startup> database is needed. </nowiki>This database can be locked at any time.
  +
* If the ''':candidate'''<nowiki> capability is supported, then a lock on the <candidate> database is needed. </nowiki><nowiki>A lock on the <running> database is also needed. </nowiki>
locked at any time.
 
  +
** <nowiki>The <candidate> database can only be locked if there are no active edits in it.</nowiki>
* If the ''':startup'''<nowiki> capability is supported, then a lock on
 
  +
** The '''discard-changes'''<nowiki> command may be needed to clear a <candidate> database that has been left edited by a session that terminated unexpectedly.</nowiki>
the <startup> database is needed. </nowiki>This database can be locked
 
  +
** <nowiki>Note: There is no way in NETCONF to tell the difference between an actively edited <candidate> database and an 'abandoned' <candidate> database. </nowiki><nowiki>The server will almost never clear the <candidate> </nowiki>database. It will only clear any locks held. Use the discard-changes command (for other session's edits) with extreme caution.
at any time.
 
* If the ''':candidate'''<nowiki> capability is supported, then a lock
 
on the <candidate> database is needed. </nowiki><nowiki>A lock on the
 
<running> database is also needed. </nowiki>
 
** <nowiki>The <candidate> database can only be locked if there are no
 
active edits in it.</nowiki>
 
** The '''discard-changes'''<nowiki> command may be needed to clear a
 
<candidate> database that has been left edited by a session that
 
terminated unexpectedly.</nowiki>
 
** <nowiki>Note: There is no way in NETCONF to tell the difference
 
between an actively edited <candidate> database and an 'abandoned'
 
<candidate> database. </nowiki><nowiki>The server will almost never
 
clear the <candidate> </nowiki>database. It will only clear any locks
 
held. Use the discard-changes command (for other session's edits) with
 
extreme caution.
 
   
 
<center>'''lock command'''</center>
 
<center>'''lock command'''</center>
Line 8,134: Line 5,255:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yuma-netconf.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yuma-netconf.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Capabilities optional:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :candidate:startup:url
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities optional:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :candidate:startup:url
 
   
 
|}
 
|}
Line 8,202: Line 5,293:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the name of the target database to be
+
** This parameter specifies the name of the target database to be locked.
locked.
 
 
** container contents: 1 of N:
 
** container contents: 1 of N:
 
*** '''candidate'''
 
*** '''candidate'''
Line 8,216: Line 5,306:
 
*** '''url'''
 
*** '''url'''
 
**** type: yang:uri
 
**** type: yang:uri
**** capabilities needed: :url, and the scheme used in the URL must be
+
**** capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter.
  +
**** To enter this parameter, the interactive mode must be used. The shorthand mode (target=url) cannot be used, since this parameter contains a string.
specified in the :url capability 'schemes' parameter.
 
**** To enter this parameter, the interactive mode must be used. The
 
shorthand mode (target=url) cannot be used, since this parameter
 
contains a string.
 
   
 
Positive Response:
 
Positive Response:
Line 8,229: Line 5,316:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
  +
** <nowiki>If the <error-tag> is 'lock-denied' then the <error-info> will contain a <session-id> leaf. </nowiki>This identifies the session number of the current lock holder.
an error.</nowiki>
 
** <nowiki>If the <error-tag> is 'lock-denied' then the <error-info>
 
will contain a <session-id> leaf. </nowiki>This identifies the session
 
number of the current lock holder.
 
   
 
Usage:
 
Usage:
Line 8,245: Line 5,329:
   
 
=== log-debug ===
 
=== log-debug ===
The''' log-debug''' command prints a message to the program log, if the
+
The''' log-debug''' command prints a message to the program log, if the '''$$log-level''' system variable is set to 'debug' or a higher enumeration (e.g., 'debug2').
'''$$log-level''' system variable is set to 'debug' or a higher
 
enumeration (e.g., 'debug2').
 
   
 
The '''msg''' parameter is used to provide the message string to print.
 
The '''msg''' parameter is used to provide the message string to print.
Line 8,257: Line 5,339:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| msg
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| msg
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 8,317: Line 5,377:
 
Negative Response:
 
Negative Response:
   
* An error message will be printed if the '''msg''' parameter contains
+
* An error message will be printed if the '''msg''' parameter contains errors.
errors.
 
   
 
Usage:
 
Usage:
Line 8,331: Line 5,390:
   
 
=== log-error ===
 
=== log-error ===
The '''log-error''' command prints a message to the program log, if the
+
The '''log-error''' command prints a message to the program log, if the '''$$log-level''' system variable is set to 'error' or a higher enumeration (e.g., 'info').
'''$$log-level''' system variable is set to 'error' or a higher
 
enumeration (e.g., 'info').
 
   
 
The '''msg''' parameter is used to provide the message string to print.
 
The '''msg''' parameter is used to provide the message string to print.
Line 8,343: Line 5,400:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| msg
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| msg
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 8,403: Line 5,438:
 
Negative Response:
 
Negative Response:
   
* An error message will be printed if the '''msg''' parameter contains
+
* An error message will be printed if the '''msg''' parameter contains errors.
errors.
 
   
 
Usage:
 
Usage:
Line 8,417: Line 5,451:
   
 
=== log-info ===
 
=== log-info ===
The '''log-info''' command prints a message to the program log, if the
+
The '''log-info''' command prints a message to the program log, if the '''$$log-level''' system variable is set to 'info' or a higher enumeration (e.g., 'debug').
'''$$log-level''' system variable is set to 'info' or a higher
 
enumeration (e.g., 'debug').
 
   
 
The '''msg''' parameter is used to provide the message string to print.
 
The '''msg''' parameter is used to provide the message string to print.
Line 8,429: Line 5,461:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| msg
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| msg
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 8,489: Line 5,499:
 
Negative Response:
 
Negative Response:
   
* An error message will be printed if the '''msg''' parameter contains
+
* An error message will be printed if the '''msg''' parameter contains errors.
errors.
 
   
 
Usage:
 
Usage:
Line 8,503: Line 5,512:
   
 
=== log-warn ===
 
=== log-warn ===
The '''log-warn''' command prints a message to the program log, if the
+
The '''log-warn''' command prints a message to the program log, if the '''$$log-level''' system variable is set to 'warn' or a higher enumeration (e.g., 'debug').
'''$$log-level''' system variable is set to 'warn' or a higher
 
enumeration (e.g., 'debug').
 
   
 
The '''msg''' parameter is used to provide the message string to print.
 
The '''msg''' parameter is used to provide the message string to print.
Line 8,515: Line 5,522:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| msg
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| msg
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 8,575: Line 5,560:
 
Negative Response:
 
Negative Response:
   
* An error message will be printed if the '''msg''' parameter contains
+
* An error message will be printed if the '''msg''' parameter contains errors.
errors.
 
   
 
Usage:
 
Usage:
Line 8,589: Line 5,573:
   
 
=== merge ===
 
=== merge ===
The '''merge'''<nowiki> command is a high-level <edit-config> operation.
+
The '''merge'''<nowiki> command is a high-level <edit-config> operation. </nowiki>It is used to merge some new nodes into the default target database.
</nowiki>It is used to merge some new nodes into the default target
 
database.
 
   
A target node is specified (in 1 of 2 ways), and then the data structure
+
A target node is specified (in 1 of 2 ways), and then the data structure is filled in. Only mandatory nodes will be filled in unless the '''$$optional''' system variable is set to 'true'.
is filled in. Only mandatory nodes will be filled in unless the
 
'''$$optional''' system variable is set to 'true'.
 
   
Refer to the '''fill''' command for more details on interactive mode
+
Refer to the '''fill''' command for more details on interactive mode data structure completion.
data structure completion.
 
   
   
Line 8,606: Line 5,585:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| target
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| target
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 5
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 5
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :candidate or :writable-running
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :candidate or :writable-running
 
   
 
|}
 
|}
Line 8,666: Line 5,619:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the where '''yangcli''' should get the data
+
** This parameter specifies the where '''yangcli''' should get the data from, for the merge operation. It is either a user variable or from interactive input at the command line.
from, for the merge operation. It is either a user variable or from
 
interactive input at the command line.
 
 
*** '''varref'''
 
*** '''varref'''
 
**** type: string
 
**** type: string
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** This parameter specifies the name of the user variable to use for
+
**** This parameter specifies the name of the user variable to use for the target of the merge operation. The parameter must exist (e.g., created with the '''fill''' command) or an error message will be printed.
the target of the merge operation. The parameter must exist (e.g.,
 
created with the '''fill''' command) or an error message will be
 
printed.
 
 
*** '''case from-cli '''(not entered)
 
*** '''case from-cli '''(not entered)
 
**** '''target'''
 
**** '''target'''
Line 8,682: Line 5,630:
 
***** usage: optional (target or urltarget must be entered)
 
***** usage: optional (target or urltarget must be entered)
 
***** default: none
 
***** default: none
***** This parameter specifies the database target node of the merge
+
***** This parameter specifies the database target node of the merge operation. This is an '''ncx:schema-instance''' string, so any instance identifier, or absolute path expression, or something in between, is accepted.
operation. This is an '''ncx:schema-instance''' string, so any instance
 
identifier, or absolute path expression, or something in between, is
 
accepted.
 
 
**** '''urltarget'''
 
**** '''urltarget'''
 
***** type: string
 
***** type: string
 
***** usage: optional
 
***** usage: optional
 
***** default: none
 
***** default: none
***** This parameter specifies the database target node of the merge
+
***** This parameter specifies the database target node of the merge operation. This is an '''UrlPath''' string.
operation. This is an '''UrlPath''' string.
 
 
**** '''optional'''
 
**** '''optional'''
 
***** type: empty
 
***** type: empty
 
***** usage: optional
 
***** usage: optional
 
***** default: controlled by '''$$optional''' system variable
 
***** default: controlled by '''$$optional''' system variable
***** This parameter controls whether optional nodes within the target
+
***** This parameter controls whether optional nodes within the target will be filled in. It can be used to override the '''$$optional '''system variable, when it is set to 'false'.
will be filled in. It can be used to override the '''$$optional
 
'''system variable, when it is set to 'false'.
 
 
**** '''value'''
 
**** '''value'''
 
***** type: anyxml
 
***** type: anyxml
 
***** usage: mandatory
 
***** usage: mandatory
 
***** default: none
 
***** default: none
  +
***** This parameter specifies the value that should be used for the contents of the '''target''' parameter. If it is entered, then the interactive mode prompting for missing parameters will be skipped, if this parameter is complete (or all mandatory nodes present if the '''$$optional''' system variable is 'false'). For example, if the target is a leaf, then specifying this parameter will always cause the interactive prompt mode to be skipped.
***** This parameter specifies the value that should be used for the
 
contents of the '''target''' parameter. If it is entered, then the
 
interactive mode prompting for missing parameters will be skipped, if
 
this parameter is complete (or all mandatory nodes present if the
 
'''$$optional''' system variable is 'false'). For example, if the target
 
is a leaf, then specifying this parameter will always cause the
 
interactive prompt mode to be skipped.
 
 
* '''timeout'''
 
* '''timeout'''
** type: uint32 (0 = no timeout, otherwise the number of seconds to
+
** type: uint32 (0 = no timeout, otherwise the number of seconds to wait)
wait)
 
   
 
*
 
*
 
** usage: optional
 
** usage: optional
** default: set to the '''$$timeout''' system variable, default 30
+
** default: set to the '''$$timeout''' system variable, default 30 seconds
  +
** This parameter specifies the number of seconds to wait for a response from the server before giving up. The session will not be dropped if a remote command times out, but any late response will be dropped. A value of zero means no timeout should be used, and '''yangcli''' will wait forever for a response.
seconds
 
** This parameter specifies the number of seconds to wait for a response
 
from the server before giving up. The session will not be dropped if a
 
remote command times out, but any late response will be dropped. A value
 
of zero means no timeout should be used, and '''yangcli''' will wait
 
forever for a response.
 
   
 
System Variables:
 
System Variables:
   
 
* '''$$default-operation'''
 
* '''$$default-operation'''
** <nowiki>The <default-operation> parameter for the <edit-config>
+
** <nowiki>The <default-operation> parameter for the <edit-config> operation will be derived from this variable.</nowiki>
operation will be derived from this variable.</nowiki>
 
   
 
* '''$$error-option'''
 
* '''$$error-option'''
** <nowiki>The <error-option> parameter for the <edit-config> operation
+
** <nowiki>The <error-option> parameter for the <edit-config> operation will be derived from this variable</nowiki>
will be derived from this variable</nowiki>
 
 
* '''$$test-option'''
 
* '''$$test-option'''
** <nowiki>The <test-option> parameter for the <edit-config> operation
+
** <nowiki>The <test-option> parameter for the <edit-config> operation will be derived from this variable</nowiki>
will be derived from this variable</nowiki>
 
   
 
Positive Response:
 
Positive Response:
Line 8,744: Line 5,671:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
   
 
yangcli [mailto:andy@www.example.com andy@myserver]> '''merge \'''
 
yangcli [mailto:andy@www.example.com andy@myserver]> '''merge \'''
  +
'''<nowiki>target=/nacm/rules/moduleRule[moduleName='netconf']\</nowiki>'''
 
'''<nowiki>target=/nacm/rules/moduleRule[moduleName='netconf']\</nowiki>'''
+
'''<nowiki>[allowed-rights='read write']/allowed-group</nowiki>''' '''\'''
'''<nowiki>[allowed-rights='read
 
write']/allowed-group</nowiki>''' '''\'''
 
 
'''value=ncx:guest'''
 
'''value=ncx:guest'''
   
 
 
<nowiki>(no user prompting; <edit-config> request sent right
+
<nowiki>(no user prompting; <edit-config> request sent right away)</nowiki>
away)</nowiki>
 
   
 
RPC OK Reply 31 for session 10:
 
RPC OK Reply 31 for session 10:
Line 8,770: Line 5,693:
   
 
=== mgrload ===
 
=== mgrload ===
The '''mgrload''' command is used to load a YANG module into
+
The '''mgrload''' command is used to load a YANG module into '''yangcli'''.
'''yangcli'''.
 
   
The YANG files must be available in the module search path for
+
The YANG files must be available in the module search path for '''yangcli'''.
'''yangcli'''.
 
   
   
Line 8,782: Line 5,703:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| module
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| module
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 3
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 3
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 8,844: Line 5,743:
 
** usage: optional (0 or more instances)
 
** usage: optional (0 or more instances)
 
** default: none
 
** default: none
** This parameter specifies a deviation module to load prior to loading
+
** This parameter specifies a deviation module to load prior to loading the requested module.
the requested module.
 
   
 
Positive Response:
 
Positive Response:
Line 8,864: Line 5,762:
   
 
=== no-op ===
 
=== no-op ===
The''' no-op'''<nowiki> command is used to test server message
+
The''' no-op'''<nowiki> command is used to test server message processing response times, by providing a baseline response time to do nothing except return <ok/>.</nowiki>
processing response times, by providing a baseline response time to do
 
nothing except return <ok/>.</nowiki>
 
   
It can also be used as an application-level keep-alive to prevent proxy
+
It can also be used as an application-level keep-alive to prevent proxy idle timeout or server idle timeout problems from occurring.
idle timeout or server idle timeout problems from occurring.
 
   
This command is only supported by the '''netconfd''' server. The server
+
This command is only supported by the '''netconfd''' server. The server will simply respond 'OK', if the request is well-formed.
will simply respond 'OK', if the request is well-formed.
 
   
   
Line 8,880: Line 5,774:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yuma-system.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yuma-system.yang
 
   
 
|}
 
|}
Line 8,933: Line 5,805:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
Line 8,954: Line 5,825:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 9,020: Line 5,869:
 
The '''quit''' command is used to terminate the '''yangcli''' program.
 
The '''quit''' command is used to terminate the '''yangcli''' program.
   
If a NETCONF session is in progress, it will be dropped without sending
+
If a NETCONF session is in progress, it will be dropped without sending a '''close-session''' command first. This should be taken into account if the server reports dropped TCP connections as an error.
a '''close-session''' command first. This should be taken into account
 
if the server reports dropped TCP connections as an error.
 
   
   
Line 9,030: Line 5,877:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 9,092: Line 5,917:
   
 
=== recall ===
 
=== recall ===
The '''recall''' command is used to recall a previously entered command
+
The '''recall''' command is used to recall a previously entered command line from the command line history buffer.
line from the command line history buffer.
 
   
A command is recalled by its command ID number. Use the '''history
+
A command is recalled by its command ID number. Use the '''history show''' command to see the contents of the command line history buffer.
show''' command to see the contents of the command line history buffer.
 
   
   
Line 9,104: Line 5,927:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| index
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| index
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| data
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| data
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 9,166: Line 5,967:
   
 
=== release-locks ===
 
=== release-locks ===
The '''release-locks''' command is used to release all the locks that
+
The '''release-locks''' command is used to release all the locks that were previously granted with the get-locks command.
were previously granted with the get-locks command.
 
   
If the get-locks command was not used, then this command will fail with
+
If the get-locks command was not used, then this command will fail with an error message that no locks are active to unlock.
an error message that no locks are active to unlock.
 
   
   
Line 9,178: Line 5,977:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 9,231: Line 6,008:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage: (showing 2 locks being released)
 
Usage: (showing 2 locks being released)
Line 9,245: Line 6,021:
   
 
=== replace ===
 
=== replace ===
The '''replace'''<nowiki> command is a high-level <edit-config>
+
The '''replace'''<nowiki> command is a high-level <edit-config> operation. </nowiki>It is used to replace an existing subtree with some new nodes, in the default target database.
operation. </nowiki>It is used to replace an existing subtree with some
 
new nodes, in the default target database.
 
   
Only the subtree indicated by the '''target''' or '''varref''' parameter
+
Only the subtree indicated by the '''target''' or '''varref''' parameter will be replaced.
will be replaced.
 
   
A target node is specified (in 1 of 2 ways), and then the data structure
+
A target node is specified (in 1 of 2 ways), and then the data structure is filled in. Only mandatory nodes will be filled in unless the '''$$optional''' system variable is set to 'true'.
is filled in. Only mandatory nodes will be filled in unless the
 
'''$$optional''' system variable is set to 'true'.
 
   
Refer to the '''fill''' command for more details on interactive mode
+
Refer to the '''fill''' command for more details on interactive mode data structure completion.
data structure completion.
 
   
   
Line 9,265: Line 6,035:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| target
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| target
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 5
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 5
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :candidate or :writable-running
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :candidate or :writable-running
 
   
 
|}
 
|}
Line 9,325: Line 6,069:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the where '''yangcli''' should get the data
+
** This parameter specifies the where '''yangcli''' should get the data from, for the replace operation. It is either a user variable or from interactive input at the command line.
from, for the replace operation. It is either a user variable or from
 
interactive input at the command line.
 
 
*** '''varref'''
 
*** '''varref'''
 
**** type: string
 
**** type: string
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** This parameter specifies the name of the user variable to use for
+
**** This parameter specifies the name of the user variable to use for the target of the replace operation. The parameter must exist (e.g., created with the '''fill''' command) or an error message will be printed.
the target of the replace operation. The parameter must exist (e.g.,
 
created with the '''fill''' command) or an error message will be
 
printed.
 
 
*** '''case from-cli '''(not entered)
 
*** '''case from-cli '''(not entered)
 
**** '''target'''
 
**** '''target'''
Line 9,341: Line 6,080:
 
***** usage: optional (target or urltarget must be present)
 
***** usage: optional (target or urltarget must be present)
 
***** default: none
 
***** default: none
***** This parameter specifies the database target node of the replace
+
***** This parameter specifies the database target node of the replace operation. This is an '''ncx:schema-instance''' string, so any instance identifier, or absolute path expression, or something in between, is accepted.
operation. This is an '''ncx:schema-instance''' string, so any instance
 
identifier, or absolute path expression, or something in between, is
 
accepted.
 
 
**** '''urltarget'''
 
**** '''urltarget'''
 
***** type: string
 
***** type: string
 
***** usage: optional
 
***** usage: optional
 
***** default: none
 
***** default: none
***** This parameter specifies the database target node of the replace
+
***** This parameter specifies the database target node of the replace operation. This is an '''UrlPath''' string.
operation. This is an '''UrlPath''' string.
 
 
**** '''optional'''
 
**** '''optional'''
 
***** type: empty
 
***** type: empty
 
***** usage: optional
 
***** usage: optional
 
***** default: controlled by '''$$optional''' system variable
 
***** default: controlled by '''$$optional''' system variable
***** This parameter controls whether optional nodes within the target
+
***** This parameter controls whether optional nodes within the target will be filled in. It can be used to override the '''$$optional '''system variable, when it is set to 'false'.
will be filled in. It can be used to override the '''$$optional
 
'''system variable, when it is set to 'false'.
 
 
**** '''value'''
 
**** '''value'''
 
***** type: anyxml
 
***** type: anyxml
 
***** usage: mandatory
 
***** usage: mandatory
 
***** default: none
 
***** default: none
  +
***** This parameter specifies the value that should be used for the contents of the '''target''' parameter. If it is entered, then the interactive mode prompting for missing parameters will be skipped, if this parameter is complete (or all mandatory nodes present if the '''$$optional''' system variable is 'false'). For example, if the target is a leaf, then specifying this parameter will always cause the interactive prompt mode to be skipped.
***** This parameter specifies the value that should be used for the
 
contents of the '''target''' parameter. If it is entered, then the
 
interactive mode prompting for missing parameters will be skipped, if
 
this parameter is complete (or all mandatory nodes present if the
 
'''$$optional''' system variable is 'false'). For example, if the target
 
is a leaf, then specifying this parameter will always cause the
 
interactive prompt mode to be skipped.
 
 
* '''timeout'''
 
* '''timeout'''
** type: uint32 (0 = no timeout, otherwise the number of seconds to
+
** type: uint32 (0 = no timeout, otherwise the number of seconds to wait)
wait)
 
   
 
*
 
*
 
** usage: optional
 
** usage: optional
** default: set to the '''$$timeout''' system variable, default 30
+
** default: set to the '''$$timeout''' system variable, default 30 seconds
  +
** This parameter specifies the number of seconds to wait for a response from the server before giving up. The session will not be dropped if a remote command times out, but any late response will be dropped. A value of zero means no timeout should be used, and '''yangcli''' will wait forever for a response.
seconds
 
** This parameter specifies the number of seconds to wait for a response
 
from the server before giving up. The session will not be dropped if a
 
remote command times out, but any late response will be dropped. A value
 
of zero means no timeout should be used, and '''yangcli''' will wait
 
forever for a response.
 
   
 
System Variables:
 
System Variables:
   
 
* '''$$default-operation'''
 
* '''$$default-operation'''
** <nowiki>The <default-operation> parameter for the <edit-config>
+
** <nowiki>The <default-operation> parameter for the <edit-config> operation will be derived from this variable.</nowiki>
operation will be derived from this variable.</nowiki>
 
   
 
* '''$$error-option'''
 
* '''$$error-option'''
** <nowiki>The <error-option> parameter for the <edit-config> operation
+
** <nowiki>The <error-option> parameter for the <edit-config> operation will be derived from this variable</nowiki>
will be derived from this variable</nowiki>
 
 
* '''$$test-option'''
 
* '''$$test-option'''
** <nowiki>The <test-option> parameter for the <edit-config> operation
+
** <nowiki>The <test-option> parameter for the <edit-config> operation will be derived from this variable</nowiki>
will be derived from this variable</nowiki>
 
   
 
Positive Response:
 
Positive Response:
Line 9,403: Line 6,121:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
   
   
yangcli [mailto:andy@www.example.com andy@myserver]> '''replace
+
yangcli [mailto:andy@www.example.com andy@myserver]> '''replace \'''
  +
'''<nowiki>target=/nacm/rules/moduleRule[moduleName='yuma-system']\</nowiki>'''
\'''
 
 
'''<nowiki>target=/nacm/rules/moduleRule[moduleName='yuma-system']\</nowiki>'''
 
 
'''<nowiki>[allowed-rights='exec']</nowiki>'''
 
'''<nowiki>[allowed-rights='exec']</nowiki>'''
   
<nowiki>(user prompted to fill in specified <moduleRule>
+
<nowiki>(user prompted to fill in specified <moduleRule> element)</nowiki>
element)</nowiki>
 
   
 
RPC OK Reply 31 for session 10:
 
RPC OK Reply 31 for session 10:
Line 9,432: Line 6,146:
 
This command is only supported by the '''netconfd''' server.
 
This command is only supported by the '''netconfd''' server.
   
The default access control configuration for '''netconfd''' will not
+
The default access control configuration for '''netconfd''' will not allow any user except the designated 'superuser' account to invoke this command. Refer to the '''netconfd''' user manual for details on configuring access control.
allow any user except the designated 'superuser' account to invoke this
 
command. Refer to the '''netconfd''' user manual for details on
 
configuring access control.
 
   
   
Line 9,443: Line 6,154:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yuma-system.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yuma-system.yang
 
   
 
|}
 
|}
Line 9,496: Line 6,185:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
Line 9,513: Line 6,201:
 
Refer to the section on scripts for details on how to write a script.
 
Refer to the section on scripts for details on how to write a script.
   
The script name is the only mandatory parameter. There are 9 generic
+
The script name is the only mandatory parameter. There are 9 generic parameters (named P1 to P9) that can be used to pass string parameters to scripts. Within a script, these are referenced with local variables ($1 to $9).
parameters (named P1 to P9) that can be used to pass string parameters
 
to scripts. Within a script, these are referenced with local variables
 
($1 to $9).
 
   
 
The run command can be used within a script.
 
The run command can be used within a script.
Line 9,522: Line 6,207:
 
Scripts do not return any status or data at this time.
 
Scripts do not return any status or data at this time.
   
The run command can appear inside a script, starting a new run level. An
+
The run command can appear inside a script, starting a new run level. An error will occur if a loop occurs or too many nest levels are used. Up to 64 run levels are supported in '''yangcli'''.
error will occur if a loop occurs or too many nest levels are used. Up
 
to 64 run levels are supported in '''yangcli'''.
 
   
   
Line 9,532: Line 6,215:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| script
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| script
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 10
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 10
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 9,584: Line 6,245:
 
** usage: optional
 
** usage: optional
 
** default: none
 
** default: none
** These parameters provide a generic string parameter passing mechanism
+
** These parameters provide a generic string parameter passing mechanism for each script invocation, similar to unix shell scripts. Within the script, the parameters''' $1''', '''$2,''' '''$3''', '''$4''',''' $5''', '''$6''', '''$7''', '''$8''' and '''$9''' will be non-NULL only if the corresponding ''''Pn'''' parameter was set in the script invocation.
for each script invocation, similar to unix shell scripts. Within the
 
script, the parameters''' $1''', '''$2,''' '''$3''', '''$4''',''' $5''',
 
'''$6''', '''$7''', '''$8''' and '''$9''' will be non-NULL only if the
 
corresponding ''''Pn'''' parameter was set in the script invocation.
 
 
* '''script'''
 
* '''script'''
 
** type: string
 
** type: string
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifis the name of the script to be run. If a path
+
** This parameter specifis the name of the script to be run. If a path specification is included, then it will be used. Otherwise the current script search path will be used to find the script.
specification is included, then it will be used. Otherwise the current
 
script search path will be used to find the script.
 
   
 
System Variables:
 
System Variables:
   
 
* '''$$runpath'''
 
* '''$$runpath'''
** Controls where '''yangcli''' will look for files specified in the
+
** Controls where '''yangcli''' will look for files specified in the '''script''' parameter.
'''script''' parameter.
 
   
 
Positive Response:
 
Positive Response:
Line 9,610: Line 6,264:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error, if any remote commands are contained in the script.</nowiki>
an error, if any remote commands are contained in the script.</nowiki>
 
   
 
Usage:
 
Usage:
Line 9,626: Line 6,279:
   
 
=== save ===
 
=== save ===
The '''save''' command is used to save NETCONF database edits to
+
The '''save''' command is used to save NETCONF database edits to non-volatile storage, on the server. <nowiki>It is a pseudo-command, mapped to other remote commands depending on which database target is supported by the server (<candidate> or <running>).</nowiki>
non-volatile storage, on the server. <nowiki>It is a pseudo-command,
 
mapped to other remote commands depending on which database target is
 
supported by the server (<candidate> or <running>).</nowiki>
 
   
The '''save''' command usually maps to either the '''commit''' or the
+
The '''save''' command usually maps to either the '''commit''' or the '''copy-config''' command. Refer to the section on NETCONF sessions for more details.
'''copy-config''' command. Refer to the section on NETCONF sessions for
 
more details.
 
   
   
Line 9,641: Line 6,289:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 9,695: Line 6,321:
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
   
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
Line 9,708: Line 6,333:
   
 
=== set-log-level ===
 
=== set-log-level ===
The''' set-log-level '''command is used to configure the server logging
+
The''' set-log-level '''command is used to configure the server logging verbosity level. It is only supported by the '''netconfd''' server.
verbosity level. It is only supported by the '''netconfd''' server.
 
   
This operation is defined as '''nacm:secure''', so only the system
+
This operation is defined as '''nacm:secure''', so only the system super-user can invoke this command by default.
super-user can invoke this command by default.
 
   
   
Line 9,720: Line 6,343:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yuma-system.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yuma-system.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|}
 
|}
Line 9,778: Line 6,375:
 
* '''log-level'''
 
* '''log-level'''
 
** type: enumeration (off, error, warn, info, debug, debug2, debug3)
 
** type: enumeration (off, error, warn, info, debug, debug2, debug3)
** This mandatory parameter specifies the desired server logging
+
** This mandatory parameter specifies the desired server logging verbosity level.
verbosity level.
 
   
 
Positive Response:
 
Positive Response:
Line 9,789: Line 6,385:
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
   
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>]
an error.</nowiki>]
 
   
yangcli [mailto:andy@www.example.com andy@myserver]>'''
+
yangcli [mailto:andy@www.example.com andy@myserver]>''' set-log-level log-level=debug2'''
set-log-level log-level=debug2'''
 
   
 
RPC OK Reply 29 for session 10:
 
RPC OK Reply 29 for session 10:
Line 9,800: Line 6,394:
   
 
=== set-my-session ===
 
=== set-my-session ===
The''' set-my-session '''command is used to configure the session
+
The''' set-my-session '''command is used to configure the session customization parameters on the server. It is only supported by the '''netconfd''' server.
customization parameters on the server. It is only supported by the
 
'''netconfd''' server.
 
   
The session line size and default behavior for the with-defaults
+
The session line size and default behavior for the with-defaults parameter can be controlled at this time.
parameter can be controlled at this time.
 
   
Since all parameters are optional, they need to be entered in the same
+
Since all parameters are optional, they need to be entered in the same command line as the command name. Otherwise the '''$$optional''' system variable needs to be set to 'true'. If not, then no parameters will be sent to the server, and no session parameters will be changed.
command line as the command name. Otherwise the '''$$optional''' system
 
variable needs to be set to 'true'. If not, then no parameters will be
 
sent to the server, and no session parameters will be changed.
 
   
   
Line 9,818: Line 6,406:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 3
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 3
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yuma-mysession.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yuma-mysession.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|}
 
|}
Line 9,876: Line 6,438:
 
* '''indent'''
 
* '''indent'''
 
** type: uint32 (range: 0 .. 9)
 
** type: uint32 (range: 0 .. 9)
** This parameter specifies the desired number of spaces to indent for
+
** This parameter specifies the desired number of spaces to indent for each new XML nest level, for the session. If missing, then the indent amount is not changed.
each new XML nest level, for the session. If missing, then the indent
 
amount is not changed.
 
 
* '''linesize'''
 
* '''linesize'''
 
** type: uint32 (range: 40 .. 1024)
 
** type: uint32 (range: 40 .. 1024)
** This parameter specifies the desired line length for the session. If
+
** This parameter specifies the desired line length for the session. If missing, then the current line size is not changed.
missing, then the current line size is not changed.
 
 
* '''with-defaults'''
 
* '''with-defaults'''
 
** type: enumeration (report-all trim explicit)
 
** type: enumeration (report-all trim explicit)
** This parameter specifies the desired default with-defaults filtering
+
** This parameter specifies the desired default with-defaults filtering behavior for the session. If missing, the current with-defaults behavior is not changed.
behavior for the session. If missing, the current with-defaults behavior
 
is not changed.
 
   
 
Positive Response:
 
Positive Response:
Line 9,897: Line 6,454:
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
   
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>]
an error.</nowiki>]
 
   
yangcli [mailto:andy@www.example.com andy@myserver]>'''
+
yangcli [mailto:andy@www.example.com andy@myserver]>''' set-my-session \'''
set-my-session \'''
 
 
''' --linesize=64 --with-defaults=trim'''
 
''' --linesize=64 --with-defaults=trim'''
   
Line 9,909: Line 6,464:
   
 
=== sget ===
 
=== sget ===
The '''sget'''<nowiki> command is used to invoke a NETCONF <get>
+
The '''sget'''<nowiki> command is used to invoke a NETCONF <get> operation with a subtree filter.</nowiki>
operation with a subtree filter.</nowiki>
 
   
A target node is specified (in 1 of 2 ways), and then the data structure
+
A target node is specified (in 1 of 2 ways), and then the data structure is filled in. Only mandatory nodes will be filled in unless the '''$$optional''' system variable is set to 'true'. This step can be skipped completely with the '''nofill''' parameter.
is filled in. Only mandatory nodes will be filled in unless the
 
'''$$optional''' system variable is set to 'true'. This step can be
 
skipped completely with the '''nofill''' parameter.
 
   
Refer to the '''fill''' command for more details on interactive mode
+
Refer to the '''fill''' command for more details on interactive mode data structure completion.
data structure completion.
 
   
 
<center>'''sget command'''</center>
 
<center>'''sget command'''</center>
Line 9,925: Line 6,475:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| target
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| target
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 5
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 5
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| data
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| data
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Capabilities optional:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :with-defaults
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities optional:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :with-defaults
 
   
 
|}
 
|}
Line 9,993: Line 6,513:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the where '''yangcli''' should get the data
+
** This parameter specifies the where '''yangcli''' should get the data from, for the <nowiki>subtree filter target of the <get> operation. </nowiki>It is either a user variable or from interactive input at the command line.
from, for the <nowiki>subtree filter target of the <get> operation.
 
</nowiki>It is either a user variable or from interactive input at the
 
command line.
 
 
*** '''varref'''
 
*** '''varref'''
 
**** type: string
 
**** type: string
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** <nowiki>This parameter specifies the name of the user variable to
+
**** <nowiki>This parameter specifies the name of the user variable to use for the subtree filter target of the <get> operation. </nowiki>The parameter must exist (e.g., created with the '''fill''' command) or an error message will be printed.
use for the subtree filter target of the <get> operation. </nowiki>The
 
parameter must exist (e.g., created with the '''fill''' command) or an
 
error message will be printed.
 
 
*** '''case from-cli '''(not entered)
 
*** '''case from-cli '''(not entered)
 
**** '''target'''
 
**** '''target'''
Line 10,010: Line 6,524:
 
***** usage: optional (target or urltarget must be present)
 
***** usage: optional (target or urltarget must be present)
 
***** default: none
 
***** default: none
***** <nowiki>This parameter specifies the database target node of the
+
***** <nowiki>This parameter specifies the database target node of the <get> operation. This is an </nowiki>'''ncx:schema-instance''' string, so any instance identifier, or absolute path expression, or something in between, is accepted.
  +
****** The escape command ('?s') can be used in parameter mode to skip a parameter completely.
<get> operation. This is an </nowiki>'''ncx:schema-instance''' string,
 
  +
****** Entering the empty string for a parameter will cause a subtree selection node to be created instead of a content match node
so any instance identifier, or absolute path expression, or something in
 
between, is accepted.
 
****** The escape command ('?s') can be used in parameter mode to skip a
 
parameter completely.
 
****** Entering the empty string for a parameter will cause a subtree
 
selection node to be created instead of a content match node
 
 
**** '''urltarget'''
 
**** '''urltarget'''
 
***** type: string
 
***** type: string
 
***** usage: optional
 
***** usage: optional
 
***** default: none
 
***** default: none
***** This parameter specifies the database target node of the get
+
***** This parameter specifies the database target node of the get operation. This is an '''UrlPath''' string.
operation. This is an '''UrlPath''' string.
 
 
**** '''optional'''
 
**** '''optional'''
 
***** type: empty
 
***** type: empty
 
***** usage: optional
 
***** usage: optional
 
***** default: controlled by '''$$optional''' system variable
 
***** default: controlled by '''$$optional''' system variable
***** This parameter controls whether optional nodes within the target
+
***** This parameter controls whether optional nodes within the target will be filled in. It can be used to override the '''$$optional '''system variable, when it is set to 'false'.
will be filled in. It can be used to override the '''$$optional
 
'''system variable, when it is set to 'false'.
 
 
**** '''value'''
 
**** '''value'''
 
***** type: anyxml
 
***** type: anyxml
 
***** usage: mandatory
 
***** usage: mandatory
 
***** default: none
 
***** default: none
  +
***** This parameter specifies the value that should be used for the contents of the '''target''' parameter. If it is entered, then the interactive mode prompting for missing parameters will be skipped, if this parameter is complete (or all mandatory nodes present if the '''$$optional''' system variable is 'false'). For example, if the target is a leaf, then specifying this parameter will always cause the interactive prompt mode to be skipped.
***** This parameter specifies the value that should be used for the
 
contents of the '''target''' parameter. If it is entered, then the
 
interactive mode prompting for missing parameters will be skipped, if
 
this parameter is complete (or all mandatory nodes present if the
 
'''$$optional''' system variable is 'false'). For example, if the target
 
is a leaf, then specifying this parameter will always cause the
 
interactive prompt mode to be skipped.
 
 
* '''nofill'''
 
* '''nofill'''
 
** type: empty
 
** type: empty
Line 10,048: Line 6,548:
 
** usage: optional
 
** usage: optional
 
** default: none
 
** default: none
** This parameter specifies the that no interactive prompting to fill in
+
** This parameter specifies the that no interactive prompting to fill in the contents of the specified subtree filter target will be done.
the contents of the specified subtree filter target will be done.
+
*** This causes the entire selected subtree to be requested in the filter.
  +
*** yangcli will attempt to figure out if there can be multiple instances of the requested subtree. If not, then '''nofill''' will be the default for that target parameter.
*** This causes the entire selected subtree to be requested in the
 
filter.
 
*** yangcli will attempt to figure out if there can be multiple
 
instances of the requested subtree. If not, then '''nofill''' will be
 
the default for that target parameter.
 
   
 
* '''with-defaults'''
 
* '''with-defaults'''
Line 10,061: Line 6,557:
 
** default: none
 
** default: none
 
** capabilities needed: with-defaults
 
** capabilities needed: with-defaults
** <nowiki>This parameter controls how nodes containing only default
+
** <nowiki>This parameter controls how nodes containing only default values are returned in the <rpc-reply>.</nowiki>
values are returned in the <rpc-reply>.</nowiki>
 
   
 
System Variables:
 
System Variables:
   
 
* '''$$timeout'''
 
* '''$$timeout'''
** The response timeout interval will be derived from this system
+
** The response timeout interval will be derived from this system variable.
variable.
 
 
* '''$$with-defaults'''
 
* '''$$with-defaults'''
** <nowiki>The <with-defaults> parameter for the <get> operation will be
+
** <nowiki>The <with-defaults> parameter for the <get> operation will be derived from this system variable.</nowiki>
derived from this system variable.</nowiki>
 
   
 
Positive Response:
 
Positive Response:
Line 10,080: Line 6,573:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Output:
 
Output:
Line 10,087: Line 6,579:
 
* '''data'''
 
* '''data'''
 
** type: anyxml
 
** type: anyxml
** This element will contain the requested data from the
+
** This element will contain the requested data from the <nowiki><running></nowiki> database or non-config data structures.
<nowiki><running></nowiki> database or non-config data structures.
 
   
 
Usage:
 
Usage:
Line 10,114: Line 6,605:
   
 
=== sget-config ===
 
=== sget-config ===
The '''sget-config'''<nowiki> command is used to invoke a NETCONF
+
The '''sget-config'''<nowiki> command is used to invoke a NETCONF <get-config> operation with a subtree filter.</nowiki>
<get-config> operation with a subtree filter.</nowiki>
 
   
A target node is specified (in 1 of 2 ways), and then the data structure
+
A target node is specified (in 1 of 2 ways), and then the data structure is filled in. Only mandatory nodes will be filled in unless the '''$$optional''' system variable is set to 'true'. This step can be skipped completely with the '''nofill''' parameter.
is filled in. Only mandatory nodes will be filled in unless the
 
'''$$optional''' system variable is set to 'true'. This step can be
 
skipped completely with the '''nofill''' parameter.
 
   
Refer to the '''fill''' command for more details on interactive mode
+
Refer to the '''fill''' command for more details on interactive mode data structure completion.
data structure completion.
 
   
   
Line 10,131: Line 6,617:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| target
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| target
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 2
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 2
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 6
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 6
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| data
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| data
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Capabilities optional:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :candidate:startup:url:with-defaults
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities optional:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :candidate:startup:url:with-defaults
 
   
 
|}
 
|}
Line 10,199: Line 6,655:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the where '''yangcli''' should get the data
+
** This parameter specifies the where '''yangcli''' should get the data from, for the <nowiki>subtree filter target of the <get> operation. </nowiki>It is either a user variable or from interactive input at the command line.
from, for the <nowiki>subtree filter target of the <get> operation.
 
</nowiki>It is either a user variable or from interactive input at the
 
command line.
 
 
*** '''varref'''
 
*** '''varref'''
 
**** type: string
 
**** type: string
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** <nowiki>This parameter specifies the name of the user variable to
+
**** <nowiki>This parameter specifies the name of the user variable to use for the subtree filter target of the <get> operation. </nowiki>The parameter must exist (e.g., created with the '''fill''' command) or an error message will be printed.
use for the subtree filter target of the <get> operation. </nowiki>The
 
parameter must exist (e.g., created with the '''fill''' command) or an
 
error message will be printed.
 
 
*** '''case from-cli '''(not entered)
 
*** '''case from-cli '''(not entered)
 
**** '''target'''
 
**** '''target'''
Line 10,216: Line 6,666:
 
***** usage: optional (target or urltarget must be present)
 
***** usage: optional (target or urltarget must be present)
 
***** default: none
 
***** default: none
***** <nowiki>This parameter specifies the database target node of the
+
***** <nowiki>This parameter specifies the database target node of the <get> operation. This is an </nowiki>'''ncx:schema-instance''' string, so any instance identifier, or absolute path expression, or something in between, is accepted.
  +
****** The escape command ('?s') can be used in parameter mode to skip a parameter completely.
<get> operation. This is an </nowiki>'''ncx:schema-instance''' string,
 
  +
****** Entering the empty string for a parameter will cause a subtree selection node to be created instead of a content match node
so any instance identifier, or absolute path expression, or something in
 
between, is accepted.
 
****** The escape command ('?s') can be used in parameter mode to skip a
 
parameter completely.
 
****** Entering the empty string for a parameter will cause a subtree
 
selection node to be created instead of a content match node
 
 
**** '''urltarget'''
 
**** '''urltarget'''
 
***** type: string
 
***** type: string
 
***** usage: optional
 
***** usage: optional
 
***** default: none
 
***** default: none
***** This parameter specifies the database target node of the
+
***** This parameter specifies the database target node of the get-config operation. This is an '''UrlPath''' string.
get-config operation. This is an '''UrlPath''' string.
 
 
**** '''optional'''
 
**** '''optional'''
 
***** type: empty
 
***** type: empty
 
***** usage: optional
 
***** usage: optional
 
***** default: controlled by '''$$optional''' system variable
 
***** default: controlled by '''$$optional''' system variable
***** This parameter controls whether optional nodes within the target
+
***** This parameter controls whether optional nodes within the target will be filled in. It can be used to override the '''$$optional '''system variable, when it is set to 'false'.
will be filled in. It can be used to override the '''$$optional
 
'''system variable, when it is set to 'false'.
 
 
**** '''value'''
 
**** '''value'''
 
***** type: anyxml
 
***** type: anyxml
 
***** usage: mandatory
 
***** usage: mandatory
 
***** default: none
 
***** default: none
  +
***** This parameter specifies the value that should be used for the contents of the '''target''' parameter. If it is entered, then the interactive mode prompting for missing parameters will be skipped, if this parameter is complete (or all mandatory nodes present if the '''$$optional''' system variable is 'false'). For example, if the target is a leaf, then specifying this parameter will always cause the interactive prompt mode to be skipped.
***** This parameter specifies the value that should be used for the
 
contents of the '''target''' parameter. If it is entered, then the
 
interactive mode prompting for missing parameters will be skipped, if
 
this parameter is complete (or all mandatory nodes present if the
 
'''$$optional''' system variable is 'false'). For example, if the target
 
is a leaf, then specifying this parameter will always cause the
 
interactive prompt mode to be skipped.
 
 
* '''nofill'''
 
* '''nofill'''
 
** type: empty
 
** type: empty
Line 10,254: Line 6,690:
 
** usage: optional
 
** usage: optional
 
** default: none
 
** default: none
** This parameter specifies the that no interactive prompting to fill in
+
** This parameter specifies the that no interactive prompting to fill in the contents of the specified subtree filter target will be done.
the contents of the specified subtree filter target will be done.
+
*** This causes the entire selected subtree to be requested in the filter.
  +
*** yangcli will attempt to figure out if there can be multiple instances of the requested subtree. If not, then '''nofill''' will be the default for that target parameter.
*** This causes the entire selected subtree to be requested in the
 
filter.
 
*** yangcli will attempt to figure out if there can be multiple
 
instances of the requested subtree. If not, then '''nofill''' will be
 
the default for that target parameter.
 
   
 
* '''source'''
 
* '''source'''
Line 10,266: Line 6,698:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the name of the source database for the
+
** This parameter specifies the name of the source database for the retrieval operation.
retrieval operation.
 
 
** container contents: 1 of N:
 
** container contents: 1 of N:
 
*** '''candidate'''
 
*** '''candidate'''
Line 10,280: Line 6,711:
 
*** '''url'''
 
*** '''url'''
 
**** type: yang:uri
 
**** type: yang:uri
**** capabilities needed: :url, and the scheme used in the URL must be
+
**** capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter
  +
**** To enter this parameter, the interactive mode must be used. The shorthand mode (source=url) cannot be used, since this parameter contains a string.
specified in the :url capability 'schemes' parameter
 
**** To enter this parameter, the interactive mode must be used. The
 
shorthand mode (source=url) cannot be used, since this parameter
 
contains a string.
 
 
* '''with-defaults'''
 
* '''with-defaults'''
 
** type: enumeration (none report-all report-all-tagged trim explicit)
 
** type: enumeration (none report-all report-all-tagged trim explicit)
Line 10,290: Line 6,718:
 
** default: none
 
** default: none
 
** capabilities needed: with-defaults
 
** capabilities needed: with-defaults
** <nowiki>This parameter controls how nodes containing only default
+
** <nowiki>This parameter controls how nodes containing only default values are returned in the <rpc-reply>.</nowiki>
values are returned in the <rpc-reply>.</nowiki>
 
   
 
System Variables:
 
System Variables:
   
 
* '''$$timeout'''
 
* '''$$timeout'''
** The response timeout interval will be derived from this system
+
** The response timeout interval will be derived from this system variable.
variable.
 
 
* '''$$with-defaults'''
 
* '''$$with-defaults'''
** <nowiki>The <with-defaults> parameter for the <get-config> operation
+
** <nowiki>The <with-defaults> parameter for the <get-config> operation will be derived from this system variable.</nowiki>
will be derived from this system variable.</nowiki>
 
   
 
Positive Response:
 
Positive Response:
Line 10,309: Line 6,734:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Output:
 
Output:
Line 10,316: Line 6,740:
 
* '''data'''
 
* '''data'''
 
** type: anyxml
 
** type: anyxml
** This element will contain the requested data from the database
+
** This element will contain the requested data from the database indicated by the '''source''' parameter.
indicated by the '''source''' parameter.
 
   
 
Usage:
 
Usage:
Line 10,355: Line 6,778:
   
 
=== show ===
 
=== show ===
The '''show''' command is used to show program status and YANG details
+
The '''show''' command is used to show program status and YANG details that may be needed during management of a NETCONF server.
that may be needed during management of a NETCONF server.
 
   
 
There are several variants of the '''show''' command:
 
There are several variants of the '''show''' command:
   
* The '''show cli''' command prints the contents of the yangcli CLI and
+
* The '''show cli''' command prints the contents of the yangcli CLI and config file parameters.
  +
* The '''show global''' command prints the contents of one global user variable.
config file parameters.
 
* The '''show global''' command prints the contents of one global user
+
* The''' show globals '''command prints a summary or the contents of all the global user variables.
  +
* The '''show local''' command prints the contents of one local user variable.
variable.
 
* The''' show globals '''command prints a summary or the contents of all
+
* The''' show locals '''command prints a summary or the contents of all the local user variables.
  +
* The '''show module''' command prints meta information or help text for one YANG module.
the global user variables.
 
  +
* The''' show modules '''command prints meta information for all the currently available YANG modules. IF a session is active, this will be the list of modules the server reported, plus any modules loaded with the '''mgrload''' command.
* The '''show local''' command prints the contents of one local user
 
  +
* The '''show objects''' command prints the available objects or help text for the available objects.
variable.
 
* The''' show locals '''command prints a summary or the contents of all
+
* The '''show session''' command prints the session startup screen information for the current session.
  +
* The '''show system''' command prints the contents of the yangcli system variables.
the local user variables.
 
* The '''show module''' command prints meta information or help text for
+
* The '''show var''' command prints the contents of the specified variable.
  +
* The''' show vars''' command prints a summary or the contents of all the program variables.
one YANG module.
 
* The''' show modules '''command prints meta information for all the
 
currently available YANG modules. IF a session is active, this will be
 
the list of modules the server reported, plus any modules loaded with
 
the '''mgrload''' command.
 
* The '''show objects''' command prints the available objects or help
 
text for the available objects.
 
* The '''show session''' command prints the session startup screen
 
information for the current session.
 
* The '''show system''' command prints the contents of the yangcli
 
system variables.
 
* The '''show var''' command prints the contents of the specified
 
variable.
 
* The''' show vars''' command prints a summary or the contents of all
 
the program variables.
 
 
* The '''show version''' command prints the '''yangcli''' version number
 
* The '''show version''' command prints the '''yangcli''' version number
   
Line 10,393: Line 6,801:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 2
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 2
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| data
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| data
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 10,446: Line 6,832:
 
*** usage: optional
 
*** usage: optional
 
*** default: none
 
*** default: none
*** This parameter specifies that brief documentation mode should be
+
*** This parameter specifies that brief documentation mode should be used.
used.
 
 
** '''normal'''
 
** '''normal'''
 
*** type: empty
 
*** type: empty
 
*** usage: optional
 
*** usage: optional
 
*** default: none
 
*** default: none
*** This parameter specifies that normal documentation mode should be
+
*** This parameter specifies that normal documentation mode should be used.
used.
 
 
** '''full'''
 
** '''full'''
 
*** type: empty
 
*** type: empty
 
*** usage: optional
 
*** usage: optional
 
*** default: none
 
*** default: none
*** This parameter specifies that full documentation mode should be
+
*** This parameter specifies that full documentation mode should be used.
used.
 
   
 
* '''choice showtype''' (not entered)
 
* '''choice showtype''' (not entered)
** mandatory 1 of N choice for the sub-command for the '''show'''
+
** mandatory 1 of N choice for the sub-command for the '''show''' command
command
 
 
*** '''cli'''
 
*** '''cli'''
 
**** type: empty
 
**** type: empty
Line 10,474: Line 6,856:
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** This parameter specifies the name of the global variable to show
+
**** This parameter specifies the name of the global variable to show information for.
  +
***** If '''help-mode '''is 'brief', then the name, variable object, and type of the global variable object will be printed.
information for.
 
***** If '''help-mode '''is 'brief', then the name, variable object, and
+
***** If '''help-mode''' is 'normal' or 'full', then the contents of the specified global variable will be printed.
type of the global variable object will be printed.
 
***** If '''help-mode''' is 'normal' or 'full', then the contents of the
 
specified global variable will be printed.
 
 
*** '''globals'''
 
*** '''globals'''
 
**** type: empty
 
**** type: empty
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** This parameter specifies that information for all global variables
+
**** This parameter specifies that information for all global variables should be printed.
  +
***** If '''help-mode '''is 'brief', then the name, variable object, and type of each global variable object will be printed.
should be printed.
 
***** If '''help-mode '''is 'brief', then the name, variable object, and
+
***** If '''help-mode''' is 'normal' or 'full', then the contents of each global variable will be printed.
type of each global variable object will be printed.
 
***** If '''help-mode''' is 'normal' or 'full', then the contents of
 
each global variable will be printed.
 
 
*** '''local'''
 
*** '''local'''
 
**** type: string
 
**** type: string
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** This parameter specifies the name of the local variable to show
+
**** This parameter specifies the name of the local variable to show information for.
  +
***** If '''help-mode '''is 'brief', then the name, variable object, and type of the local variable object will be printed.
information for.
 
***** If '''help-mode '''is 'brief', then the name, variable object, and
+
***** If '''help-mode''' is 'normal' or 'full', then the contents of the specified local variable will be printed.
type of the local variable object will be printed.
 
***** If '''help-mode''' is 'normal' or 'full', then the contents of the
 
specified local variable will be printed.
 
 
*** '''locals'''
 
*** '''locals'''
 
**** type: empty
 
**** type: empty
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** This parameter specifies that information for all local variables
+
**** This parameter specifies that information for all local variables should be printed.
  +
***** If '''help-mode '''is 'brief', then the name, variable object, and type of each local variable object will be printed.
should be printed.
 
***** If '''help-mode '''is 'brief', then the name, variable object, and
+
***** If '''help-mode''' is 'normal' or 'full', then the contents of each local variable will be printed.
type of each local variable object will be printed.
 
***** If '''help-mode''' is 'normal' or 'full', then the contents of
 
each local variable will be printed.
 
 
*** '''module'''
 
*** '''module'''
 
**** type: string
 
**** type: string
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** This parameter specifies the name of the module to show information
+
**** This parameter specifies the name of the module to show information for.
  +
***** If '''help-mode '''is 'brief' or 'normal', then the name, version, namespace, and source of the module will be printed.
for.
 
***** If '''help-mode '''is 'brief' or 'normal', then the name, version,
+
***** If '''help-mode''' is 'full', then the module level help text for the specified module will be printed.
namespace, and source of the module will be printed.
 
***** If '''help-mode''' is 'full', then the module level help text for
 
the specified module will be printed.
 
 
*** '''modules'''
 
*** '''modules'''
 
**** type: empty
 
**** type: empty
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** This parameter specifies that information for all available modules
+
**** This parameter specifies that information for all available modules should be printed:
  +
***** If '''help-mode '''is 'brief', then the name of each module will be printed.
should be printed:
 
***** If '''help-mode '''is 'brief', then the name of each module will
+
***** If '''help-mode '''is 'normal', then the XML prefix, name, and revision date of each module will be printed.
  +
***** If '''help-mode''' is 'full', then the name, revision date, prefix, namespace, and source of each module will be printed.
be printed.
 
***** If '''help-mode '''is 'normal', then the XML prefix, name, and
 
revision date of each module will be printed.
 
***** If '''help-mode''' is 'full', then the name, revision date,
 
prefix, namespace, and source of each module will be printed.
 
 
*** '''objects'''
 
*** '''objects'''
 
**** type: empty
 
**** type: empty
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** This parameter specifies that information for all available
+
**** This parameter specifies that information for all available database objects should be printed:
  +
***** If '''help-mode '''is 'brief', then the module name and name of each object will be printed.
database objects should be printed:
 
***** If '''help-mode '''is 'brief', then the module name and name of
+
***** If '''help-mode '''is 'normal', then the YANG object type, object name, and YANG base type will be printed.<br/> If '''help-mode''' is 'full', then brief help text will be printed for every object.
each object will be printed.
 
***** If '''help-mode '''is 'normal', then the YANG object type, object
 
name, and YANG base type will be printed.<br/> If '''help-mode''' is
 
'full', then brief help text will be printed for every object.
 
 
*** '''system'''
 
*** '''system'''
 
**** type: empty
 
**** type: empty
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** This parameter specifies that information for all system variables
+
**** This parameter specifies that information for all system variables should be printed.
should be printed.
 
 
***** The '''help-mode '''parameter''' '''has no affect on this command.
 
***** The '''help-mode '''parameter''' '''has no affect on this command.
 
*** '''var'''
 
*** '''var'''
Line 10,554: Line 6,912:
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** This parameter specifies the name of any variable to show
+
**** This parameter specifies the name of any variable to show information for.
  +
***** If '''help-mode '''is 'brief', then the name, variable object, and type of the variable object will be printed.
information for.
 
***** If '''help-mode '''is 'brief', then the name, variable object, and
+
***** If '''help-mode''' is 'normal' or 'full', then the contents of the specified variable will be printed.
type of the variable object will be printed.
 
***** If '''help-mode''' is 'normal' or 'full', then the contents of the
 
specified variable will be printed.
 
 
*** '''vars'''
 
*** '''vars'''
 
**** type: empty
 
**** type: empty
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** This parameter specifies that information for all variables should
+
**** This parameter specifies that information for all variables should be printed. This includes all CLI, read-only system, read-write system, global user, and local user variables.
  +
***** If '''help-mode '''is 'brief', then the name, variable object, and type of each variable object will be printed.
be printed. This includes all CLI, read-only system, read-write system,
 
  +
***** If '''help-mode''' is 'normal' or 'full', then the contents of each variable will be printed.
global user, and local user variables.
 
***** If '''help-mode '''is 'brief', then the name, variable object, and
 
type of each variable object will be printed.
 
***** If '''help-mode''' is 'normal' or 'full', then the contents of
 
each variable will be printed.
 
 
*** '''version'''
 
*** '''version'''
 
**** type: empty
 
**** type: empty
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** This parameter specifies that the yangcli program version string
+
**** This parameter specifies that the yangcli program version string should be printed.
should be printed.
 
 
***** The '''help-mode''' parameter has no affect in this mode.
 
***** The '''help-mode''' parameter has no affect in this mode.
   
Line 10,614: Line 6,964:
 
This command is only supported by the '''netconfd''' server.
 
This command is only supported by the '''netconfd''' server.
   
The default access control configuration for '''netconfd''' will not
+
The default access control configuration for '''netconfd''' will not allow any user except the designated 'superuser' account to invoke this command. Refer to the '''netconfd''' user manual for details on configuring access control.
allow any user except the designated 'superuser' account to invoke this
 
command. Refer to the '''netconfd''' user manual for details on
 
configuring access control.
 
   
   
Line 10,625: Line 6,972:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 0
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yuma-system.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yuma-system.yang
 
   
 
|}
 
|}
Line 10,678: Line 7,003:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
Line 10,691: Line 7,015:
   
 
=== start-timer ===
 
=== start-timer ===
The '''start-timer''' command is used to start a timer to do simple
+
The '''start-timer''' command is used to start a timer to do simple performance measurements.
performance measurements.
 
   
 
It is used along with the stop-timer command.
 
It is used along with the stop-timer command.
Line 10,702: Line 7,025:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| id
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| id
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 2
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 2
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Capabilities optional:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities optional:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|}
 
|}
Line 10,770: Line 7,063:
 
** usage: mandatory
 
** usage: mandatory
 
** default: 0
 
** default: 0
** This parameter specifies the numeric ID of the timer.It is a number
+
** This parameter specifies the numeric ID of the timer.It is a number in the range 0 to 15.
in the range 0 to 15.
 
 
* '''restart-ok'''
 
* '''restart-ok'''
 
** type: boolean
 
** type: boolean
 
** usage: optional
 
** usage: optional
 
** default: true
 
** default: true
** Indicates whether the timer will be used if it is already running. If
+
** Indicates whether the timer will be used if it is already running. If 'true', the timer will be restarted if it is already running. If 'false', an error will occur if the timer is already running.
'true', the timer will be restarted if it is already running. If
 
'false', an error will occur if the timer is already running.
 
 
**
 
**
   
Line 10,798: Line 7,088:
   
 
=== stop-timer ===
 
=== stop-timer ===
The '''stop-timer''' command is used to stop a timer to do simple
+
The '''stop-timer''' command is used to stop a timer to do simple performance measurements.
performance measurements.
 
   
 
It is used along with the start-timer command.
 
It is used along with the start-timer command.
Line 10,809: Line 7,098:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| id
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| id
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 2
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 2
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| data
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| data
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Capabilities optional:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities optional:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|}
 
|}
Line 10,877: Line 7,136:
 
** usage: mandatory
 
** usage: mandatory
 
** default: 0
 
** default: 0
** This parameter specifies the numeric ID of the timer.It is a number
+
** This parameter specifies the numeric ID of the timer.It is a number in the range 0 to 15.
in the range 0 to 15.
 
 
* '''echo'''
 
* '''echo'''
 
** type: boolean
 
** type: boolean
Line 10,887: Line 7,145:
 
Positive Response:
 
Positive Response:
   
* data: the elapsed time is returned and can be used in assignment
+
* data: the elapsed time is returned and can be used in assignment statements
statements
 
   
 
Negative Response:
 
Negative Response:
Line 10,903: Line 7,160:
   
 
=== unlock ===
 
=== unlock ===
The '''unlock''' command is used to request a global lock on a NETCONF
+
The '''unlock''' command is used to request a global lock on a NETCONF database. It is used, along with the '''lock''' command, to obtain exclusive write access to the NETCONF server.
database. It is used, along with the '''lock''' command, to obtain
 
exclusive write access to the NETCONF server.
 
   
   
Line 10,913: Line 7,168:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yuma-netconf.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yuma-netconf.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Capabilities optional:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :candidate:startup:url
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities optional:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :candidate:startup:url
 
   
 
|}
 
|}
Line 10,981: Line 7,206:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the name of the target database to be
+
** This parameter specifies the name of the target database to be locked.
locked.
 
 
** container contents: 1 of N:
 
** container contents: 1 of N:
 
*** '''candidate'''
 
*** '''candidate'''
Line 10,995: Line 7,219:
 
*** '''url'''
 
*** '''url'''
 
**** type: yang:uri
 
**** type: yang:uri
**** capabilities needed: :url, and the scheme used in the URL must be
+
**** capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter.
  +
**** To enter this parameter, the interactive mode must be used. The shorthand mode (target=url) cannot be used, since this parameter contains a string.
specified in the :url capability 'schemes' parameter.
 
**** To enter this parameter, the interactive mode must be used. The
 
shorthand mode (target=url) cannot be used, since this parameter
 
contains a string.
 
   
 
Positive Response:
 
Positive Response:
Line 11,008: Line 7,229:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
Line 11,029: Line 7,249:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| name
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| name
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 11,085: Line 7,283:
 
Positive Response:
 
Positive Response:
   
* Deleted alias 'foo' is printed, where 'foo' is the name parameter
+
* Deleted alias 'foo' is printed, where 'foo' is the name parameter string
string
 
   
 
Negative Response:
 
Negative Response:
   
 
* An error message will be printed.
 
* An error message will be printed.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
Line 11,105: Line 7,301:
   
 
=== uservars ===
 
=== uservars ===
The '''uservars''' command is used to clear, load, or save the global
+
The '''uservars''' command is used to clear, load, or save the global user variables.
user variables.
 
   
   
Line 11,114: Line 7,309:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 11,169: Line 7,342:
 
*** Delete all global user variables from memory
 
*** Delete all global user variables from memory
 
** '''load'''<nowiki> [uservars-filespec]</nowiki>
 
** '''load'''<nowiki> [uservars-filespec]</nowiki>
*** Load global user variables into memory from an XML file.If the
+
*** Load global user variables into memory from an XML file.If the 'uservars-filespec' parameter is missing, then the default file($HOME/.yuma/yangcli_uservars.xml) will be used.
'uservars-filespec' parameter is missing, then the default
 
file($HOME/.yuma/yangcli_uservars.xml) will be used.
 
 
** '''save'''<nowiki> [uservars-filespec]</nowiki>
 
** '''save'''<nowiki> [uservars-filespec]</nowiki>
*** Save the global user variables from memory into an XML file.If the
+
*** Save the global user variables from memory into an XML file.If the 'uservars-filespec' parameter is missing, then the default file($HOME/.yuma/yangcli_uservars.xml) will be used.
'uservars-filespec' parameter is missing, then the default
 
file($HOME/.yuma/yangcli_uservars.xml) will be used.
 
   
 
Positive Response:
 
Positive Response:
Line 11,195: Line 7,364:
   
 
=== validate ===
 
=== validate ===
The '''validate''' command is used to check if a complete NETCONF
+
The '''validate''' command is used to check if a complete NETCONF database is valid or not.
database is valid or not.
 
   
The''' :validate '''capability must be supported by the server to use
+
The''' :validate '''capability must be supported by the server to use this command.
this command.
 
   
   
Line 11,207: Line 7,374:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yuma-netconf.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yuma-netconf.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :validate
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :validate
 
   
 
|-
 
|-
  +
| Capabilities optional:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :candidate:startup:url
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities optional:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :candidate:startup:url
 
   
 
|}
 
|}
Line 11,275: Line 7,412:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the name of the target database to be
+
** This parameter specifies the name of the target database to be validated.
validated.
 
 
** container contents: 1 of N:
 
** container contents: 1 of N:
 
*** '''candidate'''
 
*** '''candidate'''
Line 11,289: Line 7,425:
 
*** '''url'''
 
*** '''url'''
 
**** type: yang:uri
 
**** type: yang:uri
**** capabilities needed: :url, and the scheme used in the URL must be
+
**** capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter.
  +
**** To enter this parameter, the interactive mode must be used. The shorthand mode (target=url) cannot be used, since this parameter contains a string.
specified in the :url capability 'schemes' parameter.
 
**** To enter this parameter, the interactive mode must be used. The
 
shorthand mode (target=url) cannot be used, since this parameter
 
contains a string.
 
 
*** '''config'''
 
*** '''config'''
 
**** type: anyxml
 
**** type: anyxml
 
**** capabilities
 
**** capabilities
**** This parameter represents an entire database, using the in-line
+
**** This parameter represents an entire database, using the in-line config form, similar to the '''edit-config '''command, except this config parameter contains no nc:operation attributes and must be a complete database, not a subset.
config form, similar to the '''edit-config '''command, except this
 
config parameter contains no nc:operation attributes and must be a
 
complete database, not a subset.
 
   
 
Positive Response:
 
Positive Response:
Line 11,309: Line 7,439:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Usage:
 
Usage:
Line 11,322: Line 7,451:
   
 
=== while ===
 
=== while ===
The '''while''' command is used to start a conditional loop command
+
The '''while''' command is used to start a conditional loop command block.
block.
 
   
  +
The '''expr''' parameter is used to specify the XPath expression to test if the while conditional loop block is true or false. A false block will be skipped and a true block will be executed. <nowiki>The command prompt will contain the string '[F]' while </nowiki>inside a false conditional block in interactive mode. This expression string should be entered with quotes to avoid misinterpreting any whitespace or special characters.
The '''expr''' parameter is used to specify the XPath expression to test
 
if the while conditional loop block is true or false. A false block will
 
be skipped and a true block will be executed. <nowiki>The command prompt
 
will contain the string '[F]' while </nowiki>inside a false conditional
 
block in interactive mode. This expression string should be entered with
 
quotes to avoid misinterpreting any whitespace or special characters.
 
   
The '''docroot''' parameter (if present) specifies the XML document that
+
The '''docroot''' parameter (if present) specifies the XML document that the 'expr' parameter should be evaluated against. This is optional, since only XPath path expressions need to refer to a document.
the 'expr' parameter should be evaluated against. This is optional,
 
since only XPath path expressions need to refer to a document.
 
   
If the 'expr' expression is true, the conditional block will be
+
If the 'expr' expression is true, the conditional block will be executed, and no further conditional blocks within the same if command sequence will be executed.
executed, and no further conditional blocks within the same if command
 
sequence will be executed.
 
   
The maxloops parameter specifies the maximum number of iterations that
+
The maxloops parameter specifies the maximum number of iterations that should be allowed, even if the expression continues to evaluate to 'true'. This allows constant expressions to be used to construct a simple 'for' loop.
should be allowed, even if the expression continues to evaluate to
 
'true'. This allows constant expressions to be used to construct a
 
simple 'for' loop.
 
   
   
Line 11,357: Line 7,473:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| local
 
| local
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| expr
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| expr
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 3
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 3
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| status
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| status
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|}
 
|}
Line 11,409: Line 7,503:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the XPath expression to determine if the
+
** This parameter specifies the XPath expression to determine if the following commands are within a true or false conditional block.
following commands are within a true or false conditional block.
 
 
* '''docroot'''
 
* '''docroot'''
 
** type: anyxml
 
** type: anyxml
 
** usage: optional (typically a variable reference is used)
 
** usage: optional (typically a variable reference is used)
 
** default: none
 
** default: none
** This parameter specifies the XML document that should be used if the
+
** This parameter specifies the XML document that should be used if the expr XPath expression references any path nodes.
expr XPath expression references any path nodes.
 
 
* '''maxloops'''
 
* '''maxloops'''
 
** type: uint32
 
** type: uint32
 
** usage: optional
 
** usage: optional
 
** default: 65535
 
** default: 65535
** Set a maximum number of loops that can be iterated for this while
+
** Set a maximum number of loops that can be iterated for this while command. The value zero means that no maximum will be enforced. Use this mode with caution.
command. The value zero means that no maximum will be enforced. Use this
 
mode with caution.
 
   
 
Positive Response:
 
Positive Response:
Line 11,432: Line 7,522:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
** invalid XPath expression or invalid docroot reference will cause an
+
** invalid XPath expression or invalid docroot reference will cause an error
error
 
   
 
Usage:
 
Usage:
Line 11,440: Line 7,529:
 
yangcli andy@myserver> '''while 1 --maxloops=10'''
 
yangcli andy@myserver> '''while 1 --maxloops=10'''
   
yangcli [mailto:andy@myagent andy@myserver]>'''<nowiki> while '$x <
+
yangcli [mailto:andy@myagent andy@myserver]>'''<nowiki> while '$x < 10'</nowiki>'''
10'</nowiki>'''
 
   
 
yangcli [mailto:andy@myagent andy@myserver]>
 
yangcli [mailto:andy@myagent andy@myserver]>
Line 11,447: Line 7,535:
   
 
=== xget ===
 
=== xget ===
The '''xget'''<nowiki> command is used to invoke a NETCONF <get>
+
The '''xget'''<nowiki> command is used to invoke a NETCONF <get> operation with an XPath filter.</nowiki>
operation with an XPath filter.</nowiki>
 
   
   
Line 11,456: Line 7,543:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| select
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| select
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 1
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 3
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 3
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| data
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| data
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Capabilities optional:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :with-defaults
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities optional:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :with-defaults
 
   
 
|}
 
|}
Line 11,524: Line 7,581:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the where '''yangcli'''<nowiki> should get
+
** This parameter specifies the where '''yangcli'''<nowiki> should get the data from, for the XPath filter target of the <get> operation. </nowiki>It is an XPath expression, either contained in a user variable or directly from the '''select''' parameter.
the data from, for the XPath filter target of the <get> operation.
 
</nowiki>It is an XPath expression, either contained in a user variable
 
or directly from the '''select''' parameter.
 
 
*** '''varref'''
 
*** '''varref'''
 
**** type: string
 
**** type: string
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** <nowiki>This parameter specifies the name of the user variable the
+
**** <nowiki>This parameter specifies the name of the user variable the contains the XPath expression for the XPath filter in the <get> operation. </nowiki>The parameter must exist (e.g., created with an assignment statement) or an error message will be printed.
contains the XPath expression for the XPath filter in the <get>
 
operation. </nowiki>The parameter must exist (e.g., created with an
 
assignment statement) or an error message will be printed.
 
 
*** '''select'''
 
*** '''select'''
 
**** type: string
 
**** type: string
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** <nowiki>This parameter specifies the XPath expression to use for
+
**** <nowiki>This parameter specifies the XPath expression to use for the XPath filter in the <get> operation.</nowiki>
the XPath filter in the <get> operation.</nowiki>
 
 
* '''timeout'''
 
* '''timeout'''
** type: uint32 (0 = no timeout, otherwise the number of seconds to
+
** type: uint32 (0 = no timeout, otherwise the number of seconds to wait)
wait)
 
   
 
*
 
*
 
** usage: optional
 
** usage: optional
** default: set to the '''$$timeout''' system variable, default 30
+
** default: set to the '''$$timeout''' system variable, default 30 seconds
  +
** This parameter specifies the number of seconds to wait for a response from the server before giving up. The session will not be dropped if a remote command times out, but any late response will be dropped. A value of zero means no timeout should be used, and '''yangcli''' will wait forever for a response.
seconds
 
** This parameter specifies the number of seconds to wait for a response
 
from the server before giving up. The session will not be dropped if a
 
remote command times out, but any late response will be dropped. A value
 
of zero means no timeout should be used, and '''yangcli''' will wait
 
forever for a response.
 
   
 
* '''with-defaults'''
 
* '''with-defaults'''
Line 11,561: Line 7,605:
 
** default: none
 
** default: none
 
** capabilities needed: with-defaults
 
** capabilities needed: with-defaults
** <nowiki>This parameter controls how nodes containing only default
+
** <nowiki>This parameter controls how nodes containing only default values are returned in the <rpc-reply>.</nowiki>
values are returned in the <rpc-reply>.</nowiki>
 
   
 
System Variables:
 
System Variables:
   
 
* '''$$timeout'''
 
* '''$$timeout'''
** The response timeout interval will be derived from this system
+
** The response timeout interval will be derived from this system variable.
variable.
 
 
* '''$$with-defaults'''
 
* '''$$with-defaults'''
** <nowiki>The <with-defaults> parameter for the <get> operation will be
+
** <nowiki>The <with-defaults> parameter for the <get> operation will be derived from this system variable.</nowiki>
derived from this system variable.</nowiki>
 
   
 
Positive Response:
 
Positive Response:
Line 11,580: Line 7,621:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Output:
 
Output:
Line 11,587: Line 7,627:
 
* '''data'''
 
* '''data'''
 
** type: anyxml
 
** type: anyxml
** This element will contain the requested data from the
+
** This element will contain the requested data from the <nowiki><running></nowiki> database or non-config data structures.
<nowiki><running></nowiki> database or non-config data structures.
 
   
 
Usage:
 
Usage:
Line 11,635: Line 7,674:
   
 
=== xget-config ===
 
=== xget-config ===
The '''xget-config'''<nowiki> command is used to invoke a NETCONF
+
The '''xget-config'''<nowiki> command is used to invoke a NETCONF <get-config> operation with an XPath filter.</nowiki>
<get-config> operation with an XPath filter.</nowiki>
 
   
   
Line 11,644: Line 7,682:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Command type:
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Command type:
 
 
| remote
 
| remote
   
 
|-
 
|-
  +
| Default parameter:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| select
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Default parameter:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| select
 
   
 
|-
 
|-
  +
| Min parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 2
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Min parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 2
 
   
 
|-
 
|-
  +
| Max parameters:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 4
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Max parameters:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| 4
 
   
 
|-
 
|-
  +
| Return type:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| data
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Return type:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| data
 
   
 
|-
 
|-
  +
| YANG file:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli.yang
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| YANG file:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| yangcli.yang
 
   
 
|-
 
|-
  +
| Capabilities needed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities needed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| none
 
   
 
|-
 
|-
  +
| Capabilities optional:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| :candidate:startup:url:with-defaults
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0403in;"| Capabilities optional:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0403in;"| :candidate:startup:url:with-defaults
 
   
 
|}
 
|}
Line 11,712: Line 7,720:
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the where '''yangcli'''<nowiki> should get
+
** This parameter specifies the where '''yangcli'''<nowiki> should get the data from, for the XPath filter target of the <get-config> operation. </nowiki>It is an XPath expression, either contained in a user variable or directly from the '''select''' parameter.
the data from, for the XPath filter target of the <get-config>
 
operation. </nowiki>It is an XPath expression, either contained in a
 
user variable or directly from the '''select''' parameter.
 
 
*** '''varref'''
 
*** '''varref'''
 
**** type: string
 
**** type: string
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** <nowiki>This parameter specifies the name of the user variable the
+
**** <nowiki>This parameter specifies the name of the user variable the contains the XPath expression for the XPath filter in the <get-config> operation. </nowiki>The parameter must exist (e.g., created with an assignment statement) or an error message will be printed.
contains the XPath expression for the XPath filter in the <get-config>
 
operation. </nowiki>The parameter must exist (e.g., created with an
 
assignment statement) or an error message will be printed.
 
 
*** '''select'''
 
*** '''select'''
 
**** type: string
 
**** type: string
 
**** usage: mandatory
 
**** usage: mandatory
 
**** default: none
 
**** default: none
**** <nowiki>This parameter specifies the XPath expression to use for
+
**** <nowiki>This parameter specifies the XPath expression to use for the XPath filter in the <get-config> operation.</nowiki>
the XPath filter in the <get-config> operation.</nowiki>
 
 
* '''source'''
 
* '''source'''
 
** type: container with 1 of N choice of leafs
 
** type: container with 1 of N choice of leafs
 
** usage: mandatory
 
** usage: mandatory
 
** default: none
 
** default: none
** This parameter specifies the name of the source database for the
+
** This parameter specifies the name of the source database for the retrieval operation.
retrieval operation.
 
 
** container contents: 1 of N:
 
** container contents: 1 of N:
 
*** '''candidate'''
 
*** '''candidate'''
Line 11,748: Line 7,748:
 
*** '''url'''
 
*** '''url'''
 
**** type: yang:uri
 
**** type: yang:uri
**** capabilities needed: :url, and the scheme used in the URL must be
+
**** capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter
  +
**** To enter this parameter, the interactive mode must be used. The shorthand mode (source=url) cannot be used, since this parameter contains a string.
specified in the :url capability 'schemes' parameter
 
**** To enter this parameter, the interactive mode must be used. The
 
shorthand mode (source=url) cannot be used, since this parameter
 
contains a string.
 
 
* '''timeout'''
 
* '''timeout'''
** type: uint32 (0 = no timeout, otherwise the number of seconds to
+
** type: uint32 (0 = no timeout, otherwise the number of seconds to wait)
wait)
 
   
 
*
 
*
 
** usage: optional
 
** usage: optional
** default: set to the '''$$timeout''' system variable, default 30
+
** default: set to the '''$$timeout''' system variable, default 30 seconds
  +
** This parameter specifies the number of seconds to wait for a response from the server before giving up. The session will not be dropped if a remote command times out, but any late response will be dropped. A value of zero means no timeout should be used, and '''yangcli''' will wait forever for a response.
seconds
 
** This parameter specifies the number of seconds to wait for a response
 
from the server before giving up. The session will not be dropped if a
 
remote command times out, but any late response will be dropped. A value
 
of zero means no timeout should be used, and '''yangcli''' will wait
 
forever for a response.
 
   
 
* '''with-defaults'''
 
* '''with-defaults'''
Line 11,772: Line 7,763:
 
** default: none
 
** default: none
 
** capabilities needed: with-defaults
 
** capabilities needed: with-defaults
** <nowiki>This parameter controls how nodes containing only default
+
** <nowiki>This parameter controls how nodes containing only default values are returned in the <rpc-reply>.</nowiki>
values are returned in the <rpc-reply>.</nowiki>
 
   
 
System Variables:
 
System Variables:
   
 
* '''$$timeout'''
 
* '''$$timeout'''
** The response timeout interval will be derived from this system
+
** The response timeout interval will be derived from this system variable.
variable.
 
 
* '''$$with-defaults'''
 
* '''$$with-defaults'''
** <nowiki>The <with-defaults> parameter for the <get-config> operation
+
** <nowiki>The <with-defaults> parameter for the <get-config> operation will be derived from this system variable.</nowiki>
will be derived from this system variable.</nowiki>
 
   
 
Positive Response:
 
Positive Response:
Line 11,791: Line 7,779:
   
 
* An error message will be printed if errors are detected locally.
 
* An error message will be printed if errors are detected locally.
* <nowiki>An <rpc-error> message will be printed if the server detected
+
* <nowiki>An <rpc-error> message will be printed if the server detected an error.</nowiki>
an error.</nowiki>
 
   
 
Output:
 
Output:
Line 11,798: Line 7,785:
 
* '''data'''
 
* '''data'''
 
** type: anyxml
 
** type: anyxml
** This element will contain the requested data from the '''source'''
+
** This element will contain the requested data from the '''source''' database.
database.
 
   
 
Usage:
 
Usage:
Line 11,831: Line 7,817:
   
 
= CLI Reference =
 
= CLI Reference =
The Yuma programs uses command line interface (CLI) parameters to
+
The Yuma programs uses command line interface (CLI) parameters to control program behavior.
control program behavior.
 
   
Many parameters are supported by more than one program, such as'''
+
Many parameters are supported by more than one program, such as''' --log.'''
--log.'''
 
   
The following sections document all the Yuma CLI parameters, in
+
The following sections document all the Yuma CLI parameters, in alphabetical order.
alphabetical order.
 
   
 
== --aliases-file ==
 
== --aliases-file ==
The –'''aliases-file''' parameter specifies the yangcli command aliases
+
The –'''aliases-file''' parameter specifies the yangcli command aliases file specification to use.
file specification to use.
 
   
   
Line 11,850: Line 7,832:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
 
| string
 
| string
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| $HOME/.yuma/.yangcli_aliases
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| $HOME/.yuma/.yangcli_aliases
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli –aliases-file=~/myalaises
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli –aliases-file=~/myalaises
 
   
 
|}
 
|}
 
== --alt-names ==
 
== --alt-names ==
The –'''alt-names''' parameter controls whether alternative names are
+
The –'''alt-names''' parameter controls whether alternative names are searched when processing a UrlPath search.
searched when processing a UrlPath search.
 
   
   
Line 11,906: Line 7,865:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| boolean (true or false)
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| boolean (true or
 
false)
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| TRUE
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| TRUE
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --alt-names=false
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --alt-names=false
 
   
 
|}
 
|}
 
== --autoaliases ==
 
== --autoaliases ==
The '''--autoaliases''' parameter controls automatic loading and saving
+
The '''--autoaliases''' parameter controls automatic loading and saving of the command aliases file.
of the command aliases file.
 
   
 
If 'true', then aliases will be loaded and saved automatically.
 
If 'true', then aliases will be loaded and saved automatically.
   
If 'false', then aliases must be loaded and saved manually with the
+
If 'false', then aliases must be loaded and saved manually with the 'aliases' command.
'aliases' command.
 
   
   
Line 11,968: Line 7,902:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| boolean (true or false)
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| boolean (true or
 
false)
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| TRUE
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| TRUE
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --autoaliases=false
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --autoaliases=false
 
   
 
|}
 
|}
 
== --autocomp ==
 
== --autocomp ==
The '''--autocomp''' parameter controls automatic completion of command
+
The '''--autocomp''' parameter controls automatic completion of command and parameter names.
and parameter names.
 
   
If true, then the program will attempt to find a partial match by
+
If true, then the program will attempt to find a partial match by comparing only the number of characters entered. For example '--log-l=debug' is the same as '--log-level=debug'.
comparing only the number of characters entered. For example
 
'--log-l=debug' is the same as '--log-level=debug'.
 
   
 
If 'false', then command and parameter names must match exactly.
 
If 'false', then command and parameter names must match exactly.
Line 12,030: Line 7,938:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| boolean (true or false)
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| boolean (true or
 
false)
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| TRUE
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| TRUE
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --autocomp=false
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --autocomp=false
 
   
 
|}
 
|}
 
== --autohistory ==
 
== --autohistory ==
The '''--autohistory''' parameter controls automatic loading and saving
+
The '''--autohistory''' parameter controls automatic loading and saving of the command line history buffer in the '''yangcli''' program..
of the command line history buffer in the '''yangcli''' program..
 
   
If true, then when the program starts, the default command line history
+
If true, then when the program starts, the default command line history buffer will be loaded, and the previous set of commands will be available with the '''history''' and '''recall''' commands.
buffer will be loaded, and the previous set of commands will be
 
available with the '''history''' and '''recall''' commands.
 
   
If 'false', then the command line history buffer will not be loaded and
+
If 'false', then the command line history buffer will not be loaded and saved automatically.
saved automatically.
 
   
 
The default location for this file is ~/.yuma/.yangcli_history.
 
The default location for this file is ~/.yuma/.yangcli_history.
Line 12,095: Line 7,976:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| boolean (true or false)
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| boolean (true or
 
false)
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| TRUE
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| TRUE
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --autohistory=false
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --autohistory=false
 
   
 
|}
 
|}
 
== --autoload ==
 
== --autoload ==
The '''--autoload''' parameter controls automatic loading of YANG
+
The '''--autoload''' parameter controls automatic loading of YANG modules, as needed.
modules, as needed.
 
   
 
If true, then the program will attempt to find a needed YANG module.
 
If true, then the program will attempt to find a needed YANG module.
Line 12,156: Line 8,013:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| boolean (true or false)
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| boolean (true or
 
false)
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| TRUE
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| TRUE
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --autoload=false
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --autoload=false
 
   
 
|}
 
|}
 
== --autouservars ==
 
== --autouservars ==
The '''--autouservars''' parameter controls automatic loading of global
+
The '''--autouservars''' parameter controls automatic loading of global user variables.
user variables.
 
   
If 'true', then the global user variables will be automatically loaded
+
If 'true', then the global user variables will be automatically loaded and saved.
and saved.
 
   
If 'false', then the global user variables must be loaded and saved
+
If 'false', then the global user variables must be loaded and saved manually with the 'uservars' command.
manually with the 'uservars' command.
 
   
   
Line 12,219: Line 8,050:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| boolean (true or false)
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| boolean (true or
 
false)
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| TRUE
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| TRUE
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --autouservars=false
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --autouservars=false
 
   
 
|}
 
|}
 
== --bad-data ==
 
== --bad-data ==
The''' --bad-data''' parameter controls how invalid parameter input is
+
The''' --bad-data''' parameter controls how invalid parameter input is handled by the program.
handled by the program.
 
   
 
* '''ignore''': Use invalid parameter values. Use with caution.
 
* '''ignore''': Use invalid parameter values. Use with caution.
 
* '''warn''': Issue a warning message, but use the invalid data anyway.
 
* '''warn''': Issue a warning message, but use the invalid data anyway.
* '''check''': Prompt the user interactively, and check if the invalid
+
* '''check''': Prompt the user interactively, and check if the invalid data should be used, or a new value re-entered.
data should be used, or a new value re-entered.
 
 
* '''error''': Do not use invalid parameter values.
 
* '''error''': Do not use invalid parameter values.
   
Line 12,281: Line 8,087:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| enumeration: '''ignore warn check error'''
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| enumeration:
 
'''ignore warn check error'''
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| check
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| check
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli ----bad-data=warn
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli ----bad-data=warn
 
   
 
|}
 
|}
 
== --batch-mode ==
 
== --batch-mode ==
The '''--batch-mode''' parameter specifies that the interactive CLI will
+
The '''--batch-mode''' parameter specifies that the interactive CLI will not be used.
not be used.
 
   
Instead, if a script is provided with the 'run-script' parameter, or a
+
Instead, if a script is provided with the 'run-script' parameter, or a command provided with the 'run-command' parameter, then it will be executed automatically before the program exits. This mode can be used to invoke NETCONF commands from Unix shell scripts.
command provided with the 'run-command' parameter, then it will be
 
executed automatically before the program exits. This mode can be used
 
to invoke NETCONF commands from Unix shell scripts.
 
   
   
Line 12,343: Line 8,122:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
 
| empty
 
| empty
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| none
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --batch-mode \
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --batch-mode \
 
 
--run-script=~/run-tests
 
--run-script=~/run-tests
   
 
|}
 
|}
 
== --config ==
 
== --config ==
The '''--config''' parameter specifies the name of a Yuma configuration
+
The '''--config''' parameter specifies the name of a Yuma configuration file that contains more parameters to process, in addition to the CLI parameters.
file that contains more parameters to process, in addition to the CLI
 
parameters.
 
   
Refer to the 'Configuration Files' section for details on the format of
+
Refer to the 'Configuration Files' section for details on the format of this file.
this file.
 
   
   
Line 12,404: Line 8,158:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| string: complete file specification of the text file to parse for more parameters.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| string: complete
 
file specification of the text file to parse for more parameters.
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| <nowiki>/etc/yuma/<program-name>.conf</nowiki>
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"|
 
<nowiki>/etc/yuma/<program-name>.conf</nowiki>
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| netconfdyangcliyangdiffyangdump
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| netconfdyangcliyangdiffyangdump
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli testmod \
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli testmod \
 
 
--config=~/testconf.conf
 
--config=~/testconf.conf
   
 
|}
 
|}
 
== --datapath ==
 
== --datapath ==
The '''--datapath''' parameter specifies the directory search path to
+
The '''--datapath''' parameter specifies the directory search path to use while searching for data files. It consists of a colon (':') separated list of path specifications, commonly found in Unix, such as the '''$PATH''' environment variable.
use while searching for data files. It consists of a colon (':')
 
separated list of path specifications, commonly found in Unix, such as
 
the '''$PATH''' environment variable.
 
   
This parameter overrides the '''$YUMA_DATAPATH''' environment variable,
+
This parameter overrides the '''$YUMA_DATAPATH''' environment variable, if it is present.
if it is present.
 
   
   
Line 12,468: Line 8,194:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| string: list of directory specifications
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| string: list of
 
directory specifications
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| '''$YUMA_DATAPATH''' environment variable
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| '''$YUMA_DATAPATH''' environment variable
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| netconfdyangcliyangdiffyangdump
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| netconfdyangcliyangdiffyangdump
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli \
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli \
 
 
--datapath=”~/work2:~/data”
 
--datapath=”~/work2:~/data”
   
 
|}
 
|}
 
== --default-module ==
 
== --default-module ==
The '''--default-module''' parameter specifies the module to search for
+
The '''--default-module''' parameter specifies the module to search for identifiers, after the '''netconf''' and '''ncx''' modules have been checked. This allows a specific module to match identifier names first, before all modules are searched at once. This can avoid a collision if the same identifier value is used in more than one module.
identifiers, after the '''netconf''' and '''ncx''' modules have been
 
checked. This allows a specific module to match identifier names first,
 
before all modules are searched at once. This can avoid a collision if
 
the same identifier value is used in more than one module.
 
   
   
Line 12,529: Line 8,228:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| string: module name without any path or file extension included.
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| string: module
 
name without any path or file extension included.
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| none
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --default-module=testmod
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --default-module=testmod
 
   
 
|}
 
|}
 
== --deviation ==
 
== --deviation ==
The '''--deviation''' parameter is a leaf-list of modules that should be
+
The '''--deviation''' parameter is a leaf-list of modules that should be loaded automatically when the program starts, as a deviation module. In this mode, only the deviation statements are parsed and then made available later when the module that contains the objects being deviated is parsed.
loaded automatically when the program starts, as a deviation module. In
 
this mode, only the deviation statements are parsed and then made
 
available later when the module that contains the objects being deviated
 
is parsed.
 
   
The deviations must be known to the parser before the target module is
+
The deviations must be known to the parser before the target module is parsed.
parsed.
 
   
This parameter is used to identify any modules that have deviation
+
This parameter is used to identify any modules that have deviation statements for the set of modules being parsed (e.g., '''--module''' and''' --subtree''' parameters).
statements for the set of modules being parsed (e.g., '''--module'''
 
and''' --subtree''' parameters).
 
   
  +
A module can be listed with both the '''--module''' and '''--deviation''' parameters, but that is not needed unless the module contains external deviations. If the module only contains deviations for objects in the same module, then the''' --deviation '''parameter does not need to be used.
A module can be listed with both the '''--module''' and
 
'''--deviation''' parameters, but that is not needed unless the module
 
contains external deviations. If the module only contains deviations for
 
objects in the same module, then the''' --deviation '''parameter does
 
not need to be used.
 
   
The program will attempt to load each module in deviation parsing mode,
+
The program will attempt to load each module in deviation parsing mode, in the order the parameters are entered.
in the order the parameters are entered.
 
   
For the '''netconfd''' program, If any modules have fatal errors then
+
For the '''netconfd''' program, If any modules have fatal errors then the program will terminate.
the program will terminate.
 
   
For the '''yangdump '''and''' yangcli''' programs, each module will be
+
For the '''yangdump '''and''' yangcli''' programs, each module will be processed as requested.
processed as requested.
 
   
   
Line 12,611: Line 8,273:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| module name or filespec
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| module name or
 
filespec
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| none
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| unlimited
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| unlimited
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| netconfdyangcliyangdump
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| netconfdyangcliyangdump
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli \
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli \
 
 
--module=test1 \
 
--module=test1 \
 
--deviation=test1_deviations
 
--deviation=test1_deviations
Line 12,661: Line 8,300:
 
|}
 
|}
 
== --display-mode ==
 
== --display-mode ==
The '''--display-mode''' parameter controls how data is displayed in the
+
The '''--display-mode''' parameter controls how data is displayed in the program.
program.
 
   
The qualified names (identifiers, idenitityref, XPath) within a text
+
The qualified names (identifiers, idenitityref, XPath) within a text configuration can be generated several ways. This is needed because sibling nodes in different XML namespaces can have the same name.
configuration can be generated several ways. This is needed because
 
sibling nodes in different XML namespaces can have the same name.
 
   
 
<center>'''--display-mode values'''</center>
 
<center>'''--display-mode values'''</center>
Line 12,673: Line 8,309:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| <center>'''enum value'''</center>
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| <center>'''description'''</center>
#000000;border-left:0.5pt solid
 
  +
| <center>'''example'''</center>
#000000;border-right:none;padding:0.0382in;"| <center>'''enum
 
value'''</center>
 
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"|
 
<center>'''description'''</center>
 
|
 
<center>'''example'''</center>
 
   
 
|-
 
|-
  +
| plain
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| no prefix, just local-name
#000000;border-left:0.5pt solid
 
  +
| sysBootError
#000000;border-right:none;padding:0.0382in;"| plain
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| no prefix, just local-name
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| sysBootError
 
   
 
|-
 
|-
  +
| prefix
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| XML prefix and local-name
#000000;border-left:0.5pt solid
 
  +
| sys:sysBootError
#000000;border-right:none;padding:0.0382in;"| prefix
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| XML prefix and local-name
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| sys:sysBootError
 
   
 
|-
 
|-
  +
| module
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| module name and local name
#000000;border-left:0.5pt solid
 
  +
| system:sysBootError
#000000;border-right:none;padding:0.0382in;"| module
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| module name and local name
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| system:sysBootError
 
   
 
|-
 
|-
  +
| xml
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| XML format
#000000;border-left:0.5pt solid
 
  +
| <nowiki><sysBootError xmlns=”foo”></nowiki>
#000000;border-right:none;padding:0.0382in;"| xml
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| XML format
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki><sysBootError xmlns=”foo”></nowiki>
 
   
 
|-
 
|-
  +
| xml-nons
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| XML format without namespace (xmlns) attributes
#000000;border-left:0.5pt solid
 
  +
| <nowiki><sysBootError></nowiki>
#000000;border-right:none;padding:0.0382in;"| xml-nons
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| XML format without
 
namespace (xmlns) attributes
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| <nowiki><sysBootError></nowiki>
 
   
 
|-
 
|-
  +
| json
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| JSON format
#000000;border-left:0.5pt solid
 
  +
| { “sysBootError” : “blah” }
#000000;border-right:none;padding:0.0382in;"| json
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| JSON format
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| { “sysBootError” : “blah” }
 
   
 
|}
 
|}
When saving configuration files in non-volatile storage, then it is
+
When saving configuration files in non-volatile storage, then it is suggested that only 'module' or 'xml' modes be used, since these are the only deterministic modes.
suggested that only 'module' or 'xml' modes be used, since these are the
 
only deterministic modes.
 
   
The set of XML prefixes in use at any one time is not persistent, and
+
The set of XML prefixes in use at any one time is not persistent, and cannot be relied upon, unless the namespace declarations are saved (xml mode) or the module names are saved (module mode).
cannot be relied upon, unless the namespace declarations are saved (xml
 
mode) or the module names are saved (module mode).
 
   
   
Line 12,766: Line 8,354:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| enumeration: '''plain prefix module xml xml-nons json'''
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| enumeration:
 
'''plain prefix module xml xml-nons json'''
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| plain
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| plain
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --display-mode=module
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --display-mode=module
 
   
 
|}
 
|}
 
== --feature-disable ==
 
== --feature-disable ==
The '''--feature-disable''' parameter directs all programs to disable a
+
The '''--feature-disable''' parameter directs all programs to disable a specific feature.
specific feature.
 
   
This parameter is a formatted string containing a module name, followed
+
This parameter is a formatted string containing a module name, followed by a colon ':', followed by a feature name, e.g.,
by a colon ':', followed by a feature name, e.g.,
 
   
   
Line 12,824: Line 8,387:
   
   
It is an error if a '''--feature-enable''' and '''--feature-disable'''
+
It is an error if a '''--feature-enable''' and '''--feature-disable''' parameter specify the same feature.
parameter specify the same feature.
 
   
 
Parameters for unknown features will be ignored.
 
Parameters for unknown features will be ignored.
Line 12,835: Line 8,397:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| formatted string (module:feature
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| formatted string
 
(module:feature
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| none
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| unlimited
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| unlimited
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcliyangdiffyangdumpnetconfd
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcliyangdiffyangdumpnetconfd
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --feature-disable=test:feature1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --feature-disable=test:feature1
 
   
 
|}
 
|}
 
== --feature-enable ==
 
== --feature-enable ==
The '''--feature-enable''' parameter directs all programs to enable a
+
The '''--feature-enable''' parameter directs all programs to enable a specific feature.
specific feature.
 
   
This parameter is a formatted string containing a module name, followed
+
This parameter is a formatted string containing a module name, followed by a colon ':', followed by a feature name, e.g.,
by a colon ':', followed by a feature name, e.g.,
 
   
   
Line 12,893: Line 8,430:
   
   
It is an error if a '''--feature-disable''' and '''--feature-enable'''
+
It is an error if a '''--feature-disable''' and '''--feature-enable''' parameter specify the same feature.
parameter specify the same feature.
 
   
 
Parameters for unknown features will be ignored.
 
Parameters for unknown features will be ignored.
Line 12,904: Line 8,440:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| formatted string (module:feature
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| formatted string
 
(module:feature
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| none
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| unlimited
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| unlimited
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcliyangdiffyangdumpnetconfd
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcliyangdiffyangdumpnetconfd
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli--feature-enable=test:feature1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli--feature-enable=test:feature1
 
   
 
|}
 
|}
 
== --feature-enable-default ==
 
== --feature-enable-default ==
The '''--feature-enable-default''' parameter controls how '''yangdump'''
+
The '''--feature-enable-default''' parameter controls how '''yangdump''' will generate C code for YANG features by default.
will generate C code for YANG features by default.
 
   
 
If 'true', then by default, features will be enabled.
 
If 'true', then by default, features will be enabled.
Line 12,959: Line 8,471:
 
If 'false', then by default, features will be disabled.
 
If 'false', then by default, features will be disabled.
   
If a '''--feature-enable''' or '''--feature-disable''' parameter is
+
If a '''--feature-enable''' or '''--feature-disable''' parameter is present for a specific feature, then this parameter will be ignored for that feature.
present for a specific feature, then this parameter will be ignored for
 
that feature.
 
   
   
Line 12,969: Line 8,479:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| boolean (true or false)
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| boolean (true or
 
false)
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| TRUE
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| TRUE
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcliyangdiffyangdumpnetconfd
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcliyangdiffyangdumpnetconfd
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli \
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli \
 
 
--feature-enable-default=false
 
--feature-enable-default=false
   
 
|}
 
|}
 
== --fixorder ==
 
== --fixorder ==
The '''--fixorder''' parameter controls whether PDU parameters will be
+
The '''--fixorder''' parameter controls whether PDU parameters will be automatically sent in NETCONF PDUs in the correct order.
automatically sent in NETCONF PDUs in the correct order.
 
   
 
If 'true', the schema-defined, canonical order will be used.
 
If 'true', the schema-defined, canonical order will be used.
   
If 'false', the specified order that parameters are entered will be used
+
If 'false', the specified order that parameters are entered will be used for the PDU order as well.
for the PDU order as well.
 
   
   
Line 13,032: Line 8,517:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| boolean (true or false)
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| boolean (true or
 
false)
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| TRUE
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| TRUE
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --fixorder=false
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --fixorder=false
 
   
 
|}
 
|}
 
== --force-target ==
 
== --force-target ==
The '''--force-target''' parameter controls whether the candidate or
+
The '''--force-target''' parameter controls whether the candidate or running configuration datastore will be used as the default edit target, when both are supported by the server.
running configuration datastore will be used as the default edit target,
 
when both are supported by the server.
 
   
   
Line 13,090: Line 8,550:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| enum (candidate or running)
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| enum (candidate
 
or running)
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| candidate
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| candidate
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --force-target=running
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --force-target=running
 
   
 
|}
 
|}
 
== --help ==
 
== --help ==
The '''--help''' parameter causes program help text to be printed, and
+
The '''--help''' parameter causes program help text to be printed, and then the program will exit instead of running as normal.
then the program will exit instead of running as normal.
 
   
This parameter can be combined with the '''--help-mode''' parameter to
+
This parameter can be combined with the '''--help-mode''' parameter to control the verbosity of the help text. Use '''--brief''' for less, and '''--full '''for more than the normal verbosity.
control the verbosity of the help text. Use '''--brief''' for less, and
 
'''--full '''for more than the normal verbosity.
 
   
This parameter can be combined with the '''--version''' parameter in all
+
This parameter can be combined with the '''--version''' parameter in all programs. It can also be combined with the '''--show-errors''' parameter in '''yangdump'''.
programs. It can also be combined with the '''--show-errors''' parameter
 
in '''yangdump'''.
 
   
The program configuration parameters will be displayed in alphabetical
+
The program configuration parameters will be displayed in alphabetical order, not in schema order.
order, not in schema order.
 
   
   
Line 13,158: Line 8,589:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
 
| empty
 
| empty
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| none
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| netconfdyangcliyangdiffyangdump
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| netconfdyangcliyangdiffyangdump
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --help
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --help
 
   
 
|}
 
|}
 
== --help-mode ==
 
== --help-mode ==
The '''--help-mode''' parameter is used to control the amount of detail
+
The '''--help-mode''' parameter is used to control the amount of detail printed when help text is requested in some command. It is always used with another command, and makes no sense by itself. It is ignored unless used with the '''--help''' parameter.
printed when help text is requested in some command. It is always used
 
with another command, and makes no sense by itself. It is ignored unless
 
used with the '''--help''' parameter.
 
   
   
Line 13,216: Line 8,622:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| choice of 3 empty leafs
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| choice of 3
 
empty leafs
 
   
 
'''--brief --normal --full'''
 
'''--brief --normal --full'''
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| normal
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| normal
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| netconfdyangcliyangdiffyangdump
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| netconfdyangcliyangdiffyangdump
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --help --help-mode=full
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --help --help-mode=full
 
   
 
|}
 
|}
Line 13,269: Line 8,652:
 
** '''brief'''
 
** '''brief'''
 
*** type: empty
 
*** type: empty
*** This parameter specifies that brief documentation mode should be
+
*** This parameter specifies that brief documentation mode should be used.
used.
 
 
** '''normal'''
 
** '''normal'''
 
*** type: empty
 
*** type: empty
*** This parameter specifies that normal documentation mode should be
+
*** This parameter specifies that normal documentation mode should be used.
used.
 
 
** '''full'''
 
** '''full'''
 
*** type: empty
 
*** type: empty
*** This parameter specifies that full documentation mode should be
+
*** This parameter specifies that full documentation mode should be used.
used.
 
   
 
== --indent ==
 
== --indent ==
The '''--indent''' parameter specifies the number of spaces that will be
+
The '''--indent''' parameter specifies the number of spaces that will be used to add to the indentation level, each time a child node is printed during program operation.
used to add to the indentation level, each time a child node is printed
 
during program operation.
 
   
 
<center>'''--indent parameter'''</center>
 
<center>'''--indent parameter'''</center>
Line 13,290: Line 8,668:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
 
| uint32 (0 .. 9)
 
| uint32 (0 .. 9)
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 3
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 3
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| netconfdyangcliyangdiffyangdump
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| netconfdyangcliyangdiffyangdump
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --indent=4
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --indent=4
 
   
 
|}
 
|}
 
== --log ==
 
== --log ==
The '''--log''' parameter specifies the file name to be used for logging
+
The '''--log''' parameter specifies the file name to be used for logging program messages, instead of STDOUT. It can be used with the optional''' --log-append''' and '''--log-level''' parameters to control how the log file is written.
program messages, instead of STDOUT. It can be used with the optional'''
 
--log-append''' and '''--log-level''' parameters to control how the log
 
file is written.
 
   
   
Line 13,348: Line 8,701:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| string: log file specification
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| string: log file
 
specification
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| none
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| netconfdyangcliyangdiffyangdump
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| netconfdyangcliyangdiffyangdump
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --log=~/test.log&
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --log=~/test.log&
 
   
 
|}
 
|}
 
== --log-append ==
 
== --log-append ==
The '''--log-append''' parameter specifies that the existing log file
+
The '''--log-append''' parameter specifies that the existing log file (if any) should be appended , instead of deleted. It is ignored unless the '''--log''' parameter is present.
(if any) should be appended , instead of deleted. It is ignored unless
 
the '''--log''' parameter is present.
 
   
   
Line 13,406: Line 8,734:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
 
| empty
 
| empty
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| none
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| netconfdyangcliyangdiffyangdump
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| netconfdyangcliyangdiffyangdump
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --log-append \
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --log-append \
 
 
--log=~/test.log&
 
--log=~/test.log&
   
 
|}
 
|}
 
== --log-level ==
 
== --log-level ==
The '''--log-level''' parameter controls the verbosity level of messages
+
The '''--log-level''' parameter controls the verbosity level of messages printed to the log file or STDOUT, if no log file is specified.
printed to the log file or STDOUT, if no log file is specified.
 
   
The log levels are incremental, meaning that each higher level includes
+
The log levels are incremental, meaning that each higher level includes everything from the previous level, plus additional messages.
everything from the previous level, plus additional messages.
 
   
 
There are 7 settings that can be used:
 
There are 7 settings that can be used:
   
 
* '''none''': All logging is suppressed. Use with extreme caution!
 
* '''none''': All logging is suppressed. Use with extreme caution!
* '''error''': Error messages are printed, indicating problems that
+
* '''error''': Error messages are printed, indicating problems that require attention.
  +
* '''warn''': Warning messages are printed, indicating problems that may require attention.
require attention.
 
* '''warn''': Warning messages are printed, indicating problems that may
+
* '''info''': Informational messages are printed, that indicate program status changes.
  +
* '''debug''': Debugging messages are printed that indicate program activity.
require attention.
 
* '''info''': Informational messages are printed, that indicate program
 
status changes.
 
* '''debug''': Debugging messages are printed that indicate program
 
activity.
 
 
* '''debug2''': Protocol debugging and trace messages are enabled.
 
* '''debug2''': Protocol debugging and trace messages are enabled.
* '''debug3''': Very verbose debugging messages are enabled. This has an
+
* '''debug3''': Very verbose debugging messages are enabled. This has an impact on resources and performance, and should be used with caution.
impact on resources and performance, and should be used with caution.
 
 
* '''debug4''': Maximum debugging messages are enabled.
 
* '''debug4''': Maximum debugging messages are enabled.
   
Line 13,481: Line 8,780:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| enumeration: '''off error warn info debug debug2 debug3'''
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| enumeration:
 
'''off error warn info debug debug2 debug3'''
 
   
 
'''debug4'''
 
'''debug4'''
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| --info (--debug for DEBUG builds)
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| --info (--debug for DEBUG builds)
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| netconfdyangcliyangdiffyangdump
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| netconfdyangcliyangdiffyangdump
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --log-level=debug \
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --log-level=debug \
 
 
--log=~/test.log&
 
--log=~/test.log&
   
 
|}
 
|}
 
== --match-names ==
 
== --match-names ==
The '''--match-names''' parameter specifies how names are matched when
+
The '''--match-names''' parameter specifies how names are matched when performing UrlPath searches.
performing UrlPath searches.
 
   
 
The following values are supported::
 
The following values are supported::
Line 13,539: Line 8,814:
 
* '''exact'''
 
* '''exact'''
   
The name must exactly match the node name for all characters in both
+
The name must exactly match the node name for all characters in both name strings.
name strings.
 
   
 
* '''exact-nocase'''
 
* '''exact-nocase'''
   
The name must match the node name for all characters in both name
+
The name must match the node name for all characters in both name strings.
strings.
 
   
 
Strings are not case-sensitive.
 
Strings are not case-sensitive.
Line 13,551: Line 8,824:
 
* '''one'''
 
* '''one'''
   
The name must exactly match the first N characters of just one node
+
The name must exactly match the first N characters of just one node name, which must be the only partial name match found.
name, which must be the only partial name match found.
 
   
 
* '''one-nocase'''
 
* '''one-nocase'''
   
The name must exactly match the first N characters of just one node
+
The name must exactly match the first N characters of just one node name, which
name, which
 
   
must be the only partial name match found. Strings are not
+
must be the only partial name match found. Strings are not case-sensitive.
case-sensitive.
 
   
 
* '''first'''
 
* '''first'''
   
The name must exactly match the first N characters of any node name. The
+
The name must exactly match the first N characters of any node name. The first one
first one
 
   
 
found will be used.
 
found will be used.
Line 13,571: Line 8,840:
 
* '''first-nocase'''
 
* '''first-nocase'''
   
The name must exactly match the first N characters of any node name. The
+
The name must exactly match the first N characters of any node name. The first one
first one
 
   
 
found will be used. Strings are not case-sensitive.
 
found will be used. Strings are not case-sensitive.
Line 13,582: Line 8,850:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| enum: exact exact-nocase one one-nocase first
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| enum: exact
 
exact-nocase one one-nocase first
 
   
 
first-nocase
 
first-nocase
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| one-nocase
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| one-nocase
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --match-names=exact
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --match-names=exact
 
   
 
|}
 
|}
 
== --modpath ==
 
== --modpath ==
The '''--modpath''' parameter specifies the YANG module search path to
+
The '''--modpath''' parameter specifies the YANG module search path to use while searching for YANG files. It consists of a colon (':') separated list of path specifications, commonly found in Unix, such as the '''$PATH''' environment variable.
use while searching for YANG files. It consists of a colon (':')
 
separated list of path specifications, commonly found in Unix, such as
 
the '''$PATH''' environment variable.
 
   
This parameter overrides the '''$YUMA_MODPATH''' environment variable,
+
This parameter overrides the '''$YUMA_MODPATH''' environment variable, if it is present.
if it is present.
 
   
 
<center>'''--modpath parameter'''</center>
 
<center>'''--modpath parameter'''</center>
Line 13,645: Line 8,886:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| string: list of directory specifications
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| string: list of
 
directory specifications
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| '''$YUMA_MODPATH''' environment variable
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| '''$YUMA_MODPATH''' environment variable
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| netconfdyangcliyangdiffyangdump
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| netconfdyangcliyangdiffyangdump
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli \
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli \
 
 
--modpath=”~/testmodules:~/modules:~/trunk/netconf/modules”
 
--modpath=”~/testmodules:~/modules:~/trunk/netconf/modules”
   
 
|}
 
|}
 
== --module ==
 
== --module ==
The '''--module''' parameter is a leaf-list of modules that should be
+
The '''--module''' parameter is a leaf-list of modules that should be loaded automatically when the program starts.
loaded automatically when the program starts.
 
   
The program will attempt to load each module in the order the parameters
+
The program will attempt to load each module in the order the parameters were entered.
were entered.
 
   
For the '''netconfd''' program, If any modules have fatal errors then
+
For the '''netconfd''' program, If any modules have fatal errors then the program will terminate.
the program will terminate.
 
   
For the '''yangdump''' program, each module will be processed as
+
For the '''yangdump''' program, each module will be processed as requested.
requested.
 
   
   
Line 13,712: Line 8,926:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| module name or filespec
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| module name or
 
filespec
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| none
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| unlimited
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| unlimited
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| netconfdyangcliyangdump
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| netconfdyangcliyangdump
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli \
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli \
 
 
--module=test1 \
 
--module=test1 \
 
--module=test2
 
--module=test2
Line 13,762: Line 8,953:
 
|}
 
|}
 
== --ncport ==
 
== --ncport ==
The '''--ncport''' parameter specifies the TCP port number that should
+
The '''--ncport''' parameter specifies the TCP port number that should be used for NETCONF sessions.
be used for NETCONF sessions.
 
   
This parameter specifies the TCP port number to use when a NETCONF
+
This parameter specifies the TCP port number to use when a NETCONF session is created during the startup of the program. The parameter can only be entered once.
session is created during the startup of the program. The parameter can
 
only be entered once.
 
   
   
Line 13,775: Line 8,963:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
 
| uint32
 
| uint32
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 830
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 830
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --server=myserver
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --server=myserver
 
 
--ncport=22 \
 
--ncport=22 \
 
--user=fred
 
--user=fred
Line 13,825: Line 8,991:
 
|}
 
|}
 
== --password ==
 
== --password ==
The '''--password''' parameter specifies the password string that should
+
The '''--password''' parameter specifies the password string that should be used when a NETCONF session is connected during the startup of the program.
be used when a NETCONF session is connected during the startup of the
 
program.
 
   
   
Line 13,835: Line 8,999:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
 
| string
 
| string
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| none
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --server=myserver \
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --server=myserver \
 
 
--password=yangrocks \
 
--password=yangrocks \
 
--user=andy
 
--user=andy
Line 13,884: Line 9,026:
 
|}
 
|}
 
== --private-key ==
 
== --private-key ==
The '''--private-key''' parameter specifies the file path specification
+
The '''--private-key''' parameter specifies the file path specification for the file containing the client-side private key.
for the file containing the client-side private key.
 
   
If both 'public-key' and 'private-key' files are present, the client
+
If both 'public-key' and 'private-key' files are present, the client will attempt to connect to the server using these keys. If this fails, or not done, then password authentication will be attempted.
will attempt to connect to the server using these keys. If this fails,
 
or not done, then password authentication will be attempted.
 
   
   
Line 13,897: Line 9,036:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
 
| string
 
| string
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| $HOME/.ssh/id_rsa
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| $HOME/.ssh/id_rsa
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli –private-key=~/.ssh/mykey
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli –private-key=~/.ssh/mykey
 
   
 
|}
 
|}
 
== --protocols ==
 
== --protocols ==
The '''--protocols''' parameter specifies which protocol versions the
+
The '''--protocols''' parameter specifies which protocol versions the program or session will attempt to use. Empty set is not allowed.
program or session will attempt to use. Empty set is not allowed.
 
   
 
<center>'''--protocols parameter'''</center>
 
<center>'''--protocols parameter'''</center>
Line 13,952: Line 9,068:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
 
| bits
 
| bits
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| “netconf1.0 netconf1.1”
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| “netconf1.0 netconf1.1”
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| netconfdyangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| netconfdyangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli –protocols=netconf1.0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli –protocols=netconf1.0
 
   
 
|}
 
|}
 
== --public-key ==
 
== --public-key ==
The '''--public-key''' parameter specifies the file path specification
+
The '''--public-key''' parameter specifies the file path specification for the file containing the client-side public key.
for the file containing the client-side public key.
 
   
If both 'public-key' and 'private-key' files are present, the client
+
If both 'public-key' and 'private-key' files are present, the client will attempt to connect to the server using these keys. If this fails, or not done, then password authentication will be attempted.
will attempt to connect to the server using these keys. If this fails,
 
or not done, then password authentication will be attempted.
 
   
   
Line 14,012: Line 9,103:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
 
| string
 
| string
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| $HOME/.ssh/id_rsa.pub
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| $HOME/.ssh/id_rsa.pub
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli –public-key=~/.ssh/mykey.pub
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli –public-key=~/.ssh/mykey.pub
 
   
 
|}
 
|}
 
== --runpath ==
 
== --runpath ==
The '''--runpath''' parameter specifies the directory search path to use
+
The '''--runpath''' parameter specifies the directory search path to use while searching for script files. It consists of a colon (':') separated list of path specifications, commonly found in Unix, such as the '''$PATH''' environment variable.
while searching for script files. It consists of a colon (':') separated
 
list of path specifications, commonly found in Unix, such as the
 
'''$PATH''' environment variable.
 
   
This parameter overrides the '''$YUMA_RUNPATH''' environment variable,
+
This parameter overrides the '''$YUMA_RUNPATH''' environment variable, if it is present.
if it is present.
 
   
   
Line 14,073: Line 9,138:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| string: list of directory specifications
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| string: list of
 
directory specifications
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| '''$YUMA_RUNPATH''' environment variable
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| '''$YUMA_RUNPATH''' environment variable
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| netconfdyangcliyangdiffyangdump
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| netconfdyangcliyangdiffyangdump
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli \
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli \
 
 
--runpath=”~/testscripts”
 
--runpath=”~/testscripts”
   
 
|}
 
|}
 
== --run-command ==
 
== --run-command ==
The '''--run-command '''parameter specifies a command will be invoked
+
The '''--run-command '''parameter specifies a command will be invoked upon startup.
upon startup.
 
   
In the '''yangcli''' program, if the auto-connect parameters are
+
In the '''yangcli''' program, if the auto-connect parameters are provided, then a session will be established before running the command.
provided, then a session will be established before running the command.
 
   
   
Line 14,134: Line 9,174:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
 
| string
 
| string
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| none
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli \
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli \
 
 
--run-command="history
 
--run-command="history
 
load=~/test3-history"
 
load=~/test3-history"
Line 14,183: Line 9,201:
 
|}
 
|}
 
== --run-script ==
 
== --run-script ==
The '''--run-script '''parameter specifies a script will be invoked upon
+
The '''--run-script '''parameter specifies a script will be invoked upon startup.
startup.
 
   
In the '''yangcli''' program, if the auto-connect parameters are
+
In the '''yangcli''' program, if the auto-connect parameters are provided, then a session will be established before running the script.
provided, then a session will be established before running the script.
 
   
   
Line 14,195: Line 9,211:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| string (file specification)
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| string (file
 
specification)
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| none
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli \
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli \
 
 
--run-script="test3-start"
 
--run-script="test3-start"
   
 
|}
 
|}
 
== --server ==
 
== --server ==
The '''--server''' parameter specifies the IP address or DNS name of the
+
The '''--server''' parameter specifies the IP address or DNS name of the NETCONF server that should be connected to automatically, when the program starts.
NETCONF server that should be connected to automatically, when the
 
program starts.
 
   
   
Line 14,254: Line 9,245:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| string:IP address or DNS name
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| string:IP
 
address or DNS name
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| none
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --server=myserver
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --server=myserver
 
   
 
|}
 
|}
 
== --subdirs ==
 
== --subdirs ==
The '''--subdirs''' parameter controls whether sub-directories should be
+
The '''--subdirs''' parameter controls whether sub-directories should be searched or not, if they are found during a module search.
searched or not, if they are found during a module search.
 
   
If false, the file search paths for modules, scripts, and data files
+
If false, the file search paths for modules, scripts, and data files will not include sub-directories if they exist in the specified path.
will not include sub-directories if they exist in the specified path.
 
   
   
Line 14,314: Line 9,280:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
 
| boolean
 
| boolean
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| TRUE
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| TRUE
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangdump
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangdump
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --subdirs=false
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --subdirs=false
 
   
 
|}
 
|}
 
== --time-rpcs ==
 
== --time-rpcs ==
  +
The '''--time-rpcs'''<nowiki> parameter is used to measure the round-trip time of each <rpc> request and </nowiki><nowiki><rpc-reply> at the session level. Echo the elapsed time value to screen if in interactive mode, as well as the log if the log is a file instead of stdout. </nowiki>The $$time-rpcs system variable is derived from this parameter.";
The '''--time-rpcs'''<nowiki> parameter is used to measure the
 
round-trip time of each <rpc> request and </nowiki><nowiki><rpc-reply>
 
at the session level. Echo the elapsed time value to screen if in
 
interactive mode, as well as the log if the log is a file instead of
 
stdout. </nowiki>The $$time-rpcs system variable is derived from this
 
parameter.";
 
   
   
Line 14,374: Line 9,313:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
 
| boolean
 
| boolean
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| FALSE
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| FALSE
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --time-rpcs=true
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --time-rpcs=true
 
   
 
|}
 
|}
 
== --timeout ==
 
== --timeout ==
The '''--timeout''' parameter specifies the number of seconds that
+
The '''--timeout''' parameter specifies the number of seconds that should pass before giving up on a response during a NETCONF session. The value zero means wait forever (no timeout).
should pass before giving up on a response during a NETCONF session. The
 
value zero means wait forever (no timeout).
 
   
   
Line 14,431: Line 9,346:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| uint32 (0 for no timeout; otherwise number of seconds to wait)
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| uint32 (0 for no
 
timeout; otherwise number of seconds to wait)
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 30 seconds
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 30 seconds
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --timeout=0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --timeout=0
 
   
 
|}
 
|}
 
== --transport ==
 
== --transport ==
The '''--transport''' parameter specifies the NETCONF transport protocol
+
The '''--transport''' parameter specifies the NETCONF transport protocol to use.
to use.
 
   
 
This parameter is also supported in the 'connect' command.
 
This parameter is also supported in the 'connect' command.
Line 14,487: Line 9,378:
   
 
# ssh: standard NETCONF SSH transport (RFC 4742 or RFC 6242)
 
# ssh: standard NETCONF SSH transport (RFC 4742 or RFC 6242)
# tcp: tail-f NETCONF over TCP transport<br/> Note that '''netconfd'''
+
# tcp: tail-f NETCONF over TCP transport<br/> Note that '''netconfd''' does not support this transport protocol!
does not support this transport protocol!
 
   
 
I
 
I
Line 14,497: Line 9,387:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| Enum (ssh or tcp)
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| Enum (ssh or
 
tcp)
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| ssh
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| ssh
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --transport=tcp
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --transport=tcp
 
   
 
|}
 
|}
 
== --use-xmlheader ==
 
== --use-xmlheader ==
The '''--use-xmlheader''' parameter specifies how file result variables
+
The '''--use-xmlheader''' parameter specifies how file result variables will be written for XML files.
will be written for XML files.
 
   
 
Controls whether the XML preamble header will be written or not.
 
Controls whether the XML preamble header will be written or not.
Line 14,556: Line 9,422:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
 
| boolean
 
| boolean
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| TRUE
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| TRUE
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --use-xmlheader=false
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --use-xmlheader=false
 
   
 
|}
 
|}
 
== --user ==
 
== --user ==
The '''--user''' parameter specifies the user name string on the NETCONF
+
The '''--user''' parameter specifies the user name string on the NETCONF server that should be used when establishing a NETCONF session.
server that should be used when establishing a NETCONF session.
 
   
   
Line 14,612: Line 9,455:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
 
| string:user name
 
| string:user name
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| none
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --user=admin \
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --user=admin \
 
 
--server=myserver
 
--server=myserver
   
 
|}
 
|}
 
== --uservars-file ==
 
== --uservars-file ==
The '''--uservars-file''' parameter contains the file specification of
+
The '''--uservars-file''' parameter contains the file specification of the user global variables XML file to use.
the user global variables XML file to use.
 
   
   
Line 14,669: Line 9,489:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
 
| string:filespec
 
| string:filespec
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| $HOME/.yuma/yangcli_uservars.xml
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| $HOME/.yuma/yangcli_uservars.xml
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli –uservars-file=~/myvars.xml
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli –uservars-file=~/myvars.xml
 
   
 
|}
 
|}
 
== --version ==
 
== --version ==
The '''--version''' parameter causes the program version string to be
+
The '''--version''' parameter causes the program version string to be printed, and then the program will exit instead of running as normal.
printed, and then the program will exit instead of running as normal.
 
   
 
All Yuma version strings use the same format:
 
All Yuma version strings use the same format:
Line 14,740: Line 9,537:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
 
| empty
 
| empty
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| none
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| netconfdyangcliyangdiffyangdump
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| netconfdyangcliyangdiffyangdump
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --version
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --version
 
   
 
|}
 
|}
 
== --warn-idlen ==
 
== --warn-idlen ==
The''' --warn-idlen''' parameter controls whether identifier length
+
The''' --warn-idlen''' parameter controls whether identifier length warnings will be generated.
warnings will be generated.
 
   
The value zero disables all identifier length checking. If non-zero,
+
The value zero disables all identifier length checking. If non-zero, then a warning will be generated if an identifier is defined which has a length is greater than this amount.
then a warning will be generated if an identifier is defined which has a
 
length is greater than this amount.
 
   
 
<center>'''--warn-idlen parameter'''</center>
 
<center>'''--warn-idlen parameter'''</center>
Line 14,799: Line 9,571:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| uint32: 0 to disable, or 8 .. 1023
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| uint32: 0 to
 
disable, or 8 .. 1023
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 64
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 64
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| netconfdyangcliyangdiffyangdump
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| netconfdyangcliyangdiffyangdump
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --warn-idlen=50
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --warn-idlen=50
 
   
 
|}
 
|}
 
== --warn-linelen ==
 
== --warn-linelen ==
The''' --warn-linelen''' parameter controls whether line length warnings
+
The''' --warn-linelen''' parameter controls whether line length warnings will be generated.
will be generated.
 
   
The value zero disables all line length checking. If non-zero, then a
+
The value zero disables all line length checking. If non-zero, then a warning will be generated if a YANG file line is entered which has a length is greater than this amount.
warning will be generated if a YANG file line is entered which has a
 
length is greater than this amount.
 
   
 
Tab characters are counted as 8 spaces.
 
Tab characters are counted as 8 spaces.
Line 14,862: Line 9,608:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| uint32: 0 to disable, or 40 .. 4095
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| uint32: 0 to
 
disable, or 40 .. 4095
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 72
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 72
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| netconfdyangcliyangdiffyangdump
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| netconfdyangcliyangdiffyangdump
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --warn-linelen=79
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --warn-linelen=79
 
   
 
|}
 
|}
Line 14,912: Line 9,635:
 
The''' --warn-off''' parameter suppresses a specific warning number.
 
The''' --warn-off''' parameter suppresses a specific warning number.
   
The error and warning numbers, and the default messages, can be viewed
+
The error and warning numbers, and the default messages, can be viewed with the yangdump program by using the '''--show-errors''' configuration parameter.
with the yangdump program by using the '''--show-errors''' configuration
 
parameter.
 
   
The specific warning message will be disabled for all modules. No
+
The specific warning message will be disabled for all modules. No message will be printed and the warning will not count towards the total for that module.
message will be printed and the warning will not count towards the total
 
for that module.
 
   
   
Line 14,926: Line 9,645:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| uint32: 400 .. 899
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| uint32: 400 ..
 
899
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| none
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| none
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 499
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 499
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| netconfdyangcliyangdiffyangdump
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| netconfdyangcliyangdiffyangdump
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli --warn-off=435
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli --warn-off=435
 
 
<nowiki># revision order not descending</nowiki>
 
<nowiki># revision order not descending</nowiki>
   
 
|}
 
|}
 
== --yuma-home ==
 
== --yuma-home ==
The '''--yuma-home''' parameter specifies the project directory root to
+
The '''--yuma-home''' parameter specifies the project directory root to use when searching for files.
use when searching for files.
 
   
If present, this directory location will override the ''''$YUMA_HOME'''
+
If present, this directory location will override the ''''$YUMA_HOME''' environment variable, if it is set. If this parameter is set to a zero-length string, then the $'''YUMA_HOME''' environment variable will be ignored.
environment variable, if it is set. If this parameter is set to a
 
zero-length string, then the $'''YUMA_HOME''' environment variable will
 
be ignored.
 
   
The following directories are searched when either the '''$YUMA_HOME'''
+
The following directories are searched when either the '''$YUMA_HOME''' environment variable or this parameter is set:
environment variable or this parameter is set:
 
   
 
* '''$YUMA_HOME/modules'''
 
* '''$YUMA_HOME/modules'''
Line 14,998: Line 9,689:
   
 
{| class=wikitable border="1"
 
{| class=wikitable border="1"
  +
| Syntax
| style="border-top:0.5pt solid #000000;border-bottom:0.5pt solid
 
  +
| string: directory specification
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Syntax
 
| string:
 
directory specification
 
   
 
|-
 
|-
  +
| Default:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| '''$YUMA_HOME''' environment variable
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Default:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| '''$YUMA_HOME''' environment variable
 
   
 
|-
 
|-
  +
| Min Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 0
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Min Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 0
 
   
 
|-
 
|-
  +
| Max Allowed:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| 1
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Max Allowed:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| 1
 
   
 
|-
 
|-
  +
| Supported by:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| netconfdyangcliyangdiffyangdump
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Supported by:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| netconfdyangcliyangdiffyangdump
 
   
 
|-
 
|-
  +
| Example:
| style="border-top:none;border-bottom:0.5pt solid
 
  +
| yangcli \
#000000;border-left:0.5pt solid
 
#000000;border-right:none;padding:0.0382in;"| Example:
 
| style="border-top:none;border-bottom:0.5pt solid
 
#000000;border-left:0.5pt solid #000000;border-right:0.5pt solid
 
#000000;padding:0.0382in;"| yangcli \
 
 
--yuma-home=~/sw/netconf \
 
--yuma-home=~/sw/netconf \
 
--log=~/test.log&
 
--log=~/test.log&

Latest revision as of 14:44, 23 October 2018

Yuma yangcli Manual


YANG-Based Unified Modular Automation Tools


NETCONF Over SSH Client


Version yuma123-2.11

Contents

Preface

Legal Statements

Copyright 2009 - 2012, Andy Bierman, All Rights Reserved.

Copyright 2013 - 2018, Vladimir Vassilev, All Rights Reserved.

Additional Resources

This document assumes you have successfully set up the software as described in the printed document:


Yuma Installation Guide


Other documentation includes:

Yuma User Manual

Yuma netconfd Manual

Yuma yangdiff Manual

Yuma yangdump Manual

Yuma Developer Manual

There are several sources of free information and tools for use with YANG and/or NETCONF.

The following section lists the resources available at this time.

WEB Sites

Mailing Lists

Conventions Used in this Document

The following formatting conventions are used throughout this document:

Documentation Conventions


Convention
Description
--foo CLI parameter foo
<foo> XML parameter foo
foo yangcli command or parameter
$FOO Environment variable FOO
$$foo yangcli global variable foo
some text Example command or PDU
some text Plain text

yangcli User Guide

Program Components

[[Image:]]

Introduction

The yangcli program is a NETCONF over SSH client application. It is driven directly by YANG modules, and provides a simple but powerful application interface for any YANG file. There is no configuration required at all to use any YANG file, although there are some YANG extensions that will be utilized if present.

Features

The yangcli client has the following features:

  • Automatic support for all NETCONF protocol operations, including several 'short-hand' commands for the most common operations, like <edit-config> and <get-config>.
  • Automated database locking, unlocking and error cleanup, using the high-level get-locks and release-locks commands.
  • Automatic, standards-based, server schema synchronization, using the YANG module capability URI information in the <hello> PDU, and the <get-schema> operation:
    • For each session, the exact view of the server schema definition tree is created, based on the module capability:
      • module namespace
      • module name
      • module revision date
      • enabled features
      • names of any modules that contain deviations for this module
    • The help text and parameter validation for each session will be tailored to the capabilities advertised by the server.
    • Parses each potential matching YANG file to make sure the module name, revision date, and namespace URI value are all exactly the same as the values in the module capability URI.
  • Understands all NETCONF protocol capabilities, and complex hard-wired logic simplifies protocol usage, and allows high-level commands to pick appropriate defaults for many RPC operation parameters.
  • Load any YANG module at boot-time or run-time and start using it immediately.
  • Full concurrent support for multiple revisions of the same module.
  • Supports NETCONF notifications, including :interleave capability.
  • Full XPath 1.0 and subtree filtering support.
  • Automatic support for all YANG language mechanisms, including extensions.
  • Any YANG <rpc> operation is automatically available as a yangcli command.
  • Uses YANG files directly as input, so no pre-processing or configuration needed to use a new module.
  • Can be called from unix scripts in 'batch-mode' to automatically establish a NETCONF session, issue a command or invoke a yangcli script, close the session, and return the results.
  • Extensive interactive shell environment, including user variables, file variables, smart parameter set completion, and a simple scripting environment for automatic operation.
  • Automatic, context-sensitive (tab key) command-line completion.
  • Full support for XPath, instance-identifier, leafref, and identityref parameters.
  • Automatic, context-sensitive help system, based completely on YANG files and using the exact modules supported by the current NETCONF session, if connected.
  • Full, customizable command line editing, using emacs by default, but vi or a custom set of keystroke bindings are also supported.
  • Command line history and command recall.
  • Store and recall command line history files for later use.
  • Automatic NETCONF session management, including support for all YANG extensions to the <capability> element.
  • Automatic recognition and support for all NETCONF 'capability' related operations.
  • Automatic support for all YANG additions to the NETCONF protocol, such as the insert operation
  • Unlimited nested scripts with up to 10 parameters each can automate testing and other management tasks
  • User configurable command aliases that can be saved and restored.

Starting yangcli

The current working directory in use when yangcli is invoked is important. It is most convenient to run yangcli from a work directory, rather than the installation directory or within the module library.

The yangcli program can be invoked several ways:

  • To get the current version and exit:


        yangcli --version


  • To get program help and exit:


        yangcli --help
        yangcli --help --brief
        yangcli --help --full


  • To start an interactive session with the default parameters:


        yangcli


  • To start an interactive session with a new log file:


        yangcli --logfile=mylogfile


  • To start an interactive session and append to an existing log file:


        yangcli --logfile=mylogfile --log-append


  • To get parameters from a configuration file:


        yangcli --config=~/yangcli.conf


  • To begin to connect to a server upon startup, provide the --server parameter. The connect command will be started upon startup and the user will be prompted to enter the rest of the mandatory parameters to the connect command.


        yangcli server=myserver.example.com


  • To connect to a server and automatically connect without any interactive interruption, enter the --server, --user, and --password parameters. A session startup will be attempted right away, using these parameters. Any optional parameters for the connect command (--port or --timeout) may be entered as well. All parameters can be entered from a config file, and/or the command line.


        yangcli --server=myserver.example.com \
            --user=andy --password=yangrocks


  • To automatically connect to a server, run a script in non-interactive mode, and then remain connected to the server, add the --run-script parameter to the connection parameters. The --runpath parameter can also be entered, if needed.


        yangcli --server=myserver.example.com \
            --user=andy --password=yangrocks \
            --run-script=mytestscript


  • To automatically connect to a server, run a script in non-interactive mode, and then exit the program, add the --batch-mode and --run-script parameters to the connection parameters. The --runpath parameter can also be entered, if needed.


        yangcli --server=myserver.example.com \
            --user=andy --password=yangrocks \
            --run-script=mytestscript --batch-mode


  • To automatically connect to a server, and run a single command instead of a script, and then exit, use the --run-command parameter instead of the --run-script parameter. The --batch-mode parameter can be left out to remain in the current session (in interactive mode) after the command is invoked.
        yangcli --server=myserver.example.com \
            --user=andy --password=yangrocks \
            --batch-mode --run-command=”sget /system”

Stopping yangcli

To terminate the yangcli program, use the quit command.

The control-C character sequence will also cause the program to be terminated.

Statements

The yangcli script interpreter accepts several types of statements:


yangcli Statements


type
description
example
command invoke a local command and/or send an <rpc> to the server sget /system
variable assignment set a user variable to some value $system = sget /system
file assignment set the contents of a file to some value @save.txt = $system
variable deletion delete a user variable or clear a system variable $system =

A command can be as simple like 'get' or complex, like 'edit-config'.

A variable assignment sets the specified user or system variable to the right hand side of the expression. An expression has many forms, including the result from a local command or a remote NETCONF operation.

If a string that matches a command is used as the assignment value, then it must be entered in quotes (single or double). For example, the $$default-operation system configuration variable accepts enumeration values which also match RPC commands:


yangcli> $$default-operation = 'merge'


A file assignment is essentially the same as a variable assignment, except the right hand side of the expression is saved in the specified file, instead of a user variable.

To delete a user variable, leave the right hand side of the expression empty (or just whitespace).

Note: More statement types will be available in the next release.

Commands

The yangcli program has several built-in commands, defined in yangcli.yang, yuma-netconf.yang, and notifications.yang.

The YANG rpc statement is used to define the syntax and behavior of each command.

There are 2 types of yangcli commands:

  • local: the command is executed within the yangcli application, and can be invoked at any time.
  • remote: the command is executed on the remote server, and is only available when a NETCONF session is active. Any YANG rpc statement that yangcli does not recognize as a local command is treated as a remote command available on the server.
Local Commands


command
description
alias Show or set a specific yangcli command alias
aliases Manage the yangcli command aliases
cd Change the current working directory
connect Connect to a server and start a NETCONF session
elif Start an 'else-if' conditional block
else Start an 'else' conditional block
end End an 'if' or 'while' block
eval Evaluate an XPath expression
eventlog View or clear the notification event log
fill Fill a user variable
help Get context-sensitive help
history Manage the command history buffer
if Start an 'if' conditional block
list List modules, objects, or other properties of the session
log-debug Log a debug message
log-error Log an error message
log-info Log an info message
log-warn Log a warning message
mgrload Load a YANG file into the client only
pwd Print the current working directoty
quit Exit the program
recall Recall a line from the command history buffer
run Run a script
show Show variables and objects currently available
start-timer Start a script timer
stop-timer Stop a script timer and display the elapsed time
unset Remove a command alias from memory
uservars Manage the yangcli user variables
while Start a 'while' conditional loop block

The following table shows the standard NETCONF protocol operations that are directly available for use, depending on the capabilities of the server.


Standard NETCONF Commands


command
description
cancel-commit Cancel the current confirmed commit procedure
close-session Close the current NETCONF session
commit Make the candidate database be the running config
copy-config Copy an entire NETCONF database
create-subscription Start receiving NETCONF notifications
delete-config Delete an entire NETCONF database
discard-changes Discard any edits in the candidate database
edit-config Alteration of the target database
get Filtered retrieval of state data and running config
get-config Filtered retrieval of any NETCONF database
get-schema Get a data model definition file from the server
kill-session Force close another NETCONF session
lock Lock a NETCONF database that is currently unlocked
unlock Unlock a NETCONF database that is currently locked
validate Validate the contents of a NETCONF database

The following yangcli commands are available for simplified access to standard NETCONF operations


Custom NETCONF Commands


command
description
create Invoke an <edit-config> create operation
delete Invoke an <edit-config> delete operation
get-locks Lock all the databases with the <lock> operation
insert Invoke an <edit-config> YANG insert operation
merge Invoke an <edit-config> merge operation
release-locks Unlock all the locked databases with the <unlock> operation
remove Invoke an <edit-config> remove operation
replace Invoke an <edit-config> replace operation
save Save the current edits on the server in NV-storage
sget Invoke a <get> operation with a subtree filter
sget-config Invoke a <get-config> operation with a subtree filter
xget Invoke a <get> operation with an XPath filter
xget-config Invoke a <get-config> operation with an XPath filter

The following table shows the extended NETCONF protocol operations that are available on the netconfd server only.


Extended netconfd Commands


command
description
get-my-session Retrieve session customization parameters
load Load a module into the server.
no-op No operation.
restart Restart the server.
set-log-level Set the server logging verbosity level.
set-my-session Set session customization parameters.
shutdown Shutdown the server.

Variables

The yangcli program utilizes several types of user-accessible variables. These variables can be listed with the 'show vars' command and other commands as well.

A variable reference consists of 1 or 2 dollar signs ('$'), followed immediately by a valid identifier string (e.g., $$global-log or $local-log).

Variables can be 1 or more characters in length, and follow the YANG rules for identifier names. The first character must be a letter, 'A' to 'Z', or 'a' to 'z'. The 2nd to last characters can be a letter 'A' to 'Z', or 'a' to 'z', number ('0' to '9'), an underscore ('_'), a dash ('-'), or a period ('.') character.


There are 4 categories of parameters supported:

  1. Read-only system variables
  2. Read-write system variables
  3. Read-write global user variables (saved in $HOME/.yuma directory)
  4. Read-write local user variables

It is an error if a variable is referenced (in the right-hand-side of a statement) that does not exist.


The first 3 types are global variables, which means that they are available to all run-levels of all scripts. The last type, called a local variable, is only visible to the current run-level of the current script (or interactive shell). Refer to the following section for more details on run levels.


Variable Syntax


syntax
description
example
$$<variable-name> Left hand side: set the global variable to some value $$saved_get = get
$$<variable-name> Right hand side: access the value of a global variable fill --target=\ $$mytarget
$<variable-name> Left hand side: set the local variable to some value $myloglevel = \ $$log-level
$<variable-name> Right hand side: access the value of any variable with this name (try local, then global) $myuser = $user

The following table shows the unix environment variables that are available as read-only global variables in yangcli. These variables are set once when the program is started, and cannot be used in the the left hand side of an assignment statement.


Read-only system variables


variable
description
$$HOME the HOME environment variable
$$HOSTNAME the HOST or HOSTNAME environment variable
$$LANG the LANG environment variable
$$PWD the PWD environment variable, when yangcli was invoked
$$SHELL the SHELL environment variable
$$USER the USER environment variable
$$YUMA_DATAPATH the YUMA_DATAPATH environment variable
$$YUMA_HOME the YUMA_HOME environment variable
$$YUMA_MODPATH the YUMA_MODPATH environment variable
$$YUMA_RUNPATH the YUMA_RUNPATH environment variable

The following table shows the CLI configuration parameters that can be read or changed (but not deleted). If a particular parameter was not set during program invocation, then the associated variable will contain the empty string.


Read-write system variables


variable
description
$$alt-names the –alt-names configuration parameter
$$autocomp the --autocomp configuration parameter
$$autoload the --autoload configuration parameter
$$baddata the --baddata configuration parameter
$$default-module the --default-module configuration parameter
$$default-operation the <default-operation> parameter for the <edit-config> operation
$$display-mode the --display-mode configuration parameter
$$error-option the default <error-option> parameter for the <edit-config> operation
$$fixorder the --fixorder configuration parameter
$$indent the –indent configuration parameter
$$log-level the --log-level configuration parameter
$$match-names the –match-names configuration parameter
$$optional the --optional configuration parameter
$$server the --server configuration parameter
$$test-option the <test-option> parameter for the <edit-config> operation
$$time-rpcs the –time-rpcs configuration parameter
$$timeout the --timeout configuration parameter
$$use-xmlheader the –use-xmlheader configuration parameter
$$user the --user configuration parameter
$$with-defaults the --with-defaults configuration parameter

Read-write global user variables


If a unrecognized global variable (e.g., $$foo) is used in the left-hand side of an assignment statement, then a global user variable will be created with that name. If the global user variable already exists, then its value will be overwritten.

The uservars command can be used to load or store these variables so they are loaded at boot-time. By default, the XML file used to store these variables is $HOME/.yuma/yangcli_uservars.xml.


Read-write local user variables


If a local variable (e.g., $foo) is used in the left-hand side of an assignment statement, then a local user variable will be created with that name. If the local user variable already exists, then its value will be overwritten. If the variable is created within a script (i.e., run-level greater than zero), then it will be deleted when the script exits.


Files

File contents can be used in yangcli statements, similar to user variables.

A file reference consist of the 'at-sign' character ('@') followed immediately by a valid file specification.


    @foo.yang = get-schema --identifier=foo --version=”” --format=”YANG”
    mgrload --module=foo


If the file extension is “.yang”, “.log”, “.txt”, or “.text”, then the value (or command output) will be saved, and yangcli will strip off the outermost XML (if needed) to save the requested file as a pure text file. Otherwise, the file will be saved in XML format. The display mode set by the user can affect XML output. If the display mode i s'xml-nons' then XML without namespace (xmlns) attributes will be generated instead of normal XML.

Note: The --display-mode configuration parameter, and $$display-mode system variable, only affect the output and display of data in the yangcli program. NETCONF protocol messages are always sent in 'xml' mode.

Files may also be used as parameter replacements, within a command.


    $saved_get = get --filter=@filter.xml --with-defaults=explicit


It is an error if the file referenced does not exist or cannot be read.

Scripts

Any command can be entered at the interactive shell, or stored in a script file, and invoked with the 'run' command. Scripts are simply text files, and the extension used does not matter.

There are no formal templates for scripts, like there are for RPC operations, at this time. Instead, positional parameters can be passed to any script.

The parameters named --P1 to --P9 allow up to 9 parameters to be passed to any script. Within each script, the numbered parameters '$1' to '$9' are available, and contain the value that was passed as the corresponding ---Pn” parameter when calling the script.

If a line contains only optional whitespace, followed by the pound sign character '#', then the line is treated as a comment. These lines will be skipped.

If an error occurs during a command within a script, or an <rpc-error> is received from the server during a NETCONF session, then the running script will be canceled, and if this was a nested script, then all parent scripts will also be canceled.


Script Example:


    run connect --P1=andy --P2==localhost --P3=yangrocks
    // connect script
    # start a NETCONF session
    $user = $1
    $server = $2
    $password = $3
    connect --user=$user --server=$server --password=$password


Run Levels


The run command can appear in a script.

When yangcli starts up, either in interactive mode or in batch mode, the script interpreter is at run level zero. Each time a run command is invoked, either at the command line or within a script currently being invoked, a new run level with the next higher value is assigned. Local variables are only visible within the current run level.

A maximum of 512 run levels are supported in yangcli.

Scripts can be called recursively, but a stop condition needs to be used to break the recursion (e.g., call the script from within a conditional code block.


Conditional Command Blocks


The 'if', 'elif', 'else', and 'end' commands are used to create an 'if command sequence'.

Any other commands that appear between these commands are part of a conditional command block.

These blocks can be nested. The current conditional state is inherited, so an if command sequence within a false conditional block will not be executed. A block can contain zero or more command lines,

These command work exactly like an 'if' expression within a program language such as Python. Note that indentation is not significant, but it may be used to make scripts more readable.

The 'if' command starts a new if-command sequence. It is followed by a conditional command block. This block ends when an 'elif', 'else', or 'end' command within the same if command block is encountered.

At most, only one conditional code block within the if command sequence will be executed. Once a conditional command block has been exectuted, any remaining blocks will be skipped.

All user and system variables that are available to the current script run level can be used within the XPath expressions for determining the conditional block state (true or false).


Conditional Command Loop Blocks


The 'while' and 'end' commands are used to create an 'while loop sequence'.

Any other commands that appear between these commands are part of a conditional command loop block.

These blocks can be nested. The current conditional state is inherited, so a while loop sequence within a false conditional block will not be executed. A block can contain zero or more command lines,

The loop condition can be a constant expression. The maxloops parameter will prevent infinite looping, and can be utilized to use the while loop sequence as a simple 'for' loop, iterating a specific number of times.

All user and system variables that are available to the current script run level can be used within the XPath expressions for determining the conditional block state (continue or terminate loop).


Sample Script


The following script does not do any useful work.

It is provided to demonstrate some simple constructs.


$x = 0
while '$x < 2'
  # this is a comment
  log-info 'start 1'
  $x = eval '$x + 1'
  $y = 0
  while '$y < 4'
    log-info 'start 2'
    $y = eval '$y + 1'
    if "module-loaded('test')"
      log-info 'module test loaded'
    elif '$x > 1'
      log-info 'x>1'
    elif "feature-enabled('test3', 'feature1')"
      log-info 'feature1'
    else
      log-info 'else'
    end
    log-info 'end 2'
  end
  log-info 'end 1'
end
if "feature-enabled('test5', 'feature-foo')"
  log-info 'feature-foo'
  run add-foo-parms
end


Configuration Parameter List

The following configuration parameters are used by yangcli. Refer to the CLI Reference for more details.


yangcli CLI Parameters


parameter
description
--aliases-file Specifies the command aliases file to use.
--alt-names Controls whether alternate names will be checked for UrlPath searches.
--autoaliases Controls automatic loading and saving of the command aliases
--autocomp Controls whether partial commands are allowed or not.
--autohistory Controls whether th command line history buffer will be automatically loaded at startup and saved on exit.
--autoload Controls whether modules used by the server will be loaded automatically, as needed.
--autouservars Controls automatic loading and saving of the global user variables
--bad-data Controls how bad data about to be sent to the server is handled.
--batch-mode Indicates the interactive shell should not be used.
--config Specifies the configuration file to use for parameters.
--datapath Sets the data file search path.
--default-module Specifies the default module to use to resolve identifiers.
--deviation Species one or more YANG modules to load as deviations.`
--display-mode Specifies how values should be displayed.
--echo-replies Controls whether RPC replies will be displayed in the log output, if log-level >= 'info'
--echo-requests Controls whether RPC requests will be displayed in the log output, if log-level >= 'info'
--feature-disable Leaf list of features to disable
--feature-enable Specifies a feature that should be enabled
--feature-enable-default Specifies if a feature should be enabled or disabled by default
--fixorder Controls whether PDUs are changed to canonical order before sending them to the server.
--force-target Controls whether the candidate or running configuration datastore will be used as the default edit target, when both are supported by the server.
--help Get program help.
--help-mode Adjust the help output (--brief or --full).
--home Override the $HOME environment variable.
--indent Specifies the indent count to use when writing data.
--log Specifies the log file to use instead of STDOUT.
--log-append Controls whether a log file will be reused or overwritten.
--log-level Controls the verbosity of logging messages.
--match-names Match mode to use for UrlPath searches
--modpath Sets the module search path.
--module Specifies one or more YANG modules to load upon startup.
--ncport Specifies the NETCONF server port number to use in the connect command.
--password Specifies the password to use in the connect command.
--private-key Contains the file path specification for the file containing the client-side private key.
--protocols Controls which NETCONF protocol versions will be enabled
--public-key Contains the file path specification for the file containing the client-side public key.
--runpath Sets the executable file search path.
--run-command Specifies the command to run at startup time.
--run-script Specifies the script to run at startup time.
--server Specifies the server address to use in the connect command.
--subdirs Specifies whether child sub-directories should be searched when looking for files.
--time-rpcs Measure the round-trip time of each <rpc> request and <rpc-reply> at the session level.
--timeout Specifies the timeout to use in the connect command.
--transport Specified the transport protocol to use (ssh or tcp)
--use-xmlheader Specifies how file result variables will be written for XML files. Controls whether the XML preamble header will be written or not.
--user The default user name for NETCONF sessions.
--uservars-file Specifies the global user variable files to load.
--version Prints the program version and exits.
--warn-idlen Controls how identifier lengths are checked.
--warn-linelen Controls how line lengths are checked.
--warn-off Suppresses the specified warning number.
--yuma-home Specifies the $YUMA_HOME project root to use when searching for files.

Invoking Commands

Commands can be entered with parameters:

  • in one continuous line
merge target=/toaster/toastControl --value=”down”
  • in several lines (using line continuation)
merge target=/toaster/toastControl \
 --value=”down”
  • interactively prompted for each parameter
merge
(will be prompted for target and value)
  • a combination of the above
merge target=/toaster/toastControl
(will be prompted for value)

When a command is entered, and the yangcli script interpreter is running in interactive mode (--batch-mode not active), then the user will be prompted for any missing mandatory parameters.

If the --optional parameter is present (or the $$optional system variable is set to 'true'), then the user will be prompted for any optional parameters that are missing.

A command has the basic form:

<name (QName)> <parameter (any YANG type)>*

The command name is a qualified name matching the name used in the YANG rpc statement. This is followed by zero or more parameters (in any order).

A command parameter has the same syntax as a CLI configuration parameter.

The command name syntax is described below.

An un-escaped end-of-line character ('enter key') terminates command line input.

Command Prompt

The yangcli command prompt changes, depending on the context.


Idle Mode:


If the script interpreter is idle and there is no NETCONF session active, then the prompt is simply the program name:


    yangcli> 


If the script interpreter is idle and there is a NETCONF session active, then the prompt is the program name, followed by ' <user>@<server>', depending on the parameters used in the connect command:


    yangcli andy@myserver> 


Continuation Mode:


If a backslash, end-of-line sequence ended the previous line, the prompt will simply be the word 'more' indented 3 spaces:


    yangcli andy@myserver> get \
       more> 


The 'more>' prompt will continue if the new line also ends in with an escaped end-of-line. When a new line is finally terminated, all the fragments are spliced together and delivered as one command line.


Note: context-sensitive command completion is not available in this mode.


Choice mode:


If a partial command has been entered in interactive mode, and the script interpreter needs to prompt for a YANG 'choice' parameter, then a list of numbered cases will be presented, and the prompt will be the same as it was before (depending on whether a NETCONF session is active or not), except a colon character (':'), followed by the command name, will be added at the end. As long as parameters for the same command are being entered (i.e., prompted for child nodes within a selected case, the command name will be appended to the prompt.


yangcli andy@myserver> sget 
Enter a number of the selected case statement: 
  1: case varref: 
       leaf varref 
  2: case from-cli: 
       leaf target 
       leaf optional 
       anyxml value 
Enter choice number [1 - 2]: 
yangcli andy@myserver:sget> 


Parameter mode:


If a partial command has been entered in interactive mode, and the script interpreter needs to prompt for a leaf or leaf-list, then the parameter name will appear in angle brackets ('<' and '>').

Filling mandatory case /sget/input/from/from-cli: 
Enter string value for leaf <target> 
yangcli andy@myserver:sget> 


If the 'ncx:password' extension is part of the YANG definition for the leaf or leaf-list, then the characters entered at the prompt in this mode will not be echoed, and they will not be saved in the command history buffer. Any default value will not be printed either. Instead, 4 asterisks '****' will be printed, even though the correct value will be used in the command.

If a default value is available, it will appear in square brackets ('[' and ']'). In this case, entering 'return' will not be interpreted as an empty string, but rather the default value that was presented.

yangcli> connect 
Enter string value for leaf <user> [andy] 
yangcli:connect> 
Enter string value for leaf <server> [myserver] 
yangcli:connect> 
Enter string value for leaf <password> [****] 
yangcli:connect> 
Enter uint16 value for leaf <port> [830] 
yangcli:connect> 
Enter uint32 value for leaf <timeout> [30] 
yangcli:connect> 


Note: After a NETCONF session is terminated for any reason, the connection parameters will be remembered , and presented as defaults the next time the connect command is entered.


False Conditional Block Mode


If a conditional command (if, elif, else, or while command) is active, but the conditional expression is false, then any commands defined within that conditional block will not be executed. If this occurs in interactive mode instead of a script, the string '[F]' will be added to the command prompt. Note that the 'help' and 'log-info' commands do not get executed in the following example:


yangcli> if 0
yangcli[F]> help
yangcli[F]> log-info 'this will not get printed'
yangcli[F]> end
yangcli>

Command Name

The command name can be entered with or without an XML prefix:


yangcli andy@myserver> nc:get
yangcli andy@myserver> get


If there is a prefix (e.g., 'nc:get'), then it needs to be one of the XML prefixes in use at the time. Use the 'show modules' command to see the modules and prefixes in use. The YANG prefix will usually be the same as the XML prefix, but not always.

XML prefixes are required to be unique, so if any 2 YANG modules pick the same prefix, then 1 of them has to be changed for XML encoding purposes.

If the --default-module configuration parameter (or $$default-module system variable) is set, it will be used to resolve a command name without any prefix, if it is not a NETCONF or yangcli command.

An error message will be printed if the command entered cannot be found in any YANG module, or if there are multiple commands that match the same string.


ncx:default-parm Extension

Each command may define a default parameter, by placing an 'ncx:default-parm' extension in the rpc input section in the YANG rpc statement. This extension allows less typing in yangcli to accomplish the same thing.

If the script interpreter encounters a string in the command line that is not a recognized parameter for that command, and there is a default parameter defined, then the string will be used as a value for the default parameter.

For example, the 'show' parameter is the default parameter for the 'history' command, so both of these commands will be interpreted to mean the same thing:


    history --show=10
    history 10


Note: the default parameter does not allow the wrong form of a parameter type to be entered, to accept the default for that parameter. For example, the 'show' parameter above has a default value of '25':


    # this is the same as history show=25
    history
    # this is an error, not the same as the above
    history show


The following table shows the default parameters that are available at this time.


Default Parameters


command
default parameter
alias var
aliases show
cd dir
connect server
create target
elif expr
else expr
if expr
eventlog show
fill target
help command
history show
insert target
load module
log-debug msg
log-error msg
log-info msg
log-warn msg
merge target
mgrload module
recall index
replace target
run script
set-log-level log-level
sget target
sget-config target
xget select
xget-config select
while expr

Parameter Mode Escape Commands

There are 4 escape sequence commands that can be used while entering parameters.

They all begin with the question mark character ('?'), and end with the 'Enter' key.

Control key sequences are not used because that would interfere with command line editing keys.


Parameter mode escape sequences


escape sequence
description
? Print some help text
?? Get all available help text
?s Skip this parameter
?c Cancel this command

Note: If the current parameter is considered hidden (ncx:hidden extension used in the YANG definition), then no help will be available for the parameter, even though it is accessible. This also apples to the help command. Any command or parameter designated as ncx:hidden will be treated as an unknown identifier, and no help will be given.

Note: Skipping mandatory nodes with the '?s' command is affected by the --bad-data configuration parameter and $$bad-data system variable. An error, warning, or confirmation check may occur. Refer to the CLI Reference for more details.

Note: If there are any YANG defined values (e.g., enumeration, bits, default-stmt) available for the current parameter, then pressing the tab key will list the full or partial completions available.

Using XPath Expressions

There are some command parameters, such as the --target parameter for the create command, that accept XPath absolute path expressions.

If prefixes are present, then they must match the set of XML prefixes in use at the time. Use the show modules command to see the current set of prefixes.

If prefixes are not used, then the first available matching XML namespace will be used instead.

If the starting forward slash character ('/') is missing, then it will be added.


    # these are all the same value
    yangcli:fill> system
    yangcli:fill> /system
    yangcli:fill> /sys:system


It is important to remember 2 simple rules to avoid common errors in XPath expressions:

  1. String constants must be quoted with single quote characters.The expression [name=fred] is not the same as [foo='fred'].The former compares the 'name' node value to the 'fred' node value.The latter compares the 'name' node value to the string 'fred'.
  2. The double quote character ('”') is not allowed in XPath --select parameter expressions because the expression will be sent to the server inside a double-quoted string.

If an incomplete XPath absolute path expression is entered, and the script interpreter is in interactive mode, then the user will be prompted to fill in any missing mandatory nodes or key leafs.


    # complete form of ifMtu leaf
    yangcli:fill> /interfaces/interface[name='eth0']/ifMtu
    # incomplete form of ifMtu leaf
    yangcli:fill> /interfaces/interface/ifMtu
    Filling key leaf <name>:
    Enter string value:


The --select parameter for the xget and xget-config commands accepts full XPath expressions. The expression must yield a node-set result in order to be used as a filter in NETCONF get and get-config operations.

One of the simplest XPath filters to use is the descendant-or-self filter ('//<expr>').

For example, this command will retrieve all instances of the 'ifMtu' leaf:


    xget //ifMtu


When interface (or any list) entries are returned by netconfd, they will contain the the entire path back to the root of the YANG module, not just the specified node. Also, any key leafs within a list are added. This is only done if the XPath expression is missing any predicates for key leafs.

This is different than XPath 1.0 as used in XSLT. Since NETCONF get and get-config operations return complete XML instance documents, not node-sets, the ancestor nodes and naming nodes need to be added.

    # reply shown with --display-mode=plain
    data {
       interfaces {
             interface eth0 {
            name eth0
            ifMtu 1500
          }
             interface eth1 {
            name eth1
            ifMtu 1518
          }
       }
    }


Special Parameter Handling

Some special handling of YANG data structures is done by the script interpreter.


Containers


Some parameters, such as the --source and --target parameters in many commands, are actually represented as a container with a single child -- a choice of several leaf nodes. In this situation, just the name of the desired leaf node can be entered (when in idle mode), as the 'contents' of the container parameter.


    sget-config /system source=candidate


Choices and Cases


If a parameter name exact-match is not found, and a partial match is attempted, then choice and case node names will be ignored, and not cause a match.

Since these nodes never appear in the XML PDUs they are treated as transparent nodes (wrt/ parameter searches) unless they are specified with their full name.

Parameters that are a choice of several nodes, similar to above, except without a parent container node, (e.g., --help-mode) can be omitted. The accessible child nodes within the case nodes can be entered directly (e.g., sget --target parameter).


# this is not allowed because 'help-mode' is not complete
yangcli> help --command=help --help-mo=brief

# this is allowed because 'help-mode' is complete,
# even though help-mode is a choice and 'brief' is
# an empty leaf
yangcli> help help help-mode=brief
# choice and case names are transparent when
# searching for parameter names, so the
# following command is the same as above
yangcli> help help brief


Lists and Leaf-Lists


When filling a data structure and a descendant node is entered, which is a YANG list or leaf-list, then multiple entries can be entered. After the node is filled in, there will be a prompt (Y/N, default no) to add more list or leaf-list entries.


Binary Data Type


The YANG binary data type is supported. Parameters of this type should be entered in plain text and they will be converted to binary format.


Command Completion

The 'tab' key is used for context-sensitive command completion:

  • If no command has been started, a list of available commands is printed
  • If a partial command is entered, a list of commands which match the characters entered so far is printed
  • If a command is entered, but no parameters, then a list of available parameters is printed
  • If a command is entered, and the cursor is within a command name, then a list of parameters which match the characters entered so far is printed
  • If a command is entered, and the cursor is after a command name, but not within a value string, then a list of available parameters is printed
  • If a command is entered, and the cursor is within a command value, then a list of possible values which match the characters entered so far is printed. Note that not all data types support value completion at this time.
  • If no values are available, but a default value is known, that value will be printed
  • If a session is active, and whitespace followed by the forward slash '/' character is entered, a list of top-level data node names is printed. Once a top-level name and a trailing slash '/' character is entered, pressing the tab key again will print the names of the child nodes of the current data node. Only schema-node strings are supported at this time. Auto-completion will not work if predicates are present in the absolute path expression.

Command list example: no NETCONF session is active:


    yangcli> <hit tab key>
    cd       fill     history  mgrload  quit     run      
    connect  help     list     pwd      recall   show     


Command list example: NETCONF session is active


    yangcli andy@myserver.example.com> <hit tab key>
    cd                   get-schema           recall 
    close-session        help                 replace 
    commit               history              restart 
    connect              insert               run 
    copy-config          kill-session         save 
    create               list                 sget 
    create-subscription  load                 sget-config 
    delete               load-config          show 
    delete-config        lock                 shutdown 
    discard-changes      merge                unlock 
    edit-config          mgrload              validate 
    fill                 no-op                xget 
    get                  pwd                  xget-config 
    get-config           quit


Command Line Editing

The command line parser is based on libtecla, a freely available library.

The home page is located here:

http://www.astro.caltech.edu/~mcs/tecla/


The complete user guide for configuring libtecla is located here:

http://www.astro.caltech.edu/~mcs/tecla/tecla.html


If the file $HOME/.teclarc exists, then libtecla will use it to configure the key bindings.

By default, libtecla uses emacs key bindings. There is no need for any further libtecla configuration if emacs mode is desired.

In order to use the vi editor key bindings, the $HOME/.teclarc file must exist, and it must contain the following line:


        edit-mode vi


Custom key bindings are also available. Refer to the libtecla documentation for more details on command line editing key customization.

The control key sequence (^F == control key and f key at the same time). The letter is not case-sensitive, so ^F and ^f are the same command.

The alt key sequence (M-f == alt key and f key at the same time). The letter is not case-sensitive, so M-F and M-f are the same command.


The following table shows the the most common default key bindings:


Common editing key bindings


command
description
^F cursor right
^B cursor-left
^A beginning of line
^E end of line
^U delete line
M-f forward-word
M-b backward word
^P up history
^N down history

Command History

Each command line is saved in the command history buffer, unless a password is being entered in parameter mode.

By default, the previous history line (if any) will be shown if the ^P key is pressed.

By default, the next history line (if any) will be shown if the ^N key is pressed.

In addition, the history command can be used to control the command line buffer further. This command has 4 sub-modes:

  • show: show maximum of N history entries (default is 25)
  • clear: clear the history buffer
  • save: save the history buffer to a file
  • load: load the history buffer from a file

By default, the command line history buffer is loaded when the program starts, and saved when the program exits. This behavior can be turned off by setting the --autohistory configuration parameter to 'false'.

The '!' character is special when editing commands. If the first character is '!', and it is followed by a number or a non-zero character, the line will be interpreted as a recall request:


  • yangcli> !42 == recall command number 42 (same as recall 42)
  • yangcli> !get == recall the most recent command line starting with 'get'

Refer to the Command Reference section for more details on the history command.

Command Responses

The command output and debugging messages within yangcli is controlled by the current log level (error, warn, info, debug, debug2, debug3).

If a command is executed by the script interpreter, then a response will be printed, depending on the log level value.

If the log level is 'info' or higher, and there were no errors and no response, then the string 'OK' is printed.


    yangcli> $foo = 7
       OK
    yangcli>


If the log-level is set to 'error' or 'warn', then the 'OK' messages will be suppressed.

If the log level is set to 'debug' or higher, then responses from the server will be echoed to the log (file or STDOUT). The current display mode will be used when printing data structures such as <rpc-error> and <notification> element contents.

If an error response is received from the server, it will always be printed to the log.


yangcli andy@myserver> create /system 
Filling container /system: 
RPC Error Reply 5 for session 8: 
rpc-reply { 
   rpc-error { 
      error-type application 
      error-tag access-denied 
      error-severity error 
      error-app-tag limit-reached 
      error-path /nc:rpc/nc:edit-config/nc:config/sys:system 
      error-message 'max-access exceeded' 
   } 
} 
yangcli andy@myserver> 


Refer the the --log-level parameter in the CLI Reference for more details.

NETCONF Sessions

The yangcli program can be connected to one NETCONF server at a time.

Run multiple instances of yangcli to control multiple agents at once.

Use the connect command to start a NETCONF session.

This section explains how to use yangcli to manage a NETCONF server, once a session is established.

When a NETCONF session starts up, a <capability> exchange is done, and the server reports exactly what content it supports. This information is used extensively to customize the session, and report errors and warnings for the session.

Connection Startup Screen

If the --log-level is set to 'info' of higher, then a startup screen will be displayed when a NETCONF session is started. It contains:

  • startup banner
  • client session ID
  • server session ID
  • protocol capabilities supported by the server
    • Includes revision-date of supported module
  • YANG modules supported by the server
    • Includes any features and deviations supported in the module
  • Enterprise specific capabilities supported by the server
  • Default target database (<candidate> or <running>)
  • Save operation mapping for the server
  • with-defaults reporting capability reported by the server

The following example shows a typical startup screen connecting to the netconfd server:


NETCONF session established for andy on myserver 
Client Session Id: 1 
Server Session Id: 8 
Server Protocol Capabilities 
   Protocol Version: RFC 4741 
   candidate:1.0 
   rollback-on-error:1.0 
   validate:1.0 
   xpath:1.0 
   notification:1.0 
   interleave:1.0 
   with-defaults:1.0 
   netconf-monitoring:1.0 
   schema-retrieval:1.0 
Server Module Capabilities 
   ietf-inet-types@2009-11-10 
   ietf-netconf-monitoring@2009-11-20 
   ietf-with-defaults@2009-07-01 
      Features: 
         with-defaults 
   ietf-yang-types@2009-11-10 
   nc-notifications@2008-07-14 
   notifications@2008-07-14 
   test@2009-12-26 
      Features: 
         feature1 
         feature3 
         feature4 
   yuma-app-common@2010-01-25 
   yuma-interfaces@2009-11-21 
   yuma-mysession@2009-08-11 
   yuma-nacm@2009-11-21 
   yuma-ncx@2009-12-21 
   yuma-proc@2009-11-21 
   yuma-system@2009-12-27 
   yuma-types@2010-01-25 
Server Enterprise Capabilities 
   None 
Default target set to: <candidate> 
Save operation mapped to: commit 
Default with-defaults behavior: explicit 
Additional with-defaults behavior: trim:report-all 
Checking server Modules... 
yangcli andy@myserver> 


Server Tailored Context

[[Image:]]


While a NETCONF session is active, the set of available YANG modules will be set to the modules that the server is using, if the --autoload configuration parameter is enabled.

If the :schema-retrieval capability is also available on the server, then the <get-schema> operation will be attempted for any YANG module specified in the <hello> message capabilities, but not available to the yangcli program.

When the server module capabilities are analyzed by the yangcli client, the entire YANG module search path is checked for the specific module advertised in the capability. All the modules are partially parsed to check the actual namespace and revision date values. The following fields must exactly match in order for yangcli to use a local YANG module, if --autoload=true.

  • module name
  • module revision date (if any)
  • module namespace

If the namespace URI value is different, it indicates that there is either a bug in one of the conflicting YANG modules, or that two different naming authorities picked the same module name. In this case, a warning will be generated during session initialization.

Any data returned from the server for YANG modules not currently available will be treated as a YANG 'anyxml' node, instead of the (unknown) YANG data type.

If the module contains YANG features that are not advertised in the <capabilities> exchange, then those data definitions will not be available (by default) for use in yangcli commands.

If the module contains an object with a 'when' statement, and the 'when' XPath expression evaluates to 'false', then that data definition will not be available (by default) for use in yangcli commands.

The help command will be tailored to the modules, capabilities, features, and module deviations reported by the server in <capability> exchange.

Retrieving Data

There are 6 commands available to retrieve generic data (i.e., an arbitrary subset of an entire NETCONF database):


command
description
get raw NETCONF <get> operation
get-config raw NETCONF <get-config> operation
sget high-level subtree filter, using the <get> protocol operation
sget-config high-level subtree filter, using the <get-config> protocol operation
xget high-level XPath filter, using the <get> protocol operation
xget-config high-level XPath filter, using the <get-config> protocol operation

All the high-level retrieval operations support the $$with-defaults system variable. The <with-defaults> parameter will be added the the NETCONF PDU if this variable is set to a value other than 'none' (the default). This system variable will be used as the default if not entered directly.


sget /system --with-defaults=$$with-defaults


This parameter can also be specified directly, each time the command is used.


xget-config //ifMtu --with-defaults=trim


The $$bad-data system variable is used to control how invalid operations and data are sent to the server. The xget and xget-config commands are affected by this parameter. If the :xpath capability was not advertised by the server when the session started, an error or warning may occur if these commands are used.

If any data is received that yangcli does not understand, then a warning message will be printed and the data will be treated as if it was defined with the YANG 'anyxml' data type.


Modifying Data

The following commands are available to modify generic data (i.e., an arbitrary subset of an entire NETCONF database):


command
description
commit raw NETCONF <commit> operation
create high-level <edit-config> operation, with nc:operation='create'
delete high-level <edit-config> operation, with nc:operation='delete'
delete-config raw NETCONF <delete-config> operation
discard-changes raw NETCONF <discard-changes> operation
edit-config raw NETCONF <edit-config> operation
fill fill a variable for re-use in other operations
insert high-level <edit-config> operation, with YANG insert operation extensions
lock lock a NETCONF database
merge high-level <edit-config> operation, with nc:operation='merge'
replace high-level <edit-config> operation, with nc:operation='replace'
save High level save operation, depending on the default target (candidate or running)
unlock unlock a NETCONF database

All the high-level editing operations use the --target parameter reported by the server when the session started up. If the server did not report the :candidate or :writable-running capabilities, then there will be no writable target, and an error will occur if these commands are entered.

All the high-level editing operations support the $$default-operation system variable. The <default-operation> parameter will be added the the NETCONF <edit-config> PDU if this variable is set to a value other than 'not-used'. The default is the enumeration 'none', which means do not use any default operation, and only use the explicit nc:operation attribute.

All the high-level editing operations support the $$test-option system variable. The <test-option> parameter will be added the the NETCONF <edit-config> PDU if this variable is set to a value other than 'none' (the default). This system variable will be used as the default if not entered directly.


replace /interfaces/interface[name='eth0']/ifMtu \
    --test-option=$$test-option \
    --value=$newvalue


This parameter can also be specified directly, each time the command is used.

$newvalue = 1518
replace /interfaces/interface[name='eth0']/ifMtu \
    --test-option=test-only \
    --value=$newvalue


All the high-level retrieval operations support the $$error-option system variable. The <error-option> parameter will be added the the NETCONF <edit-config> PDU if this variable is set to a value other than 'none' (the default). This system variable will be used as the default if not entered directly.


replace /interfaces/interface[name='eth0']/ifMtu \\
    --error-option=$$error-option \
    --value=1518


This parameter can also be specified directly, each time the command is used.


replace /interfaces/interface[name='eth0']/ifMtu \
    --error-option=rollback-on-error \
    --value=1518


The high level save command is mapped to other commands, depending on the capabilities reported by the server.


save command


capabilities
real command(s)
:candidate commit
:writable-running <none>
:startup copy-config --source=running \ --target=startup

Using Notifications

The create-subscription command is used to start receiving notifications.

The netconfd server will include a <sequence-id> element in any notification that is saved in the replay buffer. This unsigned integer can be used to help debug notification filters (i.e., if non-consecutive <sequence-id> values are received, then the notification was filtered, or dropped due to access control policy).

If any replay notifications are desired, then the --startTime parameter must be included. At the end of the stored notifications, the server will send the <replayComplete> event. This notification type is not saved, and will not be found in the server replay buffer, if replay is supported by the server. The netconfd server will not include a <sequence-id> element in this notification type.

If the notification subscription should stop at a certain time, then the --stopTime parameter must be included. At the end of the stored notifications, the server will send the <replayComplete> event, followed by the <notificationComplete> event. . This notification type is not saved, and will not be found in the server replay buffer, if replay is supported by the server. The netconfd server will not include a <sequence-id> element in this notification type.

Notifications are printed to the log, using the current $$display-mode system variable setting, when and if they are received.

Notifications are also logged. Use the eventlog command to access the notifications stored in the event log.


Configuration Parameters That Affect Sessions

The --server, --user, and --password configuration parameters can be used to start a NETCONF session automatically at startup time. The connect command will only be attempted at startup time if the --server parameter is present.

If all 3 of these parameters are present at startup time, then no interactive prompting for additional optional parameters will be done. Instead the connect command will be invoked right away.

During normal operation, the --optional configuration parameter, or the $$optional system variable, can be used to control interactive prompting for optional parameters.

The --server parameter is saved in the $$server system variable, which can be overwritten at any time. If set, this will be used as the initial default value for the --server parameter in the connect command.

The --fixorder configuration parameter can be used to control XML PDU ordering. If set to 'true', then the PDU will be reordered (if needed),to use the canonical order, according to the YANG specification. If 'false', the order parameters are entered at the command line will be their NETCONF PDU order as well. The default is 'true'. To send the server incorrectly ordered data structures on purposes, set this parameter to 'false'.

The --user parameter is saved in the $$user system variable, which can be overwritten at any time. If set, this will be used as the initial default value for the --user parameter in the connect command.

The --with-defaults configuration parameter, or the $$with-defaults system variable, can be used to set the default value for the 'with-defaults' parameter extension for the NETCONF get, get-config, and copy-config protocol operations. The default is 'none'.

The --error-option configuration parameter, or the $$error-option system parameter, can be used to set the default value for the --error-option parameter for the NETCONF edit-config protocol operation. The default is 'none'.

The --test-option configuration parameter, or the $$test-option system parameter, can be used to set the default value for the --test-option parameter for the NETCONF edit-config protocol operation. The default is 'none'.

The --bad-data configuration parameter, or the $$bad-data system variable, can be used to control how yangcli handles parameter values that are known to be invalid, or usage of optional protocol operations that the current session does not support. The default value is 'check'. To use yangcli in a testing mode to send the server incorrect data on purpose, set this parameter to 'warn' or 'ignore'.


Trouble-shooting NETCONF Session Problems

If the NETCONF session does not start for any reason, one or more error messages will be printed, and the prompt will indicate 'idle' mode. This section assumes that the server is netconfd, and these debugging steps may not apply to all NETCONF agents.


If the NETCONF session does not start:

  • make sure the server is reachable
    • try to 'ping' the server and see if it responds
  • make sure the SSH server is responding
    • try to login in to the server using normal SSH login on port 22
  • make sure a firewall is not blocking TCP port 830
    • try to connect to the NETCONF server using the --port=22 option
  • make sure the netconf-subsystem is configured correctly in /etc/ssh/sshd_configthere should be the proper configuration commands for NETCONF to work. For example, the netconfd server configuration might look like this:
    Port 22
    Port 830
    Subsystem    netconf    /usr/sbin/netconf-subsystem


  • make sure the netconfd server is running. Use the unix 'ps' command, or check the netconfd log file, to make sure it is running.


    ps -alx | grep netconf
    (look for 1 'netconfd and N 'netconf-subsystem' -- 1 for
     each active session)


  • make sure the user name is correct
    • This must be a valid user name on the system
  • make sure the password is correct
    • This must be the valid password (in /etc/passwd or /etc/shadow) for the specified user name

If the NETCONF session stops responding:

  • make sure the server is still reachable
    • try to 'ping' the server and see if it responds
  • make sure the SSH server is still responding
    • try to login in to the server using normal SSH login on port 22

If the NETCONF server is not accepting a certain command:

  • make sure the command (or parameters used in the command) is actually supported by the server.
    • There may be features, when statements, or deviation statements that indicate the server does not support the command or one or more of its parameters.
  • make sure that access control configured on the server is not blocking the command. The error-tag should be 'access-denied' in this case.

If the NETCONF server is not returning the expected data in a <get> or <get-config> protocol operation::

  • Make sure all the parameters are supported by the server
    • the :xpath capability must be advertised by the server to use the 'select' attribute in the <get> or <get-config> operations
    • the :with-defaults capability must be advertised by the server to use the <with-defaults> parameter
  • if using a filter, try to retrieve the data without a filter and see if it is there
  • make sure that access control configured on the server is not blocking the retrieval. There will not be any error reported in this case. The server will simply skip over any unauthorized data, and leave it out of the <rpc-reply>.
  • set the logging level to debug2 or higher, and look closely at the PDUs being sent to the server. Set the display mode to a value other than 'plain' to make sure the correct namespaces are being used in the request.

If an <edit-config> operation is failing unexpectedly:

  • make sure that access control configured on the server is not blocking the request. The error-tag should be 'access-denied' in this case.
  • make sure an unsupported parameter or parameter value is not used
    • <test-option> is not supported unless the :validate capability is advertised by the server
    • <error-option> = 'rollback-on-error' is not supported unless the :rollback-on-error capability is advertised by the server
  • if the request contains an edit to a nested data structure, make sure the parent data structure(s) are in place as expected. The <default-operation> parameter is set to 'none' in the high level editing operations, so any data 'above' the edited data must already exist.
  • set the logging level to debug2 or higher, and look closely at the PDUs being sent to the server. Set the display mode to a value other than 'plain' to make sure the correct namespaces are being used in the request.

Command Reference

This section describes all the yangcli local and remote commands built-in when using the netconfd server.

There may be more or less commands available, depending on the YANG modules actually loaded at the time.

The specific NETCONF capabilities needed are listed for each remote command. No capabilities are ever needed for a local command.

It is possible that other servers will support protocol operations that netconfd does not support. If yangcli has the YANG file available for the module, then it can be managed with the high level commands. Low-level commands can still be used with external data (e.g., @mydatafile.xml).

Any YANG rpc statement can be used as a remote yangcli command. Refer to the server vendor documentation for details on the protocol operations, database contents, and notification definitions that they support.

alias

The alias command is used to set or display a specific command alias, or display all command aliases if no parameter is given. It is similar to the 'alias' command in unix shells such as 'bash'.

There are 3 forms of the alias command:

  1. alias: display all command aliases in memory
  2. alias <name>: display the command alias with the specified name
  3. alias <name>=<value>: set the command alias with the specified name to the string value

Use the unset command to delete an alias.

alias command


Command type: local
Default parameter: var
Min parameters: 0
Max parameters: 1
Return type: status
YANG file: yangcli.yang

Command Parameters:

  • var
    • type: string
    • usage: optional
    • default: none
    • The 'var' string must contain either a valid alias name or a string setting an alias. There cannot be any whitespace between the '=' and other characters when setting an alias. The alias value must be quoted if it contains whitespace.
      • A double-quoted string can contain single quotes: alias get-eth0=”xget /interfaces/interface[name='eth0']”
      • A single-quoted string can contain double quotes: alias get-eth0='xget /interfaces/interface[name=”eth0”]'
      • An unquoted string can be used if the <value> does not contain any whitespace: alias gc=get-config

Positive Response:

  • If no parameter given:
    • The current list of command aliases is displayed.
  • If a <name> parameter given:
    • The specified alias is displayed.
  • If a <name>=<value> parameter is given:
    • 'Updated alias foo' if alias foo already exists.
    • 'Added alias foo' if this is a new alias

Negative Response:

  • If no parameter given:
    • Not applicable
  • If a <name> parameter given:
    • Error: alias 'foo' not found
  • If a <name>=<value> parameter is given:
    • Error message printed if value is invalid

Usage:

    yangcli> alias get-running=”get-config --source=running”
    Added alias 'get-running'
    yangcli>


aliases

The aliases command is used to load, save, or clear the command aliases, or display all command aliases if no parameter is given.

There are 4 forms of the aliases command:

  1. aliases [show]: display all command aliases in memory
  2. aliases clear: clear all command aliases in memory
  3. aliases save [alias-filespec]: save the command aliases in memory in an '.aliases' file.
  4. aliases load [alias-filespec]: load the command aliases from an '.aliases' file into memory.
aliases command


Command type: local
Default parameter: none
Min parameters: 0
Max parameters: 1
Return type: status
YANG file: yangcli.yang

Command Parameters:

  • alias-action
    • type: choice
    • usage: optional
    • default: show
    • clear
      • Delete all aliases from memory. This will not affect the aliases file until the 'aliases save' command is used, or the program exits and the –autoaliases parameter is set to 'true'.
    • load [alias-filespec]
      • Load an aliases file into memory. If the 'alias-filespec' parameter is not given, then the default aliases file ($HOME/.yuma/.yangcli_aliases) will be used.
    • save [alias-filespec]
      • Save the command aliases into memory to an alias file. If the 'alias-filespec' parameter is not given, then the default aliases file ($HOME/.yuma/.yangcli_aliases) will be used.
    • show
      • Displays all aliases in memory.

Positive Response:

  • show:
    • The current list of command aliases is displayed.
  • clear, load, save:
    • A status message is displayed.

Negative Response:

  • An error message is printed if any error occurs.

Usage:

    yangcli> aliases save
    Saved aliases OK to '~/.yuma/.yangcli_aliases' 
    yangcli>

cd

The cd command is used to change the current working directory.

cd command


Command type: local
Default parameter: dir
Min parameters: 1
Max parameters: 1
Return type: status
YANG file: yangcli.yang

Command Parameters:

  • dir
    • type: string
    • usage: mandatory
    • default: none
    • The 'dir' string must contain a valid directory specification

Positive Response:

  • the new current working directory is printed

Negative Response:

  • an error message will be printed describing the error

Usage:


    yangcli> cd ~/modules
    Current working directory is /home/andy/modules
    yangcli> cd --dir=$YUMA_HOME
    Current working directory is /home/andy/swdev/yuma/trunk/netconf
    yangcli>

close-session

The close-session command is used to terminate the current NETCONF session. A NETCONF server should always accept this command if it is valid, and not reject it due to access control enforcement or if the server is in notification delivery mode.


close-session command


Command type: remote
Default parameter: none
Min parameters: 0
Max parameters: 0
Return type: status
YANG file: yuma-netconf.yang

Command Parameters:

  • none

Positive Response:

  • the session is terminated and the command prompt is changed to indicate idle mode

Negative Response:

  • an <rpc-error> message will be printed describing the error

Usage:

    yangcli andy@myserver> close-session
    RPC OK Reply 2 for session 10:
    yangcli> 


Reference:

  • RFC 4741, section 7.8

commit

The commit command is used to save the edits in the <candidate> database into the <running> database. If there are no edits it will have no effect.

commit command


Command type: remote
Default parameter: none
Min parameters: 0
Max parameters: 2
Return type: status
YANG file: yuma-netconf.yang
Capabilities needed: :candidate
Capabilities optional: :confirmed-commit

Command Parameters:

  • confirmed
    • type: empty
    • usage: optional
    • default: none
    • capabilities needed: :confirmed-commit
    • This parameter requests a confirmed commit procedure. The server will expect another commit command before the confirm-timeout time period expires.
  • confirm-timeout
    • type: uint32 (range: 1 .. max)
    • usage: optional
    • default: 600 seconds
    • capabilities needed: :confirmed-commit
    • This is the number of seconds to request before the timeout.The 'confirmed' leaf must also be present for this parameter to have any affect.
  • persist
    • type: string
    • usage: optional
    • persist ID used to start or extend the confirmed commit procedure
  • persist-id
    • type: string
    • usage: optional
    • persist ID used to conform a previously started the confirmed commit procedure

Positive Response:

  • the session is terminated and the command prompt is changed to indicate idle mode

Negative Response:

  • an <rpc-error> message will be printed describing the error

Usage:

    yangcli andy@myserver> commit
    RPC OK Reply 5 for session 10:
    yangcli andy@myserver>


Reference:

  • RFC 4741, section 8.3.4

connect

The connect command is used to start a session with a NETCONF server.

If there already is a NETCONF session active, then an error message will be printed and the command will not be executed.

connect command


Command type: remote
Default parameter: server
Min parameters: 3
Max parameters: 8
Return type: status
YANG file: yangcli.yang

Command Parameters:

  • server
    • type: inet:ip-address (string containing IP address or DNS name
    • usage: mandatory
    • default: previous server used, if any, will be presented as the default, but not used automatically
    • This parameter specifies the server address for the session.
  • password
    • type: string (ncx:password)
    • usage: mandatory
    • default: previous password used, if any, will be presented as the default, but not used automatically
    • This parameter specifies the password string to use to establish the session. It will not be echoed in parameter mode or saved in the command history buffer.
  • port
    • type: uint16
    • usage: optional
    • default: 830
    • This parameter specifies the TCP port number that should be used for the session.
  • timeout
    • type: uint32 (0 = no timeout, otherwise the number of seconds to wait)
    • usage: optional
    • default: set to the $$timeout system variable, default 30 seconds
    • This parameter specifies the number of seconds to wait for a response from the server before giving up. The session will not be dropped if a remote command times out, but any late response will be dropped. A value of zero means no timeout should be used, and yangcli will wait forever for a response.
  • user
    • type: string
    • usage: mandatory
    • default: previous user name used, if any, will be presented as the default, but not used automatically
    • This parameter specifies the user name to use for the session. This must be a valid user name on the NETCONF server.
  • protocols
    • type: bits (netconf1.0 netconf1.1)
    • usage: optional
    • default: --protocols configuration parameter setting
    • Specifies which NETCONF protocol versions to enable. Overrides –protocols configuration parameter.
  • private-key
    • type: string
    • usage: optional
    • default: --private-key configuration parameter setting
    • Specifies the SSH private key file to use. Overrides –private-key configuration parameter.
  • public-key
    • type: string
    • usage: optional
    • default: --public-key configuration parameter setting
    • Specifies the SSH public key file to use. Overrides –public-key configuration parameter.

Positive Response:

  • the session is started and the prompt changes to include the 'user@server' string.

Negative Response:

  • One or more error messages will be printed. Refer to the section on trouble-shooting NETCONF Session problems for more details.

Usage:


    yangcli> connect myserver user=andy password=yangrocks
    <startup screen printed>
    yangcli andy@myserver>

copy-config

The copy-config command is used to copy one entire NETCONF database to another location.

Not all possible parameter combinations will be supported by every server. In fact, the NETCONF protocol does not require any parameters to be supported unless the :startup or :url capabilities is supported by the server.


If the server supports the :startup capability, then it must support:


yangcli andy@myserver> copy-config source=running target=startup


This is the standard way to save a snapshot of the current running configuration in non-volatile storage, if the server has a separate startup database. If not, the server will automatically save any changes to the running configuration to non-volatile storage.


copy-config command


Command type: remote
Default parameter: none
Min parameters: 2
Max parameters: 3
Return type: status
YANG file: yuma-netconf.yang
Capabilities needed: none
Capabilities optional: :candidate:startup:url:with-defaults

Command Parameters:

  • source
    • type: container with 1 of N choice of leafs
    • usage: mandatory
    • default: none
    • This parameter specifies the name of the source database for the copy operation.
    • container contents: 1 of N:
      • candidate
        • type: empty
        • capabilities needed: :candidate
      • running
        • type: empty
        • capabilities needed: none
      • startup
        • type: empty
        • capabilities needed: startup
      • config:
        • type: container (in-line configuration data)
        • capabilities needed: none
      • url
        • type: yang:uri
        • capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter
        • To enter this parameter, the interactive mode must be used. The shorthand mode (source=url) cannot be used, since this parameter contains a string.
  • target
    • type: container with 1 of N choice of leafs
    • usage: mandatory
    • default: none
    • This parameter specifies the name of the target database for the copy operation.
    • container contents: 1 of N:
      • candidate
        • type: empty
        • capabilities needed: :candidate
      • running
        • type: empty
        • capabilities needed: :writable-running (still optional to implement)
          • netconfd does not support this mode
      • startup
        • type: empty
        • capabilities needed: startup
      • url
        • type: yang:uri
        • capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter.
        • To enter this parameter, the interactive mode must be used. The shorthand mode (target=url) cannot be used, since this parameter contains a string.
  • with-defaults
    • type: enumeration (none report-all report-all-tagged trim explicit)
    • usage: optional
    • default: none
    • capabilities needed: with-defaults
    • This parameter controls how nodes containing only default values are copied to the target database.

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy@myserver> copy-config source=candidate
    
    Enter a number of the selected case statement: 
      1: case candidate: 
           leaf candidate 
      2: case running: 
           leaf running 
      3: case startup: 
           leaf startup 
      4: case url: 
           leaf url 
    Enter choice number [1 - 4]: 
    yangcli andy@myserver:copy-config> 4
    Filling optional case /copy-config/input/target/config-source/url
    Enter string value for leaf <url>:
    yangcli andy@myserver:copy-config> [smb://configs/myconfig.xml file://configs/myconfig.xml]
    RPC OK Reply 12 for session 10:
    yangcli andy@myserver>

Reference:

  • RFC 4741, section 7.3

create

The create command is a high-level <edit-config> operation. It is used to create some new nodes in the default target database.

A target node is specified (in 1 of 2 ways), and then the data structure is filled in. Only mandatory nodes will be filled in unless the $$optional system variable is set to 'true'.

Refer to the fill command for more details on interactive mode data structure completion.


create command


Command type: remote
Default parameter: target
Min parameters: 1
Max parameters: 5
Return type: status
YANG file: yangcli.yang
Capabilities needed: :candidate or :writable-running

Command Parameters:

  • choice 'from' (not entered)
    • type: choice of case 'varref' or case 'from-cli'
    • usage: mandatory
    • default: none
    • This parameter specifies the where yangcli should get the data from, for the create operation. It is either a user variable or from interactive input at the command line.
      • varref
        • type: string
        • usage: mandatory
        • default: none
        • This parameter specifies the name of the user variable to use for the target of the create operation. The parameter must exist (e.g., created with the fill command) or an error message will be printed.
      • case from-cli (not entered)
        • target
          • type: string
          • usage: mandatory
          • default: none
          • This parameter specifies the database target node of the create operation. This is an ncx:schema-instance string, so any instance identifier, or absolute path expression, or something in between, is accepted.
        • urltarget
          • type: string
          • usage: optional
          • default: none
          • This parameter specifies the database target node of the create operation. This is an UrlPath string.
        • optional
          • type: empty
          • usage: optional
          • default: controlled by $$optional system variable
          • This parameter controls whether optional nodes within the target will be filled in. It can be used to override the $$optional system variable, when it is set to 'false'.
        • value
          • type: anyxml
          • usage: mandatory
          • default: none
          • This parameter specifies the value that should be used for the contents of the target parameter. If it is entered, then the interactive mode prompting for missing parameters will be skipped, if this parameter is complete (or all mandatory nodes present if the $$optional system variable is 'false'). For example, if the target is a leaf, then specifying this parameter will always cause the interactive prompt mode to be skipped.
  • timeout
    • type: uint32 (0 = no timeout, otherwise the number of seconds to wait)
    • usage: optional
    • default: set to the $$timeout system variable, default 30 seconds
    • This parameter specifies the number of seconds to wait for a response from the server before giving up. The session will not be dropped if a remote command times out, but any late response will be dropped. A value of zero means no timeout should be used, and yangcli will wait forever for a response.

System Variables:

  • $$default-operation
    • The <default-operation> parameter for the <edit-config> operation will be derived from this variable.
  • $$error-option
    • The <error-option> parameter for the <edit-config> operation will be derived from this variable
  • $$test-option
    • The <test-option> parameter for the <edit-config> operation will be derived from this variable

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy@myserver> create varref=myvar
    RPC OK Reply 10 for session 10:
    yangcli andy@myserver> create /nacm/rules/data-rule \
    (user will be prompted to fill in the data-rule contents)
    RPC OK Reply 11 for session 10:
    yangcli andy@myserver> create \
        target=/nacm/rules/data-rule[name='test rule']/comment \
        value=”this test rule is temporary. Do not remove!”
    (no user prompting; <edit-config> request sent right away)
    RPC OK Reply 12 for session 10:
    yangcli andy@myserver>


Reference:

  • RFC 4741, section 7.2

create-subscription

The create-subscription command is used to start receiving notifications from the server.

The :notification capability must be supported by the server to use this command.

Unless the :interleave capability is also supported by the server, then only the close-session command can be used while notifications are being delivered.


create-subscription command


Command type: remote
Default parameter: none
Min parameters: 0
Max parameters: 4
Return type: status
YANG file: notifications.yang
Capabilities needed: :notification
Capabilities optional: :interleave

Command Parameters:

  • stream
    • type: string
    • usage: optional
    • default: 'NETCONF'
    • This parameter specifies the name of the notification stream for this subscription request. Only the 'NETCONF' stream is mandatory to implement. Any other stream contains vendor-specific content, and may not be fully supported, depending on the stream encoding.
  • filter
    • type: anyxml (same as the <get> or <get-config> filter parameter)
    • usage: optional
    • default: none
    • This parameter specifies a boolean filter that should be applied to the stream. This is the same format as the standard <filter> element in RFC 4741, except that instead of creating a subset of the database for an <rpc-reply> PDU, the filter is used as a boolean test to send or drop each notification delivered from the server.
      • If any nodes are left in the 'test response', the server will send the entire notification.
      • If the result is empty after the filter is applied to the “test response”, then the server will not send the notification at all.
      • It is possible that access control will either cause the a notification to be dropped entirely, or may be pruned and still delivered. The standard is not clear on this topic. The netconfd server will prune any unauthorized payload from an eventType, but if the <eventType> itself is unauthorized, the entire notification will be dropped.
  • startTime
    • type: yang:date-and-time
    • usage: optional
    • default: none
    • This parameter causes any matching replay notifications to be delivered by the server, if notification replay is supported by the server. A notification will match if its <eventTime> value is greater or equal to the value of this parameter.
    • After all the replay notifications are delivered, the server will send a <replayComplete> eventType, indicating there are no more replay notifications that match the subscription request.
  • stopTime
    • type: yang:date-and-time
    • usage: optional (not allowed unless startTime is also present)
    • default: none
    • This parameter causes any matching replay notifications to be delivered by the server, if notification replay is supported by the server. A notification will match if its <eventTime> value is less than the value of this parameter.
      • This parameter must be greater than the startTime parameter, or an error will be returned by the server.
      • If this parameter is used, then the entire subscription will stop after this specified time, even if it is in the future. The <notificationComplete> eventType will be sent by the server when this event occurs.
      • If this parameter is not used (but startTime is used), then the server will continue to deliver 'live' notifications after the <replayComplete> eventType is sent by the server.

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy@myserver> create-subscription
    RPC OK Reply 13 for session 10:
    yangcli andy@myserver> create-subscription \
        startTime=2009-01-01T00:00:00Z
    RPC OK Reply 14 for session 10:
    yangcli andy@myserver> 


Reference:

  • RFC 5277, section 2.1.1

delete

The delete command is a high-level <edit-config> operation. It is used to delete an existing subtree in the default target database.

A target node is specified, and then any missing key leafs (if any) within the data structure are filled in. If the target is a leaf-list, then the user will be prompted for the value of the leaf-list node to be deleted.

Refer to the fill command for more details on interactive mode data structure completion.


delete command


Command type: remote
Default parameter: target
Min parameters: 1
Max parameters: 1
Return type: status
YANG file: yangcli.yang
Capabilities needed: :candidate or :writable-running

Command Parameters:

  • target
    • type: string
    • usage: optional (urltarget or target must be present)
    • default: none
    • This parameter specifies the database target node of the delete operation. This is an ncx:schema-instance string, so any instance identifier, or absolute path expression, or something in between, is accepted.
  • urltarget
          • type: string
          • usage: optional
          • default: none
          • This parameter specifies the database target node of the delete operation. This is an UrlPath string.

System Variables:

  • $$default-operation
    • The <default-operation> parameter for the <edit-config> operation will be derived from this variable.
  • $$error-option
    • The <error-option> parameter for the <edit-config> operation will be derived from this variable
  • $$optional
    • Controls whether optional descendant nodes will be filled into the target parameter contents
  • $$test-option
    • The <test-option> parameter for the <edit-config> operation will be derived from this variable

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy@myserver> delete /nacm/rules/data-rule \
    (user will be prompted to fill in the data-rule 'name' key leaf)
    RPC OK Reply 15 for session 10:
    yangcli andy@myserver> delete \
        target=/nacm/rules/data-rule[name='test rule']/comment
    (no user prompting; <edit-config> request sent right away)
    RPC OK Reply 16 for session 10:
    yangcli


Reference:

  • RFC 4741, section 7.2

delete-config

The delete-config command is used to delete an entire NETCONF database.

Not all possible target parameter values will be supported by every server. In fact, the NETCONF protocol does not require that any database be supported by this operation.

If the server supports the :url capability, then it may support deletion of local file databases in this manner.:


delete-config command


Command type: remote
Default parameter: none
Min parameters: 1
Max parameters: 1
Return type: status
YANG file: yuma-netconf.yang
Capabilities needed: none
Capabilities optional: :candidate:startup:url

Command Parameters:

  • target
    • type: container with 1 of N choice of leafs
    • usage: mandatory
    • default: none
    • This parameter specifies the name of the target database for the delete operation.
    • container contents: 1 of N:
      • startup
        • type: empty
        • capabilities needed: startup
        • a server may support this target
      • url
        • type: yang:uri
        • capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter.
        • To enter this parameter, the interactive mode must be used. The shorthand mode (target=url) cannot be used, since this parameter contains a string.
        • a server may support this parameter

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy@myserver> delete-config target=startup
    RPC OK Reply 17 for session 10:
    yangcli andy@myserver> 


Reference:

  • RFC 4741, section 7.4

discard-changes

The discard-changes command is used to delete any edits that exist in the <candidate> database, on the NETCONF server. The server will only accept this command if the :candidate capability is supported. If the <candidate> database is locked by another session, then this request will fail with an 'in-use' error.


discard-changes command


Command type: remote
Default parameter: none
Min parameters: 0
Max parameters: 0
Return type: status
YANG file: yuma-netconf.yang
Capabilities needed: :candidate

Command Parameters: none

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy@myserver> discard-changes
    RPC OK Reply 18 for session 10:
    yangcli andy@myserver> 


Reference:

  • RFC 4741, section 8.3.4.2

edit-config

The edit-config command allows a subset of a NETCONF database on the server to be changed.

If the server supports the :url capability, then it may support editing of local file databases.

If the server supports the :candidate capability, then it will allow edits to the <candidate> database.

If the server supports the :writable-running capability, it will support edits to the <running> database.

It is not likely that a server will support the <candidate> and <running> database as targets at the same time, since changes to the <running> configuration would not be reflected in the <candidate> database, while it was being edited by a different session.


edit-config command


Command type: remote
Default parameter: none
Min parameters: 2
Max parameters: 5
Return type: status
YANG file: yuma-netconf.yang
Capabilities needed: :candidate or :writable-running
Capabilities optional: :url:rollback-on-error:validate

Command Parameters:

  • default-operation
    • type: enumeration (merge replace none)
    • usage: optional
    • default: merge
    • This parameter specifies which edit operation will be in effect at the start of the operation, before any nc:operation attribute is found.
      • The high-level edit operations provided by yangcli will set this parameter to 'none'. This is the safest value, since only subtrees that have an explicit nc:operation attribute in effect can possibly be altered by the command.
      • If the value is 'merge', then any missing nodes in the database will be automatically created as needed.
      • If the value is 'replace', then the target database will be pruned to match the edits, as needed. Only the data from the config parameter will remain if this value is used. (Use with extreme caution).
  • error-option
    • type: enumeration (stop-on-error continue-on-error rollback-on-error
    • usage: optional
    • default: stop-on-error
    • This parameter specifies what the server should do when an error is encountered.
      • The rollback-on-error value is only allowed if the :rollback-on-error capability is supported by the server.
      • The standard is not clear what continue-on-error really means. It is suggested that this value not be used. It is possible that the server will validate all input parameters before making any changes, no matter how this parameter is set.
  • choice edit-content (not entered)
    • config
      • type: anyxml
      • usage: mandatory
      • default: none
      • This parameter specifies the subset of the database that should be changed. This is the most common way to edit a NETCONF server database, since it is mandatory to support by all agents.
    • url
      • type: yang:uri
      • capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter.
      • To enter this parameter, the interactive mode must be used. The shorthand mode (target=url) cannot be used, since this parameter contains a string.
  • target
    • type: container with 1 of N choice of leafs
    • usage: mandatory
    • default: none
    • This parameter specifies the name of the target database for the edit operation.
    • container contents: choice: 1 of N:
      • candidate
        • type: empty
        • capabilities needed: :candidate
      • running
        • type: empty
        • capabilities needed: :writable-running
  • test-option
    • type: enumeration (test-then-set set test-only)
    • usage: optional
    • default: set
    • This parameter specifies how the server should test the edit-content parameter before using it.
      • If the value is 'set' (normal case), the server will apply validation tests as needed for the individual data structures being edited
      • The value 'test-then-set' is only allowed if the :validate capability is supported by the server. The server will test if the entire database will be valid after the edits are made, before making any changes to the candidate configuration.
        • This mode is very resource intensive. Set this parameter to 'set' for better performance, and run the validation tests manually with the validate command.
      • The value 'test-only' is not supported by all agents. It will be in the next version of the NETCONF protocol, but is non-standard at this time.
        • Use this value to check if a specific edit should succeed or not, allowing errors to be corrected before altering the database for real.

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy@myserver> edit-config target=candidate \
        default-operation=merge \
        test-option=test \
        error-option=stop-on-error \
        config=@myconfig.xml
    RPC OK Reply 19 for session 10:
    yangcli andy@myserver> 


Reference:

  • RFC 4741, section 7.2

elif

The elif command is used to define a conditional command block after an if command.

This command must be entered within the same script as the if command, when used within a script. It can be used zero or more times within an if command sequence.

The expr parameter is used to specify the XPath expression to test if the elif conditional block is true or false. A false block will be skipped and a true block will be executed. The command prompt will contain the string '[F]' while inside a false conditional block in interactive mode. This expression string should be entered with quotes to avoid misinterpreting any whitespace or special characters.

The docroot parameter (if present) specifies the XML document that the 'expr' parameter should be evaluated against. This is optional, since only XPath path expressions need to refer to a document.

Even if the 'expr' expression is true, the conditional block will only be executed if no conditional block in the if command sequence has already been executed.


if command

....

[elif command]

....

[elif-command]

...

[else command]

...

end command


elif command


Command type: local
Default parameter: expr
Min parameters: 1
Max parameters: 2
Return type: status
YANG file: yangcli.yang

Command Parameters:

  • expr
    • type: XPath expression string
    • usage: mandatory
    • default: none
    • This parameter specifies the XPath expression to determine if the following commands are within a true or false conditional block.
  • docroot
    • type: anyxml
    • usage: optional (typically a variable reference is used)
    • default: none
    • This parameter specifies the XML document that should be used if the expr XPath expression references any path nodes.

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
    • elif without a previous if command will cause an error
    • elif following an 'else' command will cause an error
    • invalid XPath expression or invalid docroot reference will cause an error

Usage:


    yangcli andy@myserver> elif expr='$x > 4'
    yangcli andy@myserver> 


else

The else command is used to define a final conditional command block after an if command.

This command must be entered within the same script as the if command, when used within a script. It can be used zero or one time within an if command sequence.

The conditional command block following the else command will only be executed if no conditional block has already been executed in the same if command sequence.


if command

....

[elif command]

....

[elif-command]

...

[else command]

...

end command


else command


Command type: local
Default parameter: none
Min parameters: 0
Max parameters: 0
Return type: status
YANG file: yangcli.yang

Command Parameters: none

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
    • else without a previous if command will cause an error

Usage:


    yangcli andy@myserver> else
    yangcli andy@myserver>    


end

The end command is used to terminate a conditional command block after an if command block, or after a 'while' command.

This command must be entered within the same script as the if or while command, when used within a script.


if command

....

[elif command]

....

[elif-command]

...

[else command]

...

end command


while command

....

end command


end command


Command type: local
Default parameter: none
Min parameters: 0
Max parameters: 0
Return type: status
YANG file: yangcli.yang

Command Parameters: none

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
    • else without a previous if command will cause an error

Usage:

    yangcli andy@myserver> end
    yangcli andy@myserver>


eval

The eval command is used to evaluate an XPath expression..

The expr parameter is used to specify the XPath expression to evaluate. This expression string should be entered with quotes to avoid misinterpreting any whitespace or special characters.

The docroot parameter (if present) specifies the XML document that the 'expr' parameter should be evaluated against. This is optional, since only XPath path expressions need to refer to a document.


eval command


Command type: local
Default parameter: expr
Min parameters: 1
Max parameters: 2
Return type: data
YANG file: yangcli.yang

Command Parameters:

  • expr
    • type: XPath expression string
    • usage: mandatory
    • default: none
    • This parameter specifies the XPath expression to determine if the following commands are within a true or false conditional block.
  • docroot
    • type: anyxml
    • usage: optional (typically a variable reference is used)
    • default: none
    • This parameter specifies the XML document that should be used if the expr XPath expression references any path nodes.

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
    • elif without a previous if command will cause an error
    • elif following an 'else' command will cause an error
    • invalid XPath expression or invalid docroot reference will cause an error

Output:

  • data
    • type: anyxml
    • This element will contain the result from the XPath expression. A node-set result will produce a complex element return value, and all other XPath result types will produce a string return value.

Usage:

    yangcli andy@myserver> $x = eval '$x + 1'
    yangcli andy@myserver> $sysname = eval '//sysName' docroot=$backup


eventlog

The eventlog command is used to view or clear all or part of the notification event log. This log will be empty if no well-formed notifications have been received from any server.

The eventlog show command is used to display some event log entries.

The eventlog clear command is used to delete some event log entries.

If no parameters are entered, it is the same as entering 'eventlog show=-1'.

The event log is not automatically emptied when a session terminates, in case the session was dropped unexpectedly. New entries will be appended to the event log as new sessions and/or subscriptions are started.


eventlog command


Command type: local
Default parameter: show
Min parameters: 0
Max parameters: 3
Return type: status
YANG file: yangcli.yang

Command Parameters:

  • choice eventlog-action (not entered):
    • type: choice of case 'show-case' or leaf 'clear'
    • usage: optional
    • default: show=-1 is used as the default if nothing entered
    • This parameter specifies the event log action that should be performed.
      • clear
        • type: int32 (-1 to clear all entries; 1 to max to delete N entries)
        • usage: optional
        • default: -1
        • This parameter specifies the maximum number of event log entries to be deleted, starting from the oldest entries in the event log. The value -1 means delete all the entries. Otherwise the value must be greater than zero, and up to that many entries will be deleted.
      • case show-case (not entered)
        • choice help-mode (not entered) (default choice is 'normal')
          • brief
            • type: empty
            • usage: optional
            • default: none
            • This parameter specifies that brief documentation mode should be used. The event log index, sequence ID, and <eventType> will be displayed in this mode.
          • normal
            • type: empty
            • usage: optional
            • default: none
            • This parameter specifies that normal documentation mode should be used. The event log index, <eventTime>, sequence ID, and <eventType> will be displayed in this mode.
          • full
            • type: empty
            • usage: optional
            • default: none
            • This parameter specifies that full documentation mode should be used. The event log index, <eventTime>, sequence ID, and <eventType> will be displayed in this mode. In addition, the entire contents of the notification PDU will be displayed, using the current $$display-mode setting.
        • show
          • type: int32 (-1 for all, 1 to max for N entries)
          • usage: optional
          • default: -1
          • This parameter specifies the number of event log entries that should be displayed. The value '-1' indicates all the entries should be displayed. Otherwise, the value must be greater than zero, indicating the number of entries to display.
        • start
          • type: uint32
          • usage: optional
          • default: 0
          • This parameter specifies the start position in the event log to start displaying entries. The first entry is number zero. Each time the event log is cleared, the numbering restarts.

System Variables:

  • $$display-mode
    • The log entries printed when help-mode='full' are formatted according to the current value of this system variable.

Positive Response:

  • the event log entries are printed or cleared as requested

Negative Response:

  • An error message will be printed if errors are detected.

Usage:


    yangcli andy@myserver> eventlog show=5 start=3
     [3]     [2009-07-10T02:21:10Z] (4)    <sysSessionStart> 
     [4]     [2009-07-10T02:23:14Z] (5)    <sysSessionEnd> 
     [5]     [2009-07-10T02:23:23Z] (6)    <sysSessionStart> 
     [6]     [2009-07-10T02:24:52Z] (7)    <sysConfigChange> 
     [7]     [2009-07-10T02:24:57Z] (8)    <sysSessionEnd> 
    yangcli andy@myserver>

fill

The fill command is used to create a user variable for reuse in other commands.

It is used in an assignment statement to create a variable from various sources.

If it is not used in an assignment statement, then the result will not be saved, so the command will have no effect in this case.

The value contents will mirror the subtree within the NETCONF database indicated by the target parameter. If not completely provided, then missing descendant nodes will be filled in interactively, by prompting for each missing node.


fill command


Command type: local
Default parameter: target
Min parameters: 2
Max parameters: 3
Return type: data
YANG file: yangcli.yang

Command Parameters:

  • optional
    • type: empty
    • usage: optional
    • default: controlled by $$optional system variable
    • This parameter controls whether optional nodes within the target will be filled in. It can be used to override the $$optional system variable, when it is set to 'false'.
  • target
    • type: string
    • usage: mandatory
    • default: none
    • This parameter specifies the database target node of the create operation. This is an ncx:schema-instance string, so any instance identifier, or absolute path expression, or something in between, is accepted.
  • value
    • type: anyxml
    • usage: mandatory
    • default: none
    • This parameter specifies the content to use for the filled variable.
      • If this parameter is not entered, then the user will be prompted interactively to fill in the target data structure.
      • If a string is entered, then the target value being filled must be a leaf or leaf-list.
      • If a variable reference is entered, then it will be used as the content, if the target value being filled is a leaf or a leaf-list.
      • If the target value is a complex object, then the referenced variable must also be a complex object of the same type.
      • An error will be reported if the global or local variable does not reference the same object type as the target parameter.

System Variables:

  • $$optional
    • Controls whether optional descendant nodes will be filled into the target parameter contents

Positive Response:

  • OK

Negative Response:

  • An error message will be printed if errors are detected.

Output:

  • data
    • type: anyxml
    • The data structure will mirror the requested target object.
    • The variable (if any) will retain the target object name and namespace so it can be used in other operations more easily. In the example below, the $my_interface local variable will have the module name 'interfaces' and name 'interface', when used in other commands such as create or merge.

Usage:

    yangcli> $my-interface = fill \
        target=/interfaces/interface optional
        (user will be prompted to fill in all fields
         of the <interface> element)
       OK
    yangcli>

get

The get command is used to retrieve data from the server.


get command


Command type: remote
Default parameter: none
Min parameters: 0
Max parameters: 2
Return type: data
YANG file: yuma-netconf.yang

Command Parameters:

  • filter
    • type: anyxml
    • usage: optional
    • default: none
    • This parameter specifies a boolean filter that should be applied to the stream. Any data in the <running> database (or non-config data) that does not match the filter will be left out of the <rpc-reply> response.
      • If no filter is used, the server will return the entire <running> database and all non-config data as well. This could be a lot of data, depending on the server.
      • If the result is empty after the filter is applied to the available data, then the server will send an empty <data> element in the <rpc-reply>
      • It is possible that access control will cause the <rpc-reply> to be pruned. The netconfd server will silently prune any unauthorized payload from the <rpc-reply>.
  • with-defaults
    • type: enumeration (none report-all report-all-tagged trim explicit)
    • usage: optional
    • default: none
    • capabilities needed: with-defaults
    • This parameter controls how nodes containing only default values are returned in the <rpc-reply>.

Positive Response:

  • the server returns <data>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Output:

  • data
    • type: anyxml
    • This element will contain the requested data from the <running> database, or non-config data from the server instrumentation.

Usage:

    yangcli andy@myserver> get
    RPC Data Reply 20 for session 10:
    rpc-reply {
        data {
           …. data returned by the server
        }
    }
    yangcli andy@myserver> get filter=@myfilter.xml
    RPC Data Reply 21 for session 10:
    rpc-reply {
        data {
        }
    }
    (the previous response will occur if the filter did not
     match anything or the server access control filtered the
     entire response)
    yangcli andy@myserver> 

Reference:

  • RFC 4741, section 7.7

get-config

The get-config command is used to retrieve configuration data from the server.


get-config command


Command type: remote
Default parameter: none
Min parameters: 1
Max parameters: 3
Return type: data
YANG file: yuma-netconf.yang

Command Parameters:

  • filter
    • type: anyxml
    • usage: optional
    • default: none
    • This parameter specifies a boolean filter that should be applied to the stream. Any data in the <running> database (or non-config data) that does not match the filter will be left out of the <rpc-reply> response.
      • If no filter is used, the server will return the entire <running> database and all non-config data as well. This could be a lot of data, depending on the server.
      • If the result is empty after the filter is applied to the available data, then the server will send an empty <data> element in the <rpc-reply>
      • It is possible that access control will cause the <rpc-reply> to be pruned. The netconfd server will silently prune any unauthorized payload from the <rpc-reply>.
  • source
    • type: container with 1 of N choice of leafs
    • usage: mandatory
    • default: none
    • This parameter specifies the name of the source database for the retrieval operation.
    • container contents: 1 of N:
      • candidate
        • type: empty
        • capabilities needed: :candidate
      • running
        • type: empty
        • capabilities needed: none
      • startup
        • type: empty
        • capabilities needed: startup
      • url
        • type: yang:uri
        • capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter
        • To enter this parameter, the interactive mode must be used. The shorthand mode (source=url) cannot be used, since this parameter contains a string.
  • with-defaults
    • type: enumeration (none report-all report-all-tagged trim explicit)
    • usage: optional
    • default: none
    • capabilities needed: with-defaults
    • This parameter controls how nodes containing only default values are returned in the <rpc-reply>.

Positive Response:

  • the server returns <data>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Output:

  • data
    • type: anyxml
    • This element will contain the requested data from the source database.

Usage:


    yangcli andy@myserver> $my-config = get-config target=running
    RPC Data Reply 22 for session 10:
    rpc-reply {
        data {
           …. entire database returned by the server
        }
    }
    yangcli andy@myserver> @saved-config.xml = get-config \
        filter=@myfilter.xml  \
        target=candidate
    rpc-reply {
        data {
        … data requested by the filter
        }
    }
    yangcli andy@myserver>


Reference:

  • RFC 4741, section 7.1

get-locks

The get-locks command is a high-level wrapper for the <lock> operation. It is used to lock all the databases (<running> plus <candidate> and/or <startup> if they exist). If all the locks cannot be obtained, then release all the locks that were obtained (all-or-nothing).

The entire time to wait for a lock in use is set with the lock-timeout parameter.

The retry-interval parameter is used when the <lock> operation fails with a 'lock-denied' error-tag, because some other session has the lock.

If the <candidate> cannot be locked for another reason, a <discard-changes> operation will be attempted to clear any leftover edits.

Normally, the errors received while attempting to acquire locks are not printed to the log, like normal commands. Instead, if $$log-level system parameter is set to 'debug2' or 'debug3', then these messages will be printed.


get-locks command


Command type: remote
Default parameter: none
Min parameters: 0
Max parameters: 3
Return type: status
YANG file: yangcli.yang

Command Parameters:

  • lock-timeout
    • type: uint32 (seconds)
    • usage: optional
    • default: 120 seconds (2 minutes)
    • This parameter specifies how long to wait for a lock that is in use by another session.
  • retry-interval
    • type: uint32 (seconds)
    • usage: optional
    • default: 2 seconds
    • This parameter specifies how long to wait to retry for a lock.
  • cleanup
    • type:boolean
    • usage: optional
    • default: true
    • This parameter controls whether the 'release-locks' command will be called automatically if the entire set of required locks cannot be granted.

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy@myserver> get-locks lock-timeout=0
    
    Sending <lock> operations for get-locks... 
    RPC OK Reply 6 for session 23: 
    RPC OK Reply 7 for session 23: 
    get-locks finished OK 
    yangcli andy@myserver> 

get-my-session

The get-my-session command is used to retrieve the session customization parameters from the server. It is only supported by the netconfd server.

The session indent amount, session line size, and default behavior for the with-defaults parameter can be controlled at this time.


get-my-session command


Command type: remote
Default parameter: none
Min parameters: 0
Max parameters: 0
Return type: data
YANG file: mysession.yang
Capabilities needed: none

Command Parameters:

  • none

Positive Response:

  • the server returns <indent>, <linesize>, and <with-defaults> elements

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Output:

  • indent
    • type: uint32 (range 0 to 9)
  • linesize
    • type: uint32
    • This parameter specifies the desired line length for the session.
  • with-defaults
    • type: enumeration (none report-all trim explicit)
    • This parameter specifies the desired default with-defaults filtering behavior for the session.
    yangcli andy@myserver> get-my-session
    RPC Data Reply 25 for session 10:
    rpc-reply {
        data {
          indent 3
          linesize 72
          with-defaults report-all
        }
    }
    yangcli andy@myserver> 

get-schema

The get-schema command is used to retrieve data model definition files from the server. This is part of the NETCONF monitoring draft. The server must support the :schema-retrieval capability to use this command.

If the server reports a module or module version that yangcli cannot find in its local module library, then an error message will be printed. The get-schema command can then be used to retrieve the missing module from the server.

The ietf-netconf-monitoring.yang module includes a list of the schema supported by the server, which can be retrieved from a server that supports this module, such as netconfd.


    yangcli andy@myserver> sget /netconf-state/schemas


The preceding command will return a <schemas> container with several <schema> child nodes. One example entry is shown below:


    schemas {
        schema system 2009-06-04 YANG { 
        identifier system 
        version 2009-06-04 
        format YANG 
        namespace http://netconfcentral.org/ns/yuma-system 
        location NETCONF 
        }
    }


The <identifier>, <version> and <format> leafs can be used as the corresponding parameter values for the get-schema command. See the example below for more details.


get-schema command


Command type: remote
Default parameter: none
Min parameters: 3
Max parameters: 3
Return type: data
YANG file: ietf-netconf-monitoring.yang
Capabilities needed: :schema-retrieval

Command Parameters:

  • identifier
    • type: string
    • usage: mandatory
    • default: none
    • This parameter specifies the name of the module to retrieve.
      • Do not use any path specification of file extension; just the module name is entered.
      • The name is case-sensitive, and must be specified exactly as defined.
  • version
    • type: string
    • usage: mandatory
    • default: none
    • This parameter specifies the version of the module to retrieve.
      • For YANG modules, this will be the most recent revision date string defined in a module revision statement.
      • If any version is acceptable, or if the specific version is not known, then use the empty string.
  • format
    • type: enumeration (XSD YANG YIN RNG)
    • usage: mandatory
    • default: none
    • This parameter specifies the format of the module to be retrieved.
      • XSD: W3C REC REC-xmlschema-1-20041028
      • YANG: RFC 6020
      • YIN: RFC 6020
      • RNG: ISO/IEC 19757-2
      • netconfd only supports the YANG and YIN formats

Positive Response:

  • the server returns <data>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Output:

  • data
    • type: anyxml
    • yangcli will strip off this XML container if the command result is being saved to a text file. Only the YANG contents will be saved instead.

Usage:


    yangcli andy@myserver> @notifications.yang = get-schema \
        identifier=notifications \
        version=2009-06-04 \
        format=YANG
    RPC Data Reply 24 for session 10:
    rpc-reply {
        data {
           …. entire notifications.yang contents
        }
    }
    (after retrieval, the module can be loaded locally
     with the mgrload command)
    yangcli andy@myserver> mgrload notificications.yang
       OK
    yangcli andy@myserver> 


Reference:

  • draft-ietf-netconf-monitoring-06.txt

help

The help command is used to print documentation to STDOUT.

If no session is active, then only help for the local commands and the standard NETCONF commands will be available.

If a NETCONF session is active, then the documentation shown will attempt to exactly match the capabilities of the server.

If additional (i.e., augment generated) parameters are available, then they will be shown in the command output. If the server does not implement some parameters (e.g., feature not supported) then these parameters will not be shown in the command output.

If the server has modified an object with deviation statements, then the altered object will be shown.

The ncx:hidden extension suppresses the help command. If this extension is present in the YANG definition associated with the request, then no help will be available for that object or command.


help command


Command type: local
Default parameter: command
Min parameters: 3
Max parameters: 3
Return type: data
YANG file: ietf-netconf-monitoring.yang
Capabilities needed: :schema-retrieval

Command Parameters:

  • choice helptype (not entered)
    • command
      • type: string
      • usage: mandatory
      • default: none
      • This parameter specifies the name of the command for which documentation is requested
    • commands
      • type: empty
      • usage: mandatory
      • default: none
      • This parameter will request documentation for all available commands
    • notification
      • type: string
      • usage: mandatory
      • default: none
      • This parameter specifies the name of the notification for which documentation is requested
    • object
      • type: string
      • usage: mandatory
      • default: none
      • This parameter specifies the name of the NETCONF database object for which documentation is requested.
        • Only top level objects are supported by this command.
        • Documentation for the entire object subtree will be printed, if the object is a container, choice, or list.
        • Documentation for nested objects is only available in parameter mode, using the escape commands for help ('?') and full help ('??')
    • type
      • type: string
      • usage: mandatory
      • default: none
      • This parameter specifies the name of the YANG typedef for which documentation is requested
      • Only top-level typedefs are supported by this command. Local typedefs within groupings, containers, or lists are not exportable in YANG.
  • choice help-mode (not entered) (default choice is 'normal')
    • brief
      • type: empty
      • usage: optional
      • default: none
      • This parameter specifies that brief documentation mode should be used.
    • normal
      • type: empty
      • usage: optional
      • default: none
      • This parameter specifies that normal documentation mode should be used.
    • full
      • type: empty
      • usage: optional
      • default: none
      • This parameter specifies that full documentation mode should be used.

Positive Response:

  • the server prints the requested help text

Negative Response:

  • An error message will be printed if errors are detected.

Usage:


yangcli> help help full 
help 
   Print the yangcli help text 
   input 
      default parameter: command 
      choice helptype 
         leaf command [NcxIdentifier] 
            Show help for the specified command, 
            also called an RPC method 
         leaf commands [empty] 
            Show info for all local commands 
         leaf notification [NcxIdentifier] 
            Show help for the specified notification 
         leaf object [NcxIdentifier] 
            Show help for the specified object 
         leaf type [NcxIdentifier] 
            Show help for the specified type 
      choice help-mode 
         leaf brief [empty] 
            Show brief help text 
         leaf normal [empty] 
            Show normal help text 
         leaf full [empty] 
            Show full help text 
yangcli andy@myserver> help notification sysConfigChange 
notification sysConfigChange 
   Generated when the <running> configuration is changed. 
   leaf userName [string] 
   leaf sessionId [SessionId] 
      range: 1..max 
   leaf remoteHost [ip-address] 
   leaf target [string] 
   leaf operation [EditOperationType] [d:merge] 
      enum values: merge replace create delete 
yangcli andy@svnserver> 

history

The history command is used to show, clear, load, or save the command line history buffer.

Use the recall command to recall a previously executed command line, after getting the line number from the history show command.

All lines entered will be saved in the history buffer except an ncx:password value entered in parameter mode.

When yangcli starts, the command line history buffer is empty. If a history file was previously stored with the history save command, then it can be recalled into the buffer with the history load command.

The history clear command is used to delete the entire command line history buffer.

The numbering sequence for commands, starts from zero and keeps incremented until the program exits. If the history buffer is cleared, then the number sequence will continue, not start over at zero.


history command


Command type: local
Default parameter: show
Min parameters: 0
Max parameters: 2
Return type: data
YANG file: yangcli.yang

Command Parameters:

  • choice history-action (not entered)
    • clear
      • type: empty
      • usage: optional
      • default: none
      • This parameter specifies that the history buffer should be cleared. Unless the contents have been saved with the history save command, there is no way to recover the cleared buffer contents after this command is executed.
    • load
      • type: string
      • usage: optional
      • default: $HOME/.yangcli_history
      • This parameter specifies a command history file, and causes the current command line history contents to be loaded from that file.
      • Special processing for this command allows the history file to be omitted in idle mode, even though the load parameter is not type 'empty'.


        yangcli> history load
          same as:
        yangcli> history load=$HOME/.yangcli_history
    • save
      • type: string
      • usage: optional
      • default: $HOME/.yangcli_history
      • This parameter specifies a command history file, and causes the current command line history contents to be saved to that file.
      • Special processing for this command allows the history file to be omitted in idle mode, even though the save parameter is not type 'empty'.


        yangcli> history save
           same as:
         yangcli> history save=$HOME/.yangcli_history
    • show
      • type: int32 (-1 for all entries; 1..max for N entries)
      • usage: optional
      • default: -1
      • This parameter specifies the maximum number of history entries to show.
        • If no case is selected from this choice, then the command 'history show=-1' will be used by default.
        • The help-mode choice parameter is only used with the history show command.
          • If the --brief or --normal modes are selected the the format will include the command number and the command line.
          • If the --full mode is selected, then the command data and time will also be printed.
  • choice help-mode (not entered)This parameter is ignored unless the history show command is entered.
    • brief
      • type: empty
      • usage: optional
      • default: none
      • This parameter specifies that brief documentation mode should be used.
    • normal
      • type: empty
      • usage: optional
      • default: none
      • This parameter specifies that normal documentation mode should be used.
    • full
      • type: empty
      • usage: optional
      • default: none
      • This parameter specifies that full documentation mode should be used.

Positive Response:

  • the requested history entries will be printed for the history show command
  • all other commands will return OK

Negative Response:

  • An error message will be printed if errors are detected.

Usage:


    yangcli> history show=3 full
      [27]    2009-07-04 09:25:34 sget /system --nofill
      [28]    2009-07-04 09:34:17 @myconfig = get-config source=running 
      [29]    2009-07-04 09:43:54 history show=3 full 
    yangcli> history save=~/my-temp-history-file
       OK
    yangcli>

if

The if command is used to start a conditional command block.

The expr parameter is used to specify the XPath expression to test if the if conditional block is true or false. A false block will be skipped and a true block will be executed. The command prompt will contain the string '[F]' while inside a false conditional block in interactive mode. This expression string should be entered with quotes to avoid misinterpreting any whitespace or special characters.

The docroot parameter (if present) specifies the XML document that the 'expr' parameter should be evaluated against. This is optional, since only XPath path expressions need to refer to a document.

If the 'expr' expression is true, the conditional block will be executed, and no further conditional blocks within the same if command sequence will be executed.


if command

....

[elif command]

....

[elif-command]

...

[else command]

...

end command


if command


Command type: local
Default parameter: expr
Min parameters: 1
Max parameters: 2
Return type: status
YANG file: yangcli.yang

Command Parameters:

  • expr
    • type: XPath expression string
    • usage: mandatory
    • default: none
    • This parameter specifies the XPath expression to determine if the following commands are within a true or false conditional block.
  • docroot
    • type: anyxml
    • usage: optional (typically a variable reference is used)
    • default: none
    • This parameter specifies the XML document that should be used if the expr XPath expression references any path nodes.

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
    • invalid XPath expression or invalid docroot reference will cause an error

Usage:


    yangcli andy@myserver> if "$sysname = 'localhost'"
    yangcli andy@myserver> 


insert

The insert command is used to insert or move YANG list or leaf-list data into a NETCONF database. It is a high level command with utilizes the YANG 'insert' extensions to the NETCONF <edit-config> operation.


insert command


Command type: remote
Default parameter: target
Min parameters: 2
Max parameters: 7
Return type: status
YANG file: yangcli.yang

Command Parameters:

  • choice 'from' (not entered)
    • type: choice of case 'varref' or case 'from-cli'
    • usage: mandatory
    • default: none
    • This parameter specifies the where yangcli should get the data from, for the insert operation. It is either a user variable or from interactive input at the command line.
      • varref
        • type: string
        • usage: mandatory
        • default: none
        • This parameter specifies the name of the user variable to use for the target of the insert operation. The parameter must exist (e.g., created with the fill command) or an error message will be printed.
      • case from-cli (not entered)
        • target
          • type: string
          • usage: mandatory
          • default: none
          • This parameter specifies the database target node of the insert operation. This is an ncx:schema-instance string, so any instance identifier, or absolute path expression, or something in between, is accepted.
        • optional
          • type: empty
          • usage: optional
          • default: controlled by $$optional system variable
          • This parameter controls whether optional nodes within the target will be filled in. It can be used to override the $$optional system variable, when it is set to 'false'.
        • value
          • type: anyxml
          • usage: mandatory
          • default: none
          • This parameter specifies the value that should be used for the contents of the target parameter. If it is entered, then the interactive mode prompting for missing parameters will be skipped, if this parameter is complete (or all mandatory nodes present if the $$optional system variable is 'false'). For example, if the target is a leaf, then specifying this parameter will always cause the interactive prompt mode to be skipped.
  • edit-target
    • type: string
    • usage: optional (must be present if the order parameter is set to 'before' or 'after').
    • default: none
    • This parameter specifies the value or key clause that should be used, as the list or leaf-list insertion point. It identifies the existing entry that the new entry will be inserted before or after, depending on the order parameter.
      • For a leaf-list, the edit-target contains the value of the target leaf-list node within the configuration being edited. E.g., edit-target='fred'.
      • For a list, the edit-target contains the key values of the target list node within the configuration being edited. E.g., edit-target=[name='fred'][zipcode=90210].
  • order
    • type: enumeration (first last before after)
    • usage: optional
    • default: last
    • The insert order that should be used. If the value 'before' or 'after' is selected, then the edit-target parameter must also be present.
  • operation
    • type: enumeration (create merge replace)
    • usage: optional
    • default: merge
    • This parameter specifies the nc:operation attribute value for the NETCONF <edit-config> operation. The insert operation is secondary to the NETCONF operation attribute.
  • timeout
    • type: uint32 (0 = no timeout, otherwise the number of seconds to wait)
    • usage: optional
    • default: set to the $$timeout system variable, default 30 seconds
    • This parameter specifies the number of seconds to wait for a response from the server before giving up. The session will not be dropped if a remote command times out, but any late response will be dropped. A value of zero means no timeout should be used, and yangcli will wait forever for a response.

System Variables:

  • $$default-operation
    • The <default-operation> parameter for the <edit-config> operation will be derived from this variable.
  • $$error-option
    • The <error-option> parameter for the <edit-config> operation will be derived from this variable
  • $$test-option
    • The <test-option> parameter for the <edit-config> operation will be derived from this variable

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy@myserver> insert varref=myvar order=first
    RPC OK Reply 25 for session 10:
    yangcli andy@myserver> insert /nacm/rules/data-rule \
            order=after \
            edit-target=”[name='test-rule']”
    (user will be prompted to fill in the data-rule contents)
    RPC OK Reply 26 for session 10:
    yangcli andy@myserver>


Reference:

  • draft-ietf-netmod-yang-13

kill-session

The kill-session command is used to terminate a NETCONF session (other than the current session). All NETCONF implementations must support this command. It is needed sometimes to unlock a NETCONF database locked by a session that is idle or stuck.

If the lock command returns a 'lock-denied' <error-tag>, it will also include an <error-info> field called <session-id>. This is the session number that currently holds the requested lock. The same value should be used for the session-id parameter in this command, to terminate the session will the lock.

Note: this is an extreme measure, which should be used with caution.


kill-session command


Command type: remote
Default parameter: target
Min parameters: 1
Max parameters: 1
Return type: status
YANG file: yuma-netconf.yang

Command Parameters:

  • session-id
    • type: uint32 (range: 1.. max)
    • usage: mandatory
    • default: none
    • This parameter specifies the session number of the currently active NETCONF session that should be terminated.

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy@myserver> kill-session session-id=11
    RPC OK Reply 27 for session 10:
    yangcli andy@myserver>


Reference:

  • RFC 4741, section 7.9

list

This list command is used to display the commands, objects, and oids (object identifiers) that are available at the time.

The list commands command will display the local commands and the remote commands that are available in the current NETCONF session, or which have been loaded with the mgrload command.

The list files command will display the data files that are in the current data search path. The module parameter has no affect in this mode.

The list modules command will display the YANG files that are in the current YANG module search path. The module parameter has no affect in this mode.

The list objects command will display the top-level objects that are currently available in the current NETCONF session, or which have been loaded with the mgrload command.

The list oids command will display the object identifiers of the top-level objects that are currently available in the current NETCONF session, or which have been loaded with the mgrload command.

The list scripts command will display the script files that are in the current script search path. The module parameter has no affect in this mode.


list command


Command type: local
Default parameter: none
Min parameters: 1
Max parameters: 6
Return type: data
YANG file: yangcli.yang

Command Parameters:

  • choice help-mode (not entered)This parameter is ignored if the listtype choice is set to ' the history show command is entered.
    • brief
      • type: empty
      • usage: optional
      • default: none
      • This parameter specifies that brief documentation mode should be used.
    • normal
      • type: empty
      • usage: optional
      • default: none
      • This parameter specifies that normal documentation mode should be used.
    • full
      • type: empty
      • usage: optional
      • default: none
      • This parameter specifies that full documentation mode should be used.
  • choice 'listtype' (not entered)
    • usage: mandatory
    • default: none
    • This parameter specifies the what type of data should be listed.
    • commands
      • type: empty
      • usage: mandatory
      • default: none
      • This parameter specifies that the available commands should be listed.
        • If the help-mode is set to 'brief', then only the command names will be listed.
        • If the help-mode is set to 'normal', then the XML prefix and the command name will be listed.
        • If the help-mode is set to 'full', then the module name and the command name will be listed.
    • files
      • type: empty
      • usage: mandatory
      • default: none
      • This parameter specifies that all the data files in the current data search path should be listed.
    • modules
      • type: empty
      • usage: mandatory
      • default: none
      • This parameter specifies that all the YANG files in the current module search path should be listed.
    • objects
      • type: empty
      • usage: mandatory
      • default: none
      • This parameter specifies that the available top-level objects should be listed.
        • If the help-mode is set to 'brief', then only the object names will be listed.
        • If the help-mode is set to 'normal', then the XML prefix and the object name will be listed.
        • If the help-mode is set to 'full', then the module name and the object name will be listed.
    • oids
      • type: empty
      • usage: mandatory
      • default: none
      • This parameter specifies that the available top-level object identifiers should be listed.
        • The help-mode parameter has no effect
    • scripts
      • type: empty
      • usage: mandatory
      • default: none
      • This parameter specifies that all the script files in the current script search path should be listed.
  • module
    • type: string
    • usage: optional
    • default: none
    • This parameter specifies a module name. If present then only information for the specified YANG module will be displayed.

Positive Response:

  • the requested information will be printed

Negative Response:

  • An error message will be printed if errors are detected.

Usage:


yangcli andy@myserver> list objects full module=test 
   test:instance1 
   test:instance2 
   test:leafref1 
   test:leafref2 
   test:test1 
   test:test2 
   test:test3 
   test:idtest 
   test:musttest 
   test:anyxml.1 
   test:binary.1 
   test:bits.1 
   test:boolean.1 
   test:empty.1 
   test:enumeration.1 
   test:identityref.1 
   test:instance-identifier.1 
   test:instance-identifier.2 
   test:int8.1 
   test:int16.1 
   test:int32.1 
   test:int64.1 
   test:leafref.1 
   test:leafref.2 
   test:string.1 
   test:uint8.1 
   test:uint16.1 
   test:uint32.1 
   test:uint64.1 
   test:dec64.1 
   test:dec64.2 
   test:dec64.3 
   test:union.1 
   test:container.1 
   test:container.2 
   test:list.1 
   test:choice.1 
   test:xpath.1 
yangcli andy@myserver>

load

The load command is used to load a YANG module into the server.

This command is only supported by the netconfd server.

The YANG files must be available in the module search path for the server.

Refer to the netconfd configuration section for more details on adding new YANG modules into the server.

After using this command, the mgrload command may also be needed to keep the current session synchronized with the server.

Use the revision parameter to load a specific revision of a module.

The server will return the revision date of the module that was loaded (or already present).


load command


Command type: remote
Default parameter: module
Min parameters: 1
Max parameters: 3
Return type: data
YANG file: yuma-system.yang

Command Parameters:

  • module
    • type: string (length 1 .. 63)
    • usage: mandatory
    • default: none
    • This parameter specifies the name of the module to load.
  • revision
    • type: date string (YYYY-MM-DD)
    • usage: optional
    • default: none
    • This parameter specifies the revision date of the module to load.
  • deviation:
    • type: leaf-list of deviation module names
    • usage: optional (0 or more instances)
    • default: none
    • This parameter specifies a deviation module to load prior to loading the requested module.

Positive Response:

  • the server returns <mod-revision>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy@myserver> load toaster revision=2009-06-23
    RPC Data Reply 27 for session 10:
    rpc-reply { 
       mod-revision 2009-06-23 
    } 
    yangcli andy@myserver>

lock

The lock command is used to request a global lock on a NETCONF database. It is used, along with the unlock command, to obtain exclusive write access to the NETCONF server.

The scope of a lock command is the lifetime of the session that requested the lock. This means that if the session that owns the lock is dropped for any reason, all the locks it holds will be released immediately by the server.

The use of database locks is optional in NETCONF, but it must be implemented by every server. It is strongly suggested that locks be used if multiple managers are likely to log into the particular NETCONF server.

One or more locks may be needed to execute a transaction safely:

  • If the :writable-running capability is supported, then a lock on the <running> database is needed. This database can be locked at any time.
  • If the :startup capability is supported, then a lock on the <startup> database is needed. This database can be locked at any time.
  • If the :candidate capability is supported, then a lock on the <candidate> database is needed. A lock on the <running> database is also needed.
    • The <candidate> database can only be locked if there are no active edits in it.
    • The discard-changes command may be needed to clear a <candidate> database that has been left edited by a session that terminated unexpectedly.
    • Note: There is no way in NETCONF to tell the difference between an actively edited <candidate> database and an 'abandoned' <candidate> database. The server will almost never clear the <candidate> database. It will only clear any locks held. Use the discard-changes command (for other session's edits) with extreme caution.
lock command


Command type: remote
Default parameter: none
Min parameters: 1
Max parameters: 1
Return type: status
YANG file: yuma-netconf.yang
Capabilities needed: none
Capabilities optional: :candidate:startup:url

Command Parameters:

  • target
    • type: container with 1 of N choice of leafs
    • usage: mandatory
    • default: none
    • This parameter specifies the name of the target database to be locked.
    • container contents: 1 of N:
      • candidate
        • type: empty
        • capabilities needed: :candidate
      • running
        • type: empty
        • capabilities needed: none
      • startup
        • type: empty
        • capabilities needed: startup
      • url
        • type: yang:uri
        • capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter.
        • To enter this parameter, the interactive mode must be used. The shorthand mode (target=url) cannot be used, since this parameter contains a string.

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.
    • If the <error-tag> is 'lock-denied' then the <error-info> will contain a <session-id> leaf. This identifies the session number of the current lock holder.

Usage:


    yangcli andy@myserver> lock target=candidate
    RPC OK Reply 29 for session 10:
    yangcli andy@myserver>

log-debug

The log-debug command prints a message to the program log, if the $$log-level system variable is set to 'debug' or a higher enumeration (e.g., 'debug2').

The msg parameter is used to provide the message string to print.


log-debug command


Command type: local
Default parameter: msg
Min parameters: 1
Max parameters: 1
Return type: status
YANG file: yangcli.yang

Command Parameters:

  • msg
    • type: string
    • usage: mandatory
    • default: none
    • This parameter specifies the string to print to the program log.

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if the msg parameter contains errors.

Usage:


    yangcli andy@myserver>log-debug 'starting strict foo'
    Debug: starting script foo
    yangcli andy@myserver>


log-error

The log-error command prints a message to the program log, if the $$log-level system variable is set to 'error' or a higher enumeration (e.g., 'info').

The msg parameter is used to provide the message string to print.


log-error command


Command type: local
Default parameter: msg
Min parameters: 1
Max parameters: 1
Return type: status
YANG file: yangcli.yang

Command Parameters:

  • msg
    • type: string
    • usage: mandatory
    • default: none
    • This parameter specifies the string to print to the program log.

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if the msg parameter contains errors.

Usage:


    yangcli andy@myserver>log-error 'sysName not correct'
    Error: sysName not correct
    yangcli andy@myserver>


log-info

The log-info command prints a message to the program log, if the $$log-level system variable is set to 'info' or a higher enumeration (e.g., 'debug').

The msg parameter is used to provide the message string to print.


log-info command


Command type: local
Default parameter: msg
Min parameters: 1
Max parameters: 1
Return type: status
YANG file: yangcli.yang

Command Parameters:

  • msg
    • type: string
    • usage: mandatory
    • default: none
    • This parameter specifies the string to print to the program log.

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if the msg parameter contains errors.

Usage:


    yangcli andy@myserver>log-info 'sysName is correct'
    Info: sysName is correct
    yangcli andy@myserver>


log-warn

The log-warn command prints a message to the program log, if the $$log-level system variable is set to 'warn' or a higher enumeration (e.g., 'debug').

The msg parameter is used to provide the message string to print.


log-warn command


Command type: local
Default parameter: msg
Min parameters: 1
Max parameters: 1
Return type: status
YANG file: yangcli.yang

Command Parameters:

  • msg
    • type: string
    • usage: mandatory
    • default: none
    • This parameter specifies the string to print to the program log.

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if the msg parameter contains errors.

Usage:


    yangcli andy@myserver>log-warn 'sysName object not found'
    Warning: sysName object not found
    yangcli andy@myserver>


merge

The merge command is a high-level <edit-config> operation. It is used to merge some new nodes into the default target database.

A target node is specified (in 1 of 2 ways), and then the data structure is filled in. Only mandatory nodes will be filled in unless the $$optional system variable is set to 'true'.

Refer to the fill command for more details on interactive mode data structure completion.


merge command


Command type: remote
Default parameter: target
Min parameters: 1
Max parameters: 5
Return type: status
YANG file: yangcli.yang
Capabilities needed: :candidate or :writable-running

Command Parameters:

  • choice 'from' (not entered)
    • type: choice of case 'varref' or case 'from-cli'
    • usage: mandatory
    • default: none
    • This parameter specifies the where yangcli should get the data from, for the merge operation. It is either a user variable or from interactive input at the command line.
      • varref
        • type: string
        • usage: mandatory
        • default: none
        • This parameter specifies the name of the user variable to use for the target of the merge operation. The parameter must exist (e.g., created with the fill command) or an error message will be printed.
      • case from-cli (not entered)
        • target
          • type: string
          • usage: optional (target or urltarget must be entered)
          • default: none
          • This parameter specifies the database target node of the merge operation. This is an ncx:schema-instance string, so any instance identifier, or absolute path expression, or something in between, is accepted.
        • urltarget
          • type: string
          • usage: optional
          • default: none
          • This parameter specifies the database target node of the merge operation. This is an UrlPath string.
        • optional
          • type: empty
          • usage: optional
          • default: controlled by $$optional system variable
          • This parameter controls whether optional nodes within the target will be filled in. It can be used to override the $$optional system variable, when it is set to 'false'.
        • value
          • type: anyxml
          • usage: mandatory
          • default: none
          • This parameter specifies the value that should be used for the contents of the target parameter. If it is entered, then the interactive mode prompting for missing parameters will be skipped, if this parameter is complete (or all mandatory nodes present if the $$optional system variable is 'false'). For example, if the target is a leaf, then specifying this parameter will always cause the interactive prompt mode to be skipped.
  • timeout
    • type: uint32 (0 = no timeout, otherwise the number of seconds to wait)
    • usage: optional
    • default: set to the $$timeout system variable, default 30 seconds
    • This parameter specifies the number of seconds to wait for a response from the server before giving up. The session will not be dropped if a remote command times out, but any late response will be dropped. A value of zero means no timeout should be used, and yangcli will wait forever for a response.

System Variables:

  • $$default-operation
    • The <default-operation> parameter for the <edit-config> operation will be derived from this variable.
  • $$error-option
    • The <error-option> parameter for the <edit-config> operation will be derived from this variable
  • $$test-option
    • The <test-option> parameter for the <edit-config> operation will be derived from this variable

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:

    yangcli andy@myserver> merge \
        target=/nacm/rules/moduleRule[moduleName='netconf']\
        [allowed-rights='read write']/allowed-group \
        value=ncx:guest


    (no user prompting; <edit-config> request sent right away)
    RPC OK Reply 31 for session 10:
    yangcli andy@myserver>


Reference:

  • RFC 4741, section 7.2

mgrload

The mgrload command is used to load a YANG module into yangcli.

The YANG files must be available in the module search path for yangcli.


mgrload command


Command type: local
Default parameter: module
Min parameters: 1
Max parameters: 3
Return type: status
YANG file: yangcli.yang

Command Parameters:

  • module
    • type: string (length 1 .. 63)
    • usage: mandatory
    • default: none
    • This parameter specifies the name of the module to load.
  • revision
    • type: date string (YYYY-MM-DD)
    • usage: optional
    • default: none
    • This parameter specifies the revision date of the module to load.
  • deviation:
    • type: leaf-list of deviation module names
    • usage: optional (0 or more instances)
    • default: none
    • This parameter specifies a deviation module to load prior to loading the requested module.

Positive Response:

  • OK

Negative Response:

  • An error message will be printed if errors are detected.

Usage:

    yangcli> mgrload toaster
    Load module toaster OK
    yangcli>

no-op

The no-op command is used to test server message processing response times, by providing a baseline response time to do nothing except return <ok/>.

It can also be used as an application-level keep-alive to prevent proxy idle timeout or server idle timeout problems from occurring.

This command is only supported by the netconfd server. The server will simply respond 'OK', if the request is well-formed.


no-op command


Command type: remote
Default parameter: none
Min parameters: 0
Max parameters: 0
Return type: status
YANG file: yuma-system.yang

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy@myserver> no-op
    RPC OK Reply 31 for session 10:
    yangcli andy@myserver>

pwd

The pwd command is used to print the current working directory.


pwd command


Command type: local
Default parameter: none
Min parameters: 0
Max parameters: 0
Return type: status
YANG file: yangcli.yang

Positive Response:

  • the current working directory is printed to the log or STDOUT

Negative Response:

  • An error message will be printed if errors are detected.

Usage:


    yangcli> pwd
    Current working directory is /home/andy
    yangcli>

quit

The quit command is used to terminate the yangcli program.

If a NETCONF session is in progress, it will be dropped without sending a close-session command first. This should be taken into account if the server reports dropped TCP connections as an error.


quit command


Command type: local
Default parameter: none
Min parameters: 0
Max parameters: 0
Return type: none
YANG file: yangcli.yang

Positive Response:

  • The program terminates; no response will be printed.

Negative Response:

  • An error message will be printed if errors are detected.

Usage:


    yangcli> quit
    andy@myworkstation>

recall

The recall command is used to recall a previously entered command line from the command line history buffer.

A command is recalled by its command ID number. Use the history show command to see the contents of the command line history buffer.


recall command


Command type: local
Default parameter: index
Min parameters: 1
Max parameters: 1
Return type: data
YANG file: yangcli.yang

Positive Response:

  • The specified command line is recalled into the current command line.

Negative Response:

  • An error message will be printed if errors are detected.

Usage:


    yangcli> recall 7
    yangcli>sget /system

release-locks

The release-locks command is used to release all the locks that were previously granted with the get-locks command.

If the get-locks command was not used, then this command will fail with an error message that no locks are active to unlock.


release-locks command


Command type: remote
Default parameter: none
Min parameters: 0
Max parameters: 0
Return type: status
YANG file: yangcli.yang

Positive Response:

  • The previously granted locks are released.

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage: (showing 2 locks being released)


    yangcli ady@myserver> release-locks
    RPC OK Reply 8 for session 23: 
    RPC OK Reply 9 for session 23: 
    yangcli andy@myserver>

replace

The replace command is a high-level <edit-config> operation. It is used to replace an existing subtree with some new nodes, in the default target database.

Only the subtree indicated by the target or varref parameter will be replaced.

A target node is specified (in 1 of 2 ways), and then the data structure is filled in. Only mandatory nodes will be filled in unless the $$optional system variable is set to 'true'.

Refer to the fill command for more details on interactive mode data structure completion.


replace command


Command type: remote
Default parameter: target
Min parameters: 1
Max parameters: 5
Return type: status
YANG file: yangcli.yang
Capabilities needed: :candidate or :writable-running

Command Parameters:

  • choice 'from' (not entered)
    • type: choice of case 'varref' or case 'from-cli'
    • usage: mandatory
    • default: none
    • This parameter specifies the where yangcli should get the data from, for the replace operation. It is either a user variable or from interactive input at the command line.
      • varref
        • type: string
        • usage: mandatory
        • default: none
        • This parameter specifies the name of the user variable to use for the target of the replace operation. The parameter must exist (e.g., created with the fill command) or an error message will be printed.
      • case from-cli (not entered)
        • target
          • type: string
          • usage: optional (target or urltarget must be present)
          • default: none
          • This parameter specifies the database target node of the replace operation. This is an ncx:schema-instance string, so any instance identifier, or absolute path expression, or something in between, is accepted.
        • urltarget
          • type: string
          • usage: optional
          • default: none
          • This parameter specifies the database target node of the replace operation. This is an UrlPath string.
        • optional
          • type: empty
          • usage: optional
          • default: controlled by $$optional system variable
          • This parameter controls whether optional nodes within the target will be filled in. It can be used to override the $$optional system variable, when it is set to 'false'.
        • value
          • type: anyxml
          • usage: mandatory
          • default: none
          • This parameter specifies the value that should be used for the contents of the target parameter. If it is entered, then the interactive mode prompting for missing parameters will be skipped, if this parameter is complete (or all mandatory nodes present if the $$optional system variable is 'false'). For example, if the target is a leaf, then specifying this parameter will always cause the interactive prompt mode to be skipped.
  • timeout
    • type: uint32 (0 = no timeout, otherwise the number of seconds to wait)
    • usage: optional
    • default: set to the $$timeout system variable, default 30 seconds
    • This parameter specifies the number of seconds to wait for a response from the server before giving up. The session will not be dropped if a remote command times out, but any late response will be dropped. A value of zero means no timeout should be used, and yangcli will wait forever for a response.

System Variables:

  • $$default-operation
    • The <default-operation> parameter for the <edit-config> operation will be derived from this variable.
  • $$error-option
    • The <error-option> parameter for the <edit-config> operation will be derived from this variable
  • $$test-option
    • The <test-option> parameter for the <edit-config> operation will be derived from this variable

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy@myserver> replace \
        target=/nacm/rules/moduleRule[moduleName='yuma-system']\
        [allowed-rights='exec']
    (user prompted to fill in specified <moduleRule> element)
    RPC OK Reply 31 for session 10:
    yangcli andy@myserver>


Reference:

  • RFC 4741, section 7.2

restart

The restart command is used to restart the NETCONF server.

This command is only supported by the netconfd server.

The default access control configuration for netconfd will not allow any user except the designated 'superuser' account to invoke this command. Refer to the netconfd user manual for details on configuring access control.


restart command


Command type: remote
Default parameter: none
Min parameters: 0
Max parameters: 0
Return type: status
YANG file: yuma-system.yang

Positive Response:

  • the server will drop all sessions and restart

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy@myserver> restart
    ses: session 10 shut by remote peer 
    yangcli>

run

The run command is used to run a yangcli script.

Refer to the section on scripts for details on how to write a script.

The script name is the only mandatory parameter. There are 9 generic parameters (named P1 to P9) that can be used to pass string parameters to scripts. Within a script, these are referenced with local variables ($1 to $9).

The run command can be used within a script.

Scripts do not return any status or data at this time.

The run command can appear inside a script, starting a new run level. An error will occur if a loop occurs or too many nest levels are used. Up to 64 run levels are supported in yangcli.


run command


Command type: local
Default parameter: script
Min parameters: 1
Max parameters: 10
Return type: status
YANG file: yangcli.yang

Command Parameters:

  • P1, P2, P3, P4, P5, P6, P7, P8, P9
    • type: string
    • usage: optional
    • default: none
    • These parameters provide a generic string parameter passing mechanism for each script invocation, similar to unix shell scripts. Within the script, the parameters $1, $2, $3, $4, $5, $6, $7, $8 and $9 will be non-NULL only if the corresponding 'Pn' parameter was set in the script invocation.
  • script
    • type: string
    • usage: mandatory
    • default: none
    • This parameter specifis the name of the script to be run. If a path specification is included, then it will be used. Otherwise the current script search path will be used to find the script.

System Variables:

  • $$runpath
    • Controls where yangcli will look for files specified in the script parameter.

Positive Response:

  • the specified script will be executed

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error, if any remote commands are contained in the script.

Usage:


    yangcli> run connect P1=yangrocks
    runstack: Starting level 1 script /home/andy/scripts/connect
    (commands and responses are printed as if they were typed) 
    runstack: Ending level 1 script /home/any/scripts/connect
    yangcli andy@myserver>

save

The save command is used to save NETCONF database edits to non-volatile storage, on the server. It is a pseudo-command, mapped to other remote commands depending on which database target is supported by the server (<candidate> or <running>).

The save command usually maps to either the commit or the copy-config command. Refer to the section on NETCONF sessions for more details.


save command


Command type: remote
Default parameter: none
Min parameters: 0
Max parameters: 0
Return type: none
YANG file: yangcli.yang

Positive Response:

  • The server returns one or two <ok/> responses.

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy@myserver> save
    RPC OK Reply 34 on session 10
    yangcli andy@myserver>

set-log-level

The set-log-level command is used to configure the server logging verbosity level. It is only supported by the netconfd server.

This operation is defined as nacm:secure, so only the system super-user can invoke this command by default.


set-log-level command


Command type: remote
Default parameter: none
Min parameters: 1
Max parameters: 1
Return type: status
YANG file: yuma-system.yang
Capabilities needed: none

Command Parameters:

  • log-level
    • type: enumeration (off, error, warn, info, debug, debug2, debug3)
    • This mandatory parameter specifies the desired server logging verbosity level.

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.]
    yangcli andy@myserver> set-log-level log-level=debug2
    RPC OK Reply 29 for session 10:
    yangcli andy@myserver>

set-my-session

The set-my-session command is used to configure the session customization parameters on the server. It is only supported by the netconfd server.

The session line size and default behavior for the with-defaults parameter can be controlled at this time.

Since all parameters are optional, they need to be entered in the same command line as the command name. Otherwise the $$optional system variable needs to be set to 'true'. If not, then no parameters will be sent to the server, and no session parameters will be changed.


set-my-session command


Command type: remote
Default parameter: none
Min parameters: 0
Max parameters: 3
Return type: status
YANG file: yuma-mysession.yang
Capabilities needed: none

Command Parameters:

  • indent
    • type: uint32 (range: 0 .. 9)
    • This parameter specifies the desired number of spaces to indent for each new XML nest level, for the session. If missing, then the indent amount is not changed.
  • linesize
    • type: uint32 (range: 40 .. 1024)
    • This parameter specifies the desired line length for the session. If missing, then the current line size is not changed.
  • with-defaults
    • type: enumeration (report-all trim explicit)
    • This parameter specifies the desired default with-defaults filtering behavior for the session. If missing, the current with-defaults behavior is not changed.

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.]
    yangcli andy@myserver> set-my-session \
            --linesize=64 --with-defaults=trim
    RPC OK Reply 25 for session 10:
    yangcli andy@myserver>

sget

The sget command is used to invoke a NETCONF <get> operation with a subtree filter.

A target node is specified (in 1 of 2 ways), and then the data structure is filled in. Only mandatory nodes will be filled in unless the $$optional system variable is set to 'true'. This step can be skipped completely with the nofill parameter.

Refer to the fill command for more details on interactive mode data structure completion.

sget command


Command type: remote
Default parameter: target
Min parameters: 1
Max parameters: 5
Return type: data
YANG file: yangcli.yang
Capabilities needed: none
Capabilities optional: :with-defaults

Command Parameters:

  • choice 'from' (not entered)
    • type: choice of case 'varref' or case 'from-cli'
    • usage: mandatory
    • default: none
    • This parameter specifies the where yangcli should get the data from, for the subtree filter target of the <get> operation. It is either a user variable or from interactive input at the command line.
      • varref
        • type: string
        • usage: mandatory
        • default: none
        • This parameter specifies the name of the user variable to use for the subtree filter target of the <get> operation. The parameter must exist (e.g., created with the fill command) or an error message will be printed.
      • case from-cli (not entered)
        • target
          • type: string
          • usage: optional (target or urltarget must be present)
          • default: none
          • This parameter specifies the database target node of the <get> operation. This is an ncx:schema-instance string, so any instance identifier, or absolute path expression, or something in between, is accepted.
            • The escape command ('?s') can be used in parameter mode to skip a parameter completely.
            • Entering the empty string for a parameter will cause a subtree selection node to be created instead of a content match node
        • urltarget
          • type: string
          • usage: optional
          • default: none
          • This parameter specifies the database target node of the get operation. This is an UrlPath string.
        • optional
          • type: empty
          • usage: optional
          • default: controlled by $$optional system variable
          • This parameter controls whether optional nodes within the target will be filled in. It can be used to override the $$optional system variable, when it is set to 'false'.
        • value
          • type: anyxml
          • usage: mandatory
          • default: none
          • This parameter specifies the value that should be used for the contents of the target parameter. If it is entered, then the interactive mode prompting for missing parameters will be skipped, if this parameter is complete (or all mandatory nodes present if the $$optional system variable is 'false'). For example, if the target is a leaf, then specifying this parameter will always cause the interactive prompt mode to be skipped.
  • nofill
    • type: empty
    • usage: optional
    • default: none
    • This parameter specifies the that no interactive prompting to fill in the contents of the specified subtree filter target will be done.
      • This causes the entire selected subtree to be requested in the filter.
      • yangcli will attempt to figure out if there can be multiple instances of the requested subtree. If not, then nofill will be the default for that target parameter.
  • with-defaults
    • type: enumeration (none report-all report-all-tagged trim explicit)
    • usage: optional
    • default: none
    • capabilities needed: with-defaults
    • This parameter controls how nodes containing only default values are returned in the <rpc-reply>.

System Variables:

  • $$timeout
    • The response timeout interval will be derived from this system variable.
  • $$with-defaults
    • The <with-defaults> parameter for the <get> operation will be derived from this system variable.

Positive Response:

  • the server returns <data>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Output:

  • data
    • type: anyxml
    • This element will contain the requested data from the <running> database or non-config data structures.

Usage:

    yangcli andy@myserver> sget sytem
    Filling container /system: 
    RPC Data Reply 32 for session 10:
    
    rpc-reply { 
       data { 
          system { 
             sysName myserver.localdomain 
             sysCurrentDateTime 2009-07-06T02:24:19Z 
             sysBootDateTime 2009-07-05T19:22:28Z 
          } 
       } 
    } 
    yangcli andy@myserver>

Reference:

  • RFC 4741, section 7.7

sget-config

The sget-config command is used to invoke a NETCONF <get-config> operation with a subtree filter.

A target node is specified (in 1 of 2 ways), and then the data structure is filled in. Only mandatory nodes will be filled in unless the $$optional system variable is set to 'true'. This step can be skipped completely with the nofill parameter.

Refer to the fill command for more details on interactive mode data structure completion.


sget-config command


Command type: remote
Default parameter: target
Min parameters: 2
Max parameters: 6
Return type: data
YANG file: yangcli.yang
Capabilities needed: none
Capabilities optional: :candidate:startup:url:with-defaults

Command Parameters:

  • choice 'from' (not entered)
    • type: choice of case 'varref' or case 'from-cli'
    • usage: mandatory
    • default: none
    • This parameter specifies the where yangcli should get the data from, for the subtree filter target of the <get> operation. It is either a user variable or from interactive input at the command line.
      • varref
        • type: string
        • usage: mandatory
        • default: none
        • This parameter specifies the name of the user variable to use for the subtree filter target of the <get> operation. The parameter must exist (e.g., created with the fill command) or an error message will be printed.
      • case from-cli (not entered)
        • target
          • type: string
          • usage: optional (target or urltarget must be present)
          • default: none
          • This parameter specifies the database target node of the <get> operation. This is an ncx:schema-instance string, so any instance identifier, or absolute path expression, or something in between, is accepted.
            • The escape command ('?s') can be used in parameter mode to skip a parameter completely.
            • Entering the empty string for a parameter will cause a subtree selection node to be created instead of a content match node
        • urltarget
          • type: string
          • usage: optional
          • default: none
          • This parameter specifies the database target node of the get-config operation. This is an UrlPath string.
        • optional
          • type: empty
          • usage: optional
          • default: controlled by $$optional system variable
          • This parameter controls whether optional nodes within the target will be filled in. It can be used to override the $$optional system variable, when it is set to 'false'.
        • value
          • type: anyxml
          • usage: mandatory
          • default: none
          • This parameter specifies the value that should be used for the contents of the target parameter. If it is entered, then the interactive mode prompting for missing parameters will be skipped, if this parameter is complete (or all mandatory nodes present if the $$optional system variable is 'false'). For example, if the target is a leaf, then specifying this parameter will always cause the interactive prompt mode to be skipped.
  • nofill
    • type: empty
    • usage: optional
    • default: none
    • This parameter specifies the that no interactive prompting to fill in the contents of the specified subtree filter target will be done.
      • This causes the entire selected subtree to be requested in the filter.
      • yangcli will attempt to figure out if there can be multiple instances of the requested subtree. If not, then nofill will be the default for that target parameter.
  • source
    • type: container with 1 of N choice of leafs
    • usage: mandatory
    • default: none
    • This parameter specifies the name of the source database for the retrieval operation.
    • container contents: 1 of N:
      • candidate
        • type: empty
        • capabilities needed: :candidate
      • running
        • type: empty
        • capabilities needed: none
      • startup
        • type: empty
        • capabilities needed: startup
      • url
        • type: yang:uri
        • capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter
        • To enter this parameter, the interactive mode must be used. The shorthand mode (source=url) cannot be used, since this parameter contains a string.
  • with-defaults
    • type: enumeration (none report-all report-all-tagged trim explicit)
    • usage: optional
    • default: none
    • capabilities needed: with-defaults
    • This parameter controls how nodes containing only default values are returned in the <rpc-reply>.

System Variables:

  • $$timeout
    • The response timeout interval will be derived from this system variable.
  • $$with-defaults
    • The <with-defaults> parameter for the <get-config> operation will be derived from this system variable.

Positive Response:

  • the server returns <data>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Output:

  • data
    • type: anyxml
    • This element will contain the requested data from the database indicated by the source parameter.

Usage:


    yangcli andy@myserver> sget-config /nacm/rules/data-rule \
        source=candidate \
        nofill
    RPC Data Reply 35 for session 10:
    rpc-reply { 
       data { 
         nacm { 
             rules { 
                data-rule nacm-tree { 
                   name nacm-tree 
                   path /nacm:nacm 
                   allowed-rights { 
                      read 
                      write 
                   } 
                   allowed-group nacm:admin 
                   comment 'access to nacm config' 
                } 
             } 
          } 
       } 
    } 
    yangcli andy@myserver>


Reference:

  • RFC 4741, section 7.1

show

The show command is used to show program status and YANG details that may be needed during management of a NETCONF server.

There are several variants of the show command:

  • The show cli command prints the contents of the yangcli CLI and config file parameters.
  • The show global command prints the contents of one global user variable.
  • The show globals command prints a summary or the contents of all the global user variables.
  • The show local command prints the contents of one local user variable.
  • The show locals command prints a summary or the contents of all the local user variables.
  • The show module command prints meta information or help text for one YANG module.
  • The show modules command prints meta information for all the currently available YANG modules. IF a session is active, this will be the list of modules the server reported, plus any modules loaded with the mgrload command.
  • The show objects command prints the available objects or help text for the available objects.
  • The show session command prints the session startup screen information for the current session.
  • The show system command prints the contents of the yangcli system variables.
  • The show var command prints the contents of the specified variable.
  • The show vars command prints a summary or the contents of all the program variables.
  • The show version command prints the yangcli version number
show command


Command type: local
Default parameter: none
Min parameters: 1
Max parameters: 2
Return type: data
YANG file: yangcli.yang

Command Parameters:

  • choice help-mode (not entered) (default choice is 'normal')
    • brief
      • type: empty
      • usage: optional
      • default: none
      • This parameter specifies that brief documentation mode should be used.
    • normal
      • type: empty
      • usage: optional
      • default: none
      • This parameter specifies that normal documentation mode should be used.
    • full
      • type: empty
      • usage: optional
      • default: none
      • This parameter specifies that full documentation mode should be used.
  • choice showtype (not entered)
    • mandatory 1 of N choice for the sub-command for the show command
      • cli
        • type: empty
        • usage: mandatory
        • default: none
        • This parameter selects the yangcli CLI and configuration variables.
          • The help-mode parameter has no affect on this command.
      • global
        • type: string
        • usage: mandatory
        • default: none
        • This parameter specifies the name of the global variable to show information for.
          • If help-mode is 'brief', then the name, variable object, and type of the global variable object will be printed.
          • If help-mode is 'normal' or 'full', then the contents of the specified global variable will be printed.
      • globals
        • type: empty
        • usage: mandatory
        • default: none
        • This parameter specifies that information for all global variables should be printed.
          • If help-mode is 'brief', then the name, variable object, and type of each global variable object will be printed.
          • If help-mode is 'normal' or 'full', then the contents of each global variable will be printed.
      • local
        • type: string
        • usage: mandatory
        • default: none
        • This parameter specifies the name of the local variable to show information for.
          • If help-mode is 'brief', then the name, variable object, and type of the local variable object will be printed.
          • If help-mode is 'normal' or 'full', then the contents of the specified local variable will be printed.
      • locals
        • type: empty
        • usage: mandatory
        • default: none
        • This parameter specifies that information for all local variables should be printed.
          • If help-mode is 'brief', then the name, variable object, and type of each local variable object will be printed.
          • If help-mode is 'normal' or 'full', then the contents of each local variable will be printed.
      • module
        • type: string
        • usage: mandatory
        • default: none
        • This parameter specifies the name of the module to show information for.
          • If help-mode is 'brief' or 'normal', then the name, version, namespace, and source of the module will be printed.
          • If help-mode is 'full', then the module level help text for the specified module will be printed.
      • modules
        • type: empty
        • usage: mandatory
        • default: none
        • This parameter specifies that information for all available modules should be printed:
          • If help-mode is 'brief', then the name of each module will be printed.
          • If help-mode is 'normal', then the XML prefix, name, and revision date of each module will be printed.
          • If help-mode is 'full', then the name, revision date, prefix, namespace, and source of each module will be printed.
      • objects
        • type: empty
        • usage: mandatory
        • default: none
        • This parameter specifies that information for all available database objects should be printed:
          • If help-mode is 'brief', then the module name and name of each object will be printed.
          • If help-mode is 'normal', then the YANG object type, object name, and YANG base type will be printed.
            If help-mode is 'full', then brief help text will be printed for every object.
      • system
        • type: empty
        • usage: mandatory
        • default: none
        • This parameter specifies that information for all system variables should be printed.
          • The help-mode parameter has no affect on this command.
      • var
        • type: string
        • usage: mandatory
        • default: none
        • This parameter specifies the name of any variable to show information for.
          • If help-mode is 'brief', then the name, variable object, and type of the variable object will be printed.
          • If help-mode is 'normal' or 'full', then the contents of the specified variable will be printed.
      • vars
        • type: empty
        • usage: mandatory
        • default: none
        • This parameter specifies that information for all variables should be printed. This includes all CLI, read-only system, read-write system, global user, and local user variables.
          • If help-mode is 'brief', then the name, variable object, and type of each variable object will be printed.
          • If help-mode is 'normal' or 'full', then the contents of each variable will be printed.
      • version
        • type: empty
        • usage: mandatory
        • default: none
        • This parameter specifies that the yangcli program version string should be printed.
          • The help-mode parameter has no affect in this mode.

Positive Response:

  • the server prints the requested information

Negative Response:

  • An error message will be printed if errors are detected.

Usage:


    yangcli andy@myserver> show modules

      nc:netconf/2009-04-10 
      inet:ietf-inet-types/2009-05-13 
      ns:ietf-netconf-monitoring/2009-03-03 
      wd:ietf-with-defaults/2009-04-10 
      yang:ietf-yang-types/2009-05-13 
      nacm:nacm/2009-05-13 
      manageEvent:nc-notifications/2008-07-14 
      ncx:ncx/2009-06-12 
      ncxapp:ncx-app-common/2009-04-10 
      nt:ncxtypes/2008-07-20 
      nd:netconfd/2009-05-28 
      ncEvent:notifications/2008-07-14 
      sys:system/2009-06-04 
      t:test/2009-06-10 
    yangcli andy@myserver>

shutdown

The shutdown command is used to shut down the NETCONF server.

This command is only supported by the netconfd server.

The default access control configuration for netconfd will not allow any user except the designated 'superuser' account to invoke this command. Refer to the netconfd user manual for details on configuring access control.


shutdown command


Command type: remote
Default parameter: none
Min parameters: 0
Max parameters: 0
Return type: status
YANG file: yuma-system.yang

Positive Response:

  • the server will drop all sessions and terminate.

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy@myserver> shutdown
    ses: session 10 shut by remote peer 
    yangcli>

start-timer

The start-timer command is used to start a timer to do simple performance measurements.

It is used along with the stop-timer command.


start-timer command


Command type: local
Default parameter: id
Min parameters: 1
Max parameters: 2
Return type: status
YANG file: yangcli.yang
Capabilities needed: none
Capabilities optional: none

Command Parameters:

  • id
    • type: number
    • usage: mandatory
    • default: 0
    • This parameter specifies the numeric ID of the timer.It is a number in the range 0 to 15.
  • restart-ok
    • type: boolean
    • usage: optional
    • default: true
    • Indicates whether the timer will be used if it is already running. If 'true', the timer will be restarted if it is already running. If 'false', an error will occur if the timer is already running.

Positive Response:

  • the client prints OK

Negative Response:

  • An error message will be printed if errors are detected locally.

Usage:

    yangcli andy@myserver> start-timer 1
    OK
    yangcli andy@myserver>

stop-timer

The stop-timer command is used to stop a timer to do simple performance measurements.

It is used along with the start-timer command.


stop-timer command


Command type: local
Default parameter: id
Min parameters: 1
Max parameters: 2
Return type: data
YANG file: yangcli.yang
Capabilities needed: none
Capabilities optional: none

Command Parameters:

  • id
    • type: number
    • usage: mandatory
    • default: 0
    • This parameter specifies the numeric ID of the timer.It is a number in the range 0 to 15.
  • echo
    • type: boolean
    • usage: optional
    • default: true
    • Indicates whether the delta result should be printed to the log.

Positive Response:

  • data: the elapsed time is returned and can be used in assignment statements

Negative Response:

  • An error message will be printed if errors are detected locally.

Usage:

    yangcli andy@myserver> $time = stop-timer 1
    Elapsed time: 2.003345 seconds
    yangcli andy@myserver>

unlock

The unlock command is used to request a global lock on a NETCONF database. It is used, along with the lock command, to obtain exclusive write access to the NETCONF server.


unlock command


Command type: remote
Default parameter: none
Min parameters: 1
Max parameters: 1
Return type: status
YANG file: yuma-netconf.yang
Capabilities needed: none
Capabilities optional: :candidate:startup:url

Command Parameters:

  • target
    • type: container with 1 of N choice of leafs
    • usage: mandatory
    • default: none
    • This parameter specifies the name of the target database to be locked.
    • container contents: 1 of N:
      • candidate
        • type: empty
        • capabilities needed: :candidate
      • running
        • type: empty
        • capabilities needed: none
      • startup
        • type: empty
        • capabilities needed: startup
      • url
        • type: yang:uri
        • capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter.
        • To enter this parameter, the interactive mode must be used. The shorthand mode (target=url) cannot be used, since this parameter contains a string.

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy@myserver> unlock target=candidate
    RPC OK Reply 38 for session 10:
    yangcli andy@myserver>

unset

The unset command is used to delete a command alias from memory.


unset command


Command type: local
Default parameter: name
Min parameters: 1
Max parameters: 1
Return type: status
YANG file: yangcli.yang

Command Parameters:

  • name
    • type: string
    • usage: mandatory
    • default: none
    • This parameter specifies the name of the command alias to delete.

Positive Response:

  • Deleted alias 'foo' is printed, where 'foo' is the name parameter string

Negative Response:

  • An error message will be printed.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy> unset get-running
    Deleted alias 'get-running'
    yangcli andy>


uservars

The uservars command is used to clear, load, or save the global user variables.


uservars command


Command type: local
Default parameter: none
Min parameters: 1
Max parameters: 1
Return type: status
YANG file: yangcli.yang

Command Parameters:

  • uservars-action
    • type: choice
    • usage: mandatory
    • default: none
    • clear:
      • Delete all global user variables from memory
    • load [uservars-filespec]
      • Load global user variables into memory from an XML file.If the 'uservars-filespec' parameter is missing, then the default file($HOME/.yuma/yangcli_uservars.xml) will be used.
    • save [uservars-filespec]
      • Save the global user variables from memory into an XML file.If the 'uservars-filespec' parameter is missing, then the default file($HOME/.yuma/yangcli_uservars.xml) will be used.

Positive Response:

  • A status message is printed.

Negative Response:

  • An error message will be printed.

Usage:


    yangcli andy> uservars clear
    Deleted all global user variables from memory
    yangcli andy>

validate

The validate command is used to check if a complete NETCONF database is valid or not.

The :validate capability must be supported by the server to use this command.


validate command


Command type: remote
Default parameter: none
Min parameters: 1
Max parameters: 1
Return type: status
YANG file: yuma-netconf.yang
Capabilities needed: :validate
Capabilities optional: :candidate:startup:url

Command Parameters:

  • target
    • type: container with 1 of N choice of leafs
    • usage: mandatory
    • default: none
    • This parameter specifies the name of the target database to be validated.
    • container contents: 1 of N:
      • candidate
        • type: empty
        • capabilities needed: :candidate
      • running
        • type: empty
        • capabilities needed: none
      • startup
        • type: empty
        • capabilities needed: startup
      • url
        • type: yang:uri
        • capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter.
        • To enter this parameter, the interactive mode must be used. The shorthand mode (target=url) cannot be used, since this parameter contains a string.
      • config
        • type: anyxml
        • capabilities
        • This parameter represents an entire database, using the in-line config form, similar to the edit-config command, except this config parameter contains no nc:operation attributes and must be a complete database, not a subset.

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Usage:


    yangcli andy@myserver> validate source=candidate
    RPC OK Reply 36 for session 10:
    yangcli andy@myserver>

while

The while command is used to start a conditional loop command block.

The expr parameter is used to specify the XPath expression to test if the while conditional loop block is true or false. A false block will be skipped and a true block will be executed. The command prompt will contain the string '[F]' while inside a false conditional block in interactive mode. This expression string should be entered with quotes to avoid misinterpreting any whitespace or special characters.

The docroot parameter (if present) specifies the XML document that the 'expr' parameter should be evaluated against. This is optional, since only XPath path expressions need to refer to a document.

If the 'expr' expression is true, the conditional block will be executed, and no further conditional blocks within the same if command sequence will be executed.

The maxloops parameter specifies the maximum number of iterations that should be allowed, even if the expression continues to evaluate to 'true'. This allows constant expressions to be used to construct a simple 'for' loop.


while command

...

end command

while command


Command type: local
Default parameter: expr
Min parameters: 1
Max parameters: 3
Return type: status
YANG file: yangcli.yang

Command Parameters:

  • expr
    • type: XPath expression string
    • usage: mandatory
    • default: none
    • This parameter specifies the XPath expression to determine if the following commands are within a true or false conditional block.
  • docroot
    • type: anyxml
    • usage: optional (typically a variable reference is used)
    • default: none
    • This parameter specifies the XML document that should be used if the expr XPath expression references any path nodes.
  • maxloops
    • type: uint32
    • usage: optional
    • default: 65535
    • Set a maximum number of loops that can be iterated for this while command. The value zero means that no maximum will be enforced. Use this mode with caution.

Positive Response:

  • the server returns <ok/>

Negative Response:

  • An error message will be printed if errors are detected locally.
    • invalid XPath expression or invalid docroot reference will cause an error

Usage:


    yangcli andy@myserver> while 1 --maxloops=10
    yangcli andy@myserver> while '$x < 10'
    yangcli andy@myserver> 


xget

The xget command is used to invoke a NETCONF <get> operation with an XPath filter.


xget command


Command type: remote
Default parameter: select
Min parameters: 1
Max parameters: 3
Return type: data
YANG file: yangcli.yang
Capabilities needed: none
Capabilities optional: :with-defaults

Command Parameters:

  • choice 'from' (not entered)
    • type: choice of case 'varref' or case 'select'
    • usage: mandatory
    • default: none
    • This parameter specifies the where yangcli should get the data from, for the XPath filter target of the <get> operation. It is an XPath expression, either contained in a user variable or directly from the select parameter.
      • varref
        • type: string
        • usage: mandatory
        • default: none
        • This parameter specifies the name of the user variable the contains the XPath expression for the XPath filter in the <get> operation. The parameter must exist (e.g., created with an assignment statement) or an error message will be printed.
      • select
        • type: string
        • usage: mandatory
        • default: none
        • This parameter specifies the XPath expression to use for the XPath filter in the <get> operation.
  • timeout
    • type: uint32 (0 = no timeout, otherwise the number of seconds to wait)
    • usage: optional
    • default: set to the $$timeout system variable, default 30 seconds
    • This parameter specifies the number of seconds to wait for a response from the server before giving up. The session will not be dropped if a remote command times out, but any late response will be dropped. A value of zero means no timeout should be used, and yangcli will wait forever for a response.
  • with-defaults
    • type: enumeration (none report-all report-all-tagged trim explicit)
    • usage: optional
    • default: none
    • capabilities needed: with-defaults
    • This parameter controls how nodes containing only default values are returned in the <rpc-reply>.

System Variables:

  • $$timeout
    • The response timeout interval will be derived from this system variable.
  • $$with-defaults
    • The <with-defaults> parameter for the <get> operation will be derived from this system variable.

Positive Response:

  • the server returns <data>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Output:

  • data
    • type: anyxml
    • This element will contain the requested data from the <running> database or non-config data structures.

Usage:

    yangcli andy@myserver> xget //name
    RPC Data Reply 42 for session 10:
    rpc-reply { 
       data { 
          nacm { 
             rules { 
                data-rule nacm-tree { 
                   name nacm-tree 
                } 
             } 
          } 
          xpath.1 { 
             name barney 
          } 
          netconf-state { 
             datastores { 
                datastore { 
                   name { 
                      candidate 
                   } 
                } 
             } 
          } 
          netconf { 
             streams { 
                stream NETCONF { 
                   name NETCONF 
                } 
             } 
          } 
       } 
       } 
    } 
    yangcli andy@myserver>

Reference:

  • RFC 4741, section 7.7

xget-config

The xget-config command is used to invoke a NETCONF <get-config> operation with an XPath filter.


xget-config command


Command type: remote
Default parameter: select
Min parameters: 2
Max parameters: 4
Return type: data
YANG file: yangcli.yang
Capabilities needed: none
Capabilities optional: :candidate:startup:url:with-defaults

Command Parameters:

  • choice 'from' (not entered)
    • type: choice of case 'varref' or case 'select'
    • usage: mandatory
    • default: none
    • This parameter specifies the where yangcli should get the data from, for the XPath filter target of the <get-config> operation. It is an XPath expression, either contained in a user variable or directly from the select parameter.
      • varref
        • type: string
        • usage: mandatory
        • default: none
        • This parameter specifies the name of the user variable the contains the XPath expression for the XPath filter in the <get-config> operation. The parameter must exist (e.g., created with an assignment statement) or an error message will be printed.
      • select
        • type: string
        • usage: mandatory
        • default: none
        • This parameter specifies the XPath expression to use for the XPath filter in the <get-config> operation.
  • source
    • type: container with 1 of N choice of leafs
    • usage: mandatory
    • default: none
    • This parameter specifies the name of the source database for the retrieval operation.
    • container contents: 1 of N:
      • candidate
        • type: empty
        • capabilities needed: :candidate
      • running
        • type: empty
        • capabilities needed: none
      • startup
        • type: empty
        • capabilities needed: startup
      • url
        • type: yang:uri
        • capabilities needed: :url, and the scheme used in the URL must be specified in the :url capability 'schemes' parameter
        • To enter this parameter, the interactive mode must be used. The shorthand mode (source=url) cannot be used, since this parameter contains a string.
  • timeout
    • type: uint32 (0 = no timeout, otherwise the number of seconds to wait)
    • usage: optional
    • default: set to the $$timeout system variable, default 30 seconds
    • This parameter specifies the number of seconds to wait for a response from the server before giving up. The session will not be dropped if a remote command times out, but any late response will be dropped. A value of zero means no timeout should be used, and yangcli will wait forever for a response.
  • with-defaults
    • type: enumeration (none report-all report-all-tagged trim explicit)
    • usage: optional
    • default: none
    • capabilities needed: with-defaults
    • This parameter controls how nodes containing only default values are returned in the <rpc-reply>.

System Variables:

  • $$timeout
    • The response timeout interval will be derived from this system variable.
  • $$with-defaults
    • The <with-defaults> parameter for the <get-config> operation will be derived from this system variable.

Positive Response:

  • the server returns <data>

Negative Response:

  • An error message will be printed if errors are detected locally.
  • An <rpc-error> message will be printed if the server detected an error.

Output:

  • data
    • type: anyxml
    • This element will contain the requested data from the source database.

Usage:


    yangcli andy@myserver> xget /nacm/groups \
        source=running
    RPC Data Reply 41 for session 10: 
    rpc-reply { 
       data { 
          nacm { 
             groups { 
                group nacm:admin { 
                   groupIdentity nacm:admin 
                   userName andy 
                   userName fred 
                   userName barney 
                } 
                group nacm:guest { 
                   groupIdentity nacm:guest 
                   userName guest 
                } 
             } 
          } 
       } 
    } 
    yangcli andy@svnserver> 

CLI Reference

The Yuma programs uses command line interface (CLI) parameters to control program behavior.

Many parameters are supported by more than one program, such as --log.

The following sections document all the Yuma CLI parameters, in alphabetical order.

--aliases-file

The –aliases-file parameter specifies the yangcli command aliases file specification to use.


--aliases-file parameter


Syntax string
Default: $HOME/.yuma/.yangcli_aliases
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli –aliases-file=~/myalaises

--alt-names

The –alt-names parameter controls whether alternative names are searched when processing a UrlPath search.


--alt-names parameter


Syntax boolean (true or false)
Default: TRUE
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --alt-names=false

--autoaliases

The --autoaliases parameter controls automatic loading and saving of the command aliases file.

If 'true', then aliases will be loaded and saved automatically.

If 'false', then aliases must be loaded and saved manually with the 'aliases' command.


--autoaliases parameter


Syntax boolean (true or false)
Default: TRUE
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --autoaliases=false

--autocomp

The --autocomp parameter controls automatic completion of command and parameter names.

If true, then the program will attempt to find a partial match by comparing only the number of characters entered. For example '--log-l=debug' is the same as '--log-level=debug'.

If 'false', then command and parameter names must match exactly.

--autocomp parameter


Syntax boolean (true or false)
Default: TRUE
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --autocomp=false

--autohistory

The --autohistory parameter controls automatic loading and saving of the command line history buffer in the yangcli program..

If true, then when the program starts, the default command line history buffer will be loaded, and the previous set of commands will be available with the history and recall commands.

If 'false', then the command line history buffer will not be loaded and saved automatically.

The default location for this file is ~/.yuma/.yangcli_history.

--autohistory parameter


Syntax boolean (true or false)
Default: TRUE
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --autohistory=false

--autoload

The --autoload parameter controls automatic loading of YANG modules, as needed.

If true, then the program will attempt to find a needed YANG module.

If 'false', then YANG modules must be loaded manually.


--autoload parameter


Syntax boolean (true or false)
Default: TRUE
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --autoload=false

--autouservars

The --autouservars parameter controls automatic loading of global user variables.

If 'true', then the global user variables will be automatically loaded and saved.

If 'false', then the global user variables must be loaded and saved manually with the 'uservars' command.


--autouservars parameter


Syntax boolean (true or false)
Default: TRUE
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --autouservars=false

--bad-data

The --bad-data parameter controls how invalid parameter input is handled by the program.

  • ignore: Use invalid parameter values. Use with caution.
  • warn: Issue a warning message, but use the invalid data anyway.
  • check: Prompt the user interactively, and check if the invalid data should be used, or a new value re-entered.
  • error: Do not use invalid parameter values.
--bad-data parameter


Syntax enumeration: ignore warn check error
Default: check
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli ----bad-data=warn

--batch-mode

The --batch-mode parameter specifies that the interactive CLI will not be used.

Instead, if a script is provided with the 'run-script' parameter, or a command provided with the 'run-command' parameter, then it will be executed automatically before the program exits. This mode can be used to invoke NETCONF commands from Unix shell scripts.


--batch-mode parameter


Syntax empty
Default: none
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --batch-mode \
  --run-script=~/run-tests

--config

The --config parameter specifies the name of a Yuma configuration file that contains more parameters to process, in addition to the CLI parameters.

Refer to the 'Configuration Files' section for details on the format of this file.


--config parameter


Syntax string: complete file specification of the text file to parse for more parameters.
Default: /etc/yuma/<program-name>.conf
Min Allowed: 0
Max Allowed: 1
Supported by: netconfdyangcliyangdiffyangdump
Example: yangcli testmod \
  --config=~/testconf.conf

--datapath

The --datapath parameter specifies the directory search path to use while searching for data files. It consists of a colon (':') separated list of path specifications, commonly found in Unix, such as the $PATH environment variable.

This parameter overrides the $YUMA_DATAPATH environment variable, if it is present.


--datapath parameter


Syntax string: list of directory specifications
Default: $YUMA_DATAPATH environment variable
Min Allowed: 0
Max Allowed: 1
Supported by: netconfdyangcliyangdiffyangdump
Example: yangcli \
  --datapath=”~/work2:~/data”

--default-module

The --default-module parameter specifies the module to search for identifiers, after the netconf and ncx modules have been checked. This allows a specific module to match identifier names first, before all modules are searched at once. This can avoid a collision if the same identifier value is used in more than one module.


--default-module parameter


Syntax string: module name without any path or file extension included.
Default: none
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --default-module=testmod

--deviation

The --deviation parameter is a leaf-list of modules that should be loaded automatically when the program starts, as a deviation module. In this mode, only the deviation statements are parsed and then made available later when the module that contains the objects being deviated is parsed.

The deviations must be known to the parser before the target module is parsed.

This parameter is used to identify any modules that have deviation statements for the set of modules being parsed (e.g., --module and --subtree parameters).

A module can be listed with both the --module and --deviation parameters, but that is not needed unless the module contains external deviations. If the module only contains deviations for objects in the same module, then the --deviation parameter does not need to be used.

The program will attempt to load each module in deviation parsing mode, in the order the parameters are entered.

For the netconfd program, If any modules have fatal errors then the program will terminate.

For the yangdump and yangcli programs, each module will be processed as requested.


--deviation parameter


Syntax module name or filespec
Default: none
Min Allowed: 0
Max Allowed: unlimited
Supported by: netconfdyangcliyangdump
Example: yangcli \
  --module=test1 \
  --deviation=test1_deviations

--display-mode

The --display-mode parameter controls how data is displayed in the program.

The qualified names (identifiers, idenitityref, XPath) within a text configuration can be generated several ways. This is needed because sibling nodes in different XML namespaces can have the same name.

--display-mode values


enum value
description
example
plain no prefix, just local-name sysBootError
prefix XML prefix and local-name sys:sysBootError
module module name and local name system:sysBootError
xml XML format <sysBootError xmlns=”foo”>
xml-nons XML format without namespace (xmlns) attributes <sysBootError>
json JSON format { “sysBootError” : “blah” }

When saving configuration files in non-volatile storage, then it is suggested that only 'module' or 'xml' modes be used, since these are the only deterministic modes.

The set of XML prefixes in use at any one time is not persistent, and cannot be relied upon, unless the namespace declarations are saved (xml mode) or the module names are saved (module mode).


display-mode parameter


Syntax enumeration: plain prefix module xml xml-nons json
Default: plain
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --display-mode=module

--feature-disable

The --feature-disable parameter directs all programs to disable a specific feature.

This parameter is a formatted string containing a module name, followed by a colon ':', followed by a feature name, e.g.,


test:feature1


It is an error if a --feature-enable and --feature-disable parameter specify the same feature.

Parameters for unknown features will be ignored.


--feature-disable parameter


Syntax formatted string (module:feature
Default: none
Min Allowed: 0
Max Allowed: unlimited
Supported by: yangcliyangdiffyangdumpnetconfd
Example: yangcli --feature-disable=test:feature1

--feature-enable

The --feature-enable parameter directs all programs to enable a specific feature.

This parameter is a formatted string containing a module name, followed by a colon ':', followed by a feature name, e.g.,


test:feature1


It is an error if a --feature-disable and --feature-enable parameter specify the same feature.

Parameters for unknown features will be ignored.


--feature-enable parameter


Syntax formatted string (module:feature
Default: none
Min Allowed: 0
Max Allowed: unlimited
Supported by: yangcliyangdiffyangdumpnetconfd
Example: yangcli--feature-enable=test:feature1

--feature-enable-default

The --feature-enable-default parameter controls how yangdump will generate C code for YANG features by default.

If 'true', then by default, features will be enabled.

If 'false', then by default, features will be disabled.

If a --feature-enable or --feature-disable parameter is present for a specific feature, then this parameter will be ignored for that feature.


--feature-enable-default parameter


Syntax boolean (true or false)
Default: TRUE
Min Allowed: 0
Max Allowed: 1
Supported by: yangcliyangdiffyangdumpnetconfd
Example: yangcli \
   --feature-enable-default=false

--fixorder

The --fixorder parameter controls whether PDU parameters will be automatically sent in NETCONF PDUs in the correct order.

If 'true', the schema-defined, canonical order will be used.

If 'false', the specified order that parameters are entered will be used for the PDU order as well.


--fixorder parameter


Syntax boolean (true or false)
Default: TRUE
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --fixorder=false

--force-target

The --force-target parameter controls whether the candidate or running configuration datastore will be used as the default edit target, when both are supported by the server.


--force-target parameter


Syntax enum (candidate or running)
Default: candidate
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --force-target=running

--help

The --help parameter causes program help text to be printed, and then the program will exit instead of running as normal.

This parameter can be combined with the --help-mode parameter to control the verbosity of the help text. Use --brief for less, and --full for more than the normal verbosity.

This parameter can be combined with the --version parameter in all programs. It can also be combined with the --show-errors parameter in yangdump.

The program configuration parameters will be displayed in alphabetical order, not in schema order.


--help parameter


Syntax empty
Default: none
Min Allowed: 0
Max Allowed: 1
Supported by: netconfdyangcliyangdiffyangdump
Example: yangcli --help

--help-mode

The --help-mode parameter is used to control the amount of detail printed when help text is requested in some command. It is always used with another command, and makes no sense by itself. It is ignored unless used with the --help parameter.


--help-mode parameter


Syntax choice of 3 empty leafs

--brief --normal --full

Default: normal
Min Allowed: 0
Max Allowed: 1
Supported by: netconfdyangcliyangdiffyangdump
Example: yangcli --help --help-mode=full
  • default choice: normal
  • choice help-mode
    • brief
      • type: empty
      • This parameter specifies that brief documentation mode should be used.
    • normal
      • type: empty
      • This parameter specifies that normal documentation mode should be used.
    • full
      • type: empty
      • This parameter specifies that full documentation mode should be used.

--indent

The --indent parameter specifies the number of spaces that will be used to add to the indentation level, each time a child node is printed during program operation.

--indent parameter


Syntax uint32 (0 .. 9)
Default: 3
Min Allowed: 0
Max Allowed: 1
Supported by: netconfdyangcliyangdiffyangdump
Example: yangcli --indent=4

--log

The --log parameter specifies the file name to be used for logging program messages, instead of STDOUT. It can be used with the optional --log-append and --log-level parameters to control how the log file is written.


--log parameter


Syntax string: log file specification
Default: none
Min Allowed: 0
Max Allowed: 1
Supported by: netconfdyangcliyangdiffyangdump
Example: yangcli --log=~/test.log&

--log-append

The --log-append parameter specifies that the existing log file (if any) should be appended , instead of deleted. It is ignored unless the --log parameter is present.


--log-append parameter


Syntax empty
Default: none
Min Allowed: 0
Max Allowed: 1
Supported by: netconfdyangcliyangdiffyangdump
Example: yangcli --log-append \
  --log=~/test.log&

--log-level

The --log-level parameter controls the verbosity level of messages printed to the log file or STDOUT, if no log file is specified.

The log levels are incremental, meaning that each higher level includes everything from the previous level, plus additional messages.

There are 7 settings that can be used:

  • none: All logging is suppressed. Use with extreme caution!
  • error: Error messages are printed, indicating problems that require attention.
  • warn: Warning messages are printed, indicating problems that may require attention.
  • info: Informational messages are printed, that indicate program status changes.
  • debug: Debugging messages are printed that indicate program activity.
  • debug2: Protocol debugging and trace messages are enabled.
  • debug3: Very verbose debugging messages are enabled. This has an impact on resources and performance, and should be used with caution.
  • debug4: Maximum debugging messages are enabled.
log-level parameter


Syntax enumeration: off error warn info debug debug2 debug3

debug4

Default: --info (--debug for DEBUG builds)
Min Allowed: 0
Max Allowed: 1
Supported by: netconfdyangcliyangdiffyangdump
Example: yangcli --log-level=debug \
  --log=~/test.log&

--match-names

The --match-names parameter specifies how names are matched when performing UrlPath searches.

The following values are supported::

  • exact

The name must exactly match the node name for all characters in both name strings.

  • exact-nocase

The name must match the node name for all characters in both name strings.

Strings are not case-sensitive.

  • one

The name must exactly match the first N characters of just one node name, which must be the only partial name match found.

  • one-nocase

The name must exactly match the first N characters of just one node name, which

must be the only partial name match found. Strings are not case-sensitive.

  • first

The name must exactly match the first N characters of any node name. The first one

found will be used.

  • first-nocase

The name must exactly match the first N characters of any node name. The first one

found will be used. Strings are not case-sensitive.


--match-names parameter


Syntax enum: exact exact-nocase one one-nocase first

first-nocase

Default: one-nocase
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --match-names=exact

--modpath

The --modpath parameter specifies the YANG module search path to use while searching for YANG files. It consists of a colon (':') separated list of path specifications, commonly found in Unix, such as the $PATH environment variable.

This parameter overrides the $YUMA_MODPATH environment variable, if it is present.

--modpath parameter


Syntax string: list of directory specifications
Default: $YUMA_MODPATH environment variable
Min Allowed: 0
Max Allowed: 1
Supported by: netconfdyangcliyangdiffyangdump
Example: yangcli \
  --modpath=”~/testmodules:~/modules:~/trunk/netconf/modules”

--module

The --module parameter is a leaf-list of modules that should be loaded automatically when the program starts.

The program will attempt to load each module in the order the parameters were entered.

For the netconfd program, If any modules have fatal errors then the program will terminate.

For the yangdump program, each module will be processed as requested.


--module parameter


Syntax module name or filespec
Default: none
Min Allowed: 0
Max Allowed: unlimited
Supported by: netconfdyangcliyangdump
Example: yangcli \
  --module=test1 \
  --module=test2

--ncport

The --ncport parameter specifies the TCP port number that should be used for NETCONF sessions.

This parameter specifies the TCP port number to use when a NETCONF session is created during the startup of the program. The parameter can only be entered once.


--ncport parameter


Syntax uint32
Default: 830
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --server=myserver
  --ncport=22 \
  --user=fred
  --password=mypassword

--password

The --password parameter specifies the password string that should be used when a NETCONF session is connected during the startup of the program.


--password parameter


Syntax string
Default: none
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --server=myserver \
  --password=yangrocks \
  --user=andy

--private-key

The --private-key parameter specifies the file path specification for the file containing the client-side private key.

If both 'public-key' and 'private-key' files are present, the client will attempt to connect to the server using these keys. If this fails, or not done, then password authentication will be attempted.


--private-key parameter


Syntax string
Default: $HOME/.ssh/id_rsa
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli –private-key=~/.ssh/mykey

--protocols

The --protocols parameter specifies which protocol versions the program or session will attempt to use. Empty set is not allowed.

--protocols parameter


Syntax bits
Default: “netconf1.0 netconf1.1”
Min Allowed: 0
Max Allowed: 1
Supported by: netconfdyangcli
Example: yangcli –protocols=netconf1.0

--public-key

The --public-key parameter specifies the file path specification for the file containing the client-side public key.

If both 'public-key' and 'private-key' files are present, the client will attempt to connect to the server using these keys. If this fails, or not done, then password authentication will be attempted.


--public-key parameter


Syntax string
Default: $HOME/.ssh/id_rsa.pub
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli –public-key=~/.ssh/mykey.pub

--runpath

The --runpath parameter specifies the directory search path to use while searching for script files. It consists of a colon (':') separated list of path specifications, commonly found in Unix, such as the $PATH environment variable.

This parameter overrides the $YUMA_RUNPATH environment variable, if it is present.


--runpath parameter


Syntax string: list of directory specifications
Default: $YUMA_RUNPATH environment variable
Min Allowed: 0
Max Allowed: 1
Supported by: netconfdyangcliyangdiffyangdump
Example: yangcli \
  --runpath=”~/testscripts”

--run-command

The --run-command parameter specifies a command will be invoked upon startup.

In the yangcli program, if the auto-connect parameters are provided, then a session will be established before running the command.


--run-command parameter


Syntax string
Default: none
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli \
  --run-command="history 
  load=~/test3-history"

--run-script

The --run-script parameter specifies a script will be invoked upon startup.

In the yangcli program, if the auto-connect parameters are provided, then a session will be established before running the script.


--run-script parameter


Syntax string (file specification)
Default: none
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli \
  --run-script="test3-start"

--server

The --server parameter specifies the IP address or DNS name of the NETCONF server that should be connected to automatically, when the program starts.


--server parameter


Syntax string:IP address or DNS name
Default: none
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --server=myserver

--subdirs

The --subdirs parameter controls whether sub-directories should be searched or not, if they are found during a module search.

If false, the file search paths for modules, scripts, and data files will not include sub-directories if they exist in the specified path.


--subdirs parameter


Syntax boolean
Default: TRUE
Min Allowed: 0
Max Allowed: 1
Supported by: yangdump
Example: yangcli --subdirs=false

--time-rpcs

The --time-rpcs parameter is used to measure the round-trip time of each <rpc> request and <rpc-reply> at the session level. Echo the elapsed time value to screen if in interactive mode, as well as the log if the log is a file instead of stdout. The $$time-rpcs system variable is derived from this parameter.";


--time-rpcs parameter


Syntax boolean
Default: FALSE
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --time-rpcs=true

--timeout

The --timeout parameter specifies the number of seconds that should pass before giving up on a response during a NETCONF session. The value zero means wait forever (no timeout).


--timeout parameter


Syntax uint32 (0 for no timeout; otherwise number of seconds to wait)
Default: 30 seconds
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --timeout=0

--transport

The --transport parameter specifies the NETCONF transport protocol to use.

This parameter is also supported in the 'connect' command.

There are 2 values supported:

  1. ssh: standard NETCONF SSH transport (RFC 4742 or RFC 6242)
  2. tcp: tail-f NETCONF over TCP transport
    Note that netconfd does not support this transport protocol!

I

--timeout parameter


Syntax Enum (ssh or tcp)
Default: ssh
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --transport=tcp

--use-xmlheader

The --use-xmlheader parameter specifies how file result variables will be written for XML files.

Controls whether the XML preamble header will be written or not.


--use-xmlheader parameter


Syntax boolean
Default: TRUE
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --use-xmlheader=false

--user

The --user parameter specifies the user name string on the NETCONF server that should be used when establishing a NETCONF session.


--user parameter


Syntax string:user name
Default: none
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli --user=admin \
  --server=myserver

--uservars-file

The --uservars-file parameter contains the file specification of the user global variables XML file to use.


--uservars-file parameter


Syntax string:filespec
Default: $HOME/.yuma/yangcli_uservars.xml
Min Allowed: 0
Max Allowed: 1
Supported by: yangcli
Example: yangcli –uservars-file=~/myvars.xml

--version

The --version parameter causes the program version string to be printed, and then the program will exit instead of running as normal.

All Yuma version strings use the same format:

DEBUG: <major>.<minor>.<svn-build-version>

or

NON-DEBUG: <major>.<minor>-<release>

An example version number that may be printed:


    yangcli 1.15-4


This parameter can be combined with the --help parameter.

--version parameter


Syntax empty
Default: none
Min Allowed: 0
Max Allowed: 1
Supported by: netconfdyangcliyangdiffyangdump
Example: yangcli --version

--warn-idlen

The --warn-idlen parameter controls whether identifier length warnings will be generated.

The value zero disables all identifier length checking. If non-zero, then a warning will be generated if an identifier is defined which has a length is greater than this amount.

--warn-idlen parameter


Syntax uint32: 0 to disable, or 8 .. 1023
Default: 64
Min Allowed: 0
Max Allowed: 1
Supported by: netconfdyangcliyangdiffyangdump
Example: yangcli --warn-idlen=50

--warn-linelen

The --warn-linelen parameter controls whether line length warnings will be generated.

The value zero disables all line length checking. If non-zero, then a warning will be generated if a YANG file line is entered which has a length is greater than this amount.

Tab characters are counted as 8 spaces.


--warn-linelen parameter


Syntax uint32: 0 to disable, or 40 .. 4095
Default: 72
Min Allowed: 0
Max Allowed: 1
Supported by: netconfdyangcliyangdiffyangdump
Example: yangcli --warn-linelen=79

--warn-off

The --warn-off parameter suppresses a specific warning number.

The error and warning numbers, and the default messages, can be viewed with the yangdump program by using the --show-errors configuration parameter.

The specific warning message will be disabled for all modules. No message will be printed and the warning will not count towards the total for that module.


--warn-off parameter


Syntax uint32: 400 .. 899
Default: none
Min Allowed: 0
Max Allowed: 499
Supported by: netconfdyangcliyangdiffyangdump
Example: yangcli --warn-off=435
# revision order not descending

--yuma-home

The --yuma-home parameter specifies the project directory root to use when searching for files.

If present, this directory location will override the '$YUMA_HOME environment variable, if it is set. If this parameter is set to a zero-length string, then the $YUMA_HOME environment variable will be ignored.

The following directories are searched when either the $YUMA_HOME environment variable or this parameter is set:

  • $YUMA_HOME/modules
    • This sub-tree is searched for YANG files.
  • $YUMA_HOME/data
    • This directory is searched for data files.
  • $YUMA_HOME/scripts
    • This directory is searched for yangcli script files.
yuma-home parameter


Syntax string: directory specification
Default: $YUMA_HOME environment variable
Min Allowed: 0
Max Allowed: 1
Supported by: netconfdyangcliyangdiffyangdump
Example: yangcli \
  --yuma-home=~/sw/netconf \
  --log=~/test.log&