Add new layer for OpenBSD loopback device (patch by Alexander Bluhm, #485)
authorDirk Loss <mail@dirk-loss.de>
Thu Jan 12 00:04:04 2012 +0100 (4 months ago)
changeset 1539fbc907ac35dd
parent 1538 d80170e42ced
child 1540 357c899a9b5d
Add new layer for OpenBSD loopback device (patch by Alexander Bluhm, #485)
scapy/config.py
scapy/layers/loop.py
     1.1 --- a/scapy/config.py	Fri Jan 06 15:53:03 2012 -0500
     1.2 +++ b/scapy/config.py	Thu Jan 12 00:04:04 2012 +0100
     1.3 @@ -373,7 +373,7 @@
     1.4      load_layers = ["l2", "inet", "cdp", "dhcp", "dns", "dot11", "eigrp", "gprs", "hsrp", "inet6", "ir", "isakmp",
     1.5                     "l2tp", "lldp", "mgcp", "mobileip", "netbios", "netflow", "ntp", "ospf", "ppi", "ppi_cace",
     1.6                     "ppi_geotag", "ppp", "radius", "rip", "rtp", "sebek", "skinny", "smb", "snmp", "ssl", "tftp",
     1.7 -                   "x509", "bluetooth", "dhcp6", "llmnr", "sctp", "vrrp", "dot15d4"]
     1.8 +                   "x509", "bluetooth", "dhcp6", "llmnr", "sctp", "vrrp", "dot15d4", "loop"]
     1.9      
    1.10  
    1.11  if not Conf.ipv6_enabled:
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/scapy/layers/loop.py	Thu Jan 12 00:04:04 2012 +0100
     2.3 @@ -0,0 +1,31 @@
     2.4 +## This file is part of Scapy
     2.5 +## See http://www.secdev.org/projects/scapy for more informations
     2.6 +## Copyright (C) Alexander Bluhm <alexander.bluhm@gmx.net>
     2.7 +## Copyright (C) Philippe Biondi <phil@secdev.org>
     2.8 +## This program is published under a GPLv2 license
     2.9 +
    2.10 +import scapy.arch
    2.11 +from scapy.packet import *
    2.12 +from scapy.fields import *
    2.13 +from scapy.layers.inet import IP
    2.14 +if conf.ipv6_enabled:
    2.15 +    from scapy.layers.inet6 import IPv6
    2.16 +from scapy.config import conf
    2.17 +
    2.18 +class Loop(Packet):
    2.19 +    name = "Loop"
    2.20 +    # from OpenBSD src/sys/net/if_loop.c
    2.21 +    fields_desc = [ IntEnumField("addrfamily", 2, { socket.AF_INET: "IPv4",
    2.22 +                                                    socket.AF_INET6: "IPv6" }),
    2.23 +                    ]
    2.24 +    def mysummary(self):
    2.25 +        return self.sprintf("%Loop.addrfamily%")
    2.26 +
    2.27 +bind_layers(Loop, IP, addrfamily=socket.AF_INET)
    2.28 +if conf.ipv6_enabled:
    2.29 +    bind_layers(Loop, IPv6, addrfamily=socket.AF_INET6)
    2.30 +
    2.31 +if scapy.arch.OPENBSD:
    2.32 +    conf.l2types.register(12, Loop)
    2.33 +else:
    2.34 +    conf.l2types.register(108, Loop)