Adding ONOS Segment Routing CLI files to new repo
diff --git a/cli/desc/version200/flow_entry.py b/cli/desc/version200/flow_entry.py
new file mode 100755
index 0000000..13213ab
--- /dev/null
+++ b/cli/desc/version200/flow_entry.py
@@ -0,0 +1,493 @@
+#
+# 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
+
+"""
+FLOW_ENTRY_SUBMODE_COMMAND_DESCRIPTION = {
+    'name'            : 'flow-entry',
+    'mode'            : 'config-switch*',
+    'command-type'    : 'config-submode',
+    'short-help'      : 'Enter flow-entry submode, configure single static flow entry',
+    'doc'             : 'flow-entry|flow-entry',
+    'doc-example'     : 'flow-entry|flow-entry-example',
+    'obj-type'        : 'flow-entry',
+    'parent-field'    : 'switch',
+    'submode-name'    : 'config-switch-flow-entry',
+    'args' : {
+        'field'       : 'name',
+        'type'        : 'identifier',
+        'completion'  : 'complete-object-field',
+        'scoped'      : True,
+        'syntax-help' : 'Enter name for a flow-entry',
+    },
+}
+
+# obj_type flow-entry field hard-timeout
+FLOW_ENTRY_EDIT_HARD_TIMEOUT_COMMAND_DESCRIPTION = {
+    'name'                : 'hard-timeout',
+    'mode'                : 'config-switch-flow-entry',
+    'short-help'          : 'Set hard-timeout for this flow',
+    'doc'                 : 'flow-entry|hard-timeout',
+    'doc-example'         : 'flow-entry|hard-timeout-example',
+    'command-type'        : 'config',
+    'args'                : (
+         {
+             'field'      : 'hard-timeout',
+             'base-type'  : 'integer',
+             'range'      : (0, 65535),
+             'doc'        : 'flow-entry|hard-timeout-field',
+         }
+    )
+}
+
+
+# obj_type flow-entry field idle-timeout
+FLOW_ENTRY_EDIT_IDLE_TIMEOUT_COMMAND_DESCRIPTION = {
+    'name'                : 'idle-timeout',
+    'mode'                : 'config-switch-flow-entry',
+    'short-help'          : 'Set idle-timout for this flow',
+    'doc'                 : 'flow-entry|idle-timeout',
+    'doc-example'         : 'flow-entry|idle-timeout-example',
+    'command-type'        : 'config',
+    'args'                : (
+         {
+             'field'      : 'idle-timeout',
+             'base-type'  : 'integer',
+             'range'      : (0, 65535),
+             'doc'        : 'flow-entry|idle-timeout-field',
+         }
+    )
+}
+
+
+# obj_type flow-entry field actions
+FLOW_ENTRY_EDIT_ACTIONS_COMMAND_DESCRIPTION = {
+    'name'                : 'actions',
+    'mode'                : 'config-switch-flow-entry',
+    'short-help'          : 'Set actions for this flow',
+    'doc'                 : 'flow-entry|actions',
+    'doc-example'         : 'flow-entry|actions-example',
+    'command-type'        : 'config',
+    'args'                : (
+         {
+             'field'      : 'actions',
+             'type'       : 'string',
+             'completion' : 'complete-staticflow-actions',
+             'doc'        : 'flow-entry|action-field',
+         }
+    )
+}
+
+
+# obj_type flow-entry field active
+FLOW_ENTRY_EDIT_ACTIVE_COMMAND_DESCRIPTION = {
+    'name'                : 'active',
+    'mode'                : 'config-switch-flow-entry',
+    'short-help'          : 'Set flow active',
+    'doc'                 : 'flow-entry|active',
+    'doc-example'         : 'flow-entry|active-example',
+    'command-type'        : 'config',
+    'args'                : (
+         {
+             # this should be improved, but this is the old syntax
+             'field'  : 'active',
+             'type'   : 'enum',
+             'values' : ('True', 'False'),
+             'doc'    : 'flow-entry|active-field-+',
+             # XXX roth -- does not show up in wiki
+         }
+    )
+}
+
+
+# obj_type flow-entry field priority
+FLOW_ENTRY_EDIT_PRIORITY_COMMAND_DESCRIPTION = {
+    'name'                : 'priority',
+    'mode'                : 'config-switch-flow-entry',
+    'short-help'          : 'Set priority of the flow',
+    'doc'                 : 'flow-entry|priority',
+    'doc-example'         : 'flow-entry|priority-example',
+    'command-type'        : 'config',
+    'args'                : (
+         {
+             'field'      : 'priority',
+             'base-type'  : 'integer',
+             'range'      : (0, 65535),
+             'doc'        : 'flow-entry|priority-field',
+         }
+    )
+}
+
+
+# obj_type flow-entry field cookie
+FLOW_ENTRY_EDIT_COOKIE_COMMAND_DESCRIPTION = {
+    'name'                : 'cookie',
+    'mode'                : 'config-switch-flow-entry',
+    'command-type'        : 'config',
+    'short-help'          : 'Associate cookie for flow',
+    'doc'                 : 'flow-entry|cookie',
+    'doc-example'         : 'flow-entry|cookie-example',
+    'args'                : (
+                                 {
+                                     'field' : 'cookie',
+                                     'type'  : 'integer',
+                                 }
+                            )
+}
+
+
+# obj_type flow-entry field wildcards
+FLOW_ENTRY_EDIT_WILDCARDS_COMMAND_DESCRIPTION = {
+    'name'                : 'wildcards',
+    'mode'                : 'config-switch-flow-entry',
+    'command-type'        : 'config',
+    'short-help'          : 'Configure wildcards for flow',
+    'doc'                 : 'flow-entry|wildcards',
+    'doc-example'         : 'flow-entry|wildcards-example',
+    'args'                : (
+         {
+             'field'      : 'wildcards',
+             'base-type'  : 'integer',
+             'range'      : (0, 2**32-1),
+             'doc'        : 'flow-entry|wildcards-field',
+         }
+    )
+}
+
+
+# obj_type flow-entry field ingress-port
+FLOW_ENTRY_EDIT_INGRESS_PORT_COMMAND_DESCRIPTION = {
+    'name'                : 'ingress-port',
+    'mode'                : 'config-switch-flow-entry',
+    'command-type'        : 'config',
+    'short-help'          : 'Configure wildcards for flow',
+    'doc'                 : 'flow-entry|ingress-port',
+    'doc-example'         : 'flow-entry|ingress-port-example',
+    'args'                : (
+         {
+             'field'      : 'ingress-port',
+             'base-type'  : 'integer',
+             'range'      : (0, 2**16-1), # OF V2 uses 2^32 for ports
+             'doc'        : 'flow-entry|ingress-port-field',
+         }
+    )
+}
+
+
+# obj_type flow-entry field src-mac
+FLOW_ENTRY_EDIT_SRC_MAC_COMMAND_DESCRIPTION = {
+    'name'                : 'src-mac',
+    'mode'                : 'config-switch-flow-entry',
+    'command-type'        : 'config',
+    'short-help'          : 'Configure src-mac match for flow',
+    'doc'                 : 'flow-entry|src-mac',
+    'doc-example'         : 'flow-entry|src-mac-example',
+    'obj-type'            : 'flow-entry',
+    'args'                : (
+         {
+             'field'        : 'src-mac',
+             'type'         : 'host',
+             'completion'   : 'complete-alias-choice',
+             'other'        : 'host|mac',
+             'data-handler' : 'alias-to-value',
+             'doc'          : 'flow-entry|src-mac-field',
+         }
+    )
+}
+
+
+# obj_type flow-entry field dst-mac
+FLOW_ENTRY_EDIT_DST_MAC_COMMAND_DESCRIPTION = {
+    'name'                : 'dst-mac',
+    'mode'                : 'config-switch-flow-entry',
+    'command-type'        : 'config',
+    'short-help'          : 'Configure dst-mac match for flow',
+    'doc'                 : 'flow-entry|dst-mac',
+    'doc-example'         : 'flow-entry|dst-mac-example',
+    'obj-type'            : 'flow-entry',
+    'args'                : (
+         {
+             'field'        : 'dst-mac',
+             'type'         : 'host',
+             'completion'   : 'complete-alias-choice',
+             'other'        : 'host|mac',
+             'data-handler' : 'alias-to-value',
+             'doc'          : 'flow-entry|dst-mac-field',
+         }
+    )
+}
+
+
+# obj_type flow-entry field vlan-id
+FLOW_ENTRY_EDIT_VLAN_ID_COMMAND_DESCRIPTION = {
+    'name'                : 'vlan-id',
+    'mode'                : 'config-switch-flow-entry',
+    'short-help'          : 'Configure vlan-id match for flow',
+    'doc'                 : 'flow-entry|vlan-id',
+    'doc-example'         : 'flow-entry|vlan-id-example',
+    'command-type'        : 'config',
+    'args'                : (
+         {
+             'field'      : 'vlan-id',
+             'base-type'  : 'integer',
+             'range'      : (0, 2**12-1),
+             'doc'        : 'flow-entry|vlan-id-field',
+         }
+    )
+}
+
+
+# obj_type flow-entry field vlan-priority
+FLOW_ENTRY_EDIT_VLAN_PRIORITY_COMMAND_DESCRIPTION = {
+    'name'                : 'vlan-priority',
+    'mode'                : 'config-switch-flow-entry',
+    'short-help'          : 'Configure vlan-priority match for flow',
+    'doc'                 : 'flow-entry|vlan-priority',
+    'doc-example'         : 'flow-entry|vlan-priority-example',
+    'command-type'        : 'config',
+    'args'                : (
+         {
+             'field'      : 'vlan-priority',
+             'base-type'  : 'integer',
+             'range'      : (0,7),
+             'doc'        : 'flow-entry|vlan-priority-field',
+         }
+    )
+}
+
+
+# obj_type flow-entry field ether-type
+FLOW_ENTRY_EDIT_ETHER_TYPE_COMMAND_DESCRIPTION = {
+    'name'                : 'ether-type',
+    'mode'                : 'config-switch-flow-entry',
+    'short-help'          : 'Configure ether-type match for flow',
+    'doc'                 : 'flow-entry|ether-type',
+    'doc-example'         : 'flow-entry|ether-type-example',
+    'command-type'        : 'config',
+    'args'                : {
+        'choices' : (
+            {
+                'field'           : 'ether-type',
+                'base-type'       : 'hex-or-decimal-integer',
+                'range'           : (1536,65536),
+                'data-handler'    : 'hex-to-integer',
+                'doc'             : 'flow-entry|ether-type-field',
+            },
+            {
+            'field'           : 'ether-type',
+            'type'            : 'enum',
+            'values'          : fmtcnv.ether_type_to_number_dict,
+            },
+        ),
+    },
+}
+
+
+# obj_type flow-entry field tos-bits
+FLOW_ENTRY_EDIT_TOS_BITS_COMMAND_DESCRIPTION = {
+    'name'                : 'tos-bits',
+    'mode'                : 'config-switch-flow-entry',
+    'short-help'          : 'Configure ether-type match for flow',
+    'doc'                 : 'flow-entry|tos-bits',
+    'doc-example'         : 'flow-entry|tos-bits-example',
+    'command-type'        : 'config',
+    'args'                : (
+         {
+             'field'      : 'tos-bits',
+             'base-type'  : 'integer',
+             'range'      : (0,63),
+             'doc'        : 'flow-entry|tos-bits-field',
+         }
+    )
+}
+
+
+# obj_type flow-entry field protocol
+FLOW_ENTRY_EDIT_PROTOCOL_COMMAND_DESCRIPTION = {
+    'name'                : 'protocol',
+    'mode'                : 'config-switch-flow-entry',
+    'short-help'          : 'Configure ether-type match for flow',
+    'doc'                 : 'flow-entry|protocol',
+    'doc-example'         : 'flow-entry|protocol-example',
+    'command-type'        : 'config',
+    'args'                : (
+         {
+             'field'      : 'protocol',
+             'base-type'  : 'integer',
+             'range'      : (0,255),
+             'doc'        : 'flow-entry|protocol-field',
+         }
+    )
+}
+
+
+# obj_type flow-entry field src-ip
+FLOW_ENTRY_EDIT_SRC_IP_COMMAND_DESCRIPTION = {
+    'name'                : 'src-ip',
+    'mode'                : 'config-switch-flow-entry',
+    'short-help'          : 'Configure src-ip match for flow',
+    'doc'                 : 'flow-entry|src-ip',
+    'doc-example'         : 'flow-entry|src-ip-example',
+    'command-type'        : 'config',
+    'args'                : {
+        'choices' : (
+            {
+                'field'           : 'src-ip',
+                'help-name'       : 'ip-address',
+                'type'            : 'ip-address',
+                'completion-text' : 'src-ip-address',
+                'doc'             : 'flow-entry|src-ip-field',
+            },
+            {
+                'field'           : 'src-ip',
+                'help-name'       : 'cidr-range',
+                'type'            : 'cidr-range',
+                'completion-text' : 'src-ip-cidr-range',
+                'doc'             : 'flow-entry|src-ip-field',
+            },
+        )
+    },
+}
+
+
+# obj_type flow-entry field dst-ip
+FLOW_ENTRY_EDIT_DST_IP_COMMAND_DESCRIPTION = {
+    'name'                : 'dst-ip',
+    'mode'                : 'config-switch-flow-entry',
+    'short-help'          : 'Configure dst-ip match for flow',
+    'doc'                 : 'flow-entry|dst-ip',
+    'doc-example'         : 'flow-entry|dst-ip-example',
+    'command-type'        : 'config',
+    'args'                : {
+        'choices' : (
+            {
+                'field'           : 'dst-ip',
+                'help-name'       : 'ip-address',
+                'type'            : 'ip-address',
+                'completion-text' : 'dst-ip-address',
+                'doc'             : 'flow-entry|dst-ip-field',
+            },
+            {
+                'field'           : 'dst-ip',
+                'help-name'       : 'cidr-range',
+                'type'            : 'cidr-range',
+                'completion-text' : 'dst-ip-cidr-range',
+                'doc'             : 'flow-entry|dst-ip-field',
+            },
+        )
+    },
+}
+
+
+# obj_type flow-entry field src-port
+FLOW_ENTRY_EDIT_SRC_PORT_COMMAND_DESCRIPTION = {
+    'name'                : 'src-port',
+    'mode'                : 'config-switch-flow-entry',
+    'short-help'          : 'Configure src-port match for flow',
+    'doc'                 : 'flow-entry|src-port',
+    'doc-example'         : 'flow-entry|src-port-example',
+    'command-type'        : 'config',
+    'args'                : {
+        'choices' : (
+            {
+                'field'        : 'src-port',
+                'base-type'    : 'hex-or-decimal-integer',
+                'range'        : (0,65535),
+                'data-handler' : 'hex-to-integer',
+                'doc'          : 'flow-entry|src-port-field',
+            },
+            {
+                'field'    : 'src-port',
+                'type'     : 'enum',
+                'values'   : fmtcnv.tcp_name_to_number_dict,
+            },
+        )
+    }
+}
+
+
+# obj_type flow-entry field dst-port
+FLOW_ENTRY_EDIT_DST_PORT_COMMAND_DESCRIPTION = {
+    'name'                : 'dst-port',
+    'mode'                : 'config-switch-flow-entry',
+    'short-help'          : 'Configure dst-port match for flow',
+    'doc'                 : 'flow-entry|dst-port',
+    'doc-example'         : 'flow-entry|dst-port-example',
+    'command-type'        : 'config',
+    'args'                : {
+        'choices' : (
+            {
+                'field'        : 'dst-port',
+                'base-type'    : 'hex-or-decimal-integer',
+                'range'        : (0,65535),
+                'data-handler' : 'hex-to-integer',
+                'doc'          : 'flow-entry|dst-port-field',
+            },
+            {
+                'field'    : 'dst-port',
+                'type'     : 'enum',
+                'values'   : fmtcnv.tcp_name_to_number_dict,
+            },
+        )
+    },
+}
+#
+# FORMATS
+#
+
+import fmtcnv
+
+
+FLOW_ENTRY_FORMAT = {
+    'flow-entry' : {
+        'field-orderings' : {
+            'default' : [ 'Idx',
+                          'switch',
+                          'name',
+                          'active',
+                          'idle-timeout',
+                          'hard-timeout',
+                          'cookie',
+                          'priority',
+                          'wildcards',
+                          'ingress-port',
+                          'src-mac',
+                          'dst-mac',
+                          'ether-type',
+                          'vlan-id',
+                          'vlan-priority',
+                          'src-ip',
+                          'dst-ip',
+                          'protocol',
+                          'tos-bits',
+                          'src-port',
+                          'dst-port',
+                          'actions',
+                        ]
+            },
+        'fields' :  {
+            'switch'       : { 'formatter' : fmtcnv.replace_switch_with_alias },
+            'ether-type'   : { 'formatter' : fmtcnv.decode_ether_type },
+            'protocol'     : { 'formatter' : fmtcnv.decode_network_protocol },
+            'src-port'     : { 'formatter' : fmtcnv.decode_src_port },
+            'dst-port'     : { 'formatter' : fmtcnv.decode_dst_port },
+            'ingress-port' : { 'formatter' : fmtcnv.decode_openflow_port },
+            },
+        },
+}
+"""
+