From 7b3e970663abd72697e17b70aba9943ae0dad404 Mon Sep 17 00:00:00 2001
From: Phil <phil@secdev.org>
Date: Sun, 30 Dec 2012 11:22:27 +0100
Subject: [PATCH] Use conf.raw_layer to reference special layer "Raw" in place
 where it was not the case yet

---
 scapy/asn1fields.py       | 14 +++++++-------
 scapy/contrib/cdp.py      |  4 ++--
 scapy/contrib/dtp.py      |  2 +-
 scapy/contrib/eigrp.py    |  2 +-
 scapy/contrib/ikev2.py    |  8 ++++----
 scapy/contrib/ldp.py      |  2 +-
 scapy/contrib/ospf.py     |  6 +++---
 scapy/contrib/ppi.py      |  4 ++--
 scapy/layers/bluetooth.py |  2 +-
 scapy/layers/dhcp6.py     | 14 +++++++-------
 scapy/layers/inet.py      | 10 +++++-----
 scapy/layers/inet6.py     | 16 ++++++++--------
 scapy/layers/isakmp.py    |  8 ++++----
 scapy/layers/l2.py        |  4 ++--
 scapy/layers/llmnr.py     |  2 +-
 scapy/layers/sctp.py      |  8 ++++----
 scapy/layers/tftp.py      |  4 ++--
 scapy/modules/nmap.py     |  2 +-
 scapy/modules/p0f.py      |  2 +-
 scapy/modules/voip.py     |  5 ++---
 20 files changed, 59 insertions(+), 60 deletions(-)

diff --git a/scapy/asn1fields.py b/scapy/asn1fields.py
index ffdb8d3b..1a59bd50 100644
--- a/scapy/asn1fields.py
+++ b/scapy/asn1fields.py
@@ -264,12 +264,12 @@ class ASN1F_SEQUENCE_OF(ASN1F_SEQUENCE):
             try:
                 p = self.asn1pkt(s1)
             except ASN1F_badsequence,e:
-                lst.append(packet.Raw(s1))
+                lst.append(conf.raw_layer(s1))
                 break
             lst.append(p)
-            if packet.Raw in p:
-                s1 = p[packet.Raw].load
-                del(p[packet.Raw].underlayer.payload)
+            if conf.raw_layer in p:
+                s1 = p[conf.raw_layer].load
+                del(p[conf.raw_layer].underlayer.payload)
             else:
                 break
         self.set_val(pkt, lst)
@@ -292,7 +292,7 @@ class ASN1F_PACKET(ASN1F_field):
         try:
             c = cls(x)
         except ASN1F_badsequence:
-            c = packet.Raw(x)
+            c = conf.raw_layer(x)
         cpad = c.getlayer(conf.padding_layer)
         x = ""
         if cpad is not None:
@@ -314,10 +314,10 @@ class ASN1F_CHOICE(ASN1F_PACKET):
         self.default=default
     def m2i(self, pkt, x):
         if len(x) == 0:
-            return packet.Raw(),""
+            return conf.raw_layer(),""
             raise ASN1_Error("ASN1F_CHOICE: got empty string")
         if ord(x[0]) not in self.choice:
-            return packet.Raw(x),"" # XXX return RawASN1 packet ? Raise error 
+            return conf.raw_layer(x),"" # XXX return RawASN1 packet ? Raise error 
             raise ASN1_Error("Decoding Error: choice [%i] not found in %r" % (ord(x[0]), self.choice.keys()))
 
         z = ASN1F_PACKET.extract_packet(self, self.choice[ord(x[0])], x)
diff --git a/scapy/contrib/cdp.py b/scapy/contrib/cdp.py
index b54be624..12794c7b 100644
--- a/scapy/contrib/cdp.py
+++ b/scapy/contrib/cdp.py
@@ -87,7 +87,7 @@ _cdp_tlv_types = { 0x0001: "Device ID",
                    0x001a: "Power Available"}
 
 def _CDPGuessPayloadClass(p, **kargs):
-    cls = Raw
+    cls = conf.raw_layer
     if len(p) >= 2:
         t = struct.unpack("!H", p[:2])[0]
         clsname = _cdp_tlv_cls.get(t, "CDPMsgGeneric")
