From 662866ca40c8a80a91ae56af2c0c94fe1f37cbe1 Mon Sep 17 00:00:00 2001
From: Phil <phil@secdev.org>
Date: Fri, 22 Feb 2008 00:47:17 +0100
Subject: [PATCH] Added L2TP header

---
 scapy.py | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/scapy.py b/scapy.py
index 8bd1ffbc..205c664a 100755
--- a/scapy.py
+++ b/scapy.py
@@ -6726,6 +6726,22 @@ class _IPv6OptionHeader(Packet):
         return "<IPv6: ERROR not implemented>"
 
 
+class L2TP(Packet):
+    fields_desc = [ ShortEnumField("pkt_type",2,{2:"data"}),
+                    ShortField("len", None),
+                    ShortField("tunnel_id", 0),
+                    ShortField("session_id", 0),
+                    ShortField("ns", 0),
+                    ShortField("nr", 0),
+                    ShortField("offset", 0) ]
+
+    def post_build(self, pkt, pay):
+        if self.len is None:
+            l = len(pkt)+len(pay)
+            pkt = pkt[:2]+struct.pack("!H", l)+pkt[4:]
+        return pkt+pay
+
+
 _PPP_proto = { 0x0001: "Padding Protocol",
                0x0003: "ROHC small-CID [RFC3095]",
                0x0005: "ROHC large-CID [RFC3095]",
-- 
GitLab