diff --git a/cli/desc/version200/vns.py b/cli/desc/version200/vns.py
new file mode 100755
index 0000000..8ea1f19
--- /dev/null
+++ b/cli/desc/version200/vns.py
@@ -0,0 +1,1892 @@
+#
+# 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 fmtcnv
+'''
+def vns_origin_external(data):
+    """
+    Return origin-name when the vns wasn't created by the cli,
+    return None otherwise.
+    """
+    pk = command.mi.pk('vns-definition')
+    if not pk in data:
+        return;
+
+    vns = command.sdnsh.get_table_from_store('vns-definition',
+                                             pk,
+                                             data[pk])
+    if len(vns) == 0:
+        return None
+
+    local = ['cli', 'rest']
+    if 'origin' in vns[0] and not vns[0]['origin'] in local:
+        return vns[0]['origin']
+    return None
+    
+
+def vns_warn_external_config(data):
+    """
+    From the named vns, look up the entry, if it exists in the
+    database, validate the 'origin' is either null, or 'cli',
+    otherwise provide a warning about this particular vns
+    (along with the originator name)
+    """
+    external_origin = vns_origin_external(data)
+    if external_origin:
+        command.sdnsh.warning('vns %s may not be intended for cli update, '
+                              'origin/creator "%s" ' % (data['id'], external_origin))
+
+command.add_action('vns-warn-external-config', vns_warn_external_config,
+                    {'kwargs': {'data'      : '$data',}})
+
+def complete_tenantname_preprocess(data):
+    data['tenant']='default'
+    if 'name' in data:
+        data['tenant']= data['name']
+        del data['name']
+    else:
+        current_mode=command.sdnsh.current_mode()
+        if not current_mode.startswith('config-tenant'):
+            data['tenant']='default'
+        if current_mode.startswith('config-tenant'):
+            for x in command.sdnsh.mode_stack:
+                if x['mode_name'] == 'config-tenant':
+                    data['tenant'] = x['obj']
+
+
+command.add_completion('complete-tenantname-preprocess', complete_tenantname_preprocess,
+                           {'kwargs': {'data': '$data',
+                                       }})
+
+def vns_confirm_external_delete(data):
+    """
+    From the named vns, look up the entry, if it exists in the
+    database, validate the 'origin' is either null, or 'cli',
+    otherwise provide a warning about this particular vns
+    (along with the originator name)
+    """
+    external_origin = vns_origin_external(data)
+    if external_origin:
+        confirm = command.action_registry['confirm'][0] # XXX accessor?
+        confirm('vns %s may not be intended for cli delete, '
+                'origin/creator "%s"\nEnter y or yes to continue delete: '
+                % (data['id'], external_origin))
+
+command.add_action('vns-confirm-external-delete', vns_confirm_external_delete,
+                    {'kwargs': {'data'      : '$data',}})
+
+command.add_action('vns-confirm-external-delete', vns_confirm_external_delete,
+                    {'kwargs': {'data'      : '$data',}})
+'''
+"""
+#
+# ----------------------------------------------------------------------
+# vns-definition submode commands
+#
+
+# notice the submode is called 'config-def-vns', this was
+# changed from 'config-vns-def' so that the vns submode,
+# which is called 'config-vns', wouldn't be a string-prefix
+# submode of config-vns.  Various command, such as the 
+# vns-submode access-list command were showing up in the
+# vns-definition submode due to this prefixing.
+
+VNS_DEFINITION_COMMAND_DESCRIPTION = {
+    'name'         : 'vns-definition',
+    'help'         : 'Enter VNS definition submode',
+    'mode'         : 'config*',
+    'command-type' : 'config-submode',
+    'obj-type'     : 'vns-definition',
+    'submode-name' : 'config-tenant-def-vns',
+    'feature'      : 'vns',
+    'short-help'   : 'Enter VNS definition submode',
+    'doc'          : 'vns|vns-definition',
+    'doc-example'  : 'vns|vns-definition-example',
+    'args' : (
+        {
+            'field'        : 'vnsname',
+            'type'         : 'identifier',
+            'completion' : ['complete-tenantname-preprocess',
+                            'complete-object-field'],
+            'other'      : 'vns-definition|vnsname',
+#            'scoped'     : 'tenant',
+            'syntax-help'  : 'Enter a vns name',
+            'doc'          : 'vns|vns-id',
+            'doc-example'  : 'vns|vns-id-example',
+            'doc-include'  : [ 'type-doc' ],
+            'action'       : (
+                {
+                    'proc' : 'vns-warn-external-config',
+                },
+                {
+                   'proc'  : 'tenant-show-preprocess',
+                },
+                {
+                    'proc' : 'push-mode-stack',
+                },
+            ),
+            'no-action'    : (
+                {
+                    'proc' : 'vns-confirm-external-delete',
+                },
+                {
+                   'proc'  : 'tenant-show-preprocess',
+                },
+                {
+                    'proc' : 'delete-objects',
+                },
+            )
+        }
+    ),
+}
+
+vns_show_action = (
+    {
+        'proc'  : 'tenant-show-preprocess',
+     },
+    {
+        'proc'  : 'query-table',
+    },
+   {
+        'proc'   : 'display',
+        'format' : 'vns-definition',
+    },
+)
+
+VNS_SHOW_COMMAND_DESCRIPTION = {
+    'name'         : 'show',
+    'mode'         : 'login',
+    'all-help'     : 'Show VNS details',
+    'short-help'   : 'Show all defined VNSs belong to current tenant',
+    'command-type' : 'display-table',
+    'obj-type'     : 'vns-definition',
+    'action'       : vns_show_action,
+    'doc'          : 'vns|show',
+    'doc-example'  : 'vns|show-example',
+    'args'         : (
+        'vns',
+    ),
+}
+VNS_SHOW_ID_COMMAND_DESCRIPTION = {       
+    'name'         : 'show',
+    'obj-type'     : 'vns-definition',
+    'mode'         : 'login',
+    'command-type' : 'display-table',
+    'action'       : vns_show_action,
+    'short-help'   : 'Show specific VNS, identified by name',
+    'doc'          : 'vns|show-id',
+    'doc-example'  : 'vns|show-id-example',
+    'args'         : (
+        'vns',
+        {
+            'choices' : (
+                {
+                    'field'      : 'vnsname',
+                    'type'       : 'identifier',
+#                    'completion' : 'complete-object-field',
+                    'completion' : ['complete-tenantname-preprocess',
+                                    'complete-from-another'],
+                    'other'      : 'vns-definition|vnsname',
+                    'scoped'     : 'tenant',
+                    'help-name'  : "vns-id",
+                },
+                {
+                    'field'     : 'vnsname',
+                    'type'      : 'enum',
+                    'values'    : 'all',
+                }
+            ),
+        },
+        {
+            'field'    : 'detail',
+            'optional' : True,
+            'type'     : 'enum',
+            'values'   : ('details', 'brief'),
+            'doc'      : 'format|+',
+        }
+    )
+}
+
+VNS_SHOW_ID_DETAILS_COMMAND_DESCRIPTION = {
+    'name'         : 'show',
+    'obj-type'     : 'vns-definition',
+    'mode'         : 'login',
+    'command-type' : 'display-table',
+    'short-help'   : 'Show VNS associated details based on name',
+    'doc'          : 'vns|show-id',
+    'doc-example'  : 'vns|show-id-example',
+    'args'         : (
+        'vns',
+        {
+            'choices' : (
+                {
+                    'field'      : 'vnsname',
+                    'type'       : 'identifier',
+                    'completion' : ['complete-tenantname-preprocess',
+                                    'complete-from-another'],
+                    'other'      : 'vns-definition|vnsname',
+                    'scoped'     : 'tenant',
+                    'help-name'  : "vns-id",
+                },
+                {
+                    'field'     : 'vnsname',
+                    'type'      : 'enum',
+                    'values'    : 'all',
+                }
+            ),
+        },
+        {
+            'choices' : (
+                {
+                    'field'      : 'vns-interface',
+                    'type'       : 'enum',
+                    'values'     : 'interfaces',
+                    'obj-type'   : 'vns-interface',
+                    'action'     : ({'proc'   : 'tenant-show-preprocess'},
+                                    'legacy-cli'),
+                    'short-help' : 'Show VNS associated interfaces',
+                },
+                {
+                    'field'      : 'mac-address-table',
+                    'type'       : 'enum',
+                    'values'     : 'mac-address-table',
+                    'obj-type'   : 'host-vns-interface-vns',
+                    'action'     : ({'proc'   : 'tenant-show-preprocess'},
+                                    'legacy-cli'),
+                    'short-help' : 'Show VNS associated mac addresses',
+                },
+                {
+                    'field'      : 'interface-rules',
+                    'type'       : 'enum',
+                    'values'     : 'interface-rules',
+                    'action'     : ({'proc'   : 'tenant-show-preprocess'},
+                                    'display-table'),
+                    'obj-type'   : 'vns-interface-rule',
+                    'short-help' : 'Show VNS configured interfaces-rules',
+                    'doc'        : 'vns|show-id-interface-rules',
+                },
+                {
+                    'field'      : 'access-lists',
+                    'type'       : 'enum',
+                    'values'     : 'access-lists',
+                    'action'     : ({'proc'   : 'tenant-show-preprocess'},
+                                    'display-table'),
+                    'obj-type'   : 'vns-access-list-entry',
+                    'detail'     : 'acl-brief',
+                    'short-help' : 'Show VNS configured access-lists',
+                    'doc'        : 'vns|show-id-access-lists',
+                },
+                {
+                    'field'      : 'running-config',
+                    'type'       : 'enum',
+                    'values'     : 'running-config',
+                    'action'     : ({'proc'   : 'tenant-show-preprocess'},
+                                    'legacy-cli'),
+                    'short-help' : 'Show VNS running-config',
+                },
+                {
+                    'field'      : 'legacy-cli',
+                    'type'       : 'enum',
+                    'values'     : 'switch',
+                    'action'     : ({'proc'   : 'tenant-show-preprocess'},
+                                    'legacy-cli'),
+                    'obj-type'   : 'vns-switch-ports',
+                    'short-help' : 'Show VNS associated switches',
+                },
+                (
+                    {
+                        'field'      : 'legacy-cli',
+                        'type'       : 'enum',
+                        'values'     : 'flow',
+                        'obj-type'   : 'vns-flow',
+                        'action'     : ({'proc'   : 'tenant-show-preprocess'},
+                                         'legacy-cli'),
+                        'short-help' : 'Show VNS associated flows',
+                        'doc'        : 'vns|show-id-flow',
+                    },
+                    {
+                        'field'      : 'detail',
+                        'type'       : 'enum',
+                        'values'     : ('brief',
+                                        'full-detail',
+                                        'details',
+                                        'summary',
+                                       ),
+                        'optional'   : True,
+                        'short-help' : 'Detail level',
+                        'doc'        : 'format|+'
+                    }
+                )
+            )
+        }
+    ),
+}
+
+HOST_VNS_INTERFACE_VNS_FORMAT = {
+    'host-vns-interface-vns' : { # with vns know, no vns column
+        'source'          : 'only display',
+
+        'field-orderings' : {
+            'default'    : [ 'Idx', 'tenant', 'vns', 'address-space', 'host', 'vlan', 'ips', 'attachment-points', 'last-seen' ],
+            'vns'        : [ 'Idx',        'address-space', 'host', 'vlan', 'ips', 'attachment-points', 'last-seen' ],
+            },
+        'fields' : {
+            'Idx'               : { 'verbose-name' : '#',
+                                  },
+            'host'              : { 'verbose-name' : 'MAC Address',
+                                    'formatter' : fmtcnv.print_host_and_alias,
+                                  },
+            'address-space'     : {
+                                     'verbose-name' : 'Address Space',
+                                  },
+            'vlan'              : {
+                                     'verbose-name' : 'VLAN',
+                                  },
+            'ips'               : { 'verbose-name' : 'IP Address',
+                                    'formatter' : fmtcnv.print_ip_addresses,
+                                    'entry_formatter' : fmtcnv.print_all_ip_addresses,
+                                  },
+            'attachment-points' : { 'verbose-name' : 'Attachment Point',
+                                    'formatter' : fmtcnv.print_host_attachment_point,
+                                    'entry_formatter' : fmtcnv.print_all_host_attachment_points,
+                                  },
+            'last-seen'         : { 'verbose-name' : 'Last Seen',
+                                    'formatter' : fmtcnv.print_time_since_utc
+                                  },
+            'tenant'            : {'verbose-name' : 'Tenant',
+                                   }
+            }
+        },
+}
+
+
+
+VNS_DEF_DESCRIPTION_COMMAND_DESCRIPTION = {
+    'name'         : 'description',
+    'mode'         : 'config-tenant-def-vns',
+    'command-type' : 'config',
+    'short-help'   : 'Provide description for a VNS instance',
+    'doc'          : 'vns|description',
+    'doc-example'  : 'vns|description-example',
+    'args'         : (
+        {
+            'field' : 'description',
+            'type'  : 'string',
+        }
+    ),
+}
+
+
+VNS_DEF_ACTIVE_COMMAND_DESCRIPTION = {
+    'name'        : 'active',
+    'mode'        : 'config-tenant-def-vns',
+    'short-help'  : 'Set vns active',
+    'doc'          : 'vns|active',
+    'doc-example'  : 'vns|active-example',
+    'doc-include'  : [ 'default' ],
+    'args' : (),
+    'action' : (
+        {
+            'proc' : 'write-fields',
+            'data' : { 'active' : True },
+            'syntax-help' : 'mark the vns as active',
+        }
+    ),
+    'no-action' : (
+        {
+            'proc' : 'write-fields',
+            'data' : { 'active' : False },
+            'syntax-help' : 'mark the vns as inactive',
+        }
+    )
+}
+
+VNS_DEF_ORIGIN_COMMAND_DESCRIPTION = {
+    'name'         : 'origin',
+    'mode'         : 'config-tenant-def-vns',
+    'command-type' : 'config',
+    'short-help'   : 'Describe vns origin',
+    'doc'          : 'vns|origin',
+    'doc-example'  : 'vns|origin-example',
+    'args' : (
+        {
+            'field'  : 'origin',
+            'type'   : 'string',
+            'action' : (
+                {
+                    'proc' : 'vns-warn-external-config',
+                },
+                {
+                    'proc' : 'write-fields',
+                },
+            ),
+        },
+    ),
+}
+
+VNS_DEF_USE_ADDRESS_SPACE_COMMAND_DESCRIPTION = {
+    'name'         : 'use',
+    'short-help'   : 'Associate address space',
+    'all-help'     : 'Associate VNS with other objects',
+    'mode'         : 'config-tenant-def-vns',
+    'command-type' : 'config',
+    'obj-type'     : 'vns-definition',
+    'doc'          : 'vns|use-address-space',
+    'doc-example'  : 'vns|use-address-space-example',
+    'doc-include'  : 'default', 
+    'args' : (
+        'address-space',
+        {
+            'field'           : 'address-space',
+            'type'            : 'identifier',
+            'completion'      : [ 
+                                    'complete-object-field',
+                                    'complete-from-another',
+                                ],
+            'other'           : 'address-space',
+            'syntax-help'     : 'Enter associated address-space name',
+            'optional-for-no' : False,
+            'match-for-no'    : 'address-space',
+        }
+    )
+}
+
+VNS_DEF_ARP_MODE_COMMAND_DESCRIPTION = {
+    'name'         : 'arp-mode',
+    'short-help'   : 'Configure arp mode',
+    'doc'          : 'vns|arp-mode',
+    'doc-example'  : 'vns|arp-mode-example',
+    'mode'         : 'config-tenant-def-vns',
+    'command-type' : 'config',
+    'doc-include'  : [ 'default' ],
+    'args' : (
+        {
+            'field'  : 'arp-mode',
+            'type'   : 'enum',
+            'values' : ('always-flood', 'flood-if-unknown', 'drop-if-unknown'),
+            'doc'    : 'vns|arp-mode-value-+',
+        }
+    ),
+}
+
+VNS_DEF_BROADCAST_COMMAND_DESCRIPTION = {
+    'name'         : 'broadcast',
+    'mode'         : 'config-tenant-def-vns',
+    'command-type' : 'config',
+    'short-help'   : 'Configure broadcast mode',
+    'doc'          : 'vns|broadcast',
+    'doc-example'  : 'vns|broadcast-example',
+    'doc-include'  : [ 'default' ],
+    'args' : (
+        {
+            'field'  : 'broadcast',
+            'type'   : 'enum',
+            'values' : ('always-flood', 'forward-to-known', 'drop'),
+            'doc'    : 'vns|broadcast-value-+',
+        }
+    ),
+}
+
+VNS_DEF_DHCP_IP_COMMAND_DESCRIPTION = {
+    'name'         : 'dhcp-ip',
+    'mode'         : 'config-tenant-def-vns',
+    'command-type' : 'config',
+    'short-help'   : 'Configure dhcp ip address',
+    'doc'          : 'vns|dhcp-ip',
+    'doc-example'  : 'vns|dhcp-ip-example',
+    'args' : (
+        {
+            'field'  : 'dhcp-ip',
+            'type'   : 'ip-address',
+            'syntax-help' : 'Enter an IP Address',
+        }
+    ),
+}
+
+VNS_DEF_DHCP_MODE_COMMAND_DESCRIPTION = {
+    'name'         : 'dhcp-mode',
+    'mode'         : 'config-tenant-def-vns',
+    'command-type' : 'config',
+    'short-help'   : 'Set dhcp mode',
+    'doc'          : 'vns|dhcp-mode',
+    'doc-example'  : 'vns|dhcp-mode-example',
+    'doc-include'  : [ 'default' ],
+    'args' : (
+        {
+            'field'  : 'dhcp-mode',
+            'type'   : 'enum',
+            'values' : ('always-flood', 'flood-if-unknown', 'static'),
+            'doc'    : 'vns|dhcp-value-+',
+        }
+    ),
+}
+
+VNS_INTERFACE_RULE_COMMAND_DESCRIPTION = {
+    'name'         : 'interface-rule',
+    'mode'         : 'config-tenant-def-vns*',
+    'command-type' : 'config-submode',
+    'obj-type'     : 'vns-interface-rule',
+    'parent-field' : 'vns',
+    'submode-name' : 'config-tenant-def-vns-if-rule',
+    'short-help'   : 'Enter interface-rule submode, configure vns details',
+    'doc'          : 'vns|interface-rule',
+    'doc-example'  : 'vns|interface-rule-example',
+    'args' : (
+        {
+            'field'        : 'rule',
+            'type'         : 'identifier',
+            'syntax-help'  : 'Enter a vns interface rule name',
+            'completion'   : 'complete-object-field',
+            'scoped'       : True,
+        }
+    )
+}
+
+VNS_PRIORITY_COMMAND_DESCRIPTION = {
+    'name'         : 'priority',
+    'mode'         : 'config-tenant-def-vns',
+    'command-type' : 'config',
+    'short-help'   : 'Set vns priority',
+    'doc'          : 'vns|priority',
+    'doc-example'  : 'vns|priority-example',
+    'args' : (
+        {
+            'field'     : 'priority',
+            'base-type' : 'integer',
+            'range'     : (0, 65535),
+        }
+    )
+}
+
+#
+# ----------------------------------------------------------------------
+# vns-def-if submode commands
+#  (vns definition interface rules submode)
+#
+
+VNS_DEF_IF_ACTIVE_COMMAND_DESCRIPTION = {
+    'name'         : 'active',
+    'mode'         : 'config-tenant-def-vns-if-rule',
+    'command-type' : 'config',
+    'short-help'   : 'Set rule to Active',
+    'doc'          : 'vns|interface-rule-active',
+    'doc-example'  : 'vns|interface-rule-active-example',
+    'doc-inlcude'  : [ 'default' ],
+    'args'         : (),
+    'action'       : (
+        {
+            'proc' : 'write-fields',
+            'data' : { 'active' : True }
+        }
+    ),
+    'no-action'    : (
+        {
+            'proc' : 'write-fields',
+            'data' : { 'active' : False }
+        }
+    )
+}
+
+VNS_DEF_IF_ALLOW_MULTIPLE_COMMAND_DESCRIPTION = {
+    'name'         : 'allow-multiple',
+    'mode'         : 'config-tenant-def-vns-if-rule',
+    'command-type' : 'config',
+    'short-help'   : 'Enable multiple interface rule matches',
+    'doc'          : 'vns|interface-rule-allow-multiple',
+    'doc-example'  : 'vns|interface-rule-allow-multiple-example',
+    'doc-include'  : [ 'default' ],
+    'args'         : (),
+    'action'       : (
+        {
+            'proc' : 'write-fields',
+            'data' : { 'allow-multiple' : True }
+        }
+    ),
+    'no-action'    : (
+        {
+            'proc'   : 'reset-fields',
+            'fields' : [ 'allow-multiple' ]
+        }
+    )
+}
+
+#
+# XXX vlan-tag-on-egress required in future releases when multiple vlans
+# tagging are supported in vns egress.
+#
+#VNS_DEF_IF_VLAN_TAG_ON_EGRESS_TMP_COMMAND_DESCRIPTION = {
+#    'name'         : 'vlan-tag-on-egress',
+#    'short-help'   : 'Enable vlan tagging on egress',
+#    'mode'         : 'config-def-vns-if-rule',
+#    'command-type' : 'config',
+#    'args'         : (),
+#    'action'       : (
+#        {
+#            'proc' : 'write-fields',
+#            'data' : { 'vlan-tag-on-egress' : True }
+#        }
+#    ),
+#    'no-action'    : (
+#        {
+#            'proc'   : 'reset-fields',
+#            'fields' : [ 'vlan-tag-on-egress' ]
+#        }
+#    )
+# }
+
+VNS_DEF_IF_DESCRIPTION_COMMAND_DESCRIPTION = {
+    'name'         : 'description',
+    'mode'         : 'config-tenant-def-vns-if-rule',
+    'short-help'   : 'Provide description for interface rule',
+    'doc'          : 'vns|interface-rule-description',
+    'doc-example'  : 'vns|interface-rule-description-example',
+    'command-type' : 'config',
+    'args'         : (
+        {
+            'field' : 'description',
+            'type'  : 'string',
+        }
+    ),
+}
+
+VNS_DEF_IF_PRIORITY_COMMAND_DESCRIPTION = {
+    'name'         : 'priority',
+    'mode'         : 'config-tenant-def-vns-if-rule',
+    'command-type' : 'config',
+    'short-help'   : 'Describe priority for interface rule',
+    'doc'          : 'vns|interface-rule-priority',
+    'doc-example'  : 'vns|interface-rule-priority-example',
+    'args'         : (
+        {
+            'field' : 'priority',
+            'value' : 'integer',
+        }
+    ),
+}
+
+
+VNS_DEF_IF_MATCH_MAC_COMMAND_DESCRIPTION = {
+    'name'         : 'match',
+    'mode'         : 'config-tenant-def-vns-if-rule',
+    'command-type' : 'config',
+    'short-help'   : 'Associate mac (host) with interface rule',
+    'all-help'     : 'Configure a match for this interface rule',
+    'doc'          : 'vns|interface-rule-match-mac',
+    'doc-example'  : 'vns|interface-rule-match-mac-example',
+    'doc-all'      : 'address-space|match',
+    'data'         : { 'mac' : None }, # for no command reset
+    'obj-type'     : 'vns-interface-rule',
+    'args'         : (
+        {
+            'token'        : 'mac',
+        },
+        {
+            'field'           : 'mac',
+            'type'            : 'host',
+            'help-name'       : 'host mac or alias',
+            'completion'      : ['complete-object-field',
+                                 'complete-from-another',
+                                ],
+            'scoped'          : True,
+            'data-handler'    : 'alias-to-value',
+            'other'           : 'host',
+            'optional-for-no' : True,
+            'doc'             : 'vns|interface-rule-match-mac-field',
+        }
+    ),
+}
+
+
+VNS_DEF_IF_MATCH_IP_SUBNET_COMMAND_DESCRIPTION = {
+    'name'         : 'match',
+    'mode'         : 'config-tenant-def-vns-if-rule',
+    'command-type' : 'config',
+    'short-help'   : 'Associate ip-subnet (ip or cidr range) for interface rule',
+    'doc'          : 'vns|interface-rule-match-ip-subnet',
+    'doc-example'  : 'vns|interface-rule-match-ip-subnet-example',
+    'data'         : { 'ip-subnet' : None }, # for no command reset
+    'args'         : (
+        {
+            'token'        : 'ip-subnet',
+        },
+        {
+            'field'           : 'ip-subnet',
+            'type'            : 'cidr-range',
+            'help-name'       : 'ip address (10.10.10.10), or cidr (10.20.30.0/24)',
+            'optional-for-no' : True,
+            'doc'             : 'vns|interface-rule-match-ip-subnet-field',
+        }
+    ),
+}
+
+
+VNS_DEF_IF_MATCH_SWITCH_COMMAND_DESCRIPTION = {
+    'name'         : 'match',
+    'mode'         : 'config-tenant-def-vns-if-rule',
+    'command-type' : 'config',
+    'obj-type'     : 'vns-interface-rule',
+    'short-help'   : 'Associate switch with interface rule',
+    'doc'          : 'vns|interface-rule-match-switch',
+    'doc-example'  : 'vns|interface-rule-match-switch-example',
+    'data'         : { # for no command reset
+                       'switch' : None,
+                       'ports'  : None,
+                     },
+    'args'         : (
+        {
+            'token'        : 'switch',
+        },
+        {
+            # constructed as args to ensure that the ports isn't
+            # completed along with swtich values for 'no match switch' 
+            'optional-for-no' : True,
+            'args' : (
+                {
+                    'field'           : 'switch',
+                    'type'            : 'string',
+                    'parent-field'    : None,
+                    'completion'      : [
+                                          'complete-object-field',
+                                          'complete-alias-choice',
+                                        ],
+                    'help-name'       : 'switch dpid or switch alias',
+                    'data-handler'    : 'alias-to-value',
+                    'other'           : 'switches|dpid',
+                },
+                {
+                    'field'           : 'ports',
+                    'optional'        : True,
+                    'type'            : 'string',
+                    'help-name'       : 'switch interface, or range, or list',
+                    'completion'      : 'complete-interface-list',
+                    'data-handler'    : 'warn-missing-interface',
+                    'optional-for-no' : True,
+                },
+            ),
+        },
+    ),
+}
+
+
+VNS_DEF_IF_MATCH_TAGS_COMMAND_DESCRIPTION = {
+    'name'         : 'match',
+    'mode'         : 'config-tenant-def-vns-if-rule',
+    'command-type' : 'config',
+    'short-help'   : 'Associate tags with interface rule',
+    'doc'          : 'vns|interface-rule-match-tag',
+    'doc-example'  : 'vns|interface-rule-match-tag-example',
+    'data'         : { # for no command reset
+                       'tags' : None,
+                     },
+    'args' : (
+        {
+            'token'        : 'tags',
+        },
+        {
+            'field'           : 'tags',
+            'type'           : 'string',
+            'optional-for-no' : True,
+        }
+    ),
+}
+
+# Remove match vlan command temporarily on gregor's requres
+# the running config can still generate these commands, but
+# they won't get read correctly
+VNS_DEF_IF_MATCH_VLANS_COMMAND_DESCRIPTION = {
+    'name'         : 'match',
+    'mode'         : 'config-tenant-def-vns-if-rule',
+    'command-type' : 'config',
+    'short-help'   : 'Associate vlans with interface rule',
+    'doc'          : 'vns|interface-rule-match-vlans',
+    'doc-example'  : 'vns|interface-rule-match-vlans-example',
+    'data'         : { # for no command reset
+                       'vlans' : None,
+                     },
+    'args'         : (
+        {
+            'token'        : 'vlans',
+        },
+        {
+            'field'           : 'vlans',
+            'value'           : 'string',
+            'help-name'       : 'Vlan number (0-4096) or range, or list',
+            'optional-for-no' : True,
+        }
+    ),    
+}
+
+#
+# ----------------------------------------------------------------------
+# vns submode commands
+#
+
+
+VNS_COMMAND_DESCRIPTION = {
+    'name'                : 'vns',
+    'short-help'          : 'Enter VNS submode, manage access lists',
+    'mode'                : 'config*',
+    'feature'             : 'vns',
+    'no-supported'        : False,
+    'command-type'        : 'config-submode',
+    'obj-type'            : 'vns-definition',
+    'submode-name'        : 'config-tenant-vns',
+    'syntax-help'         : 'Enter a vns name',
+    'create'              : False,
+    'doc'                 : 'vns|vns',
+    'doc-example'         : 'vns|vns-example',
+    'args' : (
+        {
+            'field'        : 'vnsname',
+            'type'         : 'identifier',
+            'completion'   : ['complete-tenantname-preprocess',
+                              'complete-from-another'],
+            'other'        : 'vns-definition|vnsname',
+            'scoped'       : 'tenant',
+            'syntax-help'  : 'Enter a vns name',
+            'doc'          : 'vns|vns-id',
+            'doc-include'  : [ 'type-doc' ],
+            'action'       : (               
+                              {
+                               'proc'  : 'tenant-show-preprocess',
+                               },
+                              {
+                               'proc' : 'push-mode-stack',
+                               }
+                             ),
+
+        }
+    )
+}
+
+VNS_INTERFACE_COMMAND_DESCRIPTION = {
+    'name'                : 'interface',
+    'short-help'          : 'Enter VNS-if submode',
+    'mode'                : 'config-tenant-vns*',
+    'command-type'        : 'config-submode',
+    'obj-type'            : 'vns-interface-config',
+    'parent-field'        : 'vns',
+    'current-mode-obj-id' : 'vns-definition',
+    'submode-name'        : 'config-tenant-vns-if',
+    'syntax-help'         : 'Enter an interface name',
+    'doc'                 : 'vns|vns-interface',
+    'doc-example'         : 'vns|vns-interface-example',
+    'args' : (
+        {
+            'field'        : 'interface',
+            'completion'   : 'complete-object-field',
+            'doc'          : 'vns|vns-interface-field',
+        }
+    )
+}
+
+VNS_ACCESS_GROUP_COMMAND_DESCRIPTION = {
+    'name'         : 'access-group',
+    'short-help'   : 'Associate interface with access-list',
+    'mode'         : 'config-tenant-vns-if',
+    'command-type' : 'config',
+    'obj-type'     : 'vns-interface-access-list',
+    'parent-field' : 'vns-interface',
+    # 'current-mode-obj-id' : 'vns-definition',
+    'submode-name' : 'config-tenant-vns-if',
+    'doc'          : 'vns|vns-access-group',
+    'doc-example'  : 'vns|vns-access-group-example',
+    'args' : (
+        {
+            'field'           : 'vns-access-list',
+            'type'            : 'string',
+            'completion'      : 'complete-from-another',
+            'other'           : 'vns-access-list|name',
+            'optional-for-no' : False,
+        },
+        {
+            'field'           : 'in-out',
+            'type'            : 'enum',
+            'values'          : ('in', 'out'),
+            'syntax-help'     : 'apply access-list in this direction',
+            'optional-for-no' : False,
+            'doc'             : 'vns|vns-access-group-direction-+',
+        }
+    ),
+    'action' : (
+        {
+            'proc'      : 'convert-vns-access-list',
+        },
+        {
+            'proc'      : 'write-object',
+        },
+    ),
+    'no-action' : (
+        {
+            'proc'      : 'convert-vns-access-list',
+        },
+        {
+            'proc'      : 'delete-objects',
+        },
+    )
+}
+
+SHOW_VNS_ACCESS_GROUP_COMMAND_DESCRIPTION = {
+    'name'         : 'show',
+    'mode'         : 'config-tenant-vns-if*',
+    'action'       : 'display-table',
+    'command-type' : 'display-table',
+    'scoped'       : True, # displayed entries filtered by pushed obj id
+    'obj-type'     : 'vns-interface-access-list',
+    'short-help'   : 'show access-group details',
+    'args'         : (
+        'access-group',
+    )
+}
+
+
+SHOW_VNS_ACCESS_LIST_COMMAND_DESCRIPTION = {
+    'name'         : 'show',
+    'mode'         : ['config-tenant-vns-*'],
+    'short-help'   : 'Show VNS access lists',
+    'action'       : 'display-table',
+    'command-type' : 'display-table',
+    'obj-type'     : 'vns-access-list',
+    'scoped'       : True, # displayed entries filtered by pushed obj id
+    'args'         : (
+        'access-list',
+    )
+}
+
+SHOW_VNS_INTERFACES_COMMAND_DESCRIPTION = {
+    'name'         : 'show',
+    'mode'         : ['config-tenant-vns', 'config-tenant-vns-if'],
+    'short-help'   : 'Show VNS associated interfaces',
+    'doc'          : 'vns|vns-show-interface',
+    'obj-type'     : 'vns-interface',
+    'args'         : ( 
+        {
+            'token'  : 'interfaces',
+            'scoped' : True,
+            'action' :  ({'proc'   : 'tenant-show-preprocess'},
+                         'legacy-cli'),
+        }
+    )
+}
+
+SHOW_VNS_ACCESS_LIST_ENTRY_COMMAND_DESCRIPTION = {
+    'name'         : 'show',
+    'mode'         : 'config-tenant-vns*',
+    'short-help'   : 'show VNS access list rules',
+    'action'       : 'display-table',
+    'command-type' : 'display-table',
+    'obj-type'     : 'vns-access-list-entry',
+    'detail'       : 'acl-brief',
+    'args'         : (
+        'access-list-entry',
+    ),
+}
+
+VNS_ACCESS_LIST_COMMAND_DESCRIPTION = {
+    'name'         : 'access-list',
+    'mode'         : 'config-tenant-vns*',
+    'command-type' : 'config-submode',
+    'obj-type'     : 'vns-access-list',
+    'parent-field' : 'vns',
+    'submode-name' : 'config-tenant-vns-acl',
+    'syntax-help'  : 'Enter an access list name',
+    'short-help'   : 'Enter vns access-list submode',
+    'doc'          : 'vns|vns-access-list',
+    'doc-example'  : 'vns|vns-access-list-example',
+    'args' : (
+        {
+            'field'        : 'name',
+            'completion'   : 'complete-object-field',
+            'doc'          : 'vns|vns-access-list-name'
+        }
+    )
+}
+
+
+VNS_ACCESS_LIST_DESCRIPTION_COMMAND_DESCRIPTION = {
+    'name'         : 'description',
+    'mode'         : 'config-tenant-vns-acl',
+    'short-help'   : 'Provide a description for a VNS access list',
+    'doc'          : 'vns|vns-access-list-description',
+    'doc-example'  : 'vns|vns-access-list-description-example',
+    'command-type' : 'config',
+    'args'         : (
+        {
+            'field' : 'description',
+            'type'  : 'string',
+        }
+    ),
+}
+
+
+VNS_ACCESS_LIST_PRIORITY_COMMAND_DESCRIPTION = {
+    'name'         : 'priority',
+    'mode'         : 'config-tenant-vns-acl',
+    'short-help'   : 'Set VNS priority',
+    'doc'          : 'vns|vns-access-list-priority',
+    'doc-example'  : 'vns|vns-access-list-priority-example',
+    'doc-include'  : [ 'default', 'range' ],
+    'command-type' : 'config',
+    'args' : (
+        {
+            'field'     : 'priority',
+            'base-type' : 'integer',
+            'range'     : (0, 65535),
+        }
+    )
+}
+
+
+#
+# ----------------------------------------------------------------------
+# vns access list command
+#
+
+SRC_IP_MATCH = {
+    'choices' : (
+        (
+            {
+                'field' : 'src-ip',
+                'type'  : 'ip-address-not-mask',
+                'doc'   : 'vns|vns-access-list-ip-and-mask-ip',
+            },
+            {
+                'field'        : 'src-ip-mask',
+                'type'         : 'inverse-netmask',
+                'data'         : {
+                                  'dst-ip'      : '0.0.0.0',
+                                  'dst-ip-mask' : '255.255.255.255',
+                                 },
+                'doc'          : 'vns|vns-access-list-ip-and-mask-mask',
+            },
+        ),
+        (
+            {
+                'field'    : 'src-ip',
+                'type'     : 'ip-address-not-mask',
+                'data'     : {
+                               'src-ip-mask' : '0.0.0.0',
+                               'dst-ip'      : '0.0.0.0',
+                               'dst-ip-mask' : '255.255.255.255',
+                             },
+                'doc'      : 'vns|vns-access-list-ip-only',
+            },
+        ),
+        (
+            {
+                'field'        : 'src-ip',
+                'type'         : 'cidr-range',
+                'help-name'    : 'src-cidr',
+                'data-handler' : 'split-cidr-data-inverse',
+                'dest-ip'      : 'src-ip',
+                'dest-netmask' : 'src-ip-mask',
+                'data'         : {
+                                  'dst-ip'      : '0.0.0.0',
+                                  'dst-ip-mask' : '255.255.255.255',
+                                 },
+                'doc'          : 'vns|vns-access-list-cidr-range',
+            }
+        ),
+        (
+            {
+                'token'  : 'any',
+                'data'   : {
+                              'src-ip'      : '0.0.0.0',
+                              'src-ip-mask' : '255.255.255.255',
+                              'dst-ip'      : '0.0.0.0',
+                              'dst-ip-mask' : '255.255.255.255',
+                           },
+                'doc'    : 'vns|vns-access-list-ip-any',
+            }
+        ),
+    )
+}
+
+
+SRC_PORT_MATCH = (
+    {
+        'field'  : 'src-tp-port-op',
+        'type'   : 'enum',
+        'values' : ('eq', 'neq'),
+        'doc'    : 'vns|vns-access-list-port-op-+',
+    },
+    {
+        'choices' : (
+            {
+                'field'        : 'src-tp-port',
+                'base-type'    : 'hex-or-decimal-integer',
+                'range'        : (0,65535),
+                'data-handler' : 'hex-to-integer',
+                'doc'          : 'vns|vns-access-list-port-hex',
+                'doc-include'  : [ 'range' ],
+            },
+            {
+                'field'   : 'src-tp-port',
+                'type'    : 'enum',
+                'values'  : fmtcnv.tcp_name_to_number_dict,
+                'permute' : 'skip',
+                'doc'     : 'vns|vns-access-list-port-type',
+            },
+        ),
+    },
+)
+
+
+DST_IP_MATCH = {
+    'choices' : (
+        (
+            {
+                'field' : 'dst-ip',
+                'type'  : 'ip-address-not-mask',
+                'doc'   : 'vns|vns-access-list-ip-and-mask-ip',
+            },
+            {
+                'field' : 'dst-ip-mask',
+                'type'  : 'inverse-netmask',
+                'doc'   : 'vns|vns-access-list-ip-and-mask-mask',
+            },
+        ),
+        (
+            {
+                'field'    : 'dst-ip',
+                'type'     : 'ip-address-not-mask',
+                'data'     : {
+                                'dst-ip-mask' : '0.0.0.0',
+                             },
+                'doc'      : 'vns|vns-access-list-ip-only',
+            },
+        ),
+        (
+            {
+                'field'        : 'dst-ip',
+                'type'         : 'cidr-range',
+                'help-name'    : 'dst-cidr',
+                'data-handler' : 'split-cidr-data-inverse',
+                'dest-ip'      : 'dst-ip',
+                'dest-netmask' : 'dst-ip-mask',
+                'doc'          : 'vns|vns-access-list-cidr-range',
+            },
+        ),
+        (
+            {
+                'token'  : 'any',
+                'data'   : {
+                              'dst-ip'      : '0.0.0.0',
+                              'dst-ip-mask' : '255.255.255.255',
+                           },
+                'doc'    : 'vns|vns-access-list-ip-any',
+            }
+        ),
+    )
+}
+
+
+DST_PORT_MATCH = (
+    {
+        'field' : 'dst-tp-port-op',
+        'type'  : 'enum',
+        'values' : ('eq', 'neq'),
+        'doc'          : 'vns|vns-access-list-port-op+',
+    },
+    {
+        'choices' : (
+            {
+                'field'        : 'dst-tp-port',
+                'base-type'    : 'hex-or-decimal-integer',
+                'range'        : (0,65535),
+                'data-handler' : 'hex-to-integer',
+                'doc'          : 'vns|vns-access-list-port-hex',
+            },
+            {
+                'field'   : 'dst-tp-port',
+                'type'    : 'enum',
+                'values'  : fmtcnv.tcp_name_to_number_dict,
+                'permute' : 'skip'
+            },
+        ),
+    }
+)
+
+
+# Unfortunatly, the model defines the compound key using the
+# rule field as a character field, not an integer. 
+# Since '00' is then the same rule as '0', two rows could be
+# created describing the same integer rule. 
+# Here the character string is normalized.  
+# (This may be the result of having a requirement that all fields used to
+# construct compound keys must be character fields)
+#
+# Additionally, for tcp and udp matches, the *tp_port_op needs
+# to be set.
+#
+def vns_normalize_rule(data):
+    data['rule'] = str(int(data['rule']))
+
+    if data.get('type', '') in ['tcp', 'udp']:
+        if not 'src-tp-port-op' in data or data['src-tp-port-op'] == None:
+           data['src-tp-port-op'] = 'any'
+        if not 'dst-tp-port-op' in data or data['dst-tp-port-op'] == None:
+           data['dst-tp-port-op'] = 'any'
+
+
+command.add_action('vns-normalize-rule', vns_normalize_rule,
+                   {'kwargs' : { 'data' : '$data' }})
+#
+
+VNS_ACCESS_LIST_ENTRY_COMMAND_DESCRIPTION = {
+    'name'         : { 'type'       : 'pattern',
+                       'pattern'    : r'\d',
+                       'field'      : 'rule',
+                       'title'      : '<acl rule number>',
+                       'completion' : 'complete-object-field',
+                       'obj-type'   : 'vns-access-list-entry',
+                     },
+    'mode'         : 'config-tenant-vns-acl',
+    'short-help'   : 'Define ACL details for this access-list',
+    'doc'          : 'vns|vns-access-list-entry',
+    'doc-example'  : 'vns|vns-access-list-entry-example',
+    'command-type' : 'config-object',
+    'parent-field' : 'vns-access-list',
+    'obj-type'     : 'vns-access-list-entry',
+    'data'         : {
+                        'ether-type'     : None,
+                        'src-ip'         : None,
+                        'src-ip-mask'    : None,
+                        'dst-ip'         : None,
+                        'dst-ip-mask'    : None,
+                        'src-tp-port'    : None,
+                        'src-tp-port-op' : None,
+                        'dst-tp-port'    : None,
+                        'dst-tp-port-op' : None,
+                        'src-mac'        : None,
+                        'dst-mac'        : None,
+                        'vlan'           : None,
+                        'icmp-type'      : None,
+                     },
+    'args'  : (
+        {
+            'field'  : 'action',
+            'type'   : 'enum',
+            'values' : ( 'permit', 'deny' ),
+            'doc'    : 'vns|vns-access-list-entry-action-+',
+        },
+        {
+            'choices' : (
+                (
+                    {
+                        'choices' : (
+                            {
+                                'field'  : 'type',
+                                'type'   : 'enum',
+                                'values' : ('ip','tcp','udp'),
+                                'doc'    : 'vns|vns-access-list-entry-type-+',
+                            },
+                            {
+                                'field'        : 'type',
+                                'base-type'    : 'hex-or-decimal-integer',
+                                'range'        : (0,255),
+                                'help-name'    : 'ip protocol',
+                                'data-handler' : 'hex-to-integer',
+                                'doc'          : 'vns|vns-access-entry-type-ip-protocol',
+                                'doc-include'  : [ 'range' ],
+                            },
+                        )
+                    },
+                    # Complexity arises from the SRC_IP match part 
+                    # being, required, while the port match
+                    # is optional, as is the DST_IP match, but the
+                    # DST_PORT_MATCH is only possible to describe when
+                    # the DST_IP part is included
+                    SRC_IP_MATCH,
+                    {
+                        'optional' : True,
+                        'optional-for-no' : True,
+                        'args' : SRC_PORT_MATCH,
+                    },
+                    {
+                        'optional' : True,
+                        'optional-for-no' : True,
+                        'args' : (
+                            DST_IP_MATCH,
+                            {
+                                'optional' : True,
+                                'optional-for-no' : True,
+                                'args' : DST_PORT_MATCH,
+                            },
+                        ),
+                    },
+                ),
+                (
+                    # Only allow the icmp type for icmp syntax
+                    # this further increases the syntax complexity
+                    {
+                        'field'  : 'type',
+                        'type'   : 'enum',
+                        'values' : 'icmp',
+                        'doc'    : 'vns|vns-access-list-ip-+',
+                    },
+                    SRC_IP_MATCH,
+                    {
+                        'optional' : True,
+                        'optional-for-no' : True,
+                        'args' : SRC_PORT_MATCH
+                    },
+                    {
+                        'optional' : True,
+                        'optional-for-no' : True,
+                        'args' : (
+                            DST_IP_MATCH,
+                            {
+                                'optional' : True,
+                                'optional-for-no' : True,
+                                'args' : DST_PORT_MATCH,
+                            },
+                        ),
+                    },
+                    {
+                        'field'           : 'icmp-type',
+                        'optional'        : True,
+                        'optional-for-no' : True,
+                        'base-type'       : 'hex-or-decimal-integer',
+                        'range'           : (0,255),
+                        'data-handler'    : 'hex-to-integer',
+                    },
+                ),
+                (
+                    {
+                        'field'     : 'type',
+                        'type'      : 'enum',
+                        'values'    : 'mac',
+                        'doc'       : 'vns|vns-access-list-mac',
+                    },
+                    {
+                        'choices'   : (
+                            {
+                                'token' : 'any',
+                            },
+                            {
+                                'field' : 'src-mac',
+                                'type'  : 'host',
+                                'completion'   : [ 'complete-alias-choice',
+                                                 ],
+                                'other'        : 'host|mac',
+                                'data-handler' : 'alias-to-value',
+                            },
+                        )
+                    },
+                    {
+                        'choices'   : (
+                            {
+                                'token' : 'any',
+                            },
+                            {
+                                'field' : 'dst-mac',
+                                'type'  : 'host',
+                                'completion'   : [ 'complete-alias-choice',
+                                                 ],
+                                'other'        : 'host|mac',
+                                'data-handler' : 'alias-to-value',
+                            },
+                        ),
+                    },
+                    {
+                        'optional'  : True,
+                        'choices' : (
+                            {
+                                'field'           : 'ether-type',
+                                'base-type'       : 'hex-or-decimal-integer',
+                                'range'           : (1536,65536),
+                                'data-handler'    : 'hex-to-integer',
+                                'doc'             : 'vns|vns-access-list-ether-type',
+                            },
+                            {
+                                'field'           : 'ether-type',
+                                'type'            : 'enum',
+                                'values'          : fmtcnv.ether_type_to_number_dict,
+                                'permute'         : 'skip'
+                            },
+                        )
+                    },
+                    {
+                        'field'           : 'vlan',
+                        'tag'             : 'vlan',
+                        'base-type'       : 'hex-or-decimal-integer',
+                        'range'           : (1,4096), # no zero?  really?
+                        'data-handler'    : 'hex-to-integer',
+                        'optional'        : True,
+                        'optional-for-no' : True,
+                    },
+                ),
+            )
+        }
+    ),
+    'action' : (
+                    {
+                        'proc'  : 'vns-normalize-rule',
+                        'field' : 'rule',
+                    },
+                    {
+                        'proc' : 'write-object',
+                    },
+        ),
+}
+
+VNS_DEFINITION_FORMAT = {
+    'vns-definition' : {
+        'field-orderings' : {
+            'default'     : [ 'Idx', 'tenant','vnsname', 'active', 'priority', 'arp-mode',
+                              'dhcp-mode', 'dhcp-ip', 'broadcast',
+                              'address-space' ],
+            'vns-config'  : [ 'Idx', 'tenant','vnsname','active', 'priority', 'arp-mode',
+                              'dhcp-mode', 'dhcp-ip', 'broadcast',
+                              'address-space', ],
+            'brief'       : [ 'Idx', 'tenant', 'vnsname', 'address-space', ]
+            },
+        'fields' : {
+           'vnsname'              : { 'verbose-name' : 'VNS ID',
+                               },
+           'active'          : {
+                               },
+           'address-space'   : { 'verbose-name' : 'Address Space',
+                               },
+           'priority'        : {
+                               },
+           'arp-mode'        : { 'verbose-name' : 'ARP Config Mode',
+                               },
+           'dhcp-mode'       : { 'verbose-name' : 'DHCP Config Mode' ,
+                               },
+           'dhcp-ip'         : { 'verbose-name' : 'DHCP Ip' ,
+                               },
+           'broadcast'       : { 'verbose-name' : 'Broadcast Mode' ,
+                               },
+           'address-space'   : {
+                                 'verbose-name' : 'Address Space',
+                               },
+           'tenant'   : {
+                                 'verbose-name' : 'Tenant',
+                               },
+                    
+           }
+        },
+}
+
+VNS_INTERFACE_RULE_FORMAT = {
+    'vns-interface-rule' : {
+        'field-orderings': {
+            'default'    : [ 'Idx', 'tenant', 'vnsname', 'rule', 'description',
+                             'allow-multiple', 'active', 'priority',
+                             'mac', 'vlans', 'ip-subnet', 'switch', 'ports', 'tags'
+                           ],
+            'vns-config' : [ 'Idx', 'rule', 'description', 'allow-multiple', 'active',
+                             'priority', 'mac', 'vlans', 'ip-subnet', 'switch', 'ports', 'tags'
+                           ],
+            },
+        'fields': {
+            'rule'           : { 'verbose-name' : 'VNS Rule ID',
+                               },
+            'tenant'         : {
+                                'verbose-name' : 'Tenant',
+                                },
+            'vnsname'            : { 'verbose-name' : 'VNS ID'
+                               },
+            'mac'            : {
+                                 'formatter' : fmtcnv.print_host_and_alias
+                               },
+            'tags'           : {
+                               },
+            'active'         : {
+                               },
+            'allow-multiple' : {
+                               },
+            'description'    : {
+                               },
+            'ip-subnet'      : {
+                               },
+            'ports'          : {
+                               },
+            'priority'       : {
+                               },
+            'rule'           : {
+                               },
+            'switch'         : {
+                               },
+            'tags'           : {
+                               },
+            'vlans'          : {
+                               },
+            }
+        },
+}
+
+
+VNS_DISPLAY_VNS_INTERFACE_FORMAT = {
+    'display-vns-interface' : {
+        'field-orderings' : {
+            'default'    : ['Idx', 'tenant', 'vnsname', 'address-space', 'id', 'rule', 'mac', 'vlan',
+                            'ips', 'attachment-points', 'last-seen'],
+            'vns-config' : ['Idx',        'id', 'rule', 'mac', 'vlan',
+                             'ips', 'attachment-points', 'last-seen']
+            },
+        'fields': {
+            'tenant'            : {
+                                'verbose-name' : 'Tenant',
+                                },
+            'vnsname'           : {
+                                'verbose-name' : 'VNS ID',
+                                },
+            'id'                : {
+                                  },
+            'rule'              : {
+                                  },
+            'address-space'     : {
+                                     'verbose-name' : 'Address Space',
+                                  },
+            'mac'               : { 'verbose-name' : 'MAC Address',
+                                    'formatter' : fmtcnv.print_host_and_alias,
+                                  },
+            'vlan'              : { 'verbose-name' : 'VLAN',
+                                  },
+            'ips'               : {
+                                    'formatter' : fmtcnv.print_ip_addresses,
+                                    'entry-formatter' : fmtcnv.print_all_ip_addresses,
+                                  },
+            'attachment-points' : { 'formatter' : fmtcnv.print_host_attachment_point,
+                                    'entry-formatter' : fmtcnv.print_all_host_attachment_points,
+                                  },
+            'last-seen'         : {
+                                    'formatter' : fmtcnv.print_time_since_utc_timestr
+                                  }
+            }
+        },
+}
+
+
+VNS_INTERFACE_DISPLAY_FORMAT = {
+    'vns-interface-display' : {
+        'field-orderings' : {
+            'default'    : ['Idx', 'tenant', 'vnsname', 'address-space', 'id', 'rule', 'mac', 'vlan',
+                            'ips', 'attachment-points', 'last-seen'],
+            'vns-config' : ['Idx',        'id', 'address-space', 'rule', 'mac', 'vlan',
+                             'ips', 'attachment-points', 'last-seen']
+            },
+        'fields': {
+            'id'                : {
+                                  },
+            'tenant'            : {
+                                'verbose-name' : 'Tenant',
+                                  },
+            'vnsname'           : {
+                                'verbose-name' : 'VNS ID',
+                                  },
+            'rule'              : {
+                                  },
+            'mac'               : { 'verbose-name' : 'MAC Address',
+                                    'formatter' : fmtcnv.print_host_and_alias,
+                                  },
+            'vlan'              : { 'verbose-name' : 'VLAN',
+                                  },
+            'ips'               : {
+                                    'formatter' : fmtcnv.print_ip_addresses,
+                                    'entry-formatter' : fmtcnv.print_all_ip_addresses,
+                                  },
+            'attachment-points' : { 'formatter' : fmtcnv.print_host_attachment_point,
+                                    'entry-formatter' : fmtcnv.print_all_host_attachment_points,
+                                  },
+            'address-space'     : {
+                                     'verbose-name' : 'Address Space',
+                                  },
+            'last-seen'         : {
+                                    'formatter' : fmtcnv.print_time_since_utc
+                                  }
+            }
+        },
+}
+
+
+VNS_INTERFACE_MACS_FORMAT = {
+    'vns-interface-macs'  : {
+        'field-orderings' : {
+            'default'    : [ 'Idx', 'tenant', 'vns', 'address-space',
+                             'veth', 'mac', 'vlan', 'ips', 'tags', 'last-seen'],
+            'scoped'     : [ 'Idx',        'address-space',
+                             'veth', 'mac', 'vlan', 'ips', 'tags', 'last-seen'],
+            },
+        'fields': {
+            'veth'              : {
+                                    'verbose-name' : 'Virtual I/F',
+                                  },
+            'tenant'            : {
+                                    'verbose-name' : 'Tenant',
+                                  },
+            'vnsname'               : {
+                                  'verbose-name': 'VNS ID'
+                                  },
+            'mac'               : {
+                                    'verbose-name' : 'MAC Address',
+                                    'formatter' : fmtcnv.print_host_and_alias,
+                                  },
+            'vlan'              : {
+                                     'verbose-name' : 'VLAN',
+                                  },
+            'ips'               : {
+                                     'verbose-name' : 'IP Address',
+                                     'formatter' : fmtcnv.print_ip_addresses,
+                                     'entry-formatter' : fmtcnv.print_all_ip_addresses,
+                                  },
+            'tags'              : {
+                                  },
+            'address-space'     : {
+                                     'verbose-name' : 'Address Space',
+                                  },
+            'last-seen'         : {
+                                    'verbose-name' : 'Last Seen',
+                                    'formatter' : fmtcnv.print_time_since_utc
+                                  }
+            }
+        },
+}
+
+
+VNS_INTERFACE_PHYS_FORMAT = {
+    'vns-interface-phys'  : {
+        'field-orderings' : {
+            'default'     : ['Idx', 'id', 'address-space', 'switch', 'last-seen' ],
+            },
+
+        'fields'          : {
+            'id'            : { 'formatter' : fmtcnv.print_vns_physical_interface_id,
+                                'verbose-name' : 'Physical I/F',
+                              },
+            'switch'        : {
+                                'formatter'  : fmtcnv.print_switch_and_alias
+                              },
+            'address-space'     : {
+                                     'verbose-name' : 'Address Space',
+                                  },
+            'last-seen'     : {
+                                'verbose-name' : 'Last Seen',
+                                'formatter' : fmtcnv.print_time_since_utc
+                              }
+        }
+    },
+}
+
+
+VNS_VNS_SWITCH_PORTS_FORMAT = {
+    'vns-switch-ports'    : {
+        'field-orderings' : {
+            'default'     : [ 'Idx', 'tenant','vns', 'switch', 'port', 'reason' ],
+            },
+
+        'fields'          : {
+            'tenant'      : {
+                                'verbose-name' : 'Tenant',
+                            },
+            'vnsname'     : {
+                                'verbose-name' : 'VNS ID',
+                            },
+            'switch'      : {
+                              'formatter' : fmtcnv.replace_switch_with_alias
+                            },
+            'port'        : {
+                              'verbose-name' : 'OF Port #',
+                              'formatter' : fmtcnv.decode_openflow_port
+                            },
+            'switch-port' : {
+                              'verbose-name' : 'Phy I/F'
+                            },
+            'reason'      : {
+                              'formatter' : fmtcnv.print_host_list_and_alias
+                            },
+            }
+    },
+}
+
+
+VNS_SWITCH_PORTS_VNS_PORTS_FORMAT = {
+    'switch-ports-vns'    : {
+        'field-orderings' : {
+            'default'     : [ 'Idx', 'switch', 'port', 'tenant','vnsname', 'reason' ],
+            },
+
+        'fields'          : {
+            'tenant'      : {
+                                'verbose-name' : 'Tenant',
+                                  },
+            'vnsname'     : { 'verbose-name' : 'VNS',
+                              'formatter' : fmtcnv.print_vns_count_dict
+                              },
+            'switch'      : {
+                              'formatter' : fmtcnv.replace_switch_with_alias
+                            },
+            'port'        : {
+                               'verbose-name' : 'OF Port #',
+                              'formatter' : fmtcnv.decode_openflow_port
+                            },
+            'reason'      : {
+                              'formatter' : fmtcnv.print_host_list_and_alias
+                            },
+            }
+    },
+}
+
+
+VNS_VNS_ACCESS_LIST_FORMAT = {
+    'vns-access-list': {
+        'show-this'       : [
+                                ['vns-access-list', 'default'],
+                                ['vns-access-list-entry', 'acl-brief']
+                            ],
+
+        'field-orderings' : {
+            'default'    : [ 'tenant', 'vns', 'name', 'priority', 'description' ],
+            'vns-config' : [        'name', 'priority', 'description' ]
+            },
+        'fields' : {
+            'name'       : {
+                           },
+            }
+        },
+}
+
+
+VNS_ACCESS_LIST_ENTRY_FORMAT = {
+    'vns-access-list-entry': {
+        'field-orderings' : {
+            'default'         : [ 'Idx', 'vns', 'vns-access-list', 'rule', 'action', 'type',
+                                   'src-ip', 'src-ip-mask',
+                                   'dst-ip', 'dst-ip-mask',
+                                        'src-tp-port-op', 'src-tp-port',
+                                   'dst-tp-port-op', 'dst-tp-port',
+                                   'icmp-type',
+                                   'src-mac', 'dst-mac', 'ether-type',
+                                   'vlan'
+                                 ],
+            'vns-config'       : ['Idx',
+                                  'vns-access-list', 'rule', 'action', 'type',
+                                  'src-ip', 'src-ip-mask',
+                                   'dst-ip', 'dst-ip-mask' ,
+                                   'src-tp-port-op', 'src-tp-port',
+                                   'dst-tp-port-op', 'dst-tp-port',
+                                   'icmp-type',
+                                   'src-mac', 'dst-mac', 'ether-type',
+                                   'vlan'
+                                 ],
+            'acl-brief'        : ['vns-access-list', 'rule', 'action', 'type', 'acl-text'
+                                 ],
+            'scoped-acl-brief' : [ 'rule', 'action', 'type', 'acl-text'
+                                 ],
+            },
+        'fields' : {
+            #
+            # vns-acl-entry fields are a bit uncommon.  the action and type
+            # can only be configured via the create portion of the command,
+            # while many other fields requre specific validation so that
+            # alternate values can be replaced for some keywords
+            #
+            # the values of the 'validate' field is the name of the
+            # def to call (in the SDNSh class)
+            #
+            'vns-access-list'  : { 'verbose-name' : 'Acl'
+                                 },
+            'rule'             : { 'verbose-name' : 'Seq',
+                                 },
+            'action'           : { 'verbose-name' : 'Action',
+                                 },
+            'type'             : { 'verbose-name' : 'Type',
+                                 },
+            'src-ip'           : {
+                                   'verbose-name' : 'Src-Ip'
+                                 },
+            'src-ip-mask'      : {
+                                    'verbose-name' : 'Src-Ip-Mask'
+                                 },
+            'dst-ip'           : {
+                                   'verbose-name' : 'Dst-Ip' },
+            'dst-ip-mask'      : {
+                                   'verbose-name' : 'Dst-Ip-Mask' },
+            'src-tp-port-op'   : {
+                                   'verbose-name' : 'Src-Port-Op' },
+            'src-tp-port'      : {
+                                   'verbose-name' : 'Src-Port' },
+            'dst-tp-port-op'   : {
+                                   'verbose-name' : 'Dst-Port-Op' },
+            'dst-tp-port'      : {
+                                   'verbose-name' : 'Dst-Port' },
+            'icmp-type'        : {
+                                 },
+            'ether-type'       : {
+                                 },
+            'vns'              : {
+                                   'verbose-name' : 'VNS ID',
+                                 }
+            }
+        },
+}
+
+
+VNS_INTERFACE_ACCESS_LIST_FORMAT = {
+    'vns-interface-access-list': {
+        'field-orderings' : {
+            'default'   : [ 'Idx', 'vnsname', 'vns-interface', 'name',  'in-out' ],
+            'vns-config': [ 'Idx',        'vns-interface', 'name',  'in-out' ]
+            },
+        'fields' : {
+            'vnsname'                : {
+                                     'verbose-name' : 'VNS ID',
+                                   },
+            'vns-interface-name' : {
+                                     'verbose-name' : 'VNS Interface ID',
+                                   },
+            'name'               : {
+                                     'verbose-name' : 'VNS Acl name',
+                                   },
+            }
+        },
+}
+
+
+VNS_INTERFACE_FORMAT = {
+    'vns-interface' : {
+        'field-orderings' : {
+            'default'    : ['Idx', 'vns', 'address-space', 'interface', 'rule', 'last-seen', ],
+            'vns-config' : ['Idx', 'address-space', 'interface', 'rule', 'last-seen', ]
+        },
+        'fields' : {
+            'id'         : {
+                             'verbose-name': 'ID',
+                           },
+            'vns'        : {
+                            'verbose-name': 'VNS ID'
+                           },
+            'interface'  : {
+                             'verbose-name': 'VNS Interface Name',
+                            },
+            'rule'        : {
+                              'verbose-name': 'VNS Rule ID',
+                            },
+            'address-space'     : {
+                                     'verbose-name' : 'Address Space',
+                                  },
+            'last-seen'   : {
+                              'verbose-name': 'Last Seen',
+                              'formatter' : fmtcnv.timestamp_to_local_timestr,
+                            },
+            }
+        },
+}
+"""
\ No newline at end of file