@@ -141,7 +141,7 @@ class CDPAddrRecordIPv6(CDPAddrRecord):
                     IP6Field("addr", "::1")]
 
 def _CDPGuessAddrRecord(p, **kargs):
-    cls = Raw
+    cls = conf.raw_layer
     if len(p) >= 2:
         plen = struct.unpack("B", p[1])[0]
         proto = ''.join(struct.unpack("s" * plen, p[2:plen + 2])[0:plen])
diff --git a/scapy/contrib/dtp.py b/scapy/contrib/dtp.py
index 37c052de..88d8904b 100644
--- a/scapy/contrib/dtp.py
+++ b/scapy/contrib/dtp.py
@@ -89,7 +89,7 @@ class DTPNeighbor(DtpGenericTlv):
             ]
 
 def _DTPGuessPayloadClass(p, **kargs):
-    cls = Raw
+    cls = conf.raw_layer
     if len(p) >= 2:
         t = struct.unpack("!H", p[:2])[0]
         clsname = _DTP_TLV_CLS.get(t, "DtpGenericTlv")
diff --git a/scapy/contrib/eigrp.py b/scapy/contrib/eigrp.py
index 93b44815..73b4ce02 100644
--- a/scapy/contrib/eigrp.py
+++ b/scapy/contrib/eigrp.py
@@ -430,7 +430,7 @@ class RepeatedTlvListField(PacketListField):
         return s + reduce(str.__add__, map(str, val), "")
 
 def _EIGRPGuessPayloadClass(p, **kargs):
-    cls = Raw
+    cls = conf.raw_layer
     if len(p) >= 2:
         t = struct.unpack("!H", p[:2])[0]
         clsname = _eigrp_tlv_cls.get(t, "EIGRPGeneric")
diff --git a/scapy/contrib/ikev2.py b/scapy/contrib/ikev2.py
index 80f63c3c..fd38b80c 100644
--- a/scapy/contrib/ikev2.py
+++ b/scapy/contrib/ikev2.py
@@ -126,7 +126,7 @@ class IKEv2_class(Packet):
         np = self.next_payload
         logging.debug("For IKEv2_class np=%d" % np)
         if np == 0:
-            return Raw
+            return conf.raw_layer
         elif np < len(IKEv2_payload_type):
             pt = IKEv2_payload_type[np]
             logging.debug(globals().get("IKEv2_payload_%s" % pt, IKEv2_payload))
@@ -150,7 +150,7 @@ class IKEv2(IKEv2_class): # rfc4306
 
     def guess_payload_class(self, payload):
         if self.flags & 1:
-            return Raw
+            return conf.raw_layer
         return IKEv2_class.guess_payload_class(self, payload)
 
     def answers(self, other):
@@ -219,7 +219,7 @@ class IKEv2_payload_Proposal(IKEv2_class):
         FieldLenField("SPIsize",None,"SPI","B"),
         ByteField("trans_nb",None),
         StrLenField("SPI","",length_from=lambda x:x.SPIsize),
-        PacketLenField("trans",Raw(),IKEv2_payload_Transform,length_from=lambda x:x.length-8),
+        PacketLenField("trans",conf.raw_layer(),IKEv2_payload_Transform,length_from=lambda x:x.length-8),
         ]
 
 
@@ -260,7 +260,7 @@ class IKEv2_payload_SA(IKEv2_class):
         ByteEnumField("next_payload",None,IKEv2_payload_type),
         ByteField("res",0),
         FieldLenField("length",None,"prop","H", adjust=lambda pkt,x:x+4),
-        PacketLenField("prop",Raw(),IKEv2_payload_Proposal,length_from=lambda x:x.length-4),
+        PacketLenField("prop",conf.raw_layer(),IKEv2_payload_Proposal,length_from=lambda x:x.length-4),
         ]
 
 class IKEv2_payload_Nonce(IKEv2_class):
diff --git a/scapy/contrib/ldp.py b/scapy/contrib/ldp.py
index 6b712a73..bc2464ab 100644
--- a/scapy/contrib/ldp.py
+++ b/scapy/contrib/ldp.py
@@ -50,7 +50,7 @@ def guess_payload(p):
     if type in LDPTypes:
         return LDPTypes[type]
     else:
