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)[源代码]
基类:
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. CEMICEMI fields message_code
Nonecemi_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 |>)[源代码]
基类:
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. CRDCRD fields structure_length
0connection_type
3connection_data
PacketField(Cond)<CRDTunnelingConnection |>
- class scapy.contrib.knx.CRDTunnelingConnection(_pkt, /, *, knx_individual_address=None)[源代码]
基类:
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. CRDTunnelingConnectionCRDTunnelingConnection fields knx_individual_address
None
- class scapy.contrib.knx.CRI(_pkt, /, *, structure_length=2, connection_type=3, connection_data=<TunnelingConnection |>)[源代码]
基类:
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. CRICRI fields structure_length
2connection_type
3connection_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)[源代码]
基类:
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. DIBDeviceInfoDIBDeviceInfo fields structure_length
Nonedescription_type
1knx_medium
2device_status
Noneknx_address
Noneproject_installation_identifier
Nonedevice_serial_number
XBitField(48 bits)Nonedevice_multicast_address
Nonedevice_mac_address
Nonedevice_friendly_name
None
- class scapy.contrib.knx.DIBSuppSvcFamilies(_pkt, /, *, structure_length=2, description_type=2, service_family=[<ServiceFamily |>])[源代码]
基类:
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. DIBSuppSvcFamiliesDIBSuppSvcFamilies fields structure_length
2description_type
2service_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)[源代码]
基类:
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. DPcEMIDPcEMI fields object_type
Noneobject_instance
1property_id
Nonenumber_of_elements
BitField(4 bits)1start_index
BitField(12 bits)None
- class scapy.contrib.knx.HPAI(_pkt, /, *, structure_length=None, host_protocol=1, ip_address=None, port=None)[源代码]
基类:
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. HPAIHPAI fields structure_length
Nonehost_protocol
1ip_address
Noneport
None
- class scapy.contrib.knx.KNX(_pkt, /, *, header_length=None, protocol_version=16, service_identifier=None, total_length=None)[源代码]
基类:
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. KNXKNX fields header_length
Noneprotocol_version
16service_identifier
Nonetotal_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)[源代码]
基类:
ShortField
- class scapy.contrib.knx.KNXConfigurationACK(_pkt, /, *, structure_length=None, communication_channel_id=1, sequence_counter=None, status=None)[源代码]
基类:
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. KNXConfigurationACKKNXConfigurationACK fields structure_length
Nonecommunication_channel_id
1sequence_counter
Nonestatus
None
- class scapy.contrib.knx.KNXConfigurationRequest(_pkt, /, *, structure_length=4, communication_channel_id=1, sequence_counter=None, reserved=None, cemi=<CEMI |>)[源代码]
基类:
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. KNXConfigurationRequestKNXConfigurationRequest fields structure_length
4communication_channel_id
1sequence_counter
Nonereserved
Nonecemi
<CEMI |>
- class scapy.contrib.knx.KNXConnectRequest(_pkt, /, *, control_endpoint=<HPAI |>, data_endpoint=<HPAI |>, connection_request_information=<CRI |>)[源代码]
基类:
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. KNXConnectRequestKNXConnectRequest 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 |>)[源代码]
基类:
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. KNXConnectResponseKNXConnectResponse fields communication_channel_id
Nonestatus
Nonedata_endpoint
<HPAI |>connection_response_data_block
<CRD |>
- class scapy.contrib.knx.KNXConnectionstateRequest(_pkt, /, *, communication_channel_id=None, reserved=None, control_endpoint=<HPAI |>)[源代码]
基类:
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. KNXConnectionstateRequestKNXConnectionstateRequest fields communication_channel_id
Nonereserved
Nonecontrol_endpoint
<HPAI |>
- class scapy.contrib.knx.KNXConnectionstateResponse(_pkt, /, *, communication_channel_id=None, status=0)[源代码]
基类:
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. KNXConnectionstateResponseKNXConnectionstateResponse fields communication_channel_id
Nonestatus
0
- class scapy.contrib.knx.KNXDescriptionRequest(_pkt, /, *, control_endpoint=<HPAI |>)[源代码]
基类:
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. KNXDescriptionRequestKNXDescriptionRequest fields control_endpoint
<HPAI |>
- class scapy.contrib.knx.KNXDescriptionResponse(_pkt, /, *, device_info=<DIBDeviceInfo |>, supported_service_families=<DIBSuppSvcFamilies |>)[源代码]
基类:
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. KNXDescriptionResponseKNXDescriptionResponse fields device_info
<DIBDeviceInfo |>supported_service_families
<DIBSuppSvcFamilies |>
- class scapy.contrib.knx.KNXDisconnectRequest(_pkt, /, *, communication_channel_id=1, reserved=None, control_endpoint=<HPAI |>)[源代码]
基类:
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. KNXDisconnectRequestKNXDisconnectRequest fields communication_channel_id
1reserved
Nonecontrol_endpoint
<HPAI |>
- class scapy.contrib.knx.KNXDisconnectResponse(_pkt, /, *, communication_channel_id=None, status=0)[源代码]
基类:
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. KNXDisconnectResponseKNXDisconnectResponse fields communication_channel_id
Nonestatus
0
- class scapy.contrib.knx.KNXGroupField(name: str, default: int | None)[源代码]
基类:
ShortField
- class scapy.contrib.knx.KNXSearchRequest(_pkt, /, *, discovery_endpoint=<HPAI |>)[源代码]
基类:
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. KNXSearchRequestKNXSearchRequest fields discovery_endpoint
<HPAI |>
- class scapy.contrib.knx.KNXSearchResponse(_pkt, /, *, control_endpoint=<HPAI |>, device_info=<DIBDeviceInfo |>, supported_service_families=<DIBSuppSvcFamilies |>)[源代码]
基类:
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. KNXSearchResponseKNXSearchResponse 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)[源代码]
基类:
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. KNXTunnelingACKKNXTunnelingACK fields structure_length
Nonecommunication_channel_id
1sequence_counter
Nonestatus
None
- class scapy.contrib.knx.KNXTunnelingRequest(_pkt, /, *, structure_length=4, communication_channel_id=1, sequence_counter=None, reserved=None, cemi=<CEMI |>)[源代码]
基类:
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. KNXTunnelingRequestKNXTunnelingRequest fields structure_length
4communication_channel_id
1sequence_counter
Nonereserved
Nonecemi
<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)[源代码]
基类:
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. LcEMILcEMI fields additional_information_length
0additional_information
Noneframe_type
1reserved_1
BitField(1 bit)0repeat_on_error
BitField(1 bit)1broadcast_type
1priority
3ack_request
BitField(1 bit)0confirmation_error
BitField(1 bit)0address_type
1hop_count
BitField(3 bits)6extended_frame_format
BitField(4 bits)0source_address
Nonedestination_address
2563npdu_length
1packet_type
0sequence_type
0reserved_2
BitField(4 bits)0acpi
2data
BitField(6 bits)0
- class scapy.contrib.knx.ServiceFamily(_pkt, /, *, id=None, version=None)[源代码]
基类:
Packet- aliastypes
- class scapy.contrib.knx.TunnelingConnection(_pkt, /, *, knx_layer=2, reserved=None)[源代码]
基类:
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. TunnelingConnectionTunnelingConnection fields knx_layer
2reserved
None