1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace manager_network_protocol 7 { 8 // clang-format off 9 10 enum class NotifyIPv6Scope{ 11 Invalid, 12 Link, 13 Site, 14 Organization, 15 }; 16 17 enum class SNMPCommunityAccessMode{ 18 Invalid, 19 Full, 20 Limited, 21 }; 22 23 enum class SNMPAuthenticationProtocols{ 24 Invalid, 25 Account, 26 CommunityString, 27 HMAC_MD5, 28 HMAC_SHA96, 29 HMAC128_SHA224, 30 HMAC192_SHA256, 31 HMAC256_SHA384, 32 HMAC384_SHA512, 33 }; 34 35 enum class SNMPEncryptionProtocols{ 36 Invalid, 37 None, 38 Account, 39 CBC_DES, 40 CFB128_AES128, 41 CFB128_AES192, 42 CFB128_AES256, 43 }; 44 45 NLOHMANN_JSON_SERIALIZE_ENUM(NotifyIPv6Scope, { 46 {NotifyIPv6Scope::Invalid, "Invalid"}, 47 {NotifyIPv6Scope::Link, "Link"}, 48 {NotifyIPv6Scope::Site, "Site"}, 49 {NotifyIPv6Scope::Organization, "Organization"}, 50 }); 51 52 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPCommunityAccessMode, { 53 {SNMPCommunityAccessMode::Invalid, "Invalid"}, 54 {SNMPCommunityAccessMode::Full, "Full"}, 55 {SNMPCommunityAccessMode::Limited, "Limited"}, 56 }); 57 58 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPAuthenticationProtocols, { 59 {SNMPAuthenticationProtocols::Invalid, "Invalid"}, 60 {SNMPAuthenticationProtocols::Account, "Account"}, 61 {SNMPAuthenticationProtocols::CommunityString, "CommunityString"}, 62 {SNMPAuthenticationProtocols::HMAC_MD5, "HMAC_MD5"}, 63 {SNMPAuthenticationProtocols::HMAC_SHA96, "HMAC_SHA96"}, 64 {SNMPAuthenticationProtocols::HMAC128_SHA224, "HMAC128_SHA224"}, 65 {SNMPAuthenticationProtocols::HMAC192_SHA256, "HMAC192_SHA256"}, 66 {SNMPAuthenticationProtocols::HMAC256_SHA384, "HMAC256_SHA384"}, 67 {SNMPAuthenticationProtocols::HMAC384_SHA512, "HMAC384_SHA512"}, 68 }); 69 70 NLOHMANN_JSON_SERIALIZE_ENUM(SNMPEncryptionProtocols, { 71 {SNMPEncryptionProtocols::Invalid, "Invalid"}, 72 {SNMPEncryptionProtocols::None, "None"}, 73 {SNMPEncryptionProtocols::Account, "Account"}, 74 {SNMPEncryptionProtocols::CBC_DES, "CBC_DES"}, 75 {SNMPEncryptionProtocols::CFB128_AES128, "CFB128_AES128"}, 76 {SNMPEncryptionProtocols::CFB128_AES192, "CFB128_AES192"}, 77 {SNMPEncryptionProtocols::CFB128_AES256, "CFB128_AES256"}, 78 }); 79 80 } 81 // clang-format on 82