scapy.contrib.knx

class scapy.contrib.knx.CEMI(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  MESSAGE CODE |           CEMI DATA           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            Fig. CEMI                             
CEMI fields

message_code

ByteEnumField

None

cemi_data

MultipleTypeField (PacketField, PacketField, PacketField, PacketField, PacketField, PacketField, PacketField)

<LcEMI  |>

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.CRD(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STRUCTURE LENGT|CONNECTION TYPE|        CONNECTION DATA        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                             Fig. CRD                             
CRD fields

structure_length

ByteField

0

connection_type

ByteEnumField

3

connection_data

PacketField (Cond)

<CRDTunnelingConnection  |>

payload_guess

Possible sublayers: Padding

post_build(p, pay)[source]
class scapy.contrib.knx.CRDTunnelingConnection(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     KNX INDIVIDUAL ADDRESS    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. CRDTunnelingConnection                    
CRDTunnelingConnection fields

knx_individual_address

KNXAddressField

None

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.CRI(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STRUCTURE LENGT|CONNECTION TYPE|        CONNECTION DATA        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                             Fig. CRI                             
CRI fields

structure_length

ByteField

2

connection_type

ByteEnumField

3

connection_data

PacketField (Cond)

<TunnelingConnection  |>

payload_guess

Possible sublayers: Padding

post_build(p, pay)[source]
class scapy.contrib.knx.DIBDeviceInfo(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STRUCTURE LENGT|DESCRIPTION TYP|   KNX MEDIUM  | DEVICE STATUS |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          KNX ADDRESS          |PROJECT INSTALLATION IDENTIFIER|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      DEVICE SERIAL NUMBER                     |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |    DEVICE MULTICAST ADDRESS   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |       DEVICE MAC ADDRESS      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      DEVICE FRIENDLY NAME     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. DIBDeviceInfo                        
DIBDeviceInfo fields

structure_length

ByteField

None

description_type

ByteEnumField

1

knx_medium

ByteEnumField

2

device_status

ByteField

None

knx_address

KNXAddressField

None

project_installation_identifier

ShortField

None

device_serial_number

XBitField (48 bits)

None

device_multicast_address

IPField

None

device_mac_address

MACField

None

device_friendly_name

StrFixedLenField

None

payload_guess

Possible sublayers: Padding

post_build(p, pay)[source]
class scapy.contrib.knx.DIBSuppSvcFamilies(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STRUCTURE LENGT|DESCRIPTION TYP|         SERVICE FAMILY        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. DIBSuppSvcFamilies                      
DIBSuppSvcFamilies fields

structure_length

ByteField

2

description_type

ByteEnumField

2

service_family

PacketListField (Cond)

[<ServiceFamily  |>]

payload_guess

Possible sublayers: Padding

post_build(p, pay)[source]
class scapy.contrib.knx.DPcEMI(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          OBJECT TYPE          |OBJECT INSTANCE|  PROPERTY ID  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|NUMBER |      START INDEX      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           Fig. DPcEMI                            
DPcEMI fields

object_type

ShortField

None

object_instance

ByteField

1

property_id

ByteField

None

number_of_elements

BitField (4 bits)

1

start_index

BitField (12 bits)

None

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.HPAI(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STRUCTURE LENGT| HOST PROTOCOL |           IP ADDRESS          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |              PORT             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            Fig. HPAI                             
HPAI fields

structure_length

ByteField

None

host_protocol

ByteEnumField

1

ip_address

IPField

None

port

ShortField

None

payload_guess

Possible sublayers: Padding

post_build(p, pay)[source]
class scapy.contrib.knx.KNX(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| HEADER LENGTH |PROTOCOL VERSIO|       SERVICE IDENTIFIER      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          TOTAL LENGTH         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                             Fig. KNX                             
KNX fields

header_length

ByteField

None

protocol_version

XByteField

16

service_identifier

ShortEnumField

None

total_length

ShortField

None

payload_guess

Possible sublayers: KNXConfigurationACK, KNXConfigurationRequest, KNXConnectRequest, KNXConnectResponse, KNXConnectionstateRequest, KNXConnectionstateResponse, KNXDescriptionRequest, KNXDescriptionResponse, KNXDisconnectRequest, KNXDisconnectResponse, KNXSearchRequest, KNXSearchResponse, KNXTunnelingACK, KNXTunnelingRequest

post_build(p, pay)[source]
class scapy.contrib.knx.KNXAddressField(name, default)[source]

Bases: scapy.fields.Field[int, int]

any2i(pkt, x)[source]
i2repr(pkt, x)[source]
class scapy.contrib.knx.KNXConfigurationACK(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STRUCTURE LENGT|COMMUNICATION C|SEQUENCE COUNTE|     STATUS    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. KNXConfigurationACK                     
KNXConfigurationACK fields

structure_length

ByteField

None

communication_channel_id

ByteField

1

sequence_counter

ByteField

None

status

ByteField

None

payload_guess

Possible sublayers: Padding

post_build(p, pay)[source]
class scapy.contrib.knx.KNXConfigurationRequest(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STRUCTURE LENGT|COMMUNICATION C|SEQUENCE COUNTE|    RESERVED   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              CEMI             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. KNXConfigurationRequest                   
KNXConfigurationRequest fields

structure_length

ByteField

4

communication_channel_id

ByteField

1

sequence_counter

ByteField

None

reserved

ByteField

None

cemi

PacketField

<CEMI  |>

payload_guess

Possible sublayers: Padding

post_build(p, pay)[source]
class scapy.contrib.knx.KNXConnectRequest(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        CONTROL ENDPOINT       |         DATA ENDPOINT         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CONNECTION REQUEST INFORMATION|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. KNXConnectRequest                      
KNXConnectRequest fields

control_endpoint

PacketField

<HPAI  |>

data_endpoint

PacketField

<HPAI  |>

connection_request_information

PacketField

<CRI  |>

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXConnectResponse(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|COMMUNICATION C|     STATUS    |         DATA ENDPOINT         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CONNECTION RESPONSE DATA BLOCK|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. KNXConnectResponse                      
KNXConnectResponse fields

communication_channel_id

ByteField

None

status

ByteField

None

data_endpoint

PacketField

<HPAI  |>

connection_response_data_block

PacketField

<CRD  |>

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXConnectionstateRequest(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|COMMUNICATION C|    RESERVED   |        CONTROL ENDPOINT       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Fig. KNXConnectionstateRequest                  
KNXConnectionstateRequest fields

communication_channel_id

ByteField

None

reserved

ByteField

None

control_endpoint

PacketField

<HPAI  |>

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXConnectionstateResponse(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|COMMUNICATION C|     STATUS    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                 Fig. KNXConnectionstateResponse                  
KNXConnectionstateResponse fields

communication_channel_id

ByteField

None

status

ByteField

0

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXDescriptionRequest(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        CONTROL ENDPOINT       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. KNXDescriptionRequest                    
KNXDescriptionRequest fields

control_endpoint

PacketField

<HPAI  |>

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXDescriptionResponse(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          DEVICE INFO          |   SUPPORTED SERVICE FAMILIES  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. KNXDescriptionResponse                    
KNXDescriptionResponse fields

device_info

PacketField

<DIBDeviceInfo  |>

supported_service_families

PacketField

<DIBSuppSvcFamilies  |>

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXDisconnectRequest(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|COMMUNICATION C|    RESERVED   |        CONTROL ENDPOINT       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. KNXDisconnectRequest                     
KNXDisconnectRequest fields

communication_channel_id

ByteField

1

reserved

ByteField

None

control_endpoint

PacketField

<HPAI  |>

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXDisconnectResponse(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|COMMUNICATION C|     STATUS    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. KNXDisconnectResponse                    
KNXDisconnectResponse fields

communication_channel_id

ByteField

None

status

ByteField

0

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXGroupField(name, default)[source]

Bases: scapy.fields.Field[int, int]

any2i(pkt, x)[source]
i2repr(pkt, x)[source]
class scapy.contrib.knx.KNXSearchRequest(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       DISCOVERY ENDPOINT      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. KNXSearchRequest                       
KNXSearchRequest fields

discovery_endpoint

PacketField

<HPAI  |>

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXSearchResponse(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        CONTROL ENDPOINT       |          DEVICE INFO          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   SUPPORTED SERVICE FAMILIES  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. KNXSearchResponse                      
KNXSearchResponse fields

control_endpoint

PacketField

<HPAI  |>

device_info

PacketField

<DIBDeviceInfo  |>

supported_service_families

PacketField

<DIBSuppSvcFamilies  |>

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.KNXTunnelingACK(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STRUCTURE LENGT|COMMUNICATION C|SEQUENCE COUNTE|     STATUS    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. KNXTunnelingACK                       
KNXTunnelingACK fields

structure_length

ByteField

None

communication_channel_id

ByteField

1

sequence_counter

ByteField

None

status

ByteField

None

payload_guess

Possible sublayers: Padding

post_build(p, pay)[source]
class scapy.contrib.knx.KNXTunnelingRequest(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STRUCTURE LENGT|COMMUNICATION C|SEQUENCE COUNTE|    RESERVED   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              CEMI             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. KNXTunnelingRequest                     
KNXTunnelingRequest fields

structure_length

ByteField

4

communication_channel_id

ByteField

1

sequence_counter

ByteField

None

reserved

ByteField

None

cemi

PacketField

<CEMI  |>

payload_guess

Possible sublayers: Padding

post_build(p, pay)[source]
class scapy.contrib.knx.LcEMI(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|ADDITIONAL INFO|     ADDITIONAL INFORMATION    |F|R|R|B|PRI|A|C|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|A|HOP C|EXTENDE|         SOURCE ADDRESS        |DESTINATION ADD|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |  NPDU LENGTH  |P|S|RESERVE|  ACPI |    DATA   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            Fig. LcEMI                            
LcEMI fields

additional_information_length

FieldLenField

0

additional_information

StrLenField

None

frame_type

BitEnumField

1

reserved_1

BitField (1 bit)

0

repeat_on_error

BitField (1 bit)

1

broadcast_type

BitEnumField

1

priority

BitEnumField

3

ack_request

BitField (1 bit)

0

confirmation_error

BitField (1 bit)

0

address_type

BitEnumField

1

hop_count

BitField (3 bits)

6

extended_frame_format

BitField (4 bits)

0

source_address

KNXAddressField

None

destination_address

KNXGroupField

2563

npdu_length

FieldLenField

1

packet_type

BitEnumField

0

sequence_type

BitEnumField

0

reserved_2

BitField (4 bits)

0

acpi

BitEnumField

2

data

BitField (6 bits)

0

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.ServiceFamily(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       ID      |    VERSION    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. ServiceFamily                        
ServiceFamily fields

id

ByteField

None

version

ByteField

None

payload_guess

Possible sublayers: Padding

class scapy.contrib.knx.TunnelingConnection(*args, **kargs)[source]

Bases: scapy.base_classes.Gen[scapy.packet.Packet]

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   KNX LAYER   |    RESERVED   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. TunnelingConnection                     
TunnelingConnection fields

knx_layer

ByteField

2

reserved

ByteField

None

payload_guess

Possible sublayers: Padding