scapy.contrib.knx
KNXNet/IP
This module provides Scapy layers for KNXNet/IP communications over UDP according to KNX specifications v2.1 / ISO-IEC 14543-3. Specifications can be downloaded for free here : https://my.knx.org/en/shop/knx-specifications
Currently, the module (partially) supports the following services : * SEARCH REQUEST/RESPONSE * DESCRIPTION REQUEST/RESPONSE * CONNECT, DISCONNECT, CONNECTION_STATE REQUEST/RESPONSE * CONFIGURATION REQUEST/RESPONSE * TUNNELING REQUEST/RESPONSE
- class scapy.contrib.knx.CEMI(_pkt, /, *, message_code=None, cemi_data=None)[source]
Bases:
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
None
cemi_data
MultipleTypeField
(PacketField, PacketField, PacketField, PacketField, PacketField, PacketField, PacketField)<LcEMI |>
- class scapy.contrib.knx.CRD(_pkt, /, *, structure_length=0, connection_type=3, connection_data=<CRDTunnelingConnection |>)[source]
Bases:
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
0
connection_type
3
connection_data
PacketField
(Cond)<CRDTunnelingConnection |>
- class scapy.contrib.knx.CRDTunnelingConnection(_pkt, /, *, knx_individual_address=None)[source]
Bases:
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
None
- class scapy.contrib.knx.CRI(_pkt, /, *, structure_length=2, connection_type=3, connection_data=<TunnelingConnection |>)[source]
Bases:
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
2
connection_type
3
connection_data
PacketField
(Cond)<TunnelingConnection |>
- class scapy.contrib.knx.DIBDeviceInfo(_pkt, /, *, structure_length=None, description_type=1, knx_medium=2, device_status=None, knx_address=None, project_installation_identifier=None, device_serial_number=None, device_multicast_address=None, device_mac_address=None, device_friendly_name=None)[source]
Bases:
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
None
description_type
1
knx_medium
2
device_status
None
knx_address
None
project_installation_identifier
None
device_serial_number
XBitField
(48 bits)None
device_multicast_address
None
device_mac_address
None
device_friendly_name
None
- class scapy.contrib.knx.DIBSuppSvcFamilies(_pkt, /, *, structure_length=2, description_type=2, service_family=[<ServiceFamily |>])[source]
Bases:
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
2
description_type
2
service_family
PacketListField
(Cond)[<ServiceFamily |>]
- class scapy.contrib.knx.DPcEMI(_pkt, /, *, object_type=None, object_instance=1, property_id=None, number_of_elements=1, start_index=None)[source]
Bases:
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
None
object_instance
1
property_id
None
number_of_elements
BitField
(4 bits)1
start_index
BitField
(12 bits)None
- class scapy.contrib.knx.HPAI(_pkt, /, *, structure_length=None, host_protocol=1, ip_address=None, port=None)[source]
Bases:
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
None
host_protocol
1
ip_address
None
port
None
- class scapy.contrib.knx.KNX(_pkt, /, *, header_length=None, protocol_version=16, service_identifier=None, total_length=None)[source]
Bases:
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
None
protocol_version
16
service_identifier
None
total_length
None
- payload_guess
Possible sublayers:
KNXConfigurationACK
,KNXConfigurationRequest
,KNXConnectRequest
,KNXConnectResponse
,KNXConnectionstateRequest
,KNXConnectionstateResponse
,KNXDescriptionRequest
,KNXDescriptionResponse
,KNXDisconnectRequest
,KNXDisconnectResponse
,KNXSearchRequest
,KNXSearchResponse
,KNXTunnelingACK
,KNXTunnelingRequest
- class scapy.contrib.knx.KNXAddressField(name: str, default: int | None)[source]
Bases:
ShortField
- class scapy.contrib.knx.KNXConfigurationACK(_pkt, /, *, structure_length=None, communication_channel_id=1, sequence_counter=None, status=None)[source]
Bases:
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
None
communication_channel_id
1
sequence_counter
None
status
None
- class scapy.contrib.knx.KNXConfigurationRequest(_pkt, /, *, structure_length=4, communication_channel_id=1, sequence_counter=None, reserved=None, cemi=<CEMI |>)[source]
Bases:
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
4
communication_channel_id
1
sequence_counter
None
reserved
None
cemi
<CEMI |>
- class scapy.contrib.knx.KNXConnectRequest(_pkt, /, *, control_endpoint=<HPAI |>, data_endpoint=<HPAI |>, connection_request_information=<CRI |>)[source]
Bases:
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
<HPAI |>
data_endpoint
<HPAI |>
connection_request_information
<CRI |>
- class scapy.contrib.knx.KNXConnectResponse(_pkt, /, *, communication_channel_id=None, status=None, data_endpoint=<HPAI |>, connection_response_data_block=<CRD |>)[source]
Bases:
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
None
status
None
data_endpoint
<HPAI |>
connection_response_data_block
<CRD |>
- class scapy.contrib.knx.KNXConnectionstateRequest(_pkt, /, *, communication_channel_id=None, reserved=None, control_endpoint=<HPAI |>)[source]
Bases:
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
None
reserved
None
control_endpoint
<HPAI |>
- class scapy.contrib.knx.KNXConnectionstateResponse(_pkt, /, *, communication_channel_id=None, status=0)[source]
Bases:
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
None
status
0
- class scapy.contrib.knx.KNXDescriptionRequest(_pkt, /, *, control_endpoint=<HPAI |>)[source]
Bases:
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
<HPAI |>
- class scapy.contrib.knx.KNXDescriptionResponse(_pkt, /, *, device_info=<DIBDeviceInfo |>, supported_service_families=<DIBSuppSvcFamilies |>)[source]
Bases:
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
<DIBDeviceInfo |>
supported_service_families
<DIBSuppSvcFamilies |>
- class scapy.contrib.knx.KNXDisconnectRequest(_pkt, /, *, communication_channel_id=1, reserved=None, control_endpoint=<HPAI |>)[source]
Bases:
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
1
reserved
None
control_endpoint
<HPAI |>
- class scapy.contrib.knx.KNXDisconnectResponse(_pkt, /, *, communication_channel_id=None, status=0)[source]
Bases:
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
None
status
0
- class scapy.contrib.knx.KNXGroupField(name: str, default: int | None)[source]
Bases:
ShortField
- class scapy.contrib.knx.KNXSearchRequest(_pkt, /, *, discovery_endpoint=<HPAI |>)[source]
Bases:
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
<HPAI |>
- class scapy.contrib.knx.KNXSearchResponse(_pkt, /, *, control_endpoint=<HPAI |>, device_info=<DIBDeviceInfo |>, supported_service_families=<DIBSuppSvcFamilies |>)[source]
Bases:
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
<HPAI |>
device_info
<DIBDeviceInfo |>
supported_service_families
<DIBSuppSvcFamilies |>
- class scapy.contrib.knx.KNXTunnelingACK(_pkt, /, *, structure_length=None, communication_channel_id=1, sequence_counter=None, status=None)[source]
Bases:
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
None
communication_channel_id
1
sequence_counter
None
status
None
- class scapy.contrib.knx.KNXTunnelingRequest(_pkt, /, *, structure_length=4, communication_channel_id=1, sequence_counter=None, reserved=None, cemi=<CEMI |>)[source]
Bases:
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
4
communication_channel_id
1
sequence_counter
None
reserved
None
cemi
<CEMI |>
- class scapy.contrib.knx.LcEMI(_pkt, /, *, additional_information_length=0, additional_information=None, frame_type=1, reserved_1=0, repeat_on_error=1, broadcast_type=1, priority=3, ack_request=0, confirmation_error=0, address_type=1, hop_count=6, extended_frame_format=0, source_address=None, destination_address=2563, npdu_length=1, packet_type=0, sequence_type=0, reserved_2=0, acpi=2, data=0)[source]
Bases:
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
0
additional_information
None
frame_type
1
reserved_1
BitField
(1 bit)0
repeat_on_error
BitField
(1 bit)1
broadcast_type
1
priority
3
ack_request
BitField
(1 bit)0
confirmation_error
BitField
(1 bit)0
address_type
1
hop_count
BitField
(3 bits)6
extended_frame_format
BitField
(4 bits)0
source_address
None
destination_address
2563
npdu_length
1
packet_type
0
sequence_type
0
reserved_2
BitField
(4 bits)0
acpi
2
data
BitField
(6 bits)0
- class scapy.contrib.knx.ServiceFamily(_pkt, /, *, id=None, version=None)[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.knx.TunnelingConnection(_pkt, /, *, knx_layer=2, reserved=None)[source]
Bases:
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
2
reserved
None