-        return Raw
+        return conf.raw_layer
 
 ## Fields ##
 
diff --git a/scapy/contrib/ospf.py b/scapy/contrib/ospf.py
index 09b36844..a6422bd8 100644
--- a/scapy/contrib/ospf.py
+++ b/scapy/contrib/ospf.py
@@ -163,7 +163,7 @@ _OSPF_LLSclasses = {1: "LLS_Extended_Options",
 def _LLSGuessPayloadClass(p, **kargs):
     """ Guess the correct LLS class for a given payload """
 
-    cls = Raw
+    cls = conf.raw_layer
     if len(p) >= 4:
         typ = struct.unpack("!H", p[0:2])[0]
         clsname = _OSPF_LLSclasses.get(typ, "LLS_Generic_TLV")
@@ -283,7 +283,7 @@ def _LSAGuessPayloadClass(p, **kargs):
     """ Guess the correct LSA class for a given payload """
     # This is heavily based on scapy-cdp.py by Nicolas Bareil and Arnaud Ebalard
     # XXX: This only works if all payload
-    cls = Raw
+    cls = conf.raw_layer
     if len(p) >= 4:
         typ = struct.unpack("!B", p[3])[0]
         clsname = _OSPF_LSclasses.get(typ, "Raw")
@@ -601,7 +601,7 @@ class OSPFv3_LSA_Hdr(Packet):
 def _OSPFv3_LSAGuessPayloadClass(p, **kargs):
     """ Guess the correct OSPFv3 LSA class for a given payload """
 
-    cls = Raw
+    cls = conf.raw_layer
 
     if len(p) >= 6:
         typ = struct.unpack("!H", p[2:4])[0]
diff --git a/scapy/contrib/ppi.py b/scapy/contrib/ppi.py
index aea54c61..07fa6f13 100644
--- a/scapy/contrib/ppi.py
+++ b/scapy/contrib/ppi.py
@@ -51,14 +51,14 @@ def _PPIGuessPayloadClass(p, **kargs):
         pfh_len += 4
         out = cls(p[:pfh_len], **kargs)
         if (out.payload):
-            out.payload = Raw(out.payload.load)
+            out.payload = conf.raw_layer(out.payload.load)
             if (len(p) > pfh_len):
                 out.payload.payload = conf.padding_layer(p[pfh_len:])
         elif (len(p) > pfh_len):
             out.payload = conf.padding_layer(p[pfh_len:])
         
     else:
-        out = Raw(p, **kargs)
+        out = conf.raw_layer(p, **kargs)
     return out
 
 
diff --git a/scapy/layers/bluetooth.py b/scapy/layers/bluetooth.py
index 40828f4b..662bad3b 100644
--- a/scapy/layers/bluetooth.py
+++ b/scapy/layers/bluetooth.py
@@ -146,7 +146,7 @@ class L2CAP_InfoResp(Packet):
 
 
 bind_layers( HCI_Hdr,       HCI_ACL_Hdr,   type=2)
-bind_layers( HCI_Hdr,       Raw,           )
+bind_layers( HCI_Hdr,       conf.raw_layer,           )
 bind_layers( HCI_ACL_Hdr,   L2CAP_Hdr,     )
 bind_layers( L2CAP_Hdr,     L2CAP_CmdHdr,      cid=1)
 bind_layers( L2CAP_CmdHdr,  L2CAP_CmdRej,      code=1)
diff --git a/scapy/layers/dhcp6.py b/scapy/layers/dhcp6.py
index 15a5b6e2..71049506 100644
--- a/scapy/layers/dhcp6.py
+++ b/scapy/layers/dhcp6.py
@@ -242,7 +242,7 @@ duid_cls = { 1: "DUID_LLT",
 
 class _DHCP6OptGuessPayload(Packet):
     def guess_payload_class(self, payload):
-        cls = Raw
+        cls = conf.raw_layer
         if len(payload) > 2 :
             opt = struct.unpack("!H", payload[:2])[0]
             cls = get_cls(dhcp6opts_by_code.get(opt, "DHCP6OptUnknown"), DHCP6OptUnknown)
@@ -265,10 +265,10 @@ class _DUIDField(PacketField):
         return str(i)
 
     def m2i(self, pkt, x):
-        cls = Raw 
+        cls = conf.raw_layer
         if len(x) > 4:
             o = struct.unpack("!H", x[:2])[0]
-            cls = get_cls(duid_cls.get(o, Raw), "Raw")
+            cls = get_cls(duid_cls.get(o, conf.raw_layer), conf.raw_layer)
         return cls(x)
 
     def getfield(self, pkt, s):
@@ -898,8 +898,8 @@ class _DHCP6GuessPayload(Packet):
     def guess_payload_class(self, payload):
         if len(payload) > 1 :
             print ord(payload[0])
-            return get_cls(dhcp6opts.get(ord(payload[0]),"DHCP6OptUnknown"), Raw)
-        return Raw
+            return get_cls(dhcp6opts.get(ord(payload[0]),"DHCP6OptUnknown"), conf.raw_layer)
+        return conf.raw_layer
 
 #####################################################################
 ## DHCPv6 messages sent between Clients and Servers (types 1 to 11)
@@ -1189,9 +1189,9 @@ dhcp6_cls_by_type = {  1: "DHCP6_Solicit",
                       13: "DHCP6_RelayReply" }
 
 def _dhcp6_dispatcher(x, *args, **kargs):
-    cls = Raw
+    cls = conf.raw_layer
     if len(x) >= 2:
-        cls = get_cls(dhcp6_cls_by_type.get(ord(x[0]), "Raw"), Raw)
+        cls = get_cls(dhcp6_cls_by_type.get(ord(x[0]), "Raw"), conf.raw_layer)
     return cls(x, *args, **kargs)
 
 bind_bottom_up(UDP, _dhcp6_dispatcher, { "dport": 547 } )
diff --git a/scapy/layers/inet.py b/scapy/layers/inet.py
index be7f39b2..c4edc007 100644
--- a/scapy/layers/inet.py
+++ b/scapy/layers/inet.py
@@ -417,7 +417,7 @@ class IP(Packet, IPTools):
                 else:
                     q[IP].flags |= 1 
                 q[IP].frag = i*fragsize/8
-                r = Raw(load=s[i*fragsize:(i+1)*fragsize])
+                r = conf.raw_layer(load=s[i*fragsize:(i+1)*fragsize])
                 r.overload_fields = p[IP].payload.overload_fields.copy()
                 q.add_payload(r)
                 lst.append(q)
@@ -750,7 +750,7 @@ def fragment(pkt, fragsize=1480):
             else:
                 q[IP].flags |= 1 
             q[IP].frag = i*fragsize/8
-            r = Raw(load=s[i*fragsize:(i+1)*fragsize])
+            r = conf.raw_layer(load=s[i*fragsize:(i+1)*fragsize])
             r.overload_fields = p[IP].payload.overload_fields.copy()
             q.add_payload(r)
             lst.append(q)
@@ -800,7 +800,7 @@ def defrag(plist):
             clen = len(ip.payload)
         else:
             clen = ip.len - (ip.ihl<<2)
-        txt = Raw()
+        txt = conf.raw_layer()
         for q in lst[1:]:
             if clen != q.frag<<3: # Wrong fragmentation offset
                 if clen > q.frag<<3:
@@ -861,7 +861,7 @@ def defragment(plist):
             clen = len(ip.payload)
         else:
             clen = ip.len - (ip.ihl<<2)
-        txt = Raw()
+        txt = conf.raw_layer()
         for q in lst[1:]:
             if clen != q.frag<<3: # Wrong fragmentation offset
                 if clen > q.frag<<3:
@@ -1512,7 +1512,7 @@ def fragleak(target,sport=123, dport=123, timeout=0.2, onlyasc=0):
                 
 #                print repr(ans.payload.payload.payload.payload)
                 
-#                if not isinstance(ans.payload.payload.payload.payload, Raw):
+#                if not isinstance(ans.payload.payload.payload.payload, conf.raw_layer):
 #                    continue
 #                leak = ans.payload.payload.payload.payload.load[len(load):]
                 leak = ans.getlayer(conf.padding_layer).load
diff --git a/scapy/layers/inet6.py b/scapy/layers/inet6.py
index b4ceb41a..a26c696a 100644
--- a/scapy/layers/inet6.py
+++ b/scapy/layers/inet6.py
@@ -777,7 +777,7 @@ class _HopByHopOptionsField(PacketListField):
             except:
                 op = self.cls(x)
             opt.append(op)
-            if isinstance(op.payload, Raw):
+            if isinstance(op.payload, conf.raw_layer):
                 x = op.payload.load
                 del(op.payload)
             else:
@@ -939,7 +939,7 @@ def defragment6(pktlist):
     nh = q[IPv6ExtHdrFragment].nh
     q[IPv6ExtHdrFragment].underlayer.nh = nh
     q[IPv6ExtHdrFragment].underlayer.payload = None
-    q /= Raw(load=fragmentable)
+    q /= conf.raw_layer(load=fragmentable)
     
     return IPv6(str(q))
 
@@ -1014,14 +1014,14 @@ def fragment6(pkt, fragSize):
             fragOffset += (innerFragSize / 8)  # compute new one
             if IPv6 in unfragPart:  
                 unfragPart[IPv6].plen = None
-            tempo = unfragPart/fragHeader/Raw(load=tmp)
+            tempo = unfragPart/fragHeader/conf.raw_layer(load=tmp)
             res.append(tempo)
         else:
             fragHeader.offset = fragOffset    # update offSet
             fragHeader.m = 0
             if IPv6 in unfragPart:
                 unfragPart[IPv6].plen = None
-            tempo = unfragPart/fragHeader/Raw(load=remain)
+            tempo = unfragPart/fragHeader/conf.raw_layer(load=remain)
             res.append(tempo)
             break
     return res
@@ -1471,7 +1471,7 @@ class TruncPktLenField(PacketLenField):
         try: # It can happen we have sth shorter than 40 bytes
             s = self.cls(m)
         except:
-            return Raw(m)
+            return conf.raw_layer(m)
         return s
 
     def i2m(self, pkt, x):
@@ -2195,7 +2195,7 @@ class ICMPv6NIReplyUnknown(ICMPv6NIReplyNOOP):
 
 
 def _niquery_guesser(p):
-    cls = Raw
+    cls = conf.raw_layer
     type = ord(p[0])
     if type == 139: # Node Info Query specific stuff
         if len(p) > 6:
@@ -2203,7 +2203,7 @@ def _niquery_guesser(p):
             cls = { 0: ICMPv6NIQueryNOOP,
                     2: ICMPv6NIQueryName,
                     3: ICMPv6NIQueryIPv6,
-                    4: ICMPv6NIQueryIPv4 }.get(qtype, Raw)
+                    4: ICMPv6NIQueryIPv4 }.get(qtype, conf.raw_layer)
     elif type == 140: # Node Info Reply specific stuff
         code = ord(p[1])
         if code == 0:
@@ -2587,7 +2587,7 @@ class _MobilityOptionsField(PacketListField):
             except:
                 op = self.cls(x)
             opt.append(op)
-            if isinstance(op.payload, Raw):
+            if isinstance(op.payload, conf.raw_layer):
                 x = op.payload.load
                 del(op.payload)
             else:
diff --git a/scapy/layers/isakmp.py b/scapy/layers/isakmp.py
index 8fab225c..9c54bed4 100644
--- a/scapy/layers/isakmp.py
+++ b/scapy/layers/isakmp.py
@@ -165,7 +165,7 @@ class ISAKMP_class(Packet):
     def guess_payload_class(self, payload):
         np = self.next_payload
         if np == 0:
-            return Raw
+            return conf.raw_layer
         elif np < len(ISAKMP_payload_type):
             pt = ISAKMP_payload_type[np]
             return globals().get("ISAKMP_payload_%s" % pt, ISAKMP_payload)
@@ -188,7 +188,7 @@ class ISAKMP(ISAKMP_class): # rfc2408
 
     def guess_payload_class(self, payload):
         if self.flags & 1:
-            return Raw
+            return conf.raw_layer
         return ISAKMP_class.guess_payload_class(self, payload)
 
     def answers(self, other):
@@ -246,7 +246,7 @@ class ISAKMP_payload_Proposal(ISAKMP_class):
         FieldLenField("SPIsize",None,"SPI","B"),
         ByteField("trans_nb",None),
         StrLenField("SPI","",length_from=lambda x:x.SPIsize),
-        PacketLenField("trans",Raw(),ISAKMP_payload_Transform,length_from=lambda x:x.length-8),
+        PacketLenField("trans",conf.raw_layer(),ISAKMP_payload_Transform,length_from=lambda x:x.length-8),
         ]
 
 
