Description:

With the following Add-in script you can configure SNMP (SNMPv1, SNMPv2 or SNMPv3) on Access Points using LCOS LX.

List of used variables:

VariableDescription




Add-in code:

/**
 * @param {Config} config
 * @param {Context} context
 * Do not edit this comment or parameter types. Required for code suggestions
*/
exports.main = function (config, context) {



    config.setScalarByOid( "13.2.9.37" , "6" ); //enable SNMPv2 and SNMPv3

    // Do not change the following functions !

    // function to create a SNMP Community
    var createSnmpCommunity = function ( Name , SecurityName , Status ) {
        var SNMPCommunity = config.getTableByOid( "13.2.9.27" );
        var SNMPCommunityEntry = SNMPCommunity .createNewRow();
        SNMPCommunityEntry .setByOid( "1" , Name );
        SNMPCommunityEntry .setByOid( "3" , SecurityName );
        SNMPCommunityEntry .setByOid( "8" , Status );                       // Active (1), Inactive (2)
        SNMPCommunity .addOrMerge( SNMPCommunityEntry );
    }

    // function to create a SNMP Group
    var createSnmpGroup = function ( SecurityModel , SecurityName , GroupName , Status ) {
        var SNMPGroup = config.getTableByOid( "13.2.9.28" );
        var SNMPGroupEntry = SNMPGroup .createNewRow();
        SNMPGroupEntry .setByOid( "1" , SecurityModel );                   // Any (0), SNMPv1 (1), SNMPv2_C (2), SNMPv3_USM (3)
        SNMPGroupEntry .setByOid( "2" , SecurityName );
        SNMPGroupEntry .setByOid( "3" , GroupName );
        SNMPGroupEntry .setByOid( "5" , Status );                         // Active (1), Inactive (2)
        SNMPGroup .addOrMerge( SNMPGroupEntry );
    }

    // function to create a SNMP Views
    var createSnmpViews = function ( ViewsName , OidSubtree , Type , Status ) {
        var SNMPViews = config.getTableByOid( "13.2.9.30" );
        var SNMPViewsEntry = SNMPViews .createNewRow();
        SNMPViewsEntry .setByOid( "1" , ViewsName );
        SNMPViewsEntry .setByOid( "3" , OidSubtree );
        SNMPViewsEntry .setByOid( "4" , Type );                         // Included (1), Excluded (2)
        SNMPViewsEntry .setByOid( "6" , Status );                       // Active (1), Inactive (2)
        SNMPViews .addOrMerge( SNMPViewsEntry );
    }

    // function to create a SNMP Accesses
    var createSnmpAccesses = function ( GroupName , SecurityModel , MinSecurityLevel , ReadViewName , WriteViewName , NotifyViewName , Status ) {
        var SNMPAccesses = config.getTableByOid( "13.2.9.29" );
        var SNMPAccessesEntry = SNMPAccesses .createNewRow();
        SNMPAccessesEntry .setByOid( "1" , GroupName );
        SNMPAccessesEntry .setByOid( "3" , SecurityModel );             // Any (0), SNMPv1 (1), SNMPv2_C (2), SNMPv3_USM (3)
        SNMPAccessesEntry .setByOid( "10" , MinSecurityLevel );         // NoAuthNoPriv (0), AuthNoPriv (1), AuthPriv (3)
        SNMPAccessesEntry .setByOid( "5" , ReadViewName );
        SNMPAccessesEntry .setByOid( "6" , WriteViewName );
        SNMPAccessesEntry .setByOid( "7" , NotifyViewName );
        SNMPAccessesEntry .setByOid( "8" , Status );                     // Active (1), Inactive (2)
        SNMPAccesses .addOrMerge( SNMPAccessesEntry );
    }

    // function to create a SNMP User
    var createSnmpUser = function ( UserName , AuthenticationProtocol , AuthenticationPasswordType , AuthenticationPassword , PrivacyProtocol , PrivacyPasswordType , PrivacyPassword , Status ) {
        var SNMPUseres = config.getTableByOid( "13.2.9.32" );
        var SNMPUserEntry = SNMPUser .createNewRow();
        SNMPUserEntry .setByOid( "2" , UserName );
        SNMPUserEntry .setByOid( "5" , AuthenticationProtocol );         // None (1), HMAC-MD5 (2), HMAC-SHA (3), HMAC-SHA224 (4), HMAC-SHA256 (5), HMAC-SHA384 (6), HMAC-SHA512 (7)
        SNMPUserEntry .setByOid( "14" , AuthenticationPasswordType );   // Plaintext (1), Masterkey (2)
        SNMPUserEntry .setByOid( "6" , AuthenticationPassword );
        SNMPUserEntry .setByOid( "8" , PrivacyProtocol );               // None (1), DES (2), AES128 (3), AES192 (20), AES256 (21)
        SNMPUserEntry .setByOid( "15" , PrivacyPasswordType );           // Plaintext (1), Masterkey (2)
        SNMPUserEntry .setByOid( "9" , PrivacyPassword );
        SNMPUserEntry .setByOid( "13" , Status );                         // Active (1), Inactive (2)
        SNMPUser .addOrMerge( SNMPUserEntry );
    }

    // function to create a SNMP Target Adresses
    var createSnmpTargetAdresses = function ( Name , TransportAddress , ParameterName , Status ) {
        var SNMPTargetAdresses = config.getTableByOid( "13.2.9.34" );
        var SNMPTargetAdressesEntry = SNMPTargetAdresses .createNewRow();
        SNMPTargetAdressesEntry .setByOid( "1" , Name );
        SNMPTargetAdressesEntry .setByOid( "3" , TransportAddress );
        SNMPTargetAdressesEntry .setByOid( "7" , ParameterName );
        SNMPTargetAdressesEntry .setByOid( "9" , Status );               // Active (1), Inactive (2)
        SNMPTargetAdresses .addOrMerge( SNMPTargetAdressesEntry );
    }

    // function to create a SNMP Target Params
    var createSnmpTargetParams = function ( Name , MessageProcessingModel , SecurityModel , SecurityName , SecurityLevel , Status ) {
        var SNMPTargetParams = config.getTableByOid( "13.2.9.35" );
        var SNMPTargetParamsEntry = SNMPTargetParams .createNewRow();
        SNMPTargetParamsEntry .setByOid( "1" , Name );
        SNMPTargetParamsEntry .setByOid( "2" , MessageProcessingModel );     // SNMPv1 (0), SNMPv2_C (1), SNMPv3 (3)
        SNMPTargetParamsEntry .setByOid( "3" , SecurityModel );             // Any (0), SNMPv1 (1), SNMPv2_C (2), SNMPv3_USM (3)
        SNMPTargetParamsEntry .setByOid( "4" , SecurityName );
        SNMPTargetParamsEntry .setByOid( "5" , SecurityLevel );             // NoAuthNoPriv (0), AuthNoPriv (1), AuthPriv (3)
        SNMPTargetParamsEntry .setByOid( "7" , Status );                     // Active (1), Inactive (2)
        SNMPTargetParams .addOrMerge( SNMPTargetParamsEntry );
    }

    // After this command you can call the functions and fill them with data

    createSnmpCommunity( "Name" , "SecurityName" , "Status" );
    createSnmpGroup( "SecurityModel" , "SecurityName" , "GroupName" , "Status" );
    createSnmpViews( "ViewsName" , "OidSubtree" , "Type" , "Status" );
    createSnmpAccesses( "GroupName" , "SecurityModel" , "MinSecurityLevel" , "ReadViewName" , "WriteViewName" , "NotifyViewName" , "Status" );
    createSnmpUser( "UserName" , "AuthenticationProtocol" , "AuthenticationPasswordType" , "AuthenticationPassword" , "PrivacyProtocol" , "PrivacyPasswordType" , "PrivacyPassword" , "Status" );
    createSnmpTargetAdresses( "Name" , "TransportAddress" , "ParameterName" , "Status" );
    createSnmpTargetParams( "Name" , "MessageProcessingModel" , "SecurityModel" , "SecurityName" , "SecurityLevel" , "Status" );
};

Addin as JSON file:

LX_SNMP.json