diff --git a/scapy/contrib/HomePlugAV.py b/scapy/contrib/HomePlugAV.py
index 76ebb95e467a529472f645f7eaa819817a60f3c0..7248d694a8a8e01b8d0257e7adab852470272499 100644
--- a/scapy/contrib/HomePlugAV.py
+++ b/scapy/contrib/HomePlugAV.py
@@ -1,3 +1,22 @@
+#! /usr/bin/env python
+
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
+
+# scapy.contrib.description = HomePlugAV Layer
+# scapy.contrib.status = loads
+
 from scapy.packet import *
 from scapy.fields import *
 from scapy.layers.l2 import Ether
diff --git a/scapy/contrib/avs.py b/scapy/contrib/avs.py
index 8f40aff1ec9c37bf69664ca0572bb62590398388..2d9183d6766d03deb4e31047c19be92acf5d086f 100644
--- a/scapy/contrib/avs.py
+++ b/scapy/contrib/avs.py
@@ -1,6 +1,18 @@
 #! /usr/bin/env python
 
-# http://trac.secdev.org/scapy/ticket/82
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
 
 # scapy.contrib.description = AVS WLAN Monitor Header
 # scapy.contrib.status = loads
diff --git a/scapy/contrib/bgp.py b/scapy/contrib/bgp.py
index d24dd58eea3ca1d70b03382d923d5c90461e562e..c67a4db9d7dc3a8478f373142e34a49e19913091 100644
--- a/scapy/contrib/bgp.py
+++ b/scapy/contrib/bgp.py
@@ -1,7 +1,16 @@
 # This file is part of Scapy
-# See http://www.secdev.org/projects/scapy for more information
-# Copyright (C) Philippe Biondi <phil@secdev.org>
-# This program is published under a GPLv2 license
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
 
 # scapy.contrib.description = BGP v0.1
 # scapy.contrib.status = loads
diff --git a/scapy/contrib/carp.py b/scapy/contrib/carp.py
index 17fc37dfad9deab27f75785b7a266a2fc05a9f25..9d98a086a052cf91a981bc779ad84ff4114d2d8d 100644
--- a/scapy/contrib/carp.py
+++ b/scapy/contrib/carp.py
@@ -1,3 +1,16 @@
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
 
 # scapy.contrib.description = CARP
 # scapy.contrib.status = loads
diff --git a/scapy/contrib/cdp.py b/scapy/contrib/cdp.py
index 93d1ed868507ca6b49a4860ef659328e3e4d43df..aebc16b64d62081018901a095fec699d7ba34799 100644
--- a/scapy/contrib/cdp.py
+++ b/scapy/contrib/cdp.py
@@ -11,7 +11,8 @@
 ##                       Arnaud Ebalard  <arnaud.ebalard AT eads DOT net>  ##
 ##                       EADS/CRC security team                            ##
 ##                                                                         ##
-## This program is free software; you can redistribute it and/or modify it ##
+## This file is part of Scapy                                              ##
+## Scapy is free software: you can redistribute it and/or modify it        ##
 ## under the terms of the GNU General Public License version 2 as          ##
 ## published by the Free Software Foundation; version 2.                   ##
 ##                                                                         ##
diff --git a/scapy/contrib/chdlc.py b/scapy/contrib/chdlc.py
index 6e48376226ad392e8908d79aa4057b48e040909e..610d8223d1b5b4ed98f89a994c6fd7e7b1ce9197 100644
--- a/scapy/contrib/chdlc.py
+++ b/scapy/contrib/chdlc.py
@@ -1,4 +1,16 @@
-# http://trac.secdev.org/scapy/ticket/88
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
 
 # scapy.contrib.description = Cisco HDLC and SLARP
 # scapy.contrib.status = loads
diff --git a/scapy/contrib/coap.py b/scapy/contrib/coap.py
index aa2a1f6f719703213c75b2794d5e8bb9f9c37ab9..939aa53e6be0d9829539b43bc428f72b58ad0ea2 100644
--- a/scapy/contrib/coap.py
+++ b/scapy/contrib/coap.py
@@ -1,3 +1,5 @@
+#! /usr/bin/env python
+
 # This file is part of Scapy.
 # See http://www.secdev.org/projects/scapy for more information.
 #
@@ -16,6 +18,9 @@
 #
 # Copyright (C) 2016 Anmol Sarma <me@anmolsarma.in>
 
+# scapy.contrib.description = Constrained Application Protocol (CoAP)
+# scapy.contrib.status = loads
+
 """
 RFC 7252 - Constrained Application Protocol (CoAP) layer for Scapy
 """