@@ -279,7 +279,7 @@ class ISAKMP_payload_SA(ISAKMP_class):
         FieldLenField("length",None,"prop","H", adjust=lambda pkt,x:x+12),
         IntEnumField("DOI",1,{1:"IPSEC"}),
         IntEnumField("situation",1,{1:"identity"}),
-        PacketLenField("prop",Raw(),ISAKMP_payload_Proposal,length_from=lambda x:x.length-12),
+        PacketLenField("prop",conf.raw_layer(),ISAKMP_payload_Proposal,length_from=lambda x:x.length-12),
         ]
 
 class ISAKMP_payload_Nonce(ISAKMP_class):
diff --git a/scapy/layers/l2.py b/scapy/layers/l2.py
index b0743694..a14294c4 100644
--- a/scapy/layers/l2.py
+++ b/scapy/layers/l2.py
@@ -223,7 +223,7 @@ class Dot1Q(Packet):
     def default_payload_class(self, pay):
         if self.type <= 1500:
             return LLC
-        return Raw
+        return conf.raw_layer
     def extract_padding(self,s):
         if self.type <= 1500:
             return s[:self.type],s[self.type:]
@@ -405,7 +405,7 @@ bind_layers( GRE,           Ether,         proto=1)
 bind_layers( GRE,           ARP,           proto=2054)
 bind_layers( GRE,           EAPOL,         proto=34958)
 bind_layers( GRE,           GRErouting,    { "routing_present" : 1 } )
