Sync IANA protocol numbers

This commit is contained in:
Pavel Odintsov 2023-07-18 16:40:00 +01:00
parent 7836db2091
commit 582a8292ff
4 changed files with 2577 additions and 227 deletions

View File

@ -2453,3 +2453,13 @@ std::string convert_any_subnet_to_string(const subnet_cidr_mask_t& subnet) {
return convert_ipv4_subnet_to_string(subnet);
}
std::string print_binary_string_as_hex_with_leading_0x(const uint8_t* data_ptr, uint32_t data_length) {
std::stringstream buffer;
for (uint32_t i = 0; i < data_length; i++) {
buffer << "0x" << std::setfill('0') << std::setw(2) << std::hex << uint32_t(data_ptr[i]) << " ";
}
return buffer.str();
}

View File

@ -164,4 +164,4 @@ bool ip_belongs_to_patricia_tree(patricia_tree_t* patricia_tree, uint32_t client
// Overloaded function which works with any IP protocol version, we use it for templated applications
std::string convert_any_subnet_to_string(const subnet_ipv6_cidr_mask_t& subnet);
std::string convert_any_subnet_to_string(const subnet_cidr_mask_t& subnet);
std::string print_binary_string_as_hex_with_leading_0x(const uint8_t* data_ptr, uint32_t data_length);

2336
src/iana_ip_protocols.cpp Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,8 @@
#pragma once
const char* get_ip_protocol_name_by_number_iana(unsigned int protocol_number);
enum class IpProtocolNumber : unsigned int {
#include <cstdint>
#include <string>
const char* get_ip_protocol_name_by_number_iana(uint8_t protocol_number);
enum class ip_protocol_t : uint8_t {
HOPOPT = 0,
ICMP = 1,
IGMP = 2,
@ -144,122 +146,122 @@ enum class IpProtocolNumber : unsigned int {
SHIM6 = 140,
WESP = 141,
ROHC = 142,
UNKNOWN_143 = 143,
UNKNOWN_144 = 144,
UNKNOWN_145 = 145,
UNKNOWN_146 = 146,
UNKNOWN_147 = 147,
UNKNOWN_148 = 148,
UNKNOWN_149 = 149,
UNKNOWN_150 = 150,
UNKNOWN_151 = 151,
UNKNOWN_152 = 152,
UNKNOWN_153 = 153,
UNKNOWN_154 = 154,
UNKNOWN_155 = 155,
UNKNOWN_156 = 156,
UNKNOWN_157 = 157,
UNKNOWN_158 = 158,
UNKNOWN_159 = 159,
UNKNOWN_160 = 160,
UNKNOWN_161 = 161,
UNKNOWN_162 = 162,
UNKNOWN_163 = 163,
UNKNOWN_164 = 164,
UNKNOWN_165 = 165,
UNKNOWN_166 = 166,
UNKNOWN_167 = 167,
UNKNOWN_168 = 168,
UNKNOWN_169 = 169,
UNKNOWN_170 = 170,
UNKNOWN_171 = 171,
UNKNOWN_172 = 172,
UNKNOWN_173 = 173,
UNKNOWN_174 = 174,
UNKNOWN_175 = 175,
UNKNOWN_176 = 176,
UNKNOWN_177 = 177,
UNKNOWN_178 = 178,
UNKNOWN_179 = 179,
UNKNOWN_180 = 180,
UNKNOWN_181 = 181,
UNKNOWN_182 = 182,
UNKNOWN_183 = 183,
UNKNOWN_184 = 184,
UNKNOWN_185 = 185,
UNKNOWN_186 = 186,
UNKNOWN_187 = 187,
UNKNOWN_188 = 188,
UNKNOWN_189 = 189,
UNKNOWN_190 = 190,
UNKNOWN_191 = 191,
UNKNOWN_192 = 192,
UNKNOWN_193 = 193,
UNKNOWN_194 = 194,
UNKNOWN_195 = 195,
UNKNOWN_196 = 196,
UNKNOWN_197 = 197,
UNKNOWN_198 = 198,
UNKNOWN_199 = 199,
UNKNOWN_200 = 200,
UNKNOWN_201 = 201,
UNKNOWN_202 = 202,
UNKNOWN_203 = 203,
UNKNOWN_204 = 204,
UNKNOWN_205 = 205,
UNKNOWN_206 = 206,
UNKNOWN_207 = 207,
UNKNOWN_208 = 208,
UNKNOWN_209 = 209,
UNKNOWN_210 = 210,
UNKNOWN_211 = 211,
UNKNOWN_212 = 212,
UNKNOWN_213 = 213,
UNKNOWN_214 = 214,
UNKNOWN_215 = 215,
UNKNOWN_216 = 216,
UNKNOWN_217 = 217,
UNKNOWN_218 = 218,
UNKNOWN_219 = 219,
UNKNOWN_220 = 220,
UNKNOWN_221 = 221,
UNKNOWN_222 = 222,
UNKNOWN_223 = 223,
UNKNOWN_224 = 224,
UNKNOWN_225 = 225,
UNKNOWN_226 = 226,
UNKNOWN_227 = 227,
UNKNOWN_228 = 228,
UNKNOWN_229 = 229,
UNKNOWN_230 = 230,
UNKNOWN_231 = 231,
UNKNOWN_232 = 232,
UNKNOWN_233 = 233,
UNKNOWN_234 = 234,
UNKNOWN_235 = 235,
UNKNOWN_236 = 236,
UNKNOWN_237 = 237,
UNKNOWN_238 = 238,
UNKNOWN_239 = 239,
UNKNOWN_240 = 240,
UNKNOWN_241 = 241,
UNKNOWN_242 = 242,
UNKNOWN_243 = 243,
UNKNOWN_244 = 244,
UNKNOWN_245 = 245,
UNKNOWN_246 = 246,
UNKNOWN_247 = 247,
UNKNOWN_248 = 248,
UNKNOWN_249 = 249,
UNKNOWN_250 = 250,
UNKNOWN_251 = 251,
UNKNOWN_252 = 252,
ETHERNET = 143,
UNASSIGNED_144 = 144,
UNASSIGNED_145 = 145,
UNASSIGNED_146 = 146,
UNASSIGNED_147 = 147,
UNASSIGNED_148 = 148,
UNASSIGNED_149 = 149,
UNASSIGNED_150 = 150,
UNASSIGNED_151 = 151,
UNASSIGNED_152 = 152,
UNASSIGNED_153 = 153,
UNASSIGNED_154 = 154,
UNASSIGNED_155 = 155,
UNASSIGNED_156 = 156,
UNASSIGNED_157 = 157,
UNASSIGNED_158 = 158,
UNASSIGNED_159 = 159,
UNASSIGNED_160 = 160,
UNASSIGNED_161 = 161,
UNASSIGNED_162 = 162,
UNASSIGNED_163 = 163,
UNASSIGNED_164 = 164,
UNASSIGNED_165 = 165,
UNASSIGNED_166 = 166,
UNASSIGNED_167 = 167,
UNASSIGNED_168 = 168,
UNASSIGNED_169 = 169,
UNASSIGNED_170 = 170,
UNASSIGNED_171 = 171,
UNASSIGNED_172 = 172,
UNASSIGNED_173 = 173,
UNASSIGNED_174 = 174,
UNASSIGNED_175 = 175,
UNASSIGNED_176 = 176,
UNASSIGNED_177 = 177,
UNASSIGNED_178 = 178,
UNASSIGNED_179 = 179,
UNASSIGNED_180 = 180,
UNASSIGNED_181 = 181,
UNASSIGNED_182 = 182,
UNASSIGNED_183 = 183,
UNASSIGNED_184 = 184,
UNASSIGNED_185 = 185,
UNASSIGNED_186 = 186,
UNASSIGNED_187 = 187,
UNASSIGNED_188 = 188,
UNASSIGNED_189 = 189,
UNASSIGNED_190 = 190,
UNASSIGNED_191 = 191,
UNASSIGNED_192 = 192,
UNASSIGNED_193 = 193,
UNASSIGNED_194 = 194,
UNASSIGNED_195 = 195,
UNASSIGNED_196 = 196,
UNASSIGNED_197 = 197,
UNASSIGNED_198 = 198,
UNASSIGNED_199 = 199,
UNASSIGNED_200 = 200,
UNASSIGNED_201 = 201,
UNASSIGNED_202 = 202,
UNASSIGNED_203 = 203,
UNASSIGNED_204 = 204,
UNASSIGNED_205 = 205,
UNASSIGNED_206 = 206,
UNASSIGNED_207 = 207,
UNASSIGNED_208 = 208,
UNASSIGNED_209 = 209,
UNASSIGNED_210 = 210,
UNASSIGNED_211 = 211,
UNASSIGNED_212 = 212,
UNASSIGNED_213 = 213,
UNASSIGNED_214 = 214,
UNASSIGNED_215 = 215,
UNASSIGNED_216 = 216,
UNASSIGNED_217 = 217,
UNASSIGNED_218 = 218,
UNASSIGNED_219 = 219,
UNASSIGNED_220 = 220,
UNASSIGNED_221 = 221,
UNASSIGNED_222 = 222,
UNASSIGNED_223 = 223,
UNASSIGNED_224 = 224,
UNASSIGNED_225 = 225,
UNASSIGNED_226 = 226,
UNASSIGNED_227 = 227,
UNASSIGNED_228 = 228,
UNASSIGNED_229 = 229,
UNASSIGNED_230 = 230,
UNASSIGNED_231 = 231,
UNASSIGNED_232 = 232,
UNASSIGNED_233 = 233,
UNASSIGNED_234 = 234,
UNASSIGNED_235 = 235,
UNASSIGNED_236 = 236,
UNASSIGNED_237 = 237,
UNASSIGNED_238 = 238,
UNASSIGNED_239 = 239,
UNASSIGNED_240 = 240,
UNASSIGNED_241 = 241,
UNASSIGNED_242 = 242,
UNASSIGNED_243 = 243,
UNASSIGNED_244 = 244,
UNASSIGNED_245 = 245,
UNASSIGNED_246 = 246,
UNASSIGNED_247 = 247,
UNASSIGNED_248 = 248,
UNASSIGNED_249 = 249,
UNASSIGNED_250 = 250,
UNASSIGNED_251 = 251,
UNASSIGNED_252 = 252,
UNKNOWN_253 = 253,
UNKNOWN_254 = 254,
RESERVED = 255,
BROKEN_PROTOCOL = 256
RESERVED = 255
};
enum IpProtocolNumberNotTyped : unsigned int {
IpProtocolNumberHOPOPT = 0,
IpProtocolNumberICMP = 1,
@ -404,119 +406,121 @@ enum IpProtocolNumberNotTyped : unsigned int {
IpProtocolNumberSHIM6 = 140,
IpProtocolNumberWESP = 141,
IpProtocolNumberROHC = 142,
IpProtocolNumberUNKNOWN_143 = 143,
IpProtocolNumberUNKNOWN_144 = 144,
IpProtocolNumberUNKNOWN_145 = 145,
IpProtocolNumberUNKNOWN_146 = 146,
IpProtocolNumberUNKNOWN_147 = 147,
IpProtocolNumberUNKNOWN_148 = 148,
IpProtocolNumberUNKNOWN_149 = 149,
IpProtocolNumberUNKNOWN_150 = 150,
IpProtocolNumberUNKNOWN_151 = 151,
IpProtocolNumberUNKNOWN_152 = 152,
IpProtocolNumberUNKNOWN_153 = 153,
IpProtocolNumberUNKNOWN_154 = 154,
IpProtocolNumberUNKNOWN_155 = 155,
IpProtocolNumberUNKNOWN_156 = 156,
IpProtocolNumberUNKNOWN_157 = 157,
IpProtocolNumberUNKNOWN_158 = 158,
IpProtocolNumberUNKNOWN_159 = 159,
IpProtocolNumberUNKNOWN_160 = 160,
IpProtocolNumberUNKNOWN_161 = 161,
IpProtocolNumberUNKNOWN_162 = 162,
IpProtocolNumberUNKNOWN_163 = 163,
IpProtocolNumberUNKNOWN_164 = 164,
IpProtocolNumberUNKNOWN_165 = 165,
IpProtocolNumberUNKNOWN_166 = 166,
IpProtocolNumberUNKNOWN_167 = 167,
IpProtocolNumberUNKNOWN_168 = 168,
IpProtocolNumberUNKNOWN_169 = 169,
IpProtocolNumberUNKNOWN_170 = 170,
IpProtocolNumberUNKNOWN_171 = 171,
IpProtocolNumberUNKNOWN_172 = 172,
IpProtocolNumberUNKNOWN_173 = 173,
IpProtocolNumberUNKNOWN_174 = 174,
IpProtocolNumberUNKNOWN_175 = 175,
IpProtocolNumberUNKNOWN_176 = 176,
IpProtocolNumberUNKNOWN_177 = 177,
IpProtocolNumberUNKNOWN_178 = 178,
IpProtocolNumberUNKNOWN_179 = 179,
IpProtocolNumberUNKNOWN_180 = 180,
IpProtocolNumberUNKNOWN_181 = 181,
IpProtocolNumberUNKNOWN_182 = 182,
IpProtocolNumberUNKNOWN_183 = 183,
IpProtocolNumberUNKNOWN_184 = 184,
IpProtocolNumberUNKNOWN_185 = 185,
IpProtocolNumberUNKNOWN_186 = 186,
IpProtocolNumberUNKNOWN_187 = 187,
IpProtocolNumberUNKNOWN_188 = 188,
IpProtocolNumberUNKNOWN_189 = 189,
IpProtocolNumberUNKNOWN_190 = 190,
IpProtocolNumberUNKNOWN_191 = 191,
IpProtocolNumberUNKNOWN_192 = 192,
IpProtocolNumberUNKNOWN_193 = 193,
IpProtocolNumberUNKNOWN_194 = 194,
IpProtocolNumberUNKNOWN_195 = 195,
IpProtocolNumberUNKNOWN_196 = 196,
IpProtocolNumberUNKNOWN_197 = 197,
IpProtocolNumberUNKNOWN_198 = 198,
IpProtocolNumberUNKNOWN_199 = 199,
IpProtocolNumberUNKNOWN_200 = 200,
IpProtocolNumberUNKNOWN_201 = 201,
IpProtocolNumberUNKNOWN_202 = 202,
IpProtocolNumberUNKNOWN_203 = 203,
IpProtocolNumberUNKNOWN_204 = 204,
IpProtocolNumberUNKNOWN_205 = 205,
IpProtocolNumberUNKNOWN_206 = 206,
IpProtocolNumberUNKNOWN_207 = 207,
IpProtocolNumberUNKNOWN_208 = 208,
IpProtocolNumberUNKNOWN_209 = 209,
IpProtocolNumberUNKNOWN_210 = 210,
IpProtocolNumberUNKNOWN_211 = 211,
IpProtocolNumberUNKNOWN_212 = 212,
IpProtocolNumberUNKNOWN_213 = 213,
IpProtocolNumberUNKNOWN_214 = 214,
IpProtocolNumberUNKNOWN_215 = 215,
IpProtocolNumberUNKNOWN_216 = 216,
IpProtocolNumberUNKNOWN_217 = 217,
IpProtocolNumberUNKNOWN_218 = 218,
IpProtocolNumberUNKNOWN_219 = 219,
IpProtocolNumberUNKNOWN_220 = 220,
IpProtocolNumberUNKNOWN_221 = 221,
IpProtocolNumberUNKNOWN_222 = 222,
IpProtocolNumberUNKNOWN_223 = 223,
IpProtocolNumberUNKNOWN_224 = 224,
IpProtocolNumberUNKNOWN_225 = 225,
IpProtocolNumberUNKNOWN_226 = 226,
IpProtocolNumberUNKNOWN_227 = 227,
IpProtocolNumberUNKNOWN_228 = 228,
IpProtocolNumberUNKNOWN_229 = 229,
IpProtocolNumberUNKNOWN_230 = 230,
IpProtocolNumberUNKNOWN_231 = 231,
IpProtocolNumberUNKNOWN_232 = 232,
IpProtocolNumberUNKNOWN_233 = 233,
IpProtocolNumberUNKNOWN_234 = 234,
IpProtocolNumberUNKNOWN_235 = 235,
IpProtocolNumberUNKNOWN_236 = 236,
IpProtocolNumberUNKNOWN_237 = 237,
IpProtocolNumberUNKNOWN_238 = 238,
IpProtocolNumberUNKNOWN_239 = 239,
IpProtocolNumberUNKNOWN_240 = 240,
IpProtocolNumberUNKNOWN_241 = 241,
IpProtocolNumberUNKNOWN_242 = 242,
IpProtocolNumberUNKNOWN_243 = 243,
IpProtocolNumberUNKNOWN_244 = 244,
IpProtocolNumberUNKNOWN_245 = 245,
IpProtocolNumberUNKNOWN_246 = 246,
IpProtocolNumberUNKNOWN_247 = 247,
IpProtocolNumberUNKNOWN_248 = 248,
IpProtocolNumberUNKNOWN_249 = 249,
IpProtocolNumberUNKNOWN_250 = 250,
IpProtocolNumberUNKNOWN_251 = 251,
IpProtocolNumberUNKNOWN_252 = 252,
IpProtocolNumberETHERNET = 143,
IpProtocolNumberUNASSIGNED_144 = 144,
IpProtocolNumberUNASSIGNED_145 = 145,
IpProtocolNumberUNASSIGNED_146 = 146,
IpProtocolNumberUNASSIGNED_147 = 147,
IpProtocolNumberUNASSIGNED_148 = 148,
IpProtocolNumberUNASSIGNED_149 = 149,
IpProtocolNumberUNASSIGNED_150 = 150,
IpProtocolNumberUNASSIGNED_151 = 151,
IpProtocolNumberUNASSIGNED_152 = 152,
IpProtocolNumberUNASSIGNED_153 = 153,
IpProtocolNumberUNASSIGNED_154 = 154,
IpProtocolNumberUNASSIGNED_155 = 155,
IpProtocolNumberUNASSIGNED_156 = 156,
IpProtocolNumberUNASSIGNED_157 = 157,
IpProtocolNumberUNASSIGNED_158 = 158,
IpProtocolNumberUNASSIGNED_159 = 159,
IpProtocolNumberUNASSIGNED_160 = 160,
IpProtocolNumberUNASSIGNED_161 = 161,
IpProtocolNumberUNASSIGNED_162 = 162,
IpProtocolNumberUNASSIGNED_163 = 163,
IpProtocolNumberUNASSIGNED_164 = 164,
IpProtocolNumberUNASSIGNED_165 = 165,
IpProtocolNumberUNASSIGNED_166 = 166,
IpProtocolNumberUNASSIGNED_167 = 167,
IpProtocolNumberUNASSIGNED_168 = 168,
IpProtocolNumberUNASSIGNED_169 = 169,
IpProtocolNumberUNASSIGNED_170 = 170,
IpProtocolNumberUNASSIGNED_171 = 171,
IpProtocolNumberUNASSIGNED_172 = 172,
IpProtocolNumberUNASSIGNED_173 = 173,
IpProtocolNumberUNASSIGNED_174 = 174,
IpProtocolNumberUNASSIGNED_175 = 175,
IpProtocolNumberUNASSIGNED_176 = 176,
IpProtocolNumberUNASSIGNED_177 = 177,
IpProtocolNumberUNASSIGNED_178 = 178,
IpProtocolNumberUNASSIGNED_179 = 179,
IpProtocolNumberUNASSIGNED_180 = 180,
IpProtocolNumberUNASSIGNED_181 = 181,
IpProtocolNumberUNASSIGNED_182 = 182,
IpProtocolNumberUNASSIGNED_183 = 183,
IpProtocolNumberUNASSIGNED_184 = 184,
IpProtocolNumberUNASSIGNED_185 = 185,
IpProtocolNumberUNASSIGNED_186 = 186,
IpProtocolNumberUNASSIGNED_187 = 187,
IpProtocolNumberUNASSIGNED_188 = 188,
IpProtocolNumberUNASSIGNED_189 = 189,
IpProtocolNumberUNASSIGNED_190 = 190,
IpProtocolNumberUNASSIGNED_191 = 191,
IpProtocolNumberUNASSIGNED_192 = 192,
IpProtocolNumberUNASSIGNED_193 = 193,
IpProtocolNumberUNASSIGNED_194 = 194,
IpProtocolNumberUNASSIGNED_195 = 195,
IpProtocolNumberUNASSIGNED_196 = 196,
IpProtocolNumberUNASSIGNED_197 = 197,
IpProtocolNumberUNASSIGNED_198 = 198,
IpProtocolNumberUNASSIGNED_199 = 199,
IpProtocolNumberUNASSIGNED_200 = 200,
IpProtocolNumberUNASSIGNED_201 = 201,
IpProtocolNumberUNASSIGNED_202 = 202,
IpProtocolNumberUNASSIGNED_203 = 203,
IpProtocolNumberUNASSIGNED_204 = 204,
IpProtocolNumberUNASSIGNED_205 = 205,
IpProtocolNumberUNASSIGNED_206 = 206,
IpProtocolNumberUNASSIGNED_207 = 207,
IpProtocolNumberUNASSIGNED_208 = 208,
IpProtocolNumberUNASSIGNED_209 = 209,
IpProtocolNumberUNASSIGNED_210 = 210,
IpProtocolNumberUNASSIGNED_211 = 211,
IpProtocolNumberUNASSIGNED_212 = 212,
IpProtocolNumberUNASSIGNED_213 = 213,
IpProtocolNumberUNASSIGNED_214 = 214,
IpProtocolNumberUNASSIGNED_215 = 215,
IpProtocolNumberUNASSIGNED_216 = 216,
IpProtocolNumberUNASSIGNED_217 = 217,
IpProtocolNumberUNASSIGNED_218 = 218,
IpProtocolNumberUNASSIGNED_219 = 219,
IpProtocolNumberUNASSIGNED_220 = 220,
IpProtocolNumberUNASSIGNED_221 = 221,
IpProtocolNumberUNASSIGNED_222 = 222,
IpProtocolNumberUNASSIGNED_223 = 223,
IpProtocolNumberUNASSIGNED_224 = 224,
IpProtocolNumberUNASSIGNED_225 = 225,
IpProtocolNumberUNASSIGNED_226 = 226,
IpProtocolNumberUNASSIGNED_227 = 227,
IpProtocolNumberUNASSIGNED_228 = 228,
IpProtocolNumberUNASSIGNED_229 = 229,
IpProtocolNumberUNASSIGNED_230 = 230,
IpProtocolNumberUNASSIGNED_231 = 231,
IpProtocolNumberUNASSIGNED_232 = 232,
IpProtocolNumberUNASSIGNED_233 = 233,
IpProtocolNumberUNASSIGNED_234 = 234,
IpProtocolNumberUNASSIGNED_235 = 235,
IpProtocolNumberUNASSIGNED_236 = 236,
IpProtocolNumberUNASSIGNED_237 = 237,
IpProtocolNumberUNASSIGNED_238 = 238,
IpProtocolNumberUNASSIGNED_239 = 239,
IpProtocolNumberUNASSIGNED_240 = 240,
IpProtocolNumberUNASSIGNED_241 = 241,
IpProtocolNumberUNASSIGNED_242 = 242,
IpProtocolNumberUNASSIGNED_243 = 243,
IpProtocolNumberUNASSIGNED_244 = 244,
IpProtocolNumberUNASSIGNED_245 = 245,
IpProtocolNumberUNASSIGNED_246 = 246,
IpProtocolNumberUNASSIGNED_247 = 247,
IpProtocolNumberUNASSIGNED_248 = 248,
IpProtocolNumberUNASSIGNED_249 = 249,
IpProtocolNumberUNASSIGNED_250 = 250,
IpProtocolNumberUNASSIGNED_251 = 251,
IpProtocolNumberUNASSIGNED_252 = 252,
IpProtocolNumberUNKNOWN_253 = 253,
IpProtocolNumberUNKNOWN_254 = 254,
IpProtocolNumberRESERVED = 255,
};
IpProtocolNumber get_ip_protocol_enum_type_from_integer(int protocol_as_integer);
unsigned int get_ip_protocol_enum_as_number(IpProtocolNumber ip_protocol_enum);
ip_protocol_t get_ip_protocol_enum_type_from_integer(uint8_t protocol_as_integer);
uint8_t get_ip_protocol_enum_as_number(ip_protocol_t ip_protocol_enum);
const char* get_ip_protocol_name(ip_protocol_t protocol);
bool read_protocol_from_string(const std::string& protocol_string, ip_protocol_t& ip_protocol_enum);