|
knx
ETS configurable knx-stack
|
This is an implementation of the application layer as specified in [4]. More...
#include <secure_application_layer.h>
Public Member Functions | |
| SecureApplicationLayer (DeviceObject &deviceObj, SecurityInterfaceObject &secIfObj, BusAccessUnit &bau) | |
| The constructor. More... | |
| void | groupAddressTable (AddressTableObject &addrTable) |
| void | dataGroupIndication (HopCountType hopType, Priority priority, uint16_t tsap, APDU &apdu) override |
| Somebody send us an APDU via multicast communication. More... | |
| void | dataGroupConfirm (AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU &apdu, bool status) override |
| Report the status of an APDU that we sent via multicast communication back to us. More... | |
| void | dataBroadcastIndication (HopCountType hopType, Priority priority, uint16_t source, APDU &apdu) override |
| void | dataBroadcastConfirm (AckType ack, HopCountType hopType, Priority priority, APDU &apdu, bool status) override |
| void | dataSystemBroadcastIndication (HopCountType hopType, Priority priority, uint16_t source, APDU &apdu) override |
| void | dataSystemBroadcastConfirm (HopCountType hopType, Priority priority, APDU &apdu, bool status) override |
| void | dataIndividualIndication (HopCountType hopType, Priority priority, uint16_t source, APDU &apdu) override |
| void | dataIndividualConfirm (AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU &apdu, bool status) override |
| void | dataConnectedIndication (Priority priority, uint16_t tsap, APDU &apdu) override |
| void | dataConnectedConfirm (uint16_t tsap) override |
| void | loop () |
Public Member Functions inherited from ApplicationLayer | |
| ApplicationLayer (BusAccessUnit &bau) | |
| The constructor. More... | |
| void | transportLayer (TransportLayer &layer) |
| Assigns the TransportLayer to which encoded APDU are submitted to. More... | |
| void | associationTableObject (AssociationTableObject &assocTable) |
| void | connectIndication (uint16_t tsap) |
| void | connectConfirm (uint16_t destination, uint16_t tsap, bool status) |
| void | disconnectIndication (uint16_t tsap) |
| void | disconnectConfirm (Priority priority, uint16_t tsap, bool status) |
| void | groupValueReadRequest (AckType ack, uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl) |
| void | groupValueReadResponse (AckType ack, uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *data, uint8_t dataLength) |
| void | groupValueWriteRequest (AckType ack, uint16_t asap, Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *data, uint8_t dataLength) |
| void | individualAddressWriteRequest (AckType ack, HopCountType hopType, const SecurityControl &secCtrl, uint16_t newaddress) |
| void | individualAddressReadRequest (AckType ack, HopCountType hopType, const SecurityControl &secCtrl) |
| void | individualAddressReadResponse (AckType ack, HopCountType hopType, const SecurityControl &secCtrl) |
| void | individualAddressSerialNumberReadRequest (AckType ack, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *serialNumber) |
| void | individualAddressSerialNumberReadResponse (AckType ack, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *serialNumber, uint16_t domainAddress) |
| void | individualAddressSerialNumberWriteRequest (AckType ack, HopCountType hopType, const SecurityControl &secCtrl, uint8_t *serialNumber, uint16_t newaddress) |
| void | deviceDescriptorReadRequest (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t descriptorType) |
| void | deviceDescriptorReadResponse (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t descriptorType, uint8_t *deviceDescriptor) |
| void | connectRequest (uint16_t destination, Priority priority) |
| void | disconnectRequest (Priority priority) |
| bool | isConnected () |
| void | restartRequest (AckType ack, Priority priority, HopCountType hopType, const SecurityControl &secCtrl) |
| void | restartResponse (AckType ack, Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint8_t errorCode, uint16_t processTime) |
| void | propertyValueReadRequest (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex) |
| void | propertyValueReadResponse (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t *data, uint8_t length) |
| void | propertyValueExtReadResponse (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint16_t objectType, uint8_t objectInstance, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t *data, uint8_t length) |
| void | propertyValueExtWriteConResponse (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint16_t objectType, uint8_t objectInstance, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t returnCode) |
| void | propertyValueWriteRequest (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t *data, uint8_t length) |
| void | adcReadResponse (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t channelNr, uint8_t readCount, int16_t value) |
| void | functionPropertyStateResponse (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t *resultData, uint8_t resultLength) |
| void | functionPropertyExtStateResponse (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint16_t objectType, uint8_t objectInstance, uint16_t propertyId, uint8_t *resultData, uint8_t resultLength) |
| void | propertyDescriptionReadRequest (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t propertyIndex) |
| void | propertyDescriptionReadResponse (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex, uint8_t propertyId, uint8_t propertyIndex, bool writeEnable, uint8_t type, uint16_t maxNumberOfElements, uint8_t access) |
| void | propertyExtDescriptionReadResponse (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint16_t objectType, uint16_t objectInstance, uint16_t propertyId, uint16_t propertyIndex, uint8_t descriptionType, bool writeEnable, uint8_t type, uint16_t maxNumberOfElements, uint8_t access) |
| void | memoryReadRequest (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress) |
| void | memoryReadResponse (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress, uint8_t *data) |
| void | memoryRouterReadResponse (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress, uint8_t *data) |
| void | memoryRoutingTableReadResponse (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress, uint8_t *data) |
| void | memoryExtReadResponse (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, ReturnCodes code, uint8_t number, uint32_t memoryAddress, uint8_t *data) |
| void | memoryExtWriteResponse (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, ReturnCodes code, uint8_t number, uint32_t memoryAddress, uint8_t *memoryData) |
| void | memoryWriteRequest (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint16_t memoryAddress, uint8_t *data) |
| void | userMemoryReadRequest (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint32_t memoryAddress) |
| void | userMemoryReadResponse (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint32_t memoryAddress, uint8_t *memoryData) |
| void | userMemoryWriteRequest (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, uint32_t memoryAddress, uint8_t *memoryData) |
| void | userManufacturerInfoReadRequest (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl) |
| void | userManufacturerInfoReadResponse (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t *info) |
| void | authorizeRequest (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint32_t key) |
| void | authorizeResponse (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t level) |
| void | keyWriteRequest (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t level, uint32_t key) |
| void | keyWriteResponse (AckType ack, Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t level) |
| void | systemNetworkParameterReadResponse (Priority priority, HopCountType hopType, const SecurityControl &secCtrl, uint16_t objectType, uint16_t propertyId, uint8_t *testInfo, uint16_t testInfoLength, uint8_t *testResult, uint16_t testResultLength) |
| void | domainAddressSerialNumberReadResponse (Priority priority, HopCountType hopType, const SecurityControl &secCtrl, const uint8_t *rfDoA, const uint8_t *knxSerialNumber) |
| void | IndividualAddressSerialNumberReadResponse (Priority priority, HopCountType hopType, const SecurityControl &secCtrl, const uint8_t *domainAddress, const uint8_t *knxSerialNumber) |
Protected Member Functions | |
| void | dataGroupRequest (AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU &apdu, const SecurityControl &secCtrl) override |
| void | dataBroadcastRequest (AckType ack, HopCountType hopType, Priority priority, APDU &apdu, const SecurityControl &secCtrl) override |
| void | dataSystemBroadcastRequest (AckType ack, HopCountType hopType, Priority priority, APDU &apdu, const SecurityControl &secCtrl) override |
| void | dataIndividualRequest (AckType ack, HopCountType hopType, Priority priority, uint16_t destination, APDU &apdu, const SecurityControl &secCtrl) override |
| void | dataConnectedRequest (uint16_t tsap, Priority priority, APDU &apdu, const SecurityControl &secCtrl) override |
Protected Member Functions inherited from ApplicationLayer | |
| void | dataGroupIndication (HopCountType hopType, Priority priority, uint16_t tsap, APDU &apdu, const SecurityControl &secCtrl) |
| void | dataGroupConfirm (AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU &apdu, const SecurityControl &secCtrl, bool status) |
| void | dataBroadcastIndication (HopCountType hopType, Priority priority, uint16_t source, APDU &apdu, const SecurityControl &secCtrl) |
| void | dataBroadcastConfirm (AckType ack, HopCountType hopType, Priority priority, APDU &apdu, const SecurityControl &secCtrl, bool status) |
| void | dataSystemBroadcastIndication (HopCountType hopType, Priority priority, uint16_t source, APDU &apdu, const SecurityControl &secCtrl) |
| void | dataSystemBroadcastConfirm (HopCountType hopType, Priority priority, APDU &apdu, const SecurityControl &secCtrl, bool status) |
| void | dataIndividualIndication (HopCountType hopType, Priority priority, uint16_t source, APDU &apdu, const SecurityControl &secCtrl) |
| void | dataIndividualConfirm (AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU &apdu, const SecurityControl &secCtrl, bool status) |
| void | dataConnectedIndication (Priority priority, uint16_t tsap, APDU &apdu, const SecurityControl &secCtrl) |
| void | dataConnectedConfirm (uint16_t tsap, const SecurityControl &secCtrl) |
| uint16_t | getConnectedTsasp () |
Additional Inherited Members | |
Protected Attributes inherited from ApplicationLayer | |
| TransportLayer * | _transportLayer = 0 |
Static Protected Attributes inherited from ApplicationLayer | |
| static const SecurityControl | noSecurity {.toolAccess = false, .dataSecurity = DataSecurity::None} |
This is an implementation of the application layer as specified in [4].
It provides methods for the BusAccessUnit to do different things and translates this call to an APDU and calls the correct method of the TransportLayer. It also takes calls from TransportLayer, decodes the submitted APDU and calls the coresponding methods of the BusAccessUnit class.
Definition at line 22 of file secure_application_layer.h.
| SecureApplicationLayer::SecureApplicationLayer | ( | DeviceObject & | deviceObj, |
| SecurityInterfaceObject & | secIfObj, | ||
| BusAccessUnit & | bau | ||
| ) |
The constructor.
| assocTable | The AssociationTable is used to translate between asap (i.e. group objects) and group addresses. |
| bau | methods are called here depending of the content of the APDU |
Definition at line 26 of file secure_application_layer.cpp.
|
overridevirtual |
Reimplemented from ApplicationLayer.
Definition at line 130 of file secure_application_layer.cpp.
|
overridevirtual |
Reimplemented from ApplicationLayer.
Definition at line 103 of file secure_application_layer.cpp.
|
overrideprotectedvirtual |
Reimplemented from ApplicationLayer.
Definition at line 348 of file secure_application_layer.cpp.
|
overridevirtual |
Reimplemented from ApplicationLayer.
Definition at line 312 of file secure_application_layer.cpp.
|
overridevirtual |
Reimplemented from ApplicationLayer.
Definition at line 285 of file secure_application_layer.cpp.
|
overrideprotectedvirtual |
Reimplemented from ApplicationLayer.
Definition at line 425 of file secure_application_layer.cpp.
|
overridevirtual |
Report the status of an APDU that we sent via multicast communication back to us.
See 3.2 of [1]. See also ApplicationLayer::dataGroupConfirm and TransportLayer::dataGroupRequest. This method is called by the TransportLayer.
| tsap | used the find the correct GroupObject with the help of the AssociationTableObject. See 3.1.1 of [2] |
| apdu | The submitted APDU. |
| priority | The Priority of the received request. |
| hopType | Should routing be endless or should the NetworkLayer::hopCount be used? See also HopCountType. |
| status | Was the request successful? |
| ack | Did we want a DataLinkLayer acknowledgement? See AckType. |
Reimplemented from ApplicationLayer.
Definition at line 70 of file secure_application_layer.cpp.
|
overridevirtual |
Somebody send us an APDU via multicast communication.
See 3.2 of [1]. See also ApplicationLayer::dataGroupConfirm and TransportLayer::dataGroupRequest. This method is called by the TransportLayer.
| tsap | used the find the correct GroupObject with the help of the AssociationTableObject. See 3.1.1 of [2] |
| apdu | The submitted APDU. |
| priority | The Priority of the received request. |
| hopType | Should routing be endless or should the NetworkLayer::hopCount be used? See also HopCountType. |
Reimplemented from ApplicationLayer.
Definition at line 40 of file secure_application_layer.cpp.
|
overrideprotectedvirtual |
Reimplemented from ApplicationLayer.
Definition at line 320 of file secure_application_layer.cpp.
|
overridevirtual |
Reimplemented from ApplicationLayer.
Definition at line 250 of file secure_application_layer.cpp.
|
overridevirtual |
Reimplemented from ApplicationLayer.
Definition at line 223 of file secure_application_layer.cpp.
|
overrideprotectedvirtual |
Reimplemented from ApplicationLayer.
Definition at line 400 of file secure_application_layer.cpp.
|
overridevirtual |
Reimplemented from ApplicationLayer.
Definition at line 190 of file secure_application_layer.cpp.
|
overridevirtual |
Reimplemented from ApplicationLayer.
Definition at line 163 of file secure_application_layer.cpp.
|
overrideprotectedvirtual |
Reimplemented from ApplicationLayer.
Definition at line 374 of file secure_application_layer.cpp.
| void SecureApplicationLayer::groupAddressTable | ( | AddressTableObject & | addrTable | ) |
Definition at line 33 of file secure_application_layer.cpp.
| void SecureApplicationLayer::loop | ( | ) |
Definition at line 1318 of file secure_application_layer.cpp.