-bind_layers( GRErouting,    Raw,           { "address_family" : 0, "SRE_len" : 0 })
+bind_layers( GRErouting,    conf.raw_layer,{ "address_family" : 0, "SRE_len" : 0 })
 bind_layers( GRErouting,    GRErouting,    { } )
 bind_layers( EAPOL,         EAP,           type=0)
 bind_layers( LLC,           STP,           dsap=66, ssap=66, ctrl=3)
diff --git a/scapy/layers/llmnr.py b/scapy/layers/llmnr.py
index 50b9a917..65ecad41 100644
--- a/scapy/layers/llmnr.py
+++ b/scapy/layers/llmnr.py
@@ -49,7 +49,7 @@ class LLMNRResponse(LLMNRQuery):
                 other.qr == 0)
 
 def _llmnr_dispatcher(x, *args, **kargs):
-    cls = Raw
+    cls = conf.raw_layer
     if len(x) >= 3:
         if (ord(x[4]) & 0x80): # Response
             cls = LLMNRResponse
diff --git a/scapy/layers/sctp.py b/scapy/layers/sctp.py
index fa28d6da..632becb1 100644
--- a/scapy/layers/sctp.py
+++ b/scapy/layers/sctp.py
@@ -181,7 +181,7 @@ class _SCTPChunkGuessPayload:
             return conf.padding_layer
         else:
             t = ord(p[0])