diff --git a/scapy/contrib/dtp.py b/scapy/contrib/dtp.py
index 5e69f6cf832a9a532a37ba87e46d59035524503f..a3f7a54e9352c195d745c8a49b024a6f9dee57a5 100644
--- a/scapy/contrib/dtp.py
+++ b/scapy/contrib/dtp.py
@@ -1,5 +1,19 @@
 #!/usr/bin/env python
 
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
+
 # scapy.contrib.description = DTP
 # scapy.contrib.status = loads
 
diff --git a/scapy/contrib/eigrp.py b/scapy/contrib/eigrp.py
index 866a39f84fb30cb9320acba42c0a433080f7e7c7..7a688d3fb043cb6eff2e0012a89591a82c225890 100644
--- a/scapy/contrib/eigrp.py
+++ b/scapy/contrib/eigrp.py
@@ -1,5 +1,19 @@
 #!/usr/bin/env python
 
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
+
 # scapy.contrib.description = EIGRP
 # scapy.contrib.status = loads
 
@@ -12,16 +26,6 @@
     :e-mail:    lobo@c3a.de / jochen.bartl@gmail.com
     :license:   GPL v2
 
-        This program is free software; you can redistribute it and/or
-        modify it under the terms of the GNU General Public License
-        as published by the Free Software Foundation; either version 2
-        of the License, or (at your option) any later version.
-
-        This program is distributed in the hope that it will be useful,
-        but WITHOUT ANY WARRANTY; without even the implied warranty of
-        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-        GNU General Public License for more details.
-
     :TODO
 
     - Replace TLV code with a more generic solution
diff --git a/scapy/contrib/etherip.py b/scapy/contrib/etherip.py
index e331c14671ddbdd6f8d9ccaf8d0b74542a9b52a2..610897189d1108a331abe0aadae2c01d5a30eb00 100644
--- a/scapy/contrib/etherip.py
+++ b/scapy/contrib/etherip.py
@@ -1,5 +1,16 @@
-
-# http://trac.secdev.org/scapy/ticket/297
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
 
 # scapy.contrib.description = EtherIP
 # scapy.contrib.status = loads
diff --git a/scapy/contrib/gsm_um.py b/scapy/contrib/gsm_um.py
index 4d1bd33065cbcb634c13658484a18f66cc06d6cf..07403af0f847bbcc865f35a7f9d5a1657b515e75 100644
--- a/scapy/contrib/gsm_um.py
+++ b/scapy/contrib/gsm_um.py
@@ -1,23 +1,22 @@
 #!/usr/bin/env python
 
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
+
 # scapy.contrib.description = PPI
 # scapy.contrib.status = loads
 
-"""
-    This program is free software: you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-"""
-
     ####################################################################
     # This file holds the GSM UM interface implementation for Scapy    #
     # author: Laurent Weber <k@0xbadcab1e.lu>                          #
diff --git a/scapy/contrib/gtp_v2.py b/scapy/contrib/gtp_v2.py
index f656b12110a5102f8041ef056f39e1eada7fd12c..b7ee9f3938c4c7bb11ad2f4068fd301f76a09ceb 100644
--- a/scapy/contrib/gtp_v2.py
+++ b/scapy/contrib/gtp_v2.py
@@ -2,8 +2,20 @@
 
 # Copyright (C) 2017 Alessio Deiana <adeiana@gmail.com>
 # 2017 Alexis Sultan <alexis.sultan@sfr.com>
-##
-# This program is published under a GPLv2 license
+
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
 
 # scapy.contrib.description = GTPv2
 # scapy.contrib.status = loads
diff --git a/scapy/contrib/http2.py b/scapy/contrib/http2.py
index f934da45c22376f039aea69cac3b759496e2e404..e760b997b84034bf0c911ec9f8cfb79126e5134b 100644
--- a/scapy/contrib/http2.py
+++ b/scapy/contrib/http2.py
@@ -6,7 +6,8 @@
 ##                                                                         ##
 ## Copyright (C) 2016  Florian Maury <florian.maury@ssi.gouv.fr>           ##
 ##                                                                         ##
-## This program is free software; you can redistribute it and/or modify it ##
+## This file is part of Scapy                                              ##
+## Scapy is free software: you can redistribute it and/or modify it        ##
 ## under the terms of the GNU General Public License version 2 as          ##
 ## published by the Free Software Foundation.                              ##
 ##                                                                         ##
