diff --git a/fmcapi/api_objects/helper_functions.py b/fmcapi/api_objects/helper_functions.py index 86d41be..f6d2bdf 100644 --- a/fmcapi/api_objects/helper_functions.py +++ b/fmcapi/api_objects/helper_functions.py @@ -10,6 +10,153 @@ logging.debug(f"In the {__name__} module.") +PROTOCOL_MAP = { + "TCP": "6", + "UDP": "17", + "ICMP": "1", + "IGMP": "2", + "GGP": "3", + "IP": "0", + "ST": "5", + "EGP": "8", + "IGP": "9", + "BBN-RCC-MON": "10", + "NVP-II": "11", + "PUP": "12", + "ARGUS": "13", + "EMCON": "14", + "XNET": "15", + "CHAOS": "16", + "MUX": "18", + "DCN-MEAS": "19", + "HMP": "20", + "PRM": "21", + "XNS-IDP": "22", + "TRUNK-1": "23", + "TRUNK-2": "24", + "LEAF-1": "25", + "LEAF-2": "26", + "RDP": "27", + "IRTP": "28", + "ISO-TP4": "29", + "NETBLT": "30", + "MFE-NSP": "31", + "MERIT-INP": "32", + "DCCP": "33", + "3PC": "34", + "IDPR": "35", + "XTP": "36", + "DDP": "37", + "IDPR-CMTP": "38", + "TP": "39", + "IL": "40", + "IPV6": "41", + "SDRP": "42", + "ROUTING": "43", + "FRAGMENT": "44", + "IDRP": "45", + "RSVP": "46", + "GRE": "47", + "DSR": "48", + "BNA": "49", + "ESP": "50", + "AH": "51", + "I-NLSP": "52", + "SWIPE": "53", + "NARP": "54", + "MOBILE": "55", + "TLSP": "56", + "SKIP": "57", + "ICMPV6": "58", + "NONE": "59", + "DSTOPTS": "60", + "AHIP": "61", + "CFTP": "62", + "ALN": "63", + "SAT-EXPAK": "64", + "KRYPTOLAN": "65", + "RVD": "66", + "IPPC": "67", + "AFS": "71", + "SAT-MON": "69", + "VISA": "70", + "IPCV": "72", + "CPNX": "73", + "CPHB": "74", + "WSN": "75", + "PVP": "76", + "BR-SAT-MON": "77", + "SUN-ND": "78", + "WB-MON": "79", + "WB-EXPAK": "80", + "ISO-IP": "81", + "VMTP": "81", + "SECURE-VMTP": "82", + "VINES": "83", + "TTP": "84", + "IPTM": "84", + "NSFNET-IGP": "85", + "DGP": "86", + "TCF": "87", + "EIGRP": "88", + "OSPFIGP": "89", + "SPRITE-RPC": "90", + "LARP": "91", + "MTP": "92", + "AX.25": "93", + "IPIP": "94", + "MICP": "95", + "SCC-SP": "96", + "ETHERIP": "97", + "ENCAP": "98", + "ENCRYPT": "99", + "AIM": "100", + "GMTP": "100", + "IFMP": "101", + "PNNI": "102", + "PIM": "103", + "ARIS": "104", + "SCPS": "105", + "QNX": "106", + "A/N": "107", + "IPCOMP": "108", + "SNP": "109", + "COMPAQ-PEER": "110", + "IPX-IN-IP": "111", + "VRRP": "112", + "PGM": "113", + "0HOP": "114", + "L2TP": "115", + "DDX": "116", + "IATP": "117", + "STP": "118", + "SRP": "119", + "UTI": "120", + "SMP": "121", + "SM": "122", + "PTP": "123", + "ISIS": "124", + "FIRE": "125", + "CRTP": "126", + "CRUDP": "127", + "SSCOPMCE": "128", + "IPLT": "129", + "SPS": "130", + "PIPE": "131", + "SCTP": "132", + "FC": "133", + "RSVP-E2E-IGNORE": "134", + "MOBILITY-HEADER": "135", + "UDPLITE": "136", + "MPLS-in-IP": "137", + "MANET": "138", + "HIP": "139", + "SHIM6": "140", + "WESP": "141", + "ROHC": "142", +} + + def true_false_checker(value): if type(value) is str: value = value.lower() @@ -202,152 +349,7 @@ def get_protocol_number(protocol_name): :return: (str) IANA protocol number """ logging.debug("In get_protocol_number() helper_function.") - protocol_map = { - "TCP": "6", - "UDP": "17", - "ICMP": "1", - "IGMP": "2", - "GGP": "3", - "IP": "0", - "ST": "5", - "EGP": "8", - "IGP": "9", - "BBN-RCC-MON": "10", - "NVP-II": "11", - "PUP": "12", - "ARGUS": "13", - "EMCON": "14", - "XNET": "15", - "CHAOS": "16", - "MUX": "18", - "DCN-MEAS": "19", - "HMP": "20", - "PRM": "21", - "XNS-IDP": "22", - "TRUNK-1": "23", - "TRUNK-2": "24", - "LEAF-1": "25", - "LEAF-2": "26", - "RDP": "27", - "IRTP": "28", - "ISO-TP4": "29", - "NETBLT": "30", - "MFE-NSP": "31", - "MERIT-INP": "32", - "DCCP": "33", - "3PC": "34", - "IDPR": "35", - "XTP": "36", - "DDP": "37", - "IDPR-CMTP": "38", - "TP": "39", - "IL": "40", - "IPV6": "41", - "SDRP": "42", - "ROUTING": "43", - "FRAGMENT": "44", - "IDRP": "45", - "RSVP": "46", - "GRE": "47", - "DSR": "48", - "BNA": "49", - "ESP": "50", - "AH": "51", - "I-NLSP": "52", - "SWIPE": "53", - "NARP": "54", - "MOBILE": "55", - "TLSP": "56", - "SKIP": "57", - "ICMPV6": "58", - "NONE": "59", - "DSTOPTS": "60", - "AHIP": "61", - "CFTP": "62", - "ALN": "63", - "SAT-EXPAK": "64", - "KRYPTOLAN": "65", - "RVD": "66", - "IPPC": "67", - "AFS": "71", - "SAT-MON": "69", - "VISA": "70", - "IPCV": "72", - "CPNX": "73", - "CPHB": "74", - "WSN": "75", - "PVP": "76", - "BR-SAT-MON": "77", - "SUN-ND": "78", - "WB-MON": "79", - "WB-EXPAK": "80", - "ISO-IP": "81", - "VMTP": "81", - "SECURE-VMTP": "82", - "VINES": "83", - "TTP": "84", - "IPTM": "84", - "NSFNET-IGP": "85", - "DGP": "86", - "TCF": "87", - "EIGRP": "88", - "OSPFIGP": "89", - "SPRITE-RPC": "90", - "LARP": "91", - "MTP": "92", - "AX.25": "93", - "IPIP": "94", - "MICP": "95", - "SCC-SP": "96", - "ETHERIP": "97", - "ENCAP": "98", - "ENCRYPT": "99", - "AIM": "100", - "GMTP": "100", - "IFMP": "101", - "PNNI": "102", - "PIM": "103", - "ARIS": "104", - "SCPS": "105", - "QNX": "106", - "A/N": "107", - "IPCOMP": "108", - "SNP": "109", - "COMPAQ-PEER": "110", - "IPX-IN-IP": "111", - "VRRP": "112", - "PGM": "113", - "0HOP": "114", - "L2TP": "115", - "DDX": "116", - "IATP": "117", - "STP": "118", - "SRP": "119", - "UTI": "120", - "SMP": "121", - "SM": "122", - "PTP": "123", - "ISIS": "124", - "FIRE": "125", - "CRTP": "126", - "CRUDP": "127", - "SSCOPMCE": "128", - "IPLT": "129", - "SPS": "130", - "PIPE": "131", - "SCTP": "132", - "FC": "133", - "RSVP-E2E-IGNORE": "134", - "MOBILITY-HEADER": "135", - "UDPLITE": "136", - "MPLS-in-IP": "137", - "MANET": "138", - "HIP": "139", - "SHIM6": "140", - "WESP": "141", - "ROHC": "142", - } - protocol_number = protocol_map.get(protocol_name.upper()) + protocol_number = PROTOCOL_MAP.get(protocol_name.upper()) if protocol_number is None: raise ValueError(f"Unknown protocol: {protocol_name}") return protocol_number