-            return globals().get(sctpchunktypescls.get(t, "Raw"), Raw)
+            return globals().get(sctpchunktypescls.get(t, "Raw"), conf.raw_layer)
 
 
 class SCTP(_SCTPChunkGuessPayload, Packet):
@@ -210,12 +210,12 @@ class ChunkParamField(PacketListField):
     islist = 1
     holds_packets=1
     def __init__(self, name, default, count_from=None, length_from=None):
-        PacketListField.__init__(self, name, default, Raw, count_from=count_from, length_from=length_from)
+        PacketListField.__init__(self, name, default, conf.raw_layer, count_from=count_from, length_from=length_from)
     def m2i(self, p, m):
-        cls = Raw
+        cls = conf.raw_layer
         if len(m) >= 4:
             t = ord(m[0]) * 256 + ord(m[1])
-            cls = globals().get(sctpchunkparamtypescls.get(t, "Raw"), Raw)
+            cls = globals().get(sctpchunkparamtypescls.get(t, "Raw"), conf.raw_layer)
         return cls(m)
 
 # dummy class to avoid Raw() after Chunk params
diff --git a/scapy/layers/tftp.py b/scapy/layers/tftp.py
index 16a782c2..1535e99c 100644
--- a/scapy/layers/tftp.py
+++ b/scapy/layers/tftp.py
@@ -183,8 +183,8 @@ class TFTP_read(Automaton):
     # RECEIVED
     @ATMT.state()
     def RECEIVING(self, pkt):
