1*40e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 2*40e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 30ec8b83dSEd Tanous #pragma once 40ec8b83dSEd Tanous #include <nlohmann/json.hpp> 50ec8b83dSEd Tanous 60ec8b83dSEd Tanous namespace manager_network_protocol 70ec8b83dSEd Tanous { 80ec8b83dSEd Tanous // clang-format off 90ec8b83dSEd Tanous 100ec8b83dSEd Tanous enum class NotifyIPv6Scope{ 110ec8b83dSEd Tanous Invalid, 120ec8b83dSEd Tanous Link, 130ec8b83dSEd Tanous Site, 140ec8b83dSEd Tanous Organization, 150ec8b83dSEd Tanous }; 160ec8b83dSEd Tanous 170ec8b83dSEd Tanous enum class SNMPCommunityAccessMode{ 180ec8b83dSEd Tanous Invalid, 190ec8b83dSEd Tanous Full, 200ec8b83dSEd Tanous Limited, 210ec8b83dSEd Tanous }; 220ec8b83dSEd Tanous 230ec8b83dSEd Tanous enum class SNMPAuthenticationProtocols{ 240ec8b83dSEd Tanous Invalid, 250ec8b83dSEd Tanous Account, 260ec8b83dSEd Tanous CommunityString, 270ec8b83dSEd Tanous HMAC_MD5, 280ec8b83dSEd Tanous HMAC_SHA96, 290ec8b83dSEd Tanous HMAC128_SHA224, 300ec8b83dSEd Tanous HMAC192_SHA256, 310ec8b83dSEd Tanous HMAC256_SHA384, 320ec8b83dSEd Tanous HMAC384_SHA512, 330ec8b83dSEd Tanous }; 340ec8b83dSEd Tanous 350ec8b83dSEd Tanous enum class SNMPEncryptionProtocols{ 360ec8b83dSEd Tanous Invalid, 370ec8b83dSEd Tanous None, 380ec8b83dSEd Tanous Account, 390ec8b83dSEd Tanous CBC_DES, 400ec8b83dSEd Tanous CFB128_AES128, 412ae81db9SGunnar Mills CFB128_AES192, 422ae81db9SGunnar Mills CFB128_AES256, 430ec8b83dSEd Tanous }; 440ec8b83dSEd Tanous 450ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(NotifyIPv6Scope, { 460ec8b83dSEd Tanous {NotifyIPv6Scope::Invalid, "Invalid"}, 470ec8b83dSEd Tanous {NotifyIPv6Scope::Link, "Link"}, 480ec8b83dSEd Tanous {NotifyIPv6Scope::Site, "Site"}, 490ec8b83dSEd Tanous {NotifyIPv6Scope::Organization, "Organization"}, 500ec8b83dSEd Tanous }); 510ec8b83dSEd Tanous 520ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SNMPCommunityAccessMode, { 530ec8b83dSEd Tanous {SNMPCommunityAccessMode::Invalid, "Invalid"}, 540ec8b83dSEd Tanous {SNMPCommunityAccessMode::Full, "Full"}, 550ec8b83dSEd Tanous {SNMPCommunityAccessMode::Limited, "Limited"}, 560ec8b83dSEd Tanous }); 570ec8b83dSEd Tanous 580ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SNMPAuthenticationProtocols, { 590ec8b83dSEd Tanous {SNMPAuthenticationProtocols::Invalid, "Invalid"}, 600ec8b83dSEd Tanous {SNMPAuthenticationProtocols::Account, "Account"}, 610ec8b83dSEd Tanous {SNMPAuthenticationProtocols::CommunityString, "CommunityString"}, 620ec8b83dSEd Tanous {SNMPAuthenticationProtocols::HMAC_MD5, "HMAC_MD5"}, 630ec8b83dSEd Tanous {SNMPAuthenticationProtocols::HMAC_SHA96, "HMAC_SHA96"}, 640ec8b83dSEd Tanous {SNMPAuthenticationProtocols::HMAC128_SHA224, "HMAC128_SHA224"}, 650ec8b83dSEd Tanous {SNMPAuthenticationProtocols::HMAC192_SHA256, "HMAC192_SHA256"}, 660ec8b83dSEd Tanous {SNMPAuthenticationProtocols::HMAC256_SHA384, "HMAC256_SHA384"}, 670ec8b83dSEd Tanous {SNMPAuthenticationProtocols::HMAC384_SHA512, "HMAC384_SHA512"}, 680ec8b83dSEd Tanous }); 690ec8b83dSEd Tanous 700ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SNMPEncryptionProtocols, { 710ec8b83dSEd Tanous {SNMPEncryptionProtocols::Invalid, "Invalid"}, 720ec8b83dSEd Tanous {SNMPEncryptionProtocols::None, "None"}, 730ec8b83dSEd Tanous {SNMPEncryptionProtocols::Account, "Account"}, 740ec8b83dSEd Tanous {SNMPEncryptionProtocols::CBC_DES, "CBC_DES"}, 750ec8b83dSEd Tanous {SNMPEncryptionProtocols::CFB128_AES128, "CFB128_AES128"}, 762ae81db9SGunnar Mills {SNMPEncryptionProtocols::CFB128_AES192, "CFB128_AES192"}, 772ae81db9SGunnar Mills {SNMPEncryptionProtocols::CFB128_AES256, "CFB128_AES256"}, 780ec8b83dSEd Tanous }); 790ec8b83dSEd Tanous 800ec8b83dSEd Tanous } 810ec8b83dSEd Tanous // clang-format on 82