Adding ONOS Segment Routing CLI files to new repo
diff --git a/cli/desc/version200/snmp.py b/cli/desc/version200/snmp.py
new file mode 100755
index 0000000..ad9b31e
--- /dev/null
+++ b/cli/desc/version200/snmp.py
@@ -0,0 +1,214 @@
+#
+# 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.
+#
+
+# (c) in 2012 by Big Switch Networks - All rights reserved
+#
+# snmp-server commands
+#
+
+import command
+from midw import local_interfaces_firewall_open
+
+def snmp_validate_firewall(data):
+    intfs = local_interfaces_firewall_open( [ 'udp', 'tcp' ], 161)
+    if len(intfs) == 0:
+        # by issueing a warning, running-config doesn't display the
+        # error during replay.
+        command.sdnsh.warning('SNMP server port not open on any controller-node '
+                              'interface. Use firewall rule configuration to open '
+                              'SNMP UDP port 161')
+
+    
+
+command.add_action('snmp-validate-firewall', snmp_validate_firewall,
+                    {'kwargs': { 'data'   : '$data',
+                               }})
+
+"""
+#
+# --------------------------------------------------------------------------------
+# SNMP command descriptions 
+#
+#  [no] snmp-server enable
+#  [no] snmp-server community <string>
+#  [no] snmp-server location <string>
+#  [no] snmp-server contact <string>
+#
+SNMP_SERVER_COMMAND_DESCRIPTION = {
+    'name'         : 'snmp-server',
+    'mode'         : 'config*',
+    'short-help'   : 'SMNP configuration, enable server, configure parameters',
+    'doc'          : 'snmp|snmp-server',
+    'doc-example'  : 'snmp|snmp-server-example',
+    'command-type' : 'update-config',
+    'obj-type'     : 'snmp-server-config',
+    'data'         : { 'id' : 'snmp' },
+    'args'         : (
+        {
+            'choices' : (
+                {
+                    'token'      : 'enable',
+                    'short-help' : 'Enable SNMP',
+                    'doc'        : 'snmp|snmp-server-enable',
+                    'action'     : (
+                                       {
+                                          'proc' : 'update-config',
+                                          'data' : {
+                                                      'id'            : 'snmp',
+                                                      'server-enable' : True,
+                                                   },
+                                       },
+                                       {
+                                          'proc' : 'snmp-validate-firewall'
+                                       },
+                    ),
+                    'no-action'  : {
+                                      'proc' : 'update-config',
+                                      'data' : {
+                                                  'id'            : 'snmp',
+                                                  'server-enable' : False,
+                                               },
+                                   },
+                },
+                (
+                    {
+                        'token'           : 'community',
+                        'short-help'      : 'Set community string and access privs',
+                        'data'            : { 'community' : None },
+                        'doc'             : 'snmp|snmp-server-community',
+                    },
+                    {
+                        'token'           : 'ro',
+                        'short-help'      : 'Read-only access with this community string',
+                        'optional-for-no' : True,
+                    },
+                    {
+                        'field'           : 'community',
+                        'type'            : 'string',
+                        'optional-for-no' : True,
+                        'syntax-help'     : 'Value for the SNMP commuity string',
+                    },
+                ),
+                (
+                    {
+                        'token'           : 'location',
+                        'short-help'      : 'Text for mib object sysLocation',
+                        'data'            : { 'location' : None },
+                        'doc'             : 'snmp|snmp-server-location',
+                    },
+                    {
+                        'field'           : 'location',
+                        'type'            : 'string',
+                        'optional-for-no' : True,
+                        'syntax-help'     : 'Value for the SNMP location string',
+                    },
+                ),
+                (
+                    {
+                        'token'           : 'contact',
+                        'short-help'      : 'Text for mib object sysContact',
+                        'data'            : { 'contact' : None },
+                        'doc'             : 'snmp|snmp-server-contact',
+                    },
+                    {
+                        'field'           : 'contact',
+                        'type'            : 'string',
+                        'optional-for-no' : True,
+                        'syntax-help'     : 'Value for the SNMP contact string',
+                    },
+                ),
+            ),
+        },
+    )
+}
+"""
+
+def snmp_firewall_interfaces(data):
+    """
+    There is currently only one row of data in the query,
+    add to that a 'interfaces' entity, which lists the interfaces
+    which have the snmp port open
+    """
+    if not hasattr(command, 'query_result'):
+        return
+    if command.query_result == None:
+        return
+
+    intfs = local_interfaces_firewall_open( [ 'udp', 'tcp' ], 161)
+
+    intfs_text = ', '.join([x['discovered-ip'] if x['discovered-ip'] != ''
+                            else x['ip'] for x in intfs])
+
+    for q in command.query_result:
+        q['interfaces'] = intfs_text
+
+
+command.add_action('snmp-firewall-interfaces', snmp_firewall_interfaces,
+                    {'kwargs': { 'data'   : '$data',
+                               }})
+
+"""
+SNMP_SERVER_SHOW_COMMAND_DESCRIPTION = {
+    'name'         : 'show',
+    'mode'         : 'login',
+    'short-help'   : 'Show configured snmp details',
+    'doc'          : 'snmp|show',
+    'doc-example'  : 'snmp|show-example',
+    'command-type' : 'display-table',
+    'obj-type'     : 'snmp-server-config',
+    'short-help'   : 'Show SNMP configuration',
+    'format'       : 'snmp-config-summary',
+    'args' : (
+        'snmp',
+    ),
+    'action'       : (
+        {
+            'proc' : 'query-table',
+        },
+        {
+            'proc'  : 'snmp-firewall-interfaces'
+        },
+        {
+            'proc'   : 'display-table',
+        },
+    ),
+}
+
+import fmtcnv
+
+SNMP_CONFIG_SUMMARY_FORMAT = {
+    'snmp-config-summary' : {
+        'field-orderings' : {
+            'default'     : [
+                                'server-enable',
+                                'community',
+                                'location',
+                                'contact',
+                                'interfaces',
+                            ],
+        },
+        'fields' : {
+            'server-enable'           : {
+                                          'verbose-name' : 'SNMP server status',
+                                          'formatter'    : fmtcnv.replace_boolean_with_enable_disable,
+                                        },
+            'community'               : { 'verbose-name' : 'Community string' },
+            'location'                : { 'verbose-name' : 'System location' },
+            'contact'                 : { 'verbose-name' : 'System contact' },
+        },
+    }
+}
+"""
\ No newline at end of file