#include <Prophet.h>
21, 4.2
Definition at line 91 of file Prophet.h.
Public Attributes | |
u_int8_t | version |
This version of the PRoPHET Protocol = 1. | |
u_int8_t | flags |
TBD. | |
u_int8_t | result |
Field that is used to indicate whether a response is required to the request message if the outcome is successful. | |
u_int8_t | code |
Field gives further information concerning the result in a response message. | |
u_int16_t | sender_instance |
For messages during the Hello phase with the Hello SYN, Hello SYNACK, and Hello ACK functions, it is the sender's instance number for the link. | |
u_int16_t | receiver_instance |
For messages during the Hello phase with the Hello SYN, Hello SYNACK, and Hello ACK functions, is what the sender believes is the current instance number for the link, allocated by the entity at the far end of the link. | |
u_int32_t | transaction_id |
Used to associate a message with its response message. | |
u_int16_t | submessage_flag:1 |
If S is set then the SubMessage Number field indicates the total number of SubMessage segments that compose the entire message. | |
u_int16_t | submessage_num:15 |
When a message is segmented because it exceeds the MTU of the link layer, each segment will include a submessage number to indicate its position. | |
u_int16_t | length |
Length in octets of this message including headers and message body. |
u_int8_t dtn::Prophet::ProphetHeader::version |
This version of the PRoPHET Protocol = 1.
Definition at line 92 of file Prophet.h.
Referenced by dtn::ProphetTLV::deserialize().
u_int8_t dtn::Prophet::ProphetHeader::flags |
u_int8_t dtn::Prophet::ProphetHeader::result |
Field that is used to indicate whether a response is required to the request message if the outcome is successful.
A value of "NoSuccessAck" indicates that the request message does not expect a response if the outcome is successful, and a value of "AckAll" indicates that a response is expected if the outcome is successful. In both cases a failure response MUST be generated if the request fails.
In a response message, the result field can have two values: "Success," and "Failure". The "Success" results indicates a success response. All messages that belong to the same success response will have the same Transaction Identifier. The "Success" result indicates a success response that may be contained in a single message or the final message of a success response spanning multiple messages.
ReturnReceipt is a result field used to indicate that an acknowledgement is required for the message. The default for Messages is that the controller will not acknowledge responses. In the case where an acknowledgement is required, it will set the Result Field to ReturnReceipt in the header of the Message.
The encoding of the result field is:
NoSuccessAck: Result = 1
AckAll: Result = 2
Success: Result = 3
Failure: Result = 4
ReturnReceipt Result = 5
Definition at line 124 of file Prophet.h.
Referenced by dtn::ProphetTLV::deserialize().
u_int8_t dtn::Prophet::ProphetHeader::code |
Field gives further information concerning the result in a response message.
It is mostly used to pass an error code in a failure response but can also be used to give further information in a success response message or an event message. In a request message, the code field is not used and is set to zero.
If the Code field indicates that the Error TLV is included in the message, further information on the error will be found in the Error TLV, which MUST be the the first TLV after the header.
The encoding is:
PRoPHET Error messages 0x000 - 0x099
Reserved 0x0A0 - 0x0FE
Error TLV in message 0x0FF
Definition at line 143 of file Prophet.h.
Referenced by dtn::ProphetTLV::deserialize().
For messages during the Hello phase with the Hello SYN, Hello SYNACK, and Hello ACK functions, it is the sender's instance number for the link.
It is used to detect when the link comes back up after going down or when the identity of the entity at the other end of the link changes. The instance number is a 16- bit number that is guaranteed to be unique within the recent past and to change when the link or node comes back up after going down. Zero is not a valid instance number. For the RSTACK function, the Sender Instance field is set to the value of the Receiver Instance field from the incoming message that caused the RSTACK function to be generated. Messages sent after the Hello phase is completed should use the sender's instance number for the link.
Definition at line 159 of file Prophet.h.
Referenced by dtn::ProphetTLV::deserialize().
For messages during the Hello phase with the Hello SYN, Hello SYNACK, and Hello ACK functions, is what the sender believes is the current instance number for the link, allocated by the entity at the far end of the link.
If the sender of the message does not know the current instance number at the far end of the link, this field SHOULD be set to zero. For the RSTACK message, the Receiver Instance field is set to the value of the Sender Instance field from the incoming message that caused the RSTACK message to be generated. Messages sent after the Hello phase is completed should use what the sender believes is the current instance number for the link, allocated by the entity at the far end of the link.
Definition at line 174 of file Prophet.h.
Referenced by dtn::ProphetTLV::deserialize().
Used to associate a message with its response message.
This should be set in request messages to a value that is unique for the sending host within the recent past. Reply messages contain the Transaction Indentifier of the request they are responding to.
Definition at line 181 of file Prophet.h.
Referenced by dtn::ProphetTLV::deserialize().
If S is set then the SubMessage Number field indicates the total number of SubMessage segments that compose the entire message.
If it is not set then the SubMessage Number field indicates the sequence number of this SubMessage segment within the whole message. the S field will only be set in the first sub-message of a sequence.
Definition at line 190 of file Prophet.h.
Referenced by dtn::ProphetTLV::deserialize().
When a message is segmented because it exceeds the MTU of the link layer, each segment will include a submessage number to indicate its position.
Alternatively, if it is the first submessage in a sequence of submessages, the S flag will be set and this field will contain the total count of submessage segments.
Definition at line 199 of file Prophet.h.
Referenced by dtn::ProphetTLV::deserialize().
u_int16_t dtn::Prophet::ProphetHeader::length |
Length in octets of this message including headers and message body.
If the message is fragmented, this field contains the length of this submessage.
Definition at line 205 of file Prophet.h.
Referenced by dtn::ProphetTLV::deserialize().