-        if Raw in pkt:
-            recvd = pkt[Raw].load
+        if conf.raw_layer in pkt:
+            recvd = pkt[conf.raw_layer].load
         else:
             recvd = ""
         self.res += recvd
diff --git a/scapy/modules/nmap.py b/scapy/modules/nmap.py
index fc53f427..ef064643 100644
--- a/scapy/modules/nmap.py
+++ b/scapy/modules/nmap.py
@@ -104,7 +104,7 @@ def nmap_udppacket_sig(S,T):
         r["RIPCK"] = S.chksum == T.getlayer(IPerror).chksum and "E" or T.getlayer(IPerror).chksum == 0 and "0" or "F"
         r["UCK"] = S.payload.chksum == T.getlayer(UDPerror).chksum and "E" or T.getlayer(UDPerror).chksum ==0 and "0" or "F"
         r["ULEN"] = "%X" % T.getlayer(UDPerror).len
-        r["DAT"] = T.getlayer(Raw) is None and "E" or S.getlayer(Raw).load == T.getlayer(Raw).load and "E" or "F"
+        r["DAT"] = T.getlayer(conf.raw_layer) is None and "E" or S.getlayer(conf.raw_layer).load == T.getlayer(conf.raw_layer).load and "E" or "F"
     return r
     
 
diff --git a/scapy/modules/p0f.py b/scapy/modules/p0f.py
index 21bbd925..d051779d 100644
--- a/scapy/modules/p0f.py
+++ b/scapy/modules/p0f.py
@@ -474,7 +474,7 @@ Some specifications of the p0f.fp file are not (yet) implemented."""
                 else:
                     pkt.payload.flags |= RandChoice(8, 32, 40) #P / U / PU
             elif qq == 'D' and db != p0fo_kdb:
-                pkt /= Raw(load=RandString(random.randint(1, 10))) # XXX p0fo.fp
+                pkt /= conf.raw_layer(load=RandString(random.randint(1, 10))) # XXX p0fo.fp
             elif qq == 'Q': pkt.payload.seq = pkt.payload.ack
             #elif qq == '0': pkt.payload.seq = 0
         #if db == p0fr_kdb:
diff --git a/scapy/modules/voip.py b/scapy/modules/voip.py
index d221ecf2..70000a54 100644
--- a/scapy/modules/voip.py
+++ b/scapy/modules/voip.py
@@ -14,7 +14,6 @@ import os
 
 from fcntl import fcntl
 from scapy.sendrecv import sniff
-from scapy.packet import Raw
 from scapy.layers.inet import IP,UDP
 from scapy.layers.rtp import RTP
 from scapy.utils import get_temp_file
@@ -93,7 +92,7 @@ def voip_play1(s1,list=None,**kargs):
             return 
         ip=pkt.getlayer(IP)
         if s1 in [ip.src, ip.dst]:
-            dsp.write(pkt.getlayer(Raw).load[12:])
+            dsp.write(pkt.getlayer(conf.raw_layer).load[12:])
     try:
         if list is None:
             sniff(store=0, prn=play, **kargs)
@@ -134,7 +133,7 @@ def voip_play3(lst=None,**kargs):
     dsp,rd = os.popen2("sox -t .ul - -t ossdsp /dev/dsp")
     try:
         def play(pkt, dsp=dsp):
-            if pkt and pkt.haslayer(UDP) and pkt.haslayer(Raw):
+            if pkt and pkt.haslayer(UDP) and pkt.haslayer(conf.raw_layer):
                 dsp.write(pkt.getlayer(RTP).load)
         if lst is None:
             sniff(store=0, prn=play, **kargs)
-- 
GitLab