diff --git a/scapy/contrib/icmp_extensions.py b/scapy/contrib/icmp_extensions.py
index 3dcaf8d2bcce91332953c69ad0a1d0f4fab1ffed..44ba75e9ace9f38e1fac65f4d581a57f6497a459 100644
--- a/scapy/contrib/icmp_extensions.py
+++ b/scapy/contrib/icmp_extensions.py
@@ -1,3 +1,22 @@
+#! /usr/bin/env python
+
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
+
+# scapy.contrib.description = ICMP Extensions
+# scapy.contrib.status = loads
+
 import scapy
 from scapy.packet import Packet, bind_layers
 from scapy.fields import *
diff --git a/scapy/contrib/igmp.py b/scapy/contrib/igmp.py
index 705e0de5f9c89559c91f0133931818f490ad860f..a59dcfeb603f8c9abd74487db6160f95445e2dec 100644
--- a/scapy/contrib/igmp.py
+++ b/scapy/contrib/igmp.py
@@ -1,5 +1,19 @@
 #! /usr/bin/env python
 
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
+
 # scapy.contrib.description = IGMP/IGMPv2
 # scapy.contrib.status = loads
 
diff --git a/scapy/contrib/igmpv3.py b/scapy/contrib/igmpv3.py
index e70372919890a3db98d7ab9c2c53effecc84580d..7c8aec2549f0714ab785fc1980b6eaf4d25ec7e0 100644
--- a/scapy/contrib/igmpv3.py
+++ b/scapy/contrib/igmpv3.py
@@ -1,6 +1,18 @@
 #! /usr/bin/env python
 
-# http://trac.secdev.org/scapy/ticket/31
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
 
 # scapy.contrib.description = IGMPv3
 # scapy.contrib.status = loads
diff --git a/scapy/contrib/ikev2.py b/scapy/contrib/ikev2.py
index 34d21da75c956c3e8628c4da8ff40fceea86dc4a..c28b1aee84eb97eee28ab230b5daa79383024d86 100644
--- a/scapy/contrib/ikev2.py
+++ b/scapy/contrib/ikev2.py
@@ -1,6 +1,18 @@
 #!/usr/bin/env python
 
-# http://trac.secdev.org/scapy/ticket/353
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
 
 # scapy.contrib.description = IKEv2
 # scapy.contrib.status = loads
diff --git a/scapy/contrib/isis.py b/scapy/contrib/isis.py
index 3b7122e30b36b0d29ab213162fd941d78c728716..818acba883a72a4fe9b5e706e20dcb8a8995e2aa 100644
--- a/scapy/contrib/isis.py
+++ b/scapy/contrib/isis.py
@@ -1,3 +1,17 @@
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
+
 # scapy.contrib.description = ISIS
 # scapy.contrib.status = loads
 
diff --git a/scapy/contrib/modbus.py b/scapy/contrib/modbus.py
index a6be7ff50fe1ab7314badf30285f17134b62bcd1..55640711894d5113457d8a66358fc47b299c9b92 100644
--- a/scapy/contrib/modbus.py
+++ b/scapy/contrib/modbus.py
@@ -14,6 +14,9 @@
 # You should have received a copy of the GNU General Public License
 # along with Scapy. If not, see <http://www.gnu.org/licenses/>.
 
+# scapy.contrib.description = ModBus Protocol
+# scapy.contrib.status = loads
+
 # Copyright (C) 2016 Arthur Gervais, Ken LE PRADO, Sébastien Mainand
 
 from scapy.packet import *
diff --git a/scapy/contrib/mpls.py b/scapy/contrib/mpls.py
index 6af1d4ac146087da84771c012495a741cd234f85..8041562a165517ef9d2bfa9a31b8872b8e7ed371 100644
--- a/scapy/contrib/mpls.py
+++ b/scapy/contrib/mpls.py
@@ -1,4 +1,16 @@
-# http://trac.secdev.org/scapy/ticket/31
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
 
 # scapy.contrib.description = MPLS
 # scapy.contrib.status = loads
diff --git a/scapy/contrib/nsh.py b/scapy/contrib/nsh.py
index 42c1f3a8d86adf587d5d3c25fc281381865f519e..86abe6e8e1a907ed8499530602f676f13a98d117 100644
--- a/scapy/contrib/nsh.py
+++ b/scapy/contrib/nsh.py
@@ -1,6 +1,20 @@
-#! /usr/bin/env python
-# scapy.contrib.description = nsh
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
+
+# scapy.contrib.description = NSH Protocol
 # scapy.contrib.status = loads
