.. contents:: Table of Contents :depth: 3 ============== Southbound CLI ============== `Southbound CLI Reviews `__ This spec addresses following enhancement in Openflowplugin module: Addition of new Karaf feature `odl-openflowplugin-app-southbound-cli` under openflowplugin module that provides useful CLIs for users. This feature won't be part of any existing openflowplugin feature and user needs to explicitly install it in addition to the existing features. Problem description =================== Currently there is no way of getting the formatted list of openflow nodes connected to the OpenDaylight controller. User has to fetch operational inventory using Restconf and search for all the connected nodes. Even to get the list of ports available under a OpenFlow node, user need to search the entire inventory dump. From user experience perspective it's not really very helpful, and at scale fetching the entire inventor from data store can cause CPU spike for the controller because of the huge data present under inventory tree. Southbound CLI ============== New Karaf feature is developed that will provide command line interface to the user using which user can retrieving the list of connected OpenFlow nodes and the ports available under each OpenFlow node. Use Cases --------- * List of all OpenFlow node(s) connected to the OpenDaylight controller in either standalone or cluster environment. * List ports information available under a connected OpenFlow node Proposed change --------------- New karaf feature `odl-openflowplugin-app-southbound-cli` will be added and it will not be part of any existing openflowplugin feature. User will have to explicitly install the feature to get the available CLIs. Following 2 CLIs will be added: * `openflow:getallnodes` * `openflow:shownode` `openflow:getallnodes` will display information like NodeId and NodeName(datapath description) for all the connected nodes. `openflow:shownode` will display information like NodeId, NodeName(datapath description) and Ports for a given openflow node. Yang changes ------------ None Targeted Release ---------------- Oxygen Alternatives ------------ Use RestConf to fetch entire operational inventory and parse through it. Usage ===== Install ``odl-openflowplugin-app-southbound-cli`` feature as it is not part of any existing openflowplugin features. List the connected openflow nodes under odl controller either in standalone or cluster environment. In clustered environment user need to install this feature on all the three nodes if it wants to use any node to run these CLI commands, but user also can choose to install it on a dedicated node only if that's the master node to run CLI commands. This feature can be install at any point of time during or after controller start. .. code-block:: bash :caption: openflow:getallnodes opendaylight-user@root>openflow:getallnodes Number of nodes: 1 NodeId NodeName -------------------------------------------------------------------------- 137313212546623 None List the available ports under openflow node. .. code-block:: bash :caption: openflow:shownode opendaylight-user@root>openflow:shownode -d 137313212546623 OFNode Name Ports ------------------------------------------------------------------------------------ 137313212546623 None br-int Implementation ============== Assignee(s) ----------- Primary assignee: * Arunprakash D Contributors: * Gobinath Suganthan Work Items ---------- * Implementation of cli to list the connected openflow nodes across standalone or clustered environment. * Implementation of cli to list the ports available under openflow node. Dependencies ============ No new dependencies. Testing ======= Unit Tests ---------- #. Verify CLI to list all the connected openflow nodes #. Verify CLI to list all the ports under openflow node CSIT ---- None Documentation Impact ==================== None References ========== None