usage: Submit address + port for initial TCP connection (PURE TCP CONNECTIONS ARE NOT SUPPORTED YET) Submit username + password in addition to address + port for initial SSH connection If no arguments(or unexpected combination) is submitted, cli will be started without initial connection To use with ODL controller, run with: java -jar netconf-cli-0.2.5-SNAPSHOT-executable.jar --server localhost --port 1830 --username admin --password admin Generic cli for netconf devices optional arguments: -h, --help show this help message and exit TCP: Base arguments to initiate TCP connection right away --server SERVER Netconf device ip-address/domain name --port PORT Netconf device port SSH: SSH credentials, if provided, initial connection will be attempted using SSH --username USERNAME Username for SSH connection --password PASSWORD Password for SSH connection ------------------------------------------------------------------------ To run the cli execute: java -jar netconf-cli-0.2.5-SNAPSHOT-executable.jar --username user --password password --server serverIP --port optionalPort The cli will connect to the remote device automatically. The initialization may take a few moments depending on the size of schemas provided by the device. To view the progress, one can take a look inside netconfcli.log file (All logs are in this file starting with level TRACE). Cli does not print any logging messages to the console, only to the file. ------------------------------------------------------------------------ Correct initialization + connection should display following output: [maros@localhost target]$ java -jar netconf-cli-0.2.5-SNAPSHOT-executable.jar --server localhost --port 1830 --username admin --password admin Connecting to localhost via SSH. Please wait. Cli is up, available commands: add-flow(sal-flow) add-group(sal-group) add-meter(sal-meter) begin-transaction(sal-remote) cancel-commit(ietf-netconf) cancel-toast(toaster) clear-toasts-made(toaster-provider-impl) close(netconf-cli) close-session(ietf-netconf) commit(ietf-netconf) connect(netconf-cli) copy-config(ietf-netconf) create-data-change-event-subscription(sal-remote) create-notification-stream(sal-remote) delete-config(ietf-netconf) discard-changes(ietf-netconf) disconnect(netconf-cli) edit-config(ietf-netconf) finish-transaction(flow-capable-transaction) get(ietf-netconf) get-aggregate-flow-statistics-from-flow-table-for-all-flows(opendaylight-flow-statistics) get-aggregate-flow-statistics-from-flow-table-for-given-match(opendaylight-flow-statistics) get-all-flow-statistics-from-flow-table(opendaylight-flow-statistics) get-all-flows-statistics-from-all-flow-tables(opendaylight-flow-statistics) get-all-group-statistics(opendaylight-group-statistics) get-all-meter-config-statistics(opendaylight-meter-statistics) get-all-meter-statistics(opendaylight-meter-statistics) get-all-node-connectors-statistics(opendaylight-port-statistics) get-all-queues-statistics-from-all-ports(opendaylight-queue-statistics) get-all-queues-statistics-from-given-port(opendaylight-queue-statistics) get-config(ietf-netconf) get-dead-events-count(threadpool-impl) get-flow-statistics-from-flow-table(opendaylight-flow-statistics) get-flow-tables-statistics(opendaylight-flow-table-statistics) get-group-description(opendaylight-group-statistics) get-group-features(opendaylight-group-statistics) get-group-statistics(opendaylight-group-statistics) get-meter-features(opendaylight-meter-statistics) get-meter-statistics(opendaylight-meter-statistics) get-next-transaction-id(flow-capable-transaction) get-node-connector-statistics(opendaylight-port-statistics) get-queue(sal-queue) get-queue-statistics-from-given-port(opendaylight-queue-statistics) get-schema(ietf-netconf-monitoring) help(netconf-cli) kill-session(ietf-netconf) lock(ietf-netconf) make-scrambled-with-wheat(kitchen-service-impl) make-toast(toaster) remove-flow(sal-flow) remove-group(sal-group) remove-meter(sal-meter) reset(config-logging) restock-toaster(toaster) shutdown(shutdown-impl) solicit-refresh(flow-topology-discovery) transmit-packet(packet-processing) unlock(ietf-netconf) update-flow(sal-flow) update-group(sal-group) update-meter(sal-meter) update-port(sal-port) update-table(sal-table) validate(ietf-netconf) netconf()> ------------------------------------------------------------------------ At this stage, any supported rpc can be invoked. To see all possible rpcs press TAB (serves as autocomplete). The output contains all the commands reported after at start-up ------------------------------------------------------------------------ Example step-by-step execution of get-config rpc: 1. Type get-config, hit TAB, hit enter 2. Cli will now walk all the input arguments of get-config rpc and ask for value 3. Cli asks for filter value 4. Submit filter (using TAB autocomplete) as a schema path or type "skip" (to not add any filter) and hit enter 5. Cli asks for config source (e.g. which data-store to query) 6. Use TAB to view options and submit either running or candidate data-store 7. Cli will display configuration of the remote device e.g. : data { a { address { last-name a first-name o street aaaaa } address { last-name a first-name t } address { last-name a first-name y } } } ------------------------------------------------------------------------