+
 from scapy.all import bind_layers
 from scapy.fields import BitField, ByteField, ByteEnumField
 from scapy.fields import ShortField, X3BytesField, XIntField
diff --git a/scapy/contrib/openflow.py b/scapy/contrib/openflow.py
index 62c0f031d6d3199fef51d5baa9bd52dc7ec25893..0809ebe9c5d003834589c9cc52d988dd1b6eff09 100755
--- a/scapy/contrib/openflow.py
+++ b/scapy/contrib/openflow.py
@@ -8,7 +8,7 @@
 ## Based on OpenFlow v1.0.1
 ## Specifications can be retrieved from https://www.opennetworking.org/
 
-# scapy.contrib.description = openflow v1.0
+# scapy.contrib.description = Openflow v1.0
 # scapy.contrib.status = loads
 
 import struct
diff --git a/scapy/contrib/openflow3.py b/scapy/contrib/openflow3.py
index df8ed5aab9ead909256f85ca7708366c57a2dd3b..0d8a6e6d7bf23440c3e41ee9cce56a4090b029eb 100755
--- a/scapy/contrib/openflow3.py
+++ b/scapy/contrib/openflow3.py
@@ -8,7 +8,7 @@
 ## Based on OpenFlow v1.3.4
 ## Specifications can be retrieved from https://www.opennetworking.org/
 
-# scapy.contrib.description = openflow v1.3
+# scapy.contrib.description = Openflow v1.3
 # scapy.contrib.status = loads
 
 import struct
diff --git a/scapy/contrib/ospf.py b/scapy/contrib/ospf.py
index 15b2d5e9a22f87449f87a59ca05d58c1097478cb..8b316ca55e96ed93a065c8c24a6cdf8a458f6c2e 100644
--- a/scapy/contrib/ospf.py
+++ b/scapy/contrib/ospf.py
@@ -3,6 +3,20 @@
 # scapy.contrib.description = OSPF
 # scapy.contrib.status = loads
 
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
+
 """
 OSPF extension for Scapy <http://www.secdev.org/scapy>
 
@@ -11,16 +25,6 @@ routing protocol as defined in RFC 2328 and RFC 5340.
 
 Copyright (c) 2008 Dirk Loss  :  mail dirk-loss de
 Copyright (c) 2010 Jochen Bartl  :  jochen.bartl gmail com
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
 """
 
 
diff --git a/scapy/contrib/ppi.py b/scapy/contrib/ppi.py
index 07fa6f13b1b3b4f9151ffb4ee4f43da8ba505c2d..95d39ed454f820016bbcda9fbb2451f8fd61c050 100644
--- a/scapy/contrib/ppi.py
+++ b/scapy/contrib/ppi.py
@@ -1,7 +1,18 @@
-## This file is (hopefully) part of Scapy
-## See http://www.secdev.org/projects/scapy for more informations
-## <jellch@harris.com>
-## This program is published under a GPLv2 license
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
+
+# author: <jellch@harris.com>
 
 # scapy.contrib.description = PPI
 # scapy.contrib.status = loads
diff --git a/scapy/contrib/ppi_cace.py b/scapy/contrib/ppi_cace.py
index dee51d10de465ab64486e20baf0df921547b324e..9fc63d25b8d27617f698e327d4b8d6d7c73a72a6 100644
--- a/scapy/contrib/ppi_cace.py
+++ b/scapy/contrib/ppi_cace.py
@@ -1,7 +1,18 @@
-## This file is (hopefully) part of Scapy
-## See http://www.secdev.org/projects/scapy for more informations
-## <jellch@harris.com>
-## This program is published under a GPLv2 license
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
+
+# author: <jellch@harris.com>
 
 # scapy.contrib.description = PPI CACE
 # scapy.contrib.status = loads
diff --git a/scapy/contrib/ppi_geotag.py b/scapy/contrib/ppi_geotag.py
index 60a84571977750b75ad117cbf1e7b811ea8925aa..a7f30c984f5cc8d3c8db1d0952dd24fde2c98341 100644
--- a/scapy/contrib/ppi_geotag.py
+++ b/scapy/contrib/ppi_geotag.py
@@ -1,7 +1,18 @@
-## This file is (hopefully) part of Scapy
-## See http://www.secdev.org/projects/scapy for more informations
-## <jellch@harris.com>
-## This program is published under a GPLv2 license
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
+
+# author: <jellch@harris.com>
 
 # scapy.contrib.description = PPI GEOLOCATION
 # scapy.contrib.status = loads
