Configure SNMP on Access Points using LCOS-LX

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

/**
 * @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");
};

download json file

results matching ""

    No results matching ""