diff --git a/scapy/data.py b/scapy/data.py
index 33224223078ac413755f272fab8c9e56e0f836a5..a3a9b588f0fb280f6c8637648707c1add0b27b4f 100644
--- a/scapy/data.py
+++ b/scapy/data.py
@@ -32,6 +32,9 @@ ARPHDR_TUN = 65534
 
 # From pcap/dlt.h
 DLT_NULL = 0
+DLT_PPP = 9
+DLT_PPP_SERIAL = 50
+DLT_PPP_ETHER = 51
 DLT_RAW = 101
 DLT_IPV4 = 228
 DLT_IPV6 = 229
diff --git a/scapy/layers/ppp.py b/scapy/layers/ppp.py
index 07577d6a0fe45bafc5449a4e568a3a4e21043d0e..f195ac2cb27a70bd3d8ebf5c1b0a5a3ca4348f62 100644
--- a/scapy/layers/ppp.py
+++ b/scapy/layers/ppp.py
@@ -10,6 +10,8 @@ PPP (Point to Point Protocol)
 """
 
 import struct
+from scapy.config import conf
+from scapy.data import DLT_PPP, DLT_PPP_SERIAL, DLT_PPP_ETHER
 from scapy.packet import Packet, bind_layers
 from scapy.layers.eap import EAP
 from scapy.layers.l2 import Ether, CookedLinux, GRE_PPTP
@@ -364,8 +366,11 @@ class PPP_LCP(Packet):
                    StrLenField("data", "",
                                length_from=lambda p:p.len-4)]
 
+    def mysummary(self):
+        return self.sprintf('LCP %code%')
+
     def extract_padding(self, pay):
-        return "",pay
+        return "", pay
 
     @classmethod
     def dispatch_hook(cls, _pkt = None, *args, **kargs):
@@ -706,3 +711,8 @@ bind_layers( PPP,           PPP_PAP,       proto=0xc023)
 bind_layers( Ether,         PPP_IPCP,      type=0x8021)
 bind_layers( Ether,         PPP_ECP,       type=0x8053)
 bind_layers( GRE_PPTP,      PPP,           proto=0x880b)
+
+
+conf.l2types.register(DLT_PPP, PPP)
+conf.l2types.register(DLT_PPP_SERIAL, HDLC)
+conf.l2types.register(DLT_PPP_ETHER, PPPoE)