## This file is part of Scapy
|
## See http://www.secdev.org/projects/scapy for more informations
|
## Copyright (C) Philippe Biondi <phil@secdev.org>
|
## This program is published under a GPLv2 license
|
|
"""
|
IrDA infrared data communication.
|
"""
|
|
from scapy.packet import *
|
from scapy.fields import *
|
from scapy.layers.l2 import CookedLinux
|
|
|
|
# IR
|
|
class IrLAPHead(Packet):
|
name = "IrDA Link Access Protocol Header"
|
fields_desc = [ XBitField("Address", 0x7f, 7),
|
BitEnumField("Type", 1, 1, {"Response":0,
|
"Command":1})]
|
|
class IrLAPCommand(Packet):
|
name = "IrDA Link Access Protocol Command"
|
fields_desc = [ XByteField("Control", 0),
|
XByteField("Format identifier", 0),
|
XIntField("Source address", 0),
|
XIntField("Destination address", 0xffffffff),
|
XByteField("Discovery flags", 0x1),
|
ByteEnumField("Slot number", 255, {"final":255}),
|
XByteField("Version", 0)]
|
|
|
class IrLMP(Packet):
|
name = "IrDA Link Management Protocol"
|
fields_desc = [ XShortField("Service hints", 0),
|
XByteField("Character set", 0),
|
StrField("Device name", "") ]
|
|
|
bind_layers( CookedLinux, IrLAPHead, proto=23)
|
bind_layers( IrLAPHead, IrLAPCommand, Type=1)
|
bind_layers( IrLAPCommand, IrLMP, )
|