Acknowledgment rules – Echelon LonTal Stack User Manual
Page 56
44
Creating a LonTalk Stack Serial MIP Driver
• All length fields do not count for escape prefixes. Instead, they reflect the
length of the real data stream above the link-layer protocol. All length
fields do not account for the checksum.
• Broken code packets (code packets with missing or corrupt bytes) are not
responded to at all, and they rely on time-out mechanisms for
re-transmission.
• Broken message streams are responded to as soon as the error condition
is observed. The response is the CpFail code packet.
Acknowledgment Rules
The Ack bit is used to send a success response to a previous transfer, specifically
transfers that send data that is above the LLP (non-LLP data). These are
transfers of messages and transfers of local network interface commands.
To reduce traffic, not all data transfers require acknowledgement. Following are
the acknowledgement rules:
• If a transfer requires an acknowledgment and there is no other data that
needs to be sent, a CpNull packet is sent with the Pass/Ack bit set.
Otherwise, if there is outgoing traffic to be sent the Ack bit will be
included in the following transfer. This is true for both uplink and
downlink data messages.
• Code packets that do not require an acknowledgment via the Ack bit are
packets that result in an immediate response anyway. The response
implies acknowledgment. The following table lists these types of code
packets:
Code Packet
Description
CpMsgReq
The Serial MIP will respond with either the
CpMsgAck, or a criss-cross could occur and an
unrelated code packet will be sent by the Serial
MIP.
CpMsgAck
The host does not need to acknowledge this
message. Instead it provides an implied
acknowledgement by sending the CpMsg code
packet followed by a message packet
• Data that is sent and requires acknowledgement will persist in the source
until the acknowledgment is received. While the persistent data is
waiting for acknowledgement, the Acknowledge Wait timeout, which is
300ms for the Serial MIP and the driver, causes the persistent data to be
re-sent.