diff --git a/cli/desc/version200/switch.py b/cli/desc/version200/switch.py
new file mode 100755
index 0000000..a78b184
--- /dev/null
+++ b/cli/desc/version200/switch.py
@@ -0,0 +1,1213 @@
+#
+# 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 command
+import json
+import fmtcnv
+
+"""
+SWITCH_SUBMODE_COMMAND_DESCRIPTION = {
+    'name'          : 'switch',
+    'short-help'    : 'Enter switch submode, configure switch details',
+    'mode'          : 'config*',
+    'obj-type'      : 'switch-config',
+    'command-type'  : 'config-submode',
+    'parent-field'  : None,
+    'submode-name'  : 'config-switch',
+    'doc'           : 'switch|switch',
+    'doc-example'   : 'switch|switch-example',
+    'args' : (
+        {
+            'field'        : 'dpid',
+            'type'         : 'dpid',
+            'other'        : 'switches|dpid',
+            'completion'   : [
+                              'complete-alias-choice',
+                              'complete-from-another',
+                             ],
+            'data-handler' : 'alias-to-value',
+            'syntax-help'  : 'Configure a new switch with dpid',
+        }
+    )
+}
+"""
+#
+# ------------------------------------------------------------------------------
+# show switch
+#
+
+show_switch_pipeline = (
+    {
+        'proc'     : 'query-table',
+        'obj-type' : 'switches', # synthetic, supported by rest_to_model
+        'key'      : 'dpid',
+    },
+    {
+        'proc'       : 'join-table',
+        'obj-type'   : 'switch-alias',
+        'key'        : 'switch',
+        'join-field' : '@',
+        'add-field'  : 'switch-alias|id',
+    },
+    {
+        'proc'       : 'join-rest',
+        'url'        : 'tunnel-manager/all',
+        'rest-type'  : 'dict-of-dict-of-switch',
+        'key'        : 'switch',
+        'join-field' : '@',
+    },
+    {
+        'proc'     : 'display',
+        'format'   : 'switch',
+    },
+)
+
+SWITCH_SHOW_COMMAND_DESCRIPTION = {
+    'name'                : 'show',
+    'mode'                : 'login',
+    'command-type'        : 'display-table',
+    'all-help'            : 'Show switch information',
+    'short-help'          : 'Show switch summary',
+    'obj-type'            : 'switches',
+    'doc'                 : 'switch|show',
+    'doc-example'         : 'switch|show-example',
+    'args' : (
+        {
+            'token'  : 'switch',
+            'action' : show_switch_pipeline,
+            'doc'    : 'switch|show',
+        },
+    )
+}
+
+SWITCH_SHOW_WITH_DPID_COMMAND_DESCRIPTION = {
+    'name'                : 'show',
+    'mode'                : 'login',
+    'short-help'          : 'Show switch details via query',
+    'no-supported'        : False,
+    'parent-field'        : None,
+    'obj-type'            : 'switches',
+    'args' : (
+        {
+            'token'        : 'switch',
+            'obj-type'     : 'switches',
+            'command-type' : 'display-table',
+            # 'command-type' : 'display-rest',
+            'action'       : show_switch_pipeline,
+        },
+        {
+            'choices' : (
+                {
+                    'field'        : 'dpid',
+                    'completion'   : 'complete-alias-choice',
+                    'type'         : 'dpid',
+                    'help-name'    : 'switch dpid or alias',
+                    'data-handler' : 'alias-to-value',
+                },
+                {
+                    'token'        : 'all',
+                },
+            ),
+        },
+        {
+            'optional'   : True,
+            'choices' : (
+                (
+                    {
+                        'token' : 'by',
+                        'doc'   : 'switch|show-switch-order',
+                    },
+                    {
+                        'choices' : (
+                            {
+                                'token'      : 'ip-address',
+                                'sort'       : 'ip-address',
+                                'action'     : 'display-table',
+                                'short-help' : 'Sort by ip-address',
+                            },
+                            {
+                                'token'      : 'connect-time',
+                                'sort'       : '-connected-since',
+                                'action'     : 'display-table',
+                                'short-help' : 'Sort by connect time',
+                            },
+                        )
+                    }
+                ),
+            )
+        },
+        {
+            'field'      : 'detail',
+            'type'       : 'enum',
+            'values'     : ('details','brief'),
+            'optional'   : True,
+            'doc'        : 'switch|show-switch-format-+',
+        },
+    )
+}
+SWITCH_SHOW_REALTIME_STATS_COMMAND_DESCRIPTION = {
+    'name'                : 'show',
+    'mode'                : 'login',
+    'short-help'          : 'Show switch stats via direct query to switch',
+    'no-supported'        : False,
+    'short-help'          : 'Show realtime stats for switch',
+    'parent-field'        : None,
+    'obj-type'            : 'switches',
+    'args'                : (
+        {
+            'token'        : 'switch',
+            'obj-type'     : 'switches',
+            'command-type' : 'display-table',
+            # 'command-type' : 'display-rest',
+        },
+        {
+            'choices' : (
+                {
+                    'field'        : 'dpid',
+                    'completion'   : 'complete-alias-choice',
+                    'type'         : 'dpid',
+                    'help-name'    : 'switch dpid or alias',
+                    'data-handler' : 'alias-to-value',
+                    'data'         : { 'detail' : 'scoped' },
+                },
+                {
+                    'token'        : 'all',
+                    'doc'          : 'reserved|all',
+                },
+            ),
+        },
+        {
+            'choices' : (
+                (
+                    {
+                        'field'      : 'realtimestats',
+                        'type'       : 'enum',
+                        'values'     : ('aggregate',
+                                        'port',
+                                        'desc',
+                                        'queue',
+                                        'group'
+                                        ),
+                        'action'     : 'display-rest',
+                        'sort'       : ['groupid',],
+                        'url'        : [
+                                        'realtimestats/%(realtimestats)s/%(dpid)s/',
+                                        'realtimestats/%(realtimestats)s/all/',
+                                       ],
+                        'rest-type'  : 'dict-of-list-of-switch',
+                        'format'     : 'realtime_%(realtimestats)s',
+                        'short-help' : 'Show requested item by querying switch',
+                        'doc'        : 'switch|realtime-+',
+                    },
+                ),
+                (
+                    {
+                        'field'      : 'realtimestats',
+                        'type'       : 'enum',
+                        'values'     : 'features',
+                        'action'     : 'display-rest',
+                        'url'        : [
+                                         'realtimestats/%(realtimestats)s/%(dpid)s/',
+                                         'realtimestats/%(realtimestats)s/all/',
+                                       ],
+                        'rest-type'  : 'dict-of-dict-of-switch|ports',
+                        'format'     : 'realtime_%(realtimestats)s',
+                        'doc'        : 'switch|realtime_features',
+                    },
+                    {
+                        'field'    : 'detail',
+                        'optional' : True,
+                        'type'     : 'enum',
+                        'values'   : ('details','brief'),
+                        'doc'      : 'format|+',
+                    },
+                ),
+                (
+                    {
+                        'field'      : 'realtimestats',
+                        'type'       : 'enum',
+                        'values'     : 'table',
+                    },
+                    {
+                        'field'    : 'tabletype',
+                        'type'     : 'enum',
+                        'values'     : ('ip',
+                                        'acl',
+                                        'mpls'
+                                        ),
+                        'sort'       : ['mplsLabel','priority',],
+                        'action'     : 'display-rest',
+                        'url'        : 'realtimestats/%(realtimestats)s/%(tabletype)s/flow/%(dpid)s/',
+                        'rest-type'  : 'dict-of-list-of-switch',
+                        'format'     : 'realtime_%(realtimestats)s_%(tabletype)s_flow',
+                        'doc'      : 'format|+',
+                    },
+                ),
+                (
+                    {
+                        'field'      : 'realtimestats',
+                        'type'       : 'enum',
+                        'values'     : 'group',
+                    },
+                    {
+                        'field'    : 'groupId',
+                        #'data'     : {
+                        #              'dpid'     : '$dpid',
+                        #              },
+                        #'type'     : 'groupId',
+                        'completion' : 'group-id-completion',
+                        #'sort'       : ['mplsLabel','priority',],
+                        'action'     : 'display-rest',
+                        'url'        : 'realtimestats/%(realtimestats)s/%(groupId)s/%(dpid)s/',
+                        'rest-type'  : 'dict-of-list-of-switch',
+                        'format'     : 'realtime_group',
+                        'doc'      : 'format|+',
+                    },
+                ),
+            )
+        }
+    )
+}
+
+SWITCH_SHOW_STATS_COMMAND_DESCRIPTION = {
+    'name'                : 'show',
+    'mode'                : 'login',
+    'short-help'          : 'Show switch stats',
+    'short-help'          : 'show stats for selected switch',
+    'no-supported'        : False,
+    'parent-field'        : None,
+    'obj-type'            : 'switches',
+    'args'                : (
+        {
+            'token'        : 'switch',
+            # 'command-type' : 'display-rest',
+        },
+        {
+            'field'        : 'dpid',
+            'completion'   : 'complete-alias-choice',
+            'type'         : 'dpid',
+            'help-name'    : 'switch dpid or alias',
+            'data-handler' : 'alias-to-value',
+        },
+        {
+            'token'        : 'stats',
+            'action'       : 'legacy-cli',
+            'obj-type'     : 'switch-stats',
+        },
+    )
+}
+
+SWITCH_SHOW_STATS_OBJECT_DETAILS_COMMAND_DESCRIPTION = {
+    'name'                : 'show',
+    'mode'                : 'login',
+    'short-help'          : 'Show statistics for a given switch',
+    'no-supported'        : False,
+    'parent-field'        : None,
+    'obj-type'            : 'switches',
+    'args'                : (
+        {
+            'token'        : 'switch',
+            # 'command-type' : 'display-rest',
+        },
+        {
+            'field'        : 'dpid',
+            'completion'   : 'complete-alias-choice',
+            'type'         : 'dpid',
+            'help-name'    : 'switch dpid or alias',
+            'data-handler' : 'alias-to-value',
+        },
+        {
+            'token'        : 'stats',
+            'action'       : 'legacy-cli',
+            'obj-type'     : 'switch-stats',
+        },
+        {
+            'field'        : 'stats-type',
+            'type'         : 'enum',
+            'values'       : (
+                                'OFActiveFlow',
+                                'OFFlowMod',
+                                'OFPacketIn',
+                             ),
+        },
+        {
+            'field'        : 'start-time',
+            'tag'          : 'start-time',
+            'type'         : 'date',
+            'data-handler' : 'date-to-integer',
+            'short-help'   : 'Start time for displaying the stats',
+            'optional'     : True,
+        },
+        {
+            'field'        : 'end-time',
+            'tag'          : 'end-time',
+            'type'         : 'date',
+            'data-handler' : 'date-to-integer',
+            'short-help'   : 'End time for displaying the stats',
+            'optional'     : True,
+        },
+        {
+            'field'        : 'duration',
+            'tag'          : 'duration',
+            'type'         : 'duration',
+            'short-help'   : 'Duration from the start or end for displaying the stats',
+            'optional'     : True,
+        },
+        {
+            'field'        : 'sample-interval',
+            'tag'          : 'sample-interval',
+            'type'         : 'integer',
+            'short-help'   : 'Spacing between sampling windows',
+            'optional'     : True,
+        },
+        {
+            'field'        : 'sample-count',
+            'tag'          : 'sample-count',
+            'type'         : 'integer',
+            'short-help'   : 'Number of samples in each window',
+            'optional'     : True,
+        },
+        {
+            'field'        : 'sample-window',
+            'tag'          : 'sample-window',
+            'type'         : 'integer',
+            'short-help'   : 'Window length for sampling',
+            'optional'     : True,
+        },
+        {
+            'field'        : 'data-format',
+            'tag'          : 'data-format',
+            'type'         : 'enum',
+            'values'       : ('value', 'rate',),
+            'short-help'   : 'Whether to display as a raw value or rate',
+            'optional'     : True,
+        },
+        {
+            'field'        : 'display',
+            'tag'          : 'display',
+            'type'         : 'enum',
+            'values'       : ('latest-value', 'graph', 'table'),
+            'short-help'   : 'Display the latest value, a graph, or a table',
+            'optional'     : True,
+        },
+    ),
+}
+
+
+show_switch_interfaces_pipeline = (
+    {
+        'proc'     : 'query-table',
+        'obj-type' : 'interfaces',
+        'key'      : 'id',
+    },
+    {
+        'proc'     : 'query-table-append',
+        'obj-type' : 'switch-interface-config',
+        'key'      : 'id',
+    },
+    {
+        'proc'       : 'join-rest',
+        'url'        : [
+                          # this is using 'switch' from previous results,
+                          # not from the data items
+                          'realtimestats/port/%(switch)s/',
+                       ],
+        'rest-type'  : 'dict-of-list-of-switch|portNumber',
+        'key'        : 'switch|portNumber',
+        'join-field' : 'switch|portNumber'
+    },
+    {
+        'proc'     : 'display',
+        'sort'     : ['switch', 'portName'],
+        'format'   : 'switch-interfaces',
+    },
+)
+
+SWITCH_SHOW_SWITCH_DPID_INTERFACES_COMMAND_DESCRIPTION = {
+    'name'                : 'show',
+    'mode'                : 'login',
+    'no-supported'        : False,
+    'short-help'          : 'Show interfaces for selected switch',
+    'parent-field'        : None,
+    'obj-type'            : 'switches',
+    'args' : (
+        {
+            'token'        : 'switch',
+            'command-type' : 'display-table',
+        },
+        {
+            'choices' : (
+                {
+                    'field'        : 'dpid',
+                    'completion'   : 'complete-alias-choice',
+                    'type'         : 'dpid',
+                    'help-name'    : 'switch dpid or alias',
+                    'data-handler' : 'alias-to-value',
+                },
+                {
+                    'field'        : 'dpid',
+                    'type'         : 'enum',
+                    'values'       : 'all',
+                    'short-help'   : 'Show interfaces for all switches',
+                },
+            ),
+        },
+        {
+            'choices' : (
+                (
+                    {
+                        'token'      : 'interfaces',
+                        'action'     : 'legacy-cli',
+                        'obj-type'   : 'switch-interfaces',
+                        'action'     : show_switch_interfaces_pipeline,
+                        'short-help' : 'Show interfaces for switches',
+                        'doc'        : 'switch|show-interfaces',
+                    },
+                    {
+                        'token'      : 'stats',
+                        'action'     : 'display-rest',
+                        'url'        : 'realtimestats/port/%(dpid)s/',
+                        'rest-type'  : 'dict-of-list-of-switch',
+                        'format'     : 'realtime_port',
+                        'rest-type'  : 'dict-of-list-of-switch',
+                        'optional'   : True,
+                        'short-help' : 'Show interfaces stats for switches',
+                    },
+                    {
+                        'token'      : 'alias',
+                        'action'     : 'display-table',
+                        'obj-type'   : 'switch-interface-alias',
+                        'optional'   : True,
+                        'short-help' : 'Show interface aliases for switches',
+                        'scoped'     : True,
+                        'doc'        : 'switch|show-interfaces-alias',
+                    }
+                ),
+                #{
+                #    'field'      : 'vns',
+                #    'type'       : 'enum',
+                #    'values'     : 'vns',
+                #    'action'     : 'legacy-cli',
+                #    'obj-type'   : 'switch-ports-vns'
+                #},
+                {
+                    'field'     : 'alias',
+                    'type'      : 'enum',
+                    'values'    : 'alias',
+                    'obj-type'  : 'switch-alias',
+                    'action'    : 'display-table',
+                    'doc'       : 'switch|show-switch-alias',
+                },
+            )
+        },
+        {
+            'optional' : True,
+            'field'    : 'detail',
+            'type'     : 'enum',
+            'values'   : ('details', 'brief',),
+            'short-help' : 'Show switch output format level',
+        }
+    )
+}
+"""
+SWITCH_SUBMODE_SHOW_INTERFACE_COMMAND_DESCRIPTION = {
+    'name'         : 'show',
+    'mode'         : 'config-switch*',
+    'command-type' : 'display-table',
+    'obj-type'     : 'switch-interfaces',
+    'short-help'   : 'Show interfaces for switch associated with current submode',
+    'args' : (
+        {
+            'token'    : 'interfaces',
+            'action'   : 'legacy-cli',
+            'scoped'   : True,
+            'action'   : show_switch_interfaces_pipeline,
+        },
+    )
+}
+
+
+SWITCH_SHOW_TCPDUMP_COMMAND_DESCRIPTION = {
+    'name'                : 'show',
+    'mode'                : 'login',
+    'short-help'          : 'Show switch tcpdump via controller',
+    'no-supported'        : False,
+    'parent-field'        : None,
+    'current-mode-obj-id' : None,
+    'obj-type'            : 'switches',
+    'args' : (
+        {
+            'token'        : 'switch',
+            'obj-type'     : 'switches',
+        },
+        {
+            'field'        : 'dpid',
+            'optional'     : False,
+            'completion'   : 'complete-alias-choice',
+            'type'         : 'dpid',
+            'help-name'    : 'switch dpid or alias',
+            'data-handler' : 'alias-to-value',
+        },
+        {
+            'field'      : 'tcpdump',
+            'optional'   : False,
+            'type'       : 'enum',
+            'values'     : 'trace',
+            'obj-type'   : 'switch-tcpdump',
+            'action'     : 'legacy-cli',
+        },
+        {
+            'field'     : 'oneline',
+            'type'      : 'enum',
+            'values'    : 'oneline',
+            'optional'  : True,
+        },
+        {
+            'field'     : 'single_session',
+            'type'      : 'enum',
+            'values'    : 'single-session',
+            'optional'  : True,
+        },
+        {
+            'field'     : 'echo_reply',
+            'type'      : 'enum',
+            'values'    : 'echo-reply',
+            'optional'  : True,
+            'permute'   : 'skip',
+        },
+        {
+            'field'     : 'echo_request',
+            'type'      : 'enum',
+            'values'    : 'echo-request',
+            'optional'  : True,
+            'permute'   : 'skip',
+        },
+        {
+            'field'     : 'features_rep',
+            'type'      : 'enum',
+            'values'    : 'features-rep',
+            'optional'  : True,
+            'permute'   : 'skip',
+        },
+        {
+            'field'     : 'flow_mod',
+            'type'      : 'enum',
+            'values'    : 'flow-mod',
+            'optional'  : True,
+            'permute'   : 'skip',
+        },
+        {
+            'field'     : 'flow_removed',
+            'type'      : 'enum',
+            'values'    : 'flow-removed',
+            'optional'  : True,
+            'permute'   : 'skip',
+        },
+        {
+            'field'     : 'get_config_rep',
+            'type'      : 'enum',
+            'values'    : 'get-config-rep',
+            'optional'  : True,
+            'permute'   : 'skip',
+        },
+        {
+            'field'     : 'hello',
+            'type'      : 'enum',
+            'values'    : 'hello',
+            'optional'  : True,
+            'permute'   : 'skip',
+        },
+        {
+            'field'     : 'packet_in',
+            'type'      : 'enum',
+            'values'    : 'packet-in',
+            'optional'  : True,
+            'permute'   : 'skip',
+        },
+        {
+            'field'     : 'packet_out',
+            'type'      : 'enum',
+            'values'    : 'packet-out',
+            'optional'  : True,
+            'permute'   : 'skip',
+        },
+        {
+            'field'     : 'port_status',
+            'type'      : 'enum',
+            'values'    : 'port-status',
+            'optional'  : True,
+            'permute'   : 'skip',
+        },
+        {
+            'field'     : 'set_config',
+            'type'      : 'enum',
+            'values'    : 'set-config',
+            'optional'  : True,
+            'permute'   : 'skip',
+        },
+        {
+            'field'     : 'stats_reply',
+            'type'      : 'enum',
+            'values'    : 'stats-reply',
+            'optional'  : True,
+            'permute'   : 'skip',
+        },
+        {
+            'field'     : 'stats_request',
+            'type'      : 'enum',
+            'values'    : 'stats-request',
+            'optional'  : True,
+            'permute'   : 'skip',
+        },
+        {
+            'field'     : 'detail',
+            'type'      : 'enum',
+            'values'    : 'detail',
+            'optional'  : True,
+        },
+   )
+}
+
+#
+# ------------------------------------------------------------------------------
+# SWITCH_TUNNEL_SHOW_COMMAND_DESCRIPTION
+#
+
+show_tunnel_pipeline = (
+    {
+        'proc'      : 'query-rest',
+        'url'       : [ 
+                            'tunnel-manager/%(dpid)s',
+                            'tunnel-manager/all',
+                      ],
+        'rest-type' : 'dict-of-dict-of-dpid',
+    },
+    {
+        'proc'       : 'join-table',
+        'obj-type'   : 'interfaces',
+        'key'        : 'switch|portName',
+        'join-field' : 'hexDpid|tunnelEndPointIntfName',
+        'add-field'  : 'portNumber|portNumber',
+    },
+    {
+        'proc'       : 'join-rest',
+        'url'        : 'realtimestats/port/%(dpid)s/',
+        'rest-type'  : 'dict-of-list-of-switch|portNumber',
+        'key'        : 'switch|portNumber',
+        'join-field' : 'hexDpid|portNumber',
+    },
+    {
+        'proc'     : 'display',
+        'format'   : 'tunnel-pipeline',
+    }
+)
+"""
+import fmtcnv
+"""
+TUNNEL_PIPELINE_FORMAT = {
+    'tunnel-pipeline' : {
+        'field-orderings' : {
+            'default' : [ 'Idx',
+                          'dpid',
+                          'tunnelCapable',
+                          'tunnelEnabled',
+                          'tunnelEndPointIntfName',
+                          'tunnelIPAddr',
+                          'tunnelState',
+                          'receivePackets',
+                          'receiveBytes',
+                          'transmitPackets',
+                          'transmitBytes',
+                        ]
+        },
+
+        'fields' : {
+            'dpid'               : {
+                                     'verbose-name' : 'Switch DPID',
+                                     'primary_key': True,
+                                     'formatter' : fmtcnv.replace_switch_with_alias,
+                                  },
+            'tunnelCapable'     : {
+                                    'verbose-name' : 'Capable',
+                                  },
+            'tunnelEnabled'     : {
+                                     'verbose-name' : 'Enabled',
+                                  },
+            'tunnelEndPointIntfName' : {
+                                     'verbose-name' : 'IF Name',
+                                  },
+            'tunnelIPAddr'      : {
+                                     'verbose-name' : 'IP Address',
+                                  },
+            'tunnelState'       : {
+                                     'verbose-name' : 'State',
+                                  },
+            'receivePackets'    : {
+                                     'verbose-name' : 'Rx Pkts',
+                                  },
+            'receiveBytes'      : {
+                                     'verbose-name' : 'Rx Bytes',
+                                  },
+            'transmitPackets'   : {
+                                     'verbose-name' : 'Tx Pkts',
+                                  },
+            'transmitBytes'     : {
+                                     'verbose-name' : 'Tx Bytes',
+                                  },
+        },
+    },
+}
+
+
+
+SWITCH_TUNNEL_SHOW_COMMAND_DESCRIPTION = {
+    'name'         : 'show',
+    'mode'         : 'login',
+    'feature'      : 'vns',
+    'short-help'   : 'Show tunnels for all switches',
+    'command-type' : 'display-rest',
+    'url'          : 'tunnel-manager/all',
+    'obj-type'     : 'switch',
+    'action'       : show_tunnel_pipeline,
+    'args'         : (
+        'tunnel',
+    ),
+}
+
+
+SWITCH_TUNNEL_SHOW_WITH_DPID_COMMAND_DESCRIPTION = {
+    'name'         : 'show',
+    'mode'         : 'login',
+    'feature'      : 'vns',
+    'short-help'   : 'Show tunnels for selected switches',
+    'command-type' : 'display-rest',
+    'obj-type'     : 'switch',
+    'url'          : 'tunnel-manager/%(dpid)s',
+    'format'       : 'tunnel-details',
+    'action'       : show_tunnel_pipeline,
+    'args'         : (
+        'tunnel',
+        {
+            'choices' : (
+                {
+                    'field'      : 'dpid',
+                    'type'       : 'enum',
+                    'values'     : 'all',
+                },
+                {
+                    'field'      : 'dpid',
+                    'completion' : 'complete-object-field',
+                    'type'       : 'dpid',
+                },
+            ),
+        },
+    ),
+}
+#
+# ------------------------------------------------------------------------------
+# SWITCH_CORE_SWITCH_TERMINATION_COMMAND_DESCRIPTION
+#
+
+SWITCH_CORE_SWITCH_COMMAND_DESCRIPTION = {
+    'name'         : 'core-switch',
+    'short-help'   : 'Enable core-switch property for this switch',
+    'mode'         : 'config-switch',
+    'parent-field' : 'dpid',
+    'obj-type'     : 'switch-config',
+    'doc'          : 'switch|core-switch',
+    'doc-example'  : 'switch|core-switch-example',
+    'args' : (),
+    'action': (
+        {
+            'proc' : 'update-config',
+            'data' : {'core-switch' : True}
+        },
+    ),
+    'no-action': (
+        {
+            'proc' : 'update-config',
+            'data' : {'core-switch' : False},
+        }
+    )
+}
+#
+# ------------------------------------------------------------------------------
+# SWITCH_TUNNEL_TERMINATION_COMMAND_DESCRIPTION
+#
+
+SWITCH_TUNNEL_TERMINATION_COMMAND_DESCRIPTION = {
+    'name'         : 'tunnel',
+    'short-help'   : 'Enable/Disable tunnel creation for this switch',
+    'mode'         : 'config-switch',
+    'command-type' : 'update-config',
+    'parent-field' : 'dpid',
+    'obj-type'     : 'switch-config',
+    'doc'          : 'switch|tunnel',
+    'doc-example'  : 'switch|tunnel-example',
+    'data'         : { 'tunnel-termination' : 'default' }, # for no command
+    'args'         : (
+        'termination',
+        {
+            'field'           : 'tunnel-termination',
+            'type'            : 'enum',
+            'values'          : ( "enabled", "disabled" ),
+            'optional-for-no' : True,
+        }
+    )
+}
+#
+# ------------------------------------------------------------------------------
+# SWITCH_ALIAS_COMMAND_DESCRIPTION
+#
+
+SWITCH_SWITCH_ALIAS_COMMAND_DESCRIPTION = {
+    'name'         : 'switch-alias',
+    'mode'         : 'config-switch',
+    'short-help'   : 'Attach alias to switch',
+    'doc'          : 'switch|alias',
+    'doc-example'  : 'switch|alias-example',
+    'command-type' : 'manage-alias',
+    'obj-type'     : 'switch-alias',
+    'scoped'       : True,
+    'args'         : (
+        {
+            'field'           : 'id',
+            'optional-for-no' : False,
+            'completion'      : 'complete-object-field',
+        }
+    )
+}
+
+#
+# ------------------------------------------------------------------------------
+# SWITCH_INTERFACE_COMMAND_DESCRIPTION
+#  enter config-switch-if submode
+#
+
+SWITCH_INTERFACE_COMMAND_DESCRIPTION = {
+    'name'                : 'interface',
+    'mode'                : 'config-switch*',
+    'short-help'          : 'Enter switch-if submode, configure switch interface',
+    'command-type'        : 'config-submode',
+    'obj-type'            : 'switch-interface-config',
+    'parent-field'        : 'switch',
+    'current-mode-obj-id' : 'switch',
+    'submode-name'        : 'config-switch-if',
+    'syntax-help'         : 'Enter an interface name',
+    'doc'                 : 'switch|interface',
+    'doc-example'         : 'switch|interface-example',
+    'args' : (
+        {
+            'field'        : 'name',
+            'completion'   : [ 'complete-object-field',
+                               'complete-from-another',
+                             ],
+            'other'        : 'interfaces|portName',
+            'scoped'       : 'dpid',
+            'data-handler' : 'warn-missing-interface',
+        }
+    )
+}
+
+#
+# ------------------------------------------------------------------------------
+# SWITCHPORT_COMMAND_DESCRIPTION
+#  'switchport mode external'
+#  'no switchport mode external'
+#
+
+SWITCHPORT_COMMAND_DESCRIPTION = {
+    'name'         : 'switchport',
+    'short-help'   : 'Configure interface as connected to an external network',
+    'mode'         : 'config-switch-if',
+    'command-type' : 'config',
+    'obj-type'     : 'switch-interface-config',
+    'fields'       : ('broadcast', 'mode',),
+    'action'       : 'write-fields',
+    'no-action'    : 'reset-fields',
+    'doc'          : 'switch|switchport',
+    'doc-example'  : 'switch|switchport-example',
+    'args'         : (
+        'mode',
+        {
+            'field'       : 'mode',
+            'type'        : 'enum',
+            'values'      : 'external',
+            'help-name'   : 'interface connects to external network',
+            'short-help'  : 'interface connects to external network',
+            'syntax-help' : 'external'
+        },
+    )
+}
+
+#
+# ------------------------------------------------------------------------------
+#
+
+
+SWITCH_INTERFACE_INTERFACE_ALIAS_COMMAND_DESCRIPTION = {
+    'name'         : 'interface-alias',
+    'mode'         : 'config-switch-if',
+    'short-help'   : 'Attach alias to switch interface',
+    'command-type' : 'manage-alias',
+    'obj-type'     : 'switch-interface-alias',
+    'scoped'       : True,
+    'doc'          : 'switch|interface-alias',
+    'doc-example'  : 'switch|interface-alias-example',
+    'args'         : (
+        {
+            'field'           : 'id',
+            'optional-for-no' : False,
+            'completion'      : 'complete-object-field',
+            'short-help'      : 'Alias string',
+        }
+    )
+}
+"""
+#
+# FORMATS
+#
+
+
+SWITCH_FORMAT = {
+    'switch' : {
+        'field-orderings' : {
+            'default' : [ 'Idx', '@', 'switch-alias', 'connected-since',
+                          'ip-address', 'type', 'controller'],
+            'details' : [ 'Idx','@', 'switch-alias', 'connected-since',
+                          'ip-address', 'type', 'controller'],
+            'brief'   : [ 'Idx', '@', 'switch-alias', 'controller'],
+            },
+        'fields' : {
+            '@'                  : {
+                                     'verbose-name' : 'Switch DPID',
+                                   },
+            'active'             : {
+                                   },
+            'core-switch'        : {
+                                     'verbose-name' : 'Core Switch',
+                                     'validate'  : 'validate_switch_core_switch',
+                                   },
+            'connected-since'    : {
+                                     'verbose-name' : 'Connected Since',
+                                     #'formatter' : fmtcnv.timestamp_to_local_timestr,
+                                   },
+            'capabilities'       : {
+                                     'formatter' : fmtcnv.decode_switch_capabilities,
+                                   },
+            'actions'            : {
+                                     'formatter' : fmtcnv.decode_switch_actions,
+                                   },
+            'ip-address'         : {
+                                     'verbose-name' : 'Connected At',
+                                   },
+            'socket-address'     : {
+                                   },
+            'buffers'            : {
+                                   },
+            'controller'         : {
+                                     'verbose-name' : 'Controller',
+                                   },
+            'tables'             : {
+                                   },
+            'switch-alias'       : {
+
+                                     'verbose-name' : 'Alias'
+                                   },
+            'tunnelCapable'      : {
+                                     'verbose-name' : 'Tun Capable',
+                                   },
+            'tunnelEnabled'      : {
+                                     'verbose-name' : '-Enabled',
+                                   },
+            'tunnelState'        : {
+                                      'verbose-name' : '-State',
+                                   },
+            'dp-desc'            : {
+                                   },
+            'hw-desc'            : {
+                                   },
+            'sw-desc'            : {
+                                   },
+            'serial-num'         : {
+                                   },
+            'type'               : {
+                                   },
+            }
+        },
+}
+"""
+SWITCH_CONFIG_FORMAT = {
+    'switch-config' : {
+        'field-orderings' : {
+            'default' : [
+                          'Idx',
+                          'dpid',
+                          'tunnel-termination',
+                          'core-switch',
+                        ],
+        },
+    },
+}
+
+
+SWITCH_ALIAS_FORMAT = {
+    'switch-alias' : {
+        'field-orderings' : {
+            'default'     : [ 'Idx', 'id', 'switch' ],
+            'brief'       : [ 'Idx', 'id', 'switch' ],
+            },
+        },
+}
+
+
+SWITCH_INTERFACE_CONFIG_FORMAT = {
+    'switch-interface-config' : {
+        'field-orderings' : {
+            'default' :     [ 'Idx', 'if-name', 'mode'  ]
+            },
+        'fields'          : {
+            'broadcast'           : {
+                                    },
+            'name'                : {
+                                    },
+            'mode'                : {
+                                      'verbose-name' : 'Switchport Mode',
+                                    },
+            },
+        },
+}
+
+
+SWITCH_INTERFACE_ALIAS_FORMAT = {
+    'switch-interface-alias' : {
+        'field-orderings' : {
+            'default'     : [ 'Idx', 'id', 'switch', 'name' ]
+            },
+        'fields' : {
+            'id'          : { 'verbose-name' : 'Alias',
+                            }
+            }
+        },
+}
+
+SWITCH_INTERFACES_FORMAT = {
+    'switch-interfaces' : {
+        'field-orderings' : {
+            'default' : [ 'Idx', 'switch', 'portName', 'state', 'config',
+                          'receiveBytes', 'receivePackets', 'receiveErrors',
+                          'transmitBytes', 'transmitPackets', 'transmitErrors',
+                          'mode', 'broadcast',
+                        ],
+            'details' : [ 'Idx', 'switch', 'portName', 'hardwareAddress',
+                          'config', 'stp-state', 'state', 'currentFeatures',
+                          'advertisedFeatures', 'supportedFeatures',
+                          'peer-features', 'mode', 'broadcast',
+                        ],
+            'brief'   : [ 'Idx', 'switch', 'portName', 'state', 'config' ],
+            },
+
+        'fields' : {
+            'id'                  : {
+                                    },
+            'switch'              : { 'formatter' : fmtcnv.replace_switch_with_alias
+                                    },
+            'portName'            : { 'verbose-name' : 'IF',
+                                    },
+            'hardwareAddress'     : { 'verbose-name' : 'MAC Address'
+                                    },
+            'config'              : {
+                                      'formatter' : fmtcnv.decode_port_config
+                                    },
+            'state'               : { 'verbose-name' : 'Link',
+                                      'formatter' : fmtcnv.decode_port_up_down,
+                                    },
+            'stp-state'           : {
+                                      'formatter' : lambda i, data : 
+                                                    fmtcnv.decode_port_stp_state(data['state'],
+                                                                                 data),
+                                    },
+            'currentFeatures'     : { 'verbose-name' : 'Curr Features',
+                                      'formatter' : fmtcnv.decode_port_features
+                                    },
+            'advertisedFeatures'  : { 'verbose-name' : 'Adv Features',
+                                      'formatter' : fmtcnv.decode_port_features
+                                    },
+            'supportedFeatures'   : { 'verbose-name' : 'Supp Features',
+                                      'formatter' : fmtcnv.decode_port_features
+                                    },
+            'peer-features'       : { 'verbose-name' : 'Peer Features',
+                                      'formatter' : fmtcnv.decode_port_features
+                                    },
+            'receiveBytes'         : { 'verbose-name' : 'Rcv Bytes',
+                                       'formatter' : fmtcnv.decode_port_counter},
+            'receivePackets'       : { 'verbose-name' : 'Rcv Pkts',
+                                        'formatter' : fmtcnv.decode_port_counter},
+            'receiveErrors'        : { 'verbose-name' : 'Rcv Errs',
+                                       'formatter' : fmtcnv.decode_port_counter},
+            'transmitBytes'        : { 'verbose-name' : 'Xmit Bytes',
+                                       'formatter' : fmtcnv.decode_port_counter},
+            'transmitPackets'      : { 'verbose-name' : 'Xmit Pkts',
+                                       'formatter' : fmtcnv.decode_port_counter},
+            'transmitErrors'       : { 'verbose-name' : 'Xmit Errs',
+                                       'formatter' : fmtcnv.decode_port_counter},
+            },
+        },
+}
+
+TUNNEL_DETAILS_FORMAT = {
+    'tunnel-details' : {
+        'field-orderings' : {
+            'default' : [ 'Idx', 'dpid', 'localTunnelIPAddr',
+                           'tunnelPorts',
+                        ]
+        },
+
+        'fields' : {
+            'dpid'              : {
+                                     'verbose-name' : 'Switch DPID',
+                                     'primary_key': True,
+                                     'formatter' : fmtcnv.replace_switch_with_alias,
+                                  },
+            'localTunnelIPAddr' : {
+                                    'verbose-name' : 'Local tunnel IP',
+                                  },
+            'tunnelPorts' :       {
+                                     'verbose-name' : 'Remote tunnel IP',
+                                  },
+        },
+    },
+}
+"""
+
+def group_id_completion(prefix, data, completions):
+    dpid = data.get('dpid')
+    #print dpid
+    query_url = "http://127.0.0.1:8000/rest/v1/realtimestats/group/%s/" %(dpid)
+    result = command.sdnsh.store.rest_simple_request(query_url)
+    entries = json.loads(result)
+    entries = entries[dpid]
+    #print "result", entries
+    for entry in entries:
+        #print entry['groupId']
+        if str(entry['groupId']).startswith(prefix):
+            completions[str(entry['groupId'])+' '] = entry['groupId']
+    return
+
+command.add_completion('group-id-completion', group_id_completion,
+                       {'kwargs': { 'prefix'       : '$text',
+                                    'data'         : '$data',
+                                    'completions'  : '$completions',
+                                    }})