diff --git a/scapy/contrib/ripng.py b/scapy/contrib/ripng.py
index 47e17bc4cd9ce76c8a2a849a4d5aaf3af682b507..97ae49ff6cecf444edbb4f6663fa2ff5496a3734 100644
--- a/scapy/contrib/ripng.py
+++ b/scapy/contrib/ripng.py
@@ -1,6 +1,18 @@
 #!/usr/bin/env python
 
-# http://trac.secdev.org/scapy/ticket/301
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
 
 # scapy.contrib.description = RIPng
 # scapy.contrib.status = loads
diff --git a/scapy/contrib/rsvp.py b/scapy/contrib/rsvp.py
index e2b1247e311c628f19056e233f5bf9317bb20eaa..b8d8d7f4fc629409bcef98f869cdc739c0b7330c 100644
--- a/scapy/contrib/rsvp.py
+++ b/scapy/contrib/rsvp.py
@@ -1,6 +1,18 @@
 ## RSVP layer
 
-# http://trac.secdev.org/scapy/ticket/197
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
 
 # scapy.contrib.description = RSVP
 # scapy.contrib.status = loads
diff --git a/scapy/contrib/send.py b/scapy/contrib/send.py
index 02746b7728866c1827bed5d05ede3771628c9b96..c4fb0f2c8dd769c9ee663e796a7863efc5612e16 100644
--- a/scapy/contrib/send.py
+++ b/scapy/contrib/send.py
@@ -1,11 +1,24 @@
 #! /usr/bin/env python
 
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
+
 ## Copyright (C) 2009 Adline Stephane <adline.stephane@gmail.com>
 ##
-## This program is published under a GPLv2 license
 
 # Partial support of RFC3971
-# scapy.contrib.description = SEND
+# scapy.contrib.description = SEND (ICMPv6)
 # scapy.contrib.status = loads
 
 import socket
diff --git a/scapy/contrib/skinny.py b/scapy/contrib/skinny.py
index 215602db9f97caba1af0f42d8567aefb0caecaa9..b4d7642e1481caa42acfcdaefbce70fe3679bad9 100644
--- a/scapy/contrib/skinny.py
+++ b/scapy/contrib/skinny.py
@@ -11,7 +11,8 @@
 ## Copyright (C) 2006    Nicolas Bareil      <nicolas.bareil@ eads.net>    ##
 ##                       EADS/CRC security team                            ##
 ##                                                                         ##
-## This program is free software; you can redistribute it and/or modify it ##
+## This file is part of Scapy                                              ##
+## Scapy is free software: you can redistribute it and/or modify           ##
 ## under the terms of the GNU General Public License version 2 as          ##
 ## published by the Free Software Foundation; version 2.                   ##
 ##                                                                         ##
diff --git a/scapy/contrib/spbm.py b/scapy/contrib/spbm.py
index 44ae942d3247791e3ec7989331f5fa2869295367..56559db2ca0d5a1bdaf0e51eb1f12be30ab96f3d 100644
--- a/scapy/contrib/spbm.py
+++ b/scapy/contrib/spbm.py
@@ -1,22 +1,40 @@
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
+
 # IEEE 802.1aq - Shorest Path Bridging Mac-in-mac (SPBM):
 # Ethernet based link state protocol that enables Layer 2 Unicast, Layer 2 Multicast, Layer 3 Unicast, and Layer 3 Multicast virtualized services
 # https://en.wikipedia.org/wiki/IEEE_802.1aq
 # Modeled after the scapy VXLAN contribution
