- UDP Protocol * Added Synthesis Report for IPv4 Parser with different buffer sizes * Small fixes in IPv4 Handler * Added addsub Entity * Added Checksum entity * Implemented RTPS Parser - Compiles in Modelsim * Backup Version of RTPS Parser to extract and implement UDP Checksuming * Updated RTPS Package * Added VHDL comilation test file
87 lines
3.7 KiB
Plaintext
87 lines
3.7 KiB
Plaintext
RULES 8.4.2
|
|
===========
|
|
|
|
GENERAL
|
|
-------
|
|
* All communications must take place using RTPS Messages
|
|
* All implementations must implement the RTPS Message Receiver
|
|
* The timing characteristics of all implementations must be tunable
|
|
* Implementations must implement the Simple Participant and Endpoint Discovery Protocols
|
|
|
|
WRITER
|
|
------
|
|
* Writers must not send data out-of-order
|
|
* Writers must include in-line QoS values if requested by a Reader
|
|
* Writers must send periodic HEARTBEAT Messages (reliable only)
|
|
* Writers must eventually respond to a negative acknowledgment (reliable only)
|
|
* Sending Heartbeats and Gaps with Writer Group Information (Writer belonging to a Group)
|
|
|
|
READER
|
|
------
|
|
A best-effort Reader is completely passive as it only receives data and does not send messages itself.
|
|
Therefore, the requirements below only apply to reliable Readers.
|
|
* Readers must respond eventually after receiving a HEARTBEAT with final flag not set
|
|
* Readers must respond eventually after receiving a HEARTBEAT that indicates a sample is missing
|
|
* Once acknowledged, always acknowledged
|
|
* Readers can only send an ACKNACK Message in response to a HEARTBEAT Message
|
|
|
|
RELIABILITY
|
|
===========
|
|
* Best Effort Writer can only be matched with Best Effort Reader
|
|
* Stateless Reader can only be Best Effort (maintains absolutely no state, does not handle duplicate and out-of-order changes)
|
|
|
|
STATELESS WRITER
|
|
================
|
|
Note that the processing of this message uses the reply locators in the RTPS Receiver.
|
|
This is the only source of information for the StatelessWriter to determine where to send the reply to.
|
|
Proper functioning of the protocol requires that the RTPS Reader inserts an InfoReply Submessage ahead of the AckNack such that these fields are properly set.
|
|
|
|
Writer Liveness Protocol
|
|
========================
|
|
ENTITYID_P2P_BUILTIN_PARTICIPANT_MESSAGE_WRITER
|
|
ENTITYID_P2P_BUILTIN_PARTICIPANT_MESSAGE_READER
|
|
|
|
OPTIONAL 8.4.14
|
|
===============
|
|
Optional features may not be supported by all RTPS implementations.
|
|
|
|
* LARGE DATA (Fragmented Data)
|
|
|
|
--------------------------------------------
|
|
|
|
ENTITYID_UKNOWN also for Built-In?
|
|
Ignore Participant/Topic/Publication/Subscription (handle argument of Sampleinfo)
|
|
|
|
ENDIANNESS
|
|
==========
|
|
You have to see what datatypes PSM maps to each element.
|
|
If the datatype is bigger than a byte, byte swaping has to occur.
|
|
The elements of an array are in order (but the elements themselves may need to be swapped if bigger than a Byte)
|
|
|
|
ENDPOINT FIFO PACKET FORMAT
|
|
===========================
|
|
|
|
0...2...........8...............16..............24..............32
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
| LENTGH |
|
|
+---------------+---------------+---------------+---------------+
|
|
| OPCODE | FLAGS | UDP_PORT |
|
|
+---------------+---------------+---------------+---------------+
|
|
| IPv4_ADDR |
|
|
+---------------------------------------------------------------+
|
|
| ENTITYID |
|
|
+---------------------------------------------------------------+
|
|
| |
|
|
+ Sequence Number [only for DATA Submessage] +
|
|
| |
|
|
+---------------------------------------------------------------+
|
|
| |
|
|
~ PAYLOAD (SUBMESSAGE CONTENT) ~
|
|
| |
|
|
+---------------------------------------------------------------+
|
|
|
|
ENDPOINT_ID
|
|
===========
|
|
|
|
MSB...........LSB
|
|
READERS...WRITERS |