@@ -17,6 +17,8 @@ import time
from importlib import import_module
from socket import AF_INET6
+from scapy.contrib.geneve import GENEVE
+from scapy.contrib.gtp import GTP_U_Header, GTPPDUSessionContainer
from scapy.contrib.lldp import LLDPDU, LLDPDUManagementAddress
from scapy.contrib.mpls import MPLS
from scapy.contrib.nsh import NSH
@@ -51,6 +53,7 @@ scapy_modules_required = {
"GTPEchoRequest",
"GTPEchoResponse",
],
+ "scapy.contrib.geneve": ["GENEVE"],
"scapy.contrib.lldp": ["LLDPDU", "LLDPDUManagementAddress"],
"scapy.contrib.pfcp": ["PFCP"],
"scapy.contrib.nsh": ["NSH"],
@@ -90,7 +93,7 @@ LayersTypes = {
# <'ether type'=0x0800 'version'=4, 'protocol'=17 'destination port'=4789>
# or
# <'ether type'=0x86DD 'version'=6, 'next header'=17 'destination port'=4789>
- "TUNNEL": ["ip", "gre", "vxlan", "nvgre", "geneve", "grenat"],
+ "TUNNEL": ["ip", "gre", "vxlan", "nvgre", "gtpu", "geneve", "grenat"],
"INNER L2": ["inner_mac", "inner_vlan"],
# inner_ipv4_unknown, inner_ipv6_unknown
"INNER L3": ["inner_ipv4", "inner_ipv4_ext", "inner_ipv6", "inner_ipv6_ext"],
@@ -167,7 +170,8 @@ class scapy(object):
"ipv6_in_ip": IP() / IPv6(src="::1"),
"ipv6_frag_in_ip": IP() / IPv6(src="::1", nh=44) / IPv6ExtHdrFragment(),
"nvgre": GRE(key_present=1, proto=0x6558, key=0x00000100),
- "geneve": "Not Implement",
+ "gtpu": GTP_U_Header(gtp_type=255, teid=0x123456),
+ "geneve": GENEVE(),
}
def __init__(self):