-#
-#############################################################
-# Example SPB Frame Creation
-# 
-# Note the outer Dot1Q Ethertype marking (0x88e7)
-#############################################################
-# backboneEther     = Ether(dst='00:bb:00:00:90:00', src='00:bb:00:00:40:00', type=0x8100)
-# backboneDot1Q     = Dot1Q(vlan=4051,type=0x88e7)
-# backboneServiceID = SPBM(prio=1,isid=20011)
-# customerEther     = Ether(dst='00:1b:4f:5e:ca:00',src='00:00:00:00:00:01',type=0x8100)
-# customerDot1Q     = Dot1Q(prio=1,vlan=11,type=0x0800)
-# customerIP        = IP(src='10.100.11.10',dst='10.100.12.10',id=0x0629,len=106)
-# customerUDP       = UDP(sport=1024,dport=1025,chksum=0,len=86)
-#
-# spb_example = backboneEther/backboneDot1Q/backboneServiceID/customerEther/customerDot1Q/customerIP/customerUDP/"Payload"
+
+# scapy.contrib.description = SBPM
+# scapy.contrib.status = loads
+
+"""
+ Example SPB Frame Creation
+ 
+ Note the outer Dot1Q Ethertype marking (0x88e7)
+
+ backboneEther     = Ether(dst='00:bb:00:00:90:00', src='00:bb:00:00:40:00', type=0x8100)
+ backboneDot1Q     = Dot1Q(vlan=4051,type=0x88e7)
+ backboneServiceID = SPBM(prio=1,isid=20011)
+ customerEther     = Ether(dst='00:1b:4f:5e:ca:00',src='00:00:00:00:00:01',type=0x8100)
+ customerDot1Q     = Dot1Q(prio=1,vlan=11,type=0x0800)
+ customerIP        = IP(src='10.100.11.10',dst='10.100.12.10',id=0x0629,len=106)
+ customerUDP       = UDP(sport=1024,dport=1025,chksum=0,len=86)
+
+ spb_example = backboneEther/backboneDot1Q/backboneServiceID/customerEther/customerDot1Q/customerIP/customerUDP/"Payload"
+"""
 
 from scapy.packet import Packet, bind_layers
 from scapy.fields import *
diff --git a/scapy/contrib/ubberlogger.py b/scapy/contrib/ubberlogger.py
index 1c01db2f600e6884e1e08df8b7f3eadcdfe7dcfb..b25556ec09dc87e92456aa8a0998cf57e96ea8bb 100644
--- a/scapy/contrib/ubberlogger.py
+++ b/scapy/contrib/ubberlogger.py
@@ -1,8 +1,21 @@
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
+
 # Author: Sylvain SARMEJEANNE
-# http://trac.secdev.org/scapy/ticket/1
 
 # scapy.contrib.description = Ubberlogger dissectors
-# scapy.contrib.status = untested
+# scapy.contrib.status = loads
 
 from scapy.packet import *
 from scapy.fields import *
diff --git a/scapy/contrib/vqp.py b/scapy/contrib/vqp.py
index 9328cea45b5184e73993e055912504de77b98736..fbe8dadb06833fcdf9d96bfb5368ffa0654e7939 100644
--- a/scapy/contrib/vqp.py
+++ b/scapy/contrib/vqp.py
@@ -1,5 +1,16 @@
-
-# http://trac.secdev.org/scapy/ticket/147
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
 
 # scapy.contrib.description = VLAN Query Protocol
 # scapy.contrib.status = loads
diff --git a/scapy/contrib/vtp.py b/scapy/contrib/vtp.py
index 8c6c8d01d5b2e68b8386606a42c808e84f172f9a..98a7a97e7a5f04d71434001125fa0987ec024729 100644
--- a/scapy/contrib/vtp.py
+++ b/scapy/contrib/vtp.py
@@ -1,4 +1,16 @@
-#!/usr/bin/env python
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
 
 # scapy.contrib.description = VLAN Trunking Protocol (VTP)
 # scapy.contrib.status = loads
diff --git a/scapy/contrib/wpa_eapol.py b/scapy/contrib/wpa_eapol.py
index 084eedd827a38542ae8a198104284c7cd20f421c..da6b211302786919694df1e659e904b421cb3d2e 100644
--- a/scapy/contrib/wpa_eapol.py
+++ b/scapy/contrib/wpa_eapol.py
@@ -1,5 +1,16 @@
-
-# http://trac.secdev.org/scapy/ticket/104
+# This file is part of Scapy
+# Scapy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# any later version.
+#
+# Scapy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Scapy. If not, see <http://www.gnu.org/licenses/>.
 
 # scapy.contrib.description = WPA EAPOL dissector
 # scapy.contrib.status = loads
diff --git a/scapy/main.py b/scapy/main.py
index 1b857f140450a85ed67c26b6fecc0f3ced0bee25..098a53b6ffe0e84a19238b6d12a42083299aeb95 100644
--- a/scapy/main.py
+++ b/scapy/main.py
@@ -91,7 +91,7 @@ def list_contrib(name=None):
     elif "*" not in name and "?" not in name and not name.endswith(".py"):
         name += ".py"
     name = os.path.join(os.path.dirname(__file__), "contrib", name)
-    for f in glob.glob(name):
+    for f in sorted(glob.glob(name)):
         mod = os.path.basename(f)
         if mod.startswith("__"):
             continue