Adding ONOS Segment Routing CLI files to new repo
diff --git a/cli/desc/version200/test.py b/cli/desc/version200/test.py
new file mode 100755
index 0000000..c4a1cbf
--- /dev/null
+++ b/cli/desc/version200/test.py
@@ -0,0 +1,332 @@
+#
+# Copyright (c) 2013 Big Switch Networks, Inc.
+#
+# Licensed under the Eclipse Public License, Version 1.0 (the
+# "License"); you may not use this file except in compliance with the
+# License. You may obtain a copy of the License at
+#
+#      http://www.eclipse.org/legal/epl-v10.html
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+#
+
+import fmtcnv
+
+TEST_PACKET_IN_COMMAND_DESCRIPTION = {
+    'name'         : 'test',
+    'mode'         : 'login',
+    'no-supported' : False,
+    'obj-type'     : 'test-command',   # fake obj-type, legacy-cli descriminator
+    'short-help'   : 'Perform various tests on the network',
+    'doc'          : 'test|test',
+    'doc-example'  : 'test|test-packet-in-example',
+    'action'       : 'legacy-cli',
+    'args'         : (
+        {
+            'field'          : 'test-type',
+            'type'           : 'enum',
+            'values'         : 'packet-in',
+            'doc'            : 'test|test-packet-in',
+        },
+        {
+            # src-host
+            'field'        : 'src-host',
+            'tag'          : 'src-host',
+            'type'         : 'host',
+            'completion'   : 'complete-from-another',
+            'other'        : 'host|mac',
+            'data-handler' : 'alias-to-value',
+            'doc'          : 'test|test-packet-in-mac',
+        },
+        {
+            # dst-host
+            'field'        : 'dst-host',
+            'tag'          : 'dst-host',
+            'type'         : 'host',
+            'completion'   : 'complete-from-another',
+            'other'        : 'host|mac',
+            'data-handler' : 'alias-to-value',
+            'doc'          : 'test|test-packet-in-mac',
+        },
+        {
+            # src-switch
+            'optional'   : True,
+            'args'       : (
+                {
+                    'field'        : 'src-switch',
+                    'tag'          : 'src-switch',
+                    'type'         : 'dpid',
+                    'completion'   : 'complete-from-another',
+                    'other'        : 'switches|dpid', # field isn't dpid
+                    'data-handler' : 'alias-to-value',
+                    'doc'          : 'test|test-packet-in-dpid',
+                },
+                {
+                    'field'        : 'src-switch-port',
+                    'type'         : 'string',
+                    'completion'   : 'complete-from-another',
+                    'other'        : 'interfaces|portName',
+                    'scoped'       : 'src-switch',
+                    'data-handler' : 'convert-interface-to-port',
+                    'doc'          : 'test|test-packet-in-if',
+                },
+            ),
+        },
+        {
+            'field'     : 'vlan',
+            'tag'       : 'vlan',
+            'base-type' : 'integer',
+            'range'     : (0,4095),
+            'optional'  : True,
+            'doc'       : 'test|test-packet-in-vlan',
+        },
+        # currently ether-type isn't implemented
+        #{
+            #'optional' : True,
+            #'choices' : (
+                #{
+                    #'field'         : 'ether-type',
+                    #'tag'           : 'ether-type',
+                    #'base-type'     : 'hex-or-decimal-integer',
+                    #'range'         : (1536,65536),
+                    #'data-handler'  : 'hex-to-integer',
+                #},
+                #{
+                    #'field'         : 'ether-type',
+                    #'tag'           : 'ether-type',
+                    #'type'          : 'enum',
+                    #'values'        : fmtcnv.ether_type_to_number_dict,
+                #},
+            #),
+        #},
+        {
+            'field'     : 'priority',
+            'tag'       : 'priority',
+            'base-type' : 'integer',
+            'range'     : (0,7),
+            'optional'  : True,
+            'doc'       : 'test|test-packet-in-priority',
+        },
+        {
+            'field'    : 'src-ip-address',
+            'tag'      : 'src-ip-address',
+            'type'     : 'ip-address-not-mask',
+            'optional' : True,
+            'doc'      : 'test|test-packet-in-ip',
+        },
+        {
+            'field'    : 'dst-ip-address',
+            'tag'      : 'dst-ip-address',
+            'type'     : 'ip-address-not-mask',
+            'optional' : True,
+            'doc'      : 'test|test-packet-in-ip',
+        },
+        {
+            'field'     : 'protocol',
+            'tag'       : 'protocol',
+            'base-type' : 'integer',
+            'range'     : (1,255),
+            'optional'  : True,
+            'doc'      : 'test|test-packet-in-proto',
+        },
+        {
+            'field'     : 'tos',
+            'tag'       : 'tos',
+            'base-type' : 'integer',
+            'range'     : (1,255),
+            'optional'  : True,
+            'doc'      : 'test|test-packet-in-tos',
+        },
+        {
+            'field'     : 'src-port',
+            'tag'       : 'src-port',
+            'base-type' : 'integer',
+            'range'     : (0,65535),
+            'optional'  : True,
+            'doc'      : 'test|test-packet-in-port',
+        },
+        {
+            'field'     : 'dst-port',
+            'tag'       : 'dst-port',
+            'base-type' : 'integer',
+            'range'     : (0,65535),
+            'optional'  : True,
+            'doc'      : 'test|test-packet-in-port',
+        },
+    ),
+}
+
+TEST_PATH_COMMAND_DESCRIPTION = {
+    'name'         : 'test',
+    'mode'         : 'login',
+    'no-supported' : False,
+    'obj-type'     : 'test-command',   # fake obj-type, legacy-cli descriminator
+    'short-help'   : 'Perform various tests on the network',
+    'doc'          : 'test|test',
+    'doc-example'  : 'test|test-path-example',
+    'action'       : (
+        # collect the entries
+        {
+            'proc' : 'legacy-cli',
+        },
+        # join the interface names, possibly add stats?
+        {
+            'proc'       : 'join-table',
+            'obj-type'   : 'interfaces',
+            'key'        : 'switch|portNumber',
+            'join-field' : 'switch|port',
+            'add-field'  : 'portName|portName',
+        },
+        # add basic interface's stats
+        {
+            'proc'       : 'join-rest',
+            'url'        : 'realtimestats/port/%(switch)s/',
+            'rest-type'  : 'dict-of-list-of-switch|portNumber',
+            'key'        : 'switch|portNumber',
+            'join-field' : 'switch|port'
+        },
+        # display the result
+        {
+            'proc'       : 'display',
+            'format'     : 'test-path',
+        }
+    ),
+    'args'         : (
+        {
+            'field'        : 'test-type',
+            'type'         : 'enum',
+            'values'       : 'path',
+            'doc'          : 'test|test-path',
+        },
+        {
+            'choices' : (
+                # source device (need address space, vlan)
+                {
+                    'field'        : 'src-host',
+                    'tag'          : 'src-host',
+                    'type'         : 'host',
+                    'completion'   : 'complete-from-another',
+                    'other'        : 'host|mac',
+                    'data-handler' : 'alias-to-value',
+                    'doc'          : 'test|test-path-host',
+                },
+                # source ip
+                {
+                    'field'        : 'src-ip',
+                    'tag'          : 'src-ip',
+                    'type'         : 'ip-address',
+                    'completion'   : 'complete-from-another',
+                    'other'        : 'host-network-address|ip-address',
+                    'doc'          : 'test|test-path-ip',
+                },
+                # source attachment point
+                (
+                    {
+                        'field'        : 'src-switch',
+                        'tag'          : 'src-switch',
+                        'type'         : 'dpid',
+                        'completion'   : 'complete-from-another',
+                        'other'        : 'switches|dpid', # field isn't dpid
+                        'data-handler' : 'alias-to-value',
+                        'doc'          : 'test|test-path-switch',
+                    },
+                    {
+                        'field'        : 'src-switch-port',
+                        'type'         : 'string',
+                        'completion'   : 'complete-from-another',
+                        'other'        : 'interfaces|portName',
+                        'scoped'       : 'src-switch',
+                        'data-handler' : 'convert-interface-to-port',
+                        'doc'          : 'test|test-path-if',
+                    },
+                ),
+            )
+        },
+        {
+            'choices' : (
+                # dest mac (need address space, vlan)
+                {
+                    'field'        : 'dst-host',
+                    'tag'          : 'dst-host',
+                    'type'         : 'host',
+                    'completion'   : 'complete-from-another',
+                    'other'        : 'host|mac',
+                    'data-handler' : 'alias-to-value',
+                    'doc'          : 'test|test-path-host',
+                },
+                # dest ip (need address space, vlan)
+                {
+                    'field'        : 'dst-ip',
+                    'tag'          : 'dst-ip',
+                    'type'         : 'ip-address',
+                    'completion'   : 'complete-from-another',
+                    'other'        : 'host-network-address|ip-address',
+                    'doc'          : 'test|test-path-ip',
+                },
+                # dest attachment point
+                (
+                    {
+                        'field'        : 'dst-switch',
+                        'tag'          : 'dst-switch',
+                        'type'         : 'dpid',
+                        'completion'   : 'complete-from-another',
+                        'other'        : 'switches|dpid', # field isn't dpid
+                        'data-handler' : 'alias-to-value',
+                        'doc'          : 'test|test-path-switch',
+                    },
+                    {
+                        'field'        : 'dst-switch-port',
+                        'type'         : 'string',
+                        'completion'   : 'complete-from-another',
+                        'other'        : 'interfaces|portName',
+                        'scoped'       : 'dst-switch',
+                        'data-handler' : 'convert-interface-to-port',
+                        'doc'          : 'test|test-path-if',
+                    },
+                ),
+            )
+        },
+    ),
+}
+
+TEST_PATH_FORMAT = {
+    'test-path' : {
+        'field-orderings' : {
+            'default' : [ 'Idx', 'switch', 'portName',
+                          'receiveBytes', 'receivePackets', 'receiveErrors',
+                          'transmitBytes', 'transmitPackets', 'transmitErrors',
+                        ]
+        },
+        'fields' : {
+            'switch'          : {
+                                  'verbose-name' : 'Switch',
+                                  'formatter' : fmtcnv.replace_switch_with_alias
+                                },
+            'portName'        : {
+                                  'verbose-name' : 'IF',
+                                },
+            'receiveBytes'    : {
+                                  'verbose-name' : 'Rx Bytes',
+                                },
+            'receivePackets'  : {
+                                  'verbose-name' : 'Rx Pkts',
+                                },
+            'receiveErrors'   : {
+                                  'verbose-name' : 'Rx Errs',
+                                },
+            'transmitBytes'   : {
+                                  'verbose-name' : 'Tx Bytes',
+                                },
+            'transmitPackets' : {
+                                  'verbose-name' : 'Tx Pkts',
+                                },
+            'transmitErrors' :  {
+                                  'verbose-name' : 'Tx Errs',
+                                },
+        },
+    },
+}