diff --git a/scapy/layers/geneve.py b/scapy/layers/geneve.py
new file mode 100644
index 0000000..e2ca888
--- /dev/null
+++ b/scapy/layers/geneve.py
@@ -0,0 +1,50 @@
+#! /usr/bin/env python
+# (GENEVE):
+# A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks
+
+from scapy.packet import Packet, bind_layers
+from scapy.layers.l2 import Ether
+from scapy.layers.inet import IP, UDP
+from scapy.layers.inet6 import IPv6
+from scapy.fields import FlagsField, XByteField, ThreeBytesField, \
+    ConditionalField, ShortField, ByteEnumField, X3BytesField
+
+#
+# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+# |Ver|  Opt Len  |O|C|    Rsvd.  |          Protocol Type        |
+# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+# |        Virtual Network Identifier (VNI)       |    Reserved   |
+# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+# |                    Variable Length Options                    |
+# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+#
+
+class GENEVE(Packet):
+    name = "GENEVE"
+
+    fields_desc = [
+        # INIT = ver + optlen + o + c + rsvd (all zeros)
+        ShortField("init", 0x0),
+        # PROTOCOL is a 2-bytes field
+        ShortField("protocol", 0x6558),
+        ThreeBytesField("vni", 0),
+        XByteField("reserved2", 0),
+    ]
+
+    def mysummary(self):
+        return self.sprintf("GENEVE (vni=%GENEVE.vni%)")
+
+bind_layers(UDP, GENEVE, dport=6081)  # RFC standard port
+bind_layers(UDP, GENEVE, dport=6081)  # New IANA assigned port for use with NSH
+bind_layers(UDP, GENEVE, dport=8472)  # Linux implementation port
+# By default, set both ports to the RFC standard
+bind_layers(UDP, GENEVE, sport=6081, dport=6081)
+
+bind_layers(GENEVE, Ether)
+bind_layers(GENEVE, IP, NextProtocol=1)
+bind_layers(GENEVE, IPv6, NextProtocol=2)
+bind_layers(GENEVE, Ether, flags=4, NextProtocol=0)
+bind_layers(GENEVE, IP, flags=4, NextProtocol=1)
+bind_layers(GENEVE, IPv6, flags=4, NextProtocol=2)
+bind_layers(GENEVE, Ether, flags=4, NextProtocol=3)
+
