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 },
+ },
+ },
+}
+"""
+