Minor declaration & documentation fixes

This commit is contained in:
Greek 2021-11-02 11:29:09 +01:00
parent e33d982182
commit ee67fe9493
4 changed files with 483 additions and 440 deletions

5
.gitignore vendored
View File

@ -1,7 +1,6 @@
#Ignore List #Ignore List
/syn/** /syn/**
/sim/** /sim/**
/download/**
*.NPPSESS *.NPPSESS
#Unignore Directories (Needed to unignore files in Subdirectories) #Unignore Directories (Needed to unignore files in Subdirectories)
@ -24,3 +23,7 @@
!*.qsf !*.qsf
#QSYS File #QSYS File
!*.qsys !*.qsys
#Delete download from existence
/download
/download/**

View File

@ -71,105 +71,110 @@ RTPS IN/OUT FORMAT
================== ==================
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------------+
| SRC_IPv4_ADDR | | SRC_IPv4_ADDR |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
| DEST_IPv4_ADDR | | DEST_IPv4_ADDR |
+-----------------------------+-------------------------------+ +-------------------------------+-------------------------------+
| SRC_UDP_PORT | DEST_UDP_PORT | | SRC_UDP_PORT | DEST_UDP_PORT |
+-----------------------------+-------------------------------+ +-------------------------------+-------------------------------+
| PACKET_LENGTH | | PACKET_LENGTH |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
| | | |
~ PACKET ~ ~ PACKET ~
| | | |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
ENDPOINT PACKET FORMAT ENDPOINT PACKET FORMAT
====================== ======================
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------+---------------+-------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------+---------------+-------------------------------+
| OPCODE | FLAGS | SRC_UDP_PORT | | OPCODE | FLAGS | SRC_UDP_PORT |
+-------------+---------------+-------------------------------+ +---------------+---------------+-------------------------------+
| SRC_IPv4_ADDR | | SRC_IPv4_ADDR |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
| | | |
+ + + +
| SRC_GUIDPREFIX | | SRC_GUIDPREFIX |
+ + + +
| | | |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
| SRC_ENTITYID | | SRC_ENTITYID |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
| DEST_ENTITYID [only for Builtin Destinations] | | DEST_ENTITYID [only for Builtin Destinations] |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
| | | |
+ Sequence Number [only for DATA Submessage] + + Sequence Number [only for DATA Submessage] +
| | | |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
| | | |
+ Timestamp + + Timestamp +
| [only for DATA Submessage and User Destinations] | | [only for DATA Submessage and User Destinations] |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
| | | |
~ PAYLOAD (SUBMESSAGE CONTENT) ~ ~ PAYLOAD (SUBMESSAGE CONTENT) ~
| | | |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
HEARTBEAT PAYLOAD HEARTBEAT PAYLOAD
----------------- -----------------
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------------+
| | | |
+ FirstSN + + FirstSN +
| | | |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
| | | |
+ LastSN + + LastSN +
| | | |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
| Count | | Count |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
ACKNACK PAYLOAD ACKNACK PAYLOAD
--------------- ---------------
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------------+
| | | |
+ ReaderSNState.BASE + + ReaderSNState.BASE +
| | | |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
| ReaderSNState.NumBits | | ReaderSNState.NumBits |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
| [ReaderSNState.Bitmap] x 0-8 | | [ReaderSNState.Bitmap] x 0-8 |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
| Count | | Count |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
GAP PAYLOAD GAP PAYLOAD
----------- -----------
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------------+
| | | |
+ GapStart + + GapStart +
| | | |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
| | | |
+ GapList.BASE + + GapList.BASE +
| | | |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
| GapList.NumBits | | GapList.NumBits |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
| [GapList.Bitmap] x 0-8 | | [GapList.Bitmap] x 0-8 |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
| UNUSED | | UNUSED |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
ENDPOINT_ID ENDPOINT_ID
=========== ===========
@ -187,56 +192,57 @@ HISTORY: kind = KEEP_LAST, depth = 1
PARTICICPANT DATA PARTICICPANT DATA
================= =================
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------------+
00| NEXT_ADDRESS | 00| NEXT_ADDRESS |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
01| | 01| |
+ + + +
02| GUIDPREFIX | 02| GUIDPREFIX |
+ + + +
03| | 03| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
04| META_IPv4_ADDRESS | 04| META_IPv4_ADDRESS |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
05| DEFAULT_IPv4_ADDRESS | 05| DEFAULT_IPv4_ADDRESS |
+-----------------------------+-------------------------------+ +-------------------------------+-------------------------------+
06| META_UDP_PORT | DEFAULT_UDP_PORT | 06| META_UDP_PORT | DEFAULT_UDP_PORT |
+-----------------------------+-------------------------------+ +-------------------------------+-------------------------------+
07| | 07| |
+ SPDP_SEQ_NR + + SPDP_SEQ_NR +
08| | 08| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
09| | 09| |
+ LEASE_DURATION + + LEASE_DURATION +
10| | 10| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
11| | 11| |
+ LEASE_DEADLINE + + LEASE_DEADLINE +
12| | 12| |
+-------------------------------------------------------+-+-+-+ +---------------------------------------------------------+-+-+-+
13| UNUSED |P|S|M| 13| UNUSED |P|S|M|
+-------------------------------------------------------+-+-+-+ +---------------------------------------------------------+-+-+-+
14| | 14| |
+ ACKNACK_RES_TIME + + ACKNACK_RES_TIME +
15| | 15| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
16| | 16| |
+ HEARTBEAT_RES_TIME + + HEARTBEAT_RES_TIME +
17| | 17| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
18| | 18| |
+ PUBLICATION_SEQ_NR + + PUBLICATION_SEQ_NR +
19| | 19| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
20| | 20| |
+ SUBSCRIPTION_SEQ_NR + + SUBSCRIPTION_SEQ_NR +
21| | 21| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
22| | 22| |
+ MESSAGE_SEQ_NR + + MESSAGE_SEQ_NR +
23| | 23| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
M...Send Message Data (Liveliness Update) M...Send Message Data (Liveliness Update)
S...Send Subriber Data S...Send Subriber Data
@ -246,26 +252,28 @@ P...Send Publisher Data
ENDPOINT MATCH FRAME ENDPOINT MATCH FRAME
==================== ====================
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------------+
00| OPCODE | 00| OPCODE |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
01| | 01| |
+ + + +
02| GUIDPREFIX | 02| GUIDPREFIX |
+ + + +
03| | 03| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
04| ENTITYID | 04| ENTITYID |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
05| IPv4_ADDRESS | 05| IPv4_ADDRESS |
+-----------------------------+-------------------------------+ +-------------------------------+-------------------------------+
06| UDP_PORT | READER_FLAGS | 06| UDP_PORT | READER_FLAGS |
+-----------------------------+-------------------------------+ +-------------------------------+-------------------------------+
READER_FLAGS READER_FLAGS
------------ ------------
16..............8...............0 15............8...............0
| | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-------------------------+-+-+-+ +-------------------------+-+-+-+
| UNUSED |B|H|Q| | UNUSED |B|H|Q|
@ -277,46 +285,49 @@ B...Reader has RELIABILITY BEST_EFFORT
ENDPOINT UNMATCH FRAME ENDPOINT UNMATCH FRAME
====================== ======================
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------------+
00| OPCODE | 00| OPCODE |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
01| | 01| |
+ + + +
02| GUIDPREFIX | 02| GUIDPREFIX |
+ + + +
03| | 03| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
04| ENTITYID | 04| ENTITYID |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
PARTICIPANT UNMATCH FRAME PARTICIPANT UNMATCH FRAME
========================= =========================
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------------+
00| OPCODE | 00| OPCODE |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
01| | 01| |
+ + + +
02| GUIDPREFIX | 02| GUIDPREFIX |
+ + + +
03| | 03| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
ENDPOINT LIVELINESS UPDATE ENDPOINT LIVELINESS UPDATE
========================== ==========================
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------------+
00| OPCODE | 00| OPCODE |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
01| | 01| |
+ + + +
02| GUIDPREFIX | 02| GUIDPREFIX |
+ + + +
03| | 03| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
LOCAL ENDPOINT BUFFER LOCAL ENDPOINT BUFFER
===================== =====================
@ -324,72 +335,75 @@ LOCAL ENDPOINT BUFFER
READER READER
------ ------
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------------+
00| ENTITYID | 00| ENTITYID |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
01| | 01| |
+ + + +
02| GUIDPREFIX | 02| GUIDPREFIX |
+ + + +
03| | 03| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
04| IPv4_ADDRESS | [Reliable Only] 04| IPv4_ADDRESS | [Reliable Only]
+-----------------------------+-------------------------------+ +-------------------------------+-------------------------------+
05| UDP_PORT | UNUSED | [Reliable Only] 05| UDP_PORT | UNUSED | [Reliable Only]
+-----------------------------+-------------------------------+ +-------------------------------+-------------------------------+
06| | 06| |
+ NEXT_SEQ_NR + + NEXT_SEQ_NR +
07| | 07| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
08| | 08| |
+ LEASE_DEADLINE + + LEASE_DEADLINE +
09| | 09| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
10| | 10| |
+ RES_TIME + [Reliable Only] + RES_TIME + [Reliable Only]
11| | 11| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
WRITER WRITER
------ ------
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------------+
00| ENTITYID | 00| ENTITYID |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
01| | 01| |
+ + + +
02| GUIDPREFIX | 02| GUIDPREFIX |
+ + + +
03| | 03| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
04| IPv4_ADDRESS | 04| IPv4_ADDRESS |
+-----------------------------+-------------------------------+ +-------------------------------+-------------------------------+
05| UDP_PORT | READER_FLAGS | 05| UDP_PORT | READER_FLAGS |
+-----------------------------+-------------------------------+ +-------------------------------+-------------------------------+
06| | 06| |
+ LEASE_DEADLINE + [Reliable Only] + LEASE_DEADLINE + [Reliable Only]
07| | 07| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
08| | 08| |
+ RES_TIME + [Reliable Only] + RES_TIME + [Reliable Only]
09| | 09| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
10| | 10| |
+ ACK_SEQ_NR_BASE + [Reliable Only] + ACK_SEQ_NR_BASE + [Reliable Only]
11| | 11| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
12| | 12| |
+ REQ_SEQ_NR_BASE + [Reliable Only] + REQ_SEQ_NR_BASE + [Reliable Only]
13| | 13| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
14| REQ_BITMAP | [Reliable Only] 14| REQ_BITMAP | [Reliable Only]
+-------------------------------------------------------------+ +---------------------------------------------------------------+
READER_FLAGS READER_FLAGS
------------ ------------
16..............8...............0 15............8...............0
| | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-------------------------+-+-+-+ +-------------------------+-+-+-+
| UNUSED |B|H|Q| | UNUSED |B|H|Q|
@ -404,38 +418,40 @@ HISTORY CACHE
READER READER
------ ------
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------------+
00| STATUS_INFO | 00| STATUS_INFO |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
01| | 01| |
+ TIMESTAMP + + TIMESTAMP +
02| | 02| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
03| | 03| |
+ LIFESPAN_DEADLINE + + LIFESPAN_DEADLINE +
04| | 04| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
05| PAYLOAD_ADDRESS | 05| PAYLOAD_ADDRESS |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
06| INSTANCE_ADDRESS | [only if WITH_KEY] 06| INSTANCE_ADDRESS | [only if WITH_KEY]
+-------------------------------------------------------------+ +---------------------------------------------------------------+
07| DISPOSED_GENERATION_COUNT | 07| DISPOSED_GENERATION_COUNT |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
08| NO_WRITERS_GENERATION_COUNT | 08| NO_WRITERS_GENERATION_COUNT |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
09| PREV_ADDRESS | 09| PREV_ADDRESS |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
10| NEXT_ADDRESS | 10| NEXT_ADDRESS |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
STATUS INFO STATUS INFO
----------- -----------
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-+-+-+-------------------------------------------------+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+---------------------------------------------------+-+-+-+
|R|P|A| UNUSED |F|U|D| |R|P|A| UNUSED |F|U|D|
+-+-+-+-------------------------------------------------+-+-+-+ +-+-+-+---------------------------------------------------+-+-+-+
R...Sample has been Read R...Sample has been Read
P...Sample has associated DATA Payload P...Sample has associated DATA Payload
@ -450,38 +466,40 @@ NOTE: The Key Hash Flag is actually only needed during the ADD_CACHE_CHANGE proc
WRITER WRITER
------ ------
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------------+
00| STATUS_INFO | 00| STATUS_INFO |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
01| | 01| |
+ SEQ_NR + + SEQ_NR +
02| | 02| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
03| | 03| |
+ TIMESTAMP + + TIMESTAMP +
04| | 04| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
05| | 05| |
+ LIFESPAN_DEADLINE + [only if LIFESPAN /= INFINITE] + LIFESPAN_DEADLINE + [only if LIFESPAN /= INFINITE]
06| | 06| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
07| PAYLOAD_ADDRESS | 07| PAYLOAD_ADDRESS |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
08| INSTANCE_ADDRESS | [only if WITH_KEY] 08| INSTANCE_ADDRESS | [only if WITH_KEY]
+-------------------------------------------------------------+ +---------------------------------------------------------------+
09| PREV_ADDRESS | 09| PREV_ADDRESS |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
10| NEXT_ADDRESS | 10| NEXT_ADDRESS |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
STATUS INFO STATUS INFO
----------- -----------
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-+-+-+-------------------------------------------------+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+---------------------------------------------------+-+-+-+
|R|P|A| UNUSED |F|U|D| |R|P|A| UNUSED |F|U|D|
+-+-+-+-------------------------------------------------+-+-+-+ +-+-+-+---------------------------------------------------+-+-+-+
R...Sample has been ACKed R...Sample has been ACKed
P...Sample has associated DATA Payload P...Sample has associated DATA Payload
@ -494,32 +512,34 @@ D...DisposedFlag (1:1 PID_STATUS_INFO Mapping)
PAYLOAD MEMORY PAYLOAD MEMORY
============== ==============
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------------+
00| NEXT_ADDRESS | 00| NEXT_ADDRESS |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
01| | 01| |
~ PAYLOAD ~ ~ PAYLOAD ~
**| | **| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
DDS ENTITY INPUT DDS ENTITY INPUT
================ ================
READER READER
------ ------
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------------+
00| STATUS_INFO | 00| STATUS_INFO |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
01| | 01| |
+ TIMESTAMP + + TIMESTAMP +
02| | 02| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
03| | 03| |
+ LIFESPAN_DEADLINE + + LIFESPAN_DEADLINE +
04| | 04| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
05| | 05| |
+ + + +
06| | 06| |
@ -527,21 +547,22 @@ READER
07| | 07| |
+ + + +
08| | 08| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
09| WRITER_ID | 09| WRITER_ID |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
10| | 10| |
~ PAYLOAD ~ ~ PAYLOAD ~
**| | **| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
STATUS INFO STATUS INFO
----------- -----------
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-+-+-+-+-----------------------------------------------+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-------------------------------------------------+-+-+-+
| |P| |K| UNUSED |F|U|D| | |P| |K| UNUSED |F|U|D|
+-+-+-+-+-----------------------------------------------+-+-+-+ +-+-+-+-+-------------------------------------------------+-+-+-+
P...Sample has associated DATA Payload P...Sample has associated DATA Payload
K...Key Hash available K...Key Hash available
@ -556,10 +577,11 @@ INSTANCE MEMORY
READER READER
------ ------
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------------+
00| NEXT_ADDRESS | 00| NEXT_ADDRESS |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
01| | 01| |
+ + + +
02| | 02| |
@ -567,31 +589,32 @@ READER
03| | 03| |
+ + + +
04| | 04| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
05| STATUS_INFO | 05| STATUS_INFO |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
06| SAMPLE_COUNT | 06| SAMPLE_COUNT |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
07| DISPOSED_GENERATION_COUNT | 07| DISPOSED_GENERATION_COUNT |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
08| NO_WRITERS_GENERATION_COUNT | 08| NO_WRITERS_GENERATION_COUNT |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
09| | 09| |
+ IGNORE_DEADLINE + [only TIME_BASED_FILTER] + IGNORE_DEADLINE + [only TIME_BASED_FILTER]
10| | 10| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
11| | 11| |
~ WRITER_BITMAP ~ ~ WRITER_BITMAP ~
**| | **| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
STATUS INFO STATUS INFO
----------- -----------
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------+-+-+-+-+-+-+
| UNUSED |G|M|V|L|W|D| | UNUSED |G|M|V|L|W|D|
+-------------------------------------------------+-+-+-+-+-+-+ +---------------------------------------------------+-+-+-+-+-+-+
D...NOT_ALIVE_DISPOSED D...NOT_ALIVE_DISPOSED
W...NOT_ALIVE_NO_WRITERS W...NOT_ALIVE_NO_WRITERS
@ -603,10 +626,11 @@ G...GENERATE SAMPLE
WRITER WRITER
------ ------
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------------+
00| NEXT_ADDRESS | 00| NEXT_ADDRESS |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
01| | 01| |
+ + + +
02| | 02| |
@ -614,22 +638,23 @@ WRITER
03| | 03| |
+ + + +
04| | 04| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
05| STATUS_INFO | 05| STATUS_INFO |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
06| SAMPLE_COUNT | 06| SAMPLE_COUNT |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
07| ACK_COUNT | 07| ACK_COUNT |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
STATUS INFO STATUS INFO
----------- -----------
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-------------------------------------------------------+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------+-+-+-+
| UNUSED |L|U|D| | UNUSED |L|U|D|
+-------------------------------------------------------+-+-+-+ +---------------------------------------------------------+-+-+-+
D...DISPOSED D...DISPOSED
W...UNREGISTERED W...UNREGISTERED
@ -638,17 +663,19 @@ L...LIVELINESS FLAG
OUTPUT DATA OUTPUT DATA
=========== ===========
31............24..............16..............8...............0 31............24..............16..............8...............0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------------------------------------------------------+
00| SRC_IPv4_ADDRESS | 00| SRC_IPv4_ADDRESS |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
01| DEST_IPv4_ADDRESS | 01| DEST_IPv4_ADDRESS |
+-----------------------------+-------------------------------+ +-------------------------------+-------------------------------+
02| SRC_UDP_PORT | DEST_UDP_PORT | 02| SRC_UDP_PORT | DEST_UDP_PORT |
+-----------------------------+-------------------------------+ +-------------------------------+-------------------------------+
03| | 03| |
~ RTPS_MESSAGE ~ ~ RTPS_MESSAGE ~
**| | **| |
+-------------------------------------------------------------+ +---------------------------------------------------------------+
TOPIC KEYS TOPIC KEYS
@ -694,6 +721,17 @@ implementations must include an InfoTimestamp Submessage with every update from
The ParameterList may contain multiple Parameters with the same value for the parameterId. The ParameterList may contain multiple Parameters with the same value for the parameterId.
This is used to provide a collection of values for that kind of Parameter. This is used to provide a collection of values for that kind of Parameter.
9.4.2.11 (DDSI-RTPS)
For alignment purposes, the CDR stream is logically reset for each parameter value (i.e., no initial padding is
required) after the parameterId and length are serialized.
7.4.3.5.2 Encoding of Optional Members (DDS-XTYPES)
PLAIN_CDR serializes optional members by prepending either a ShortMemberHeader or a 12
byte LongMemberHeader. See Clause 7.4.1.1.5.2. The associated size is set to zero if the
optional member is not present or to the actual serialized size if the member is present. These
headers are serialized at a 4-byte offset relative to the current stream origin (XCDR.origin) and
adjust the alignment origin to zero for the serialization of the member itself.
DDS_Advanced_Tutorial_2006_00-T1-2_Pardo.pdf DDS_Advanced_Tutorial_2006_00-T1-2_Pardo.pdf
P.16 P.16

View File

@ -395,12 +395,12 @@ architecture arch of rtps_builtin_endpoint is
alias header_flags : std_logic_vector(7 downto 0) is data_in(23 downto 16); alias header_flags : std_logic_vector(7 downto 0) is data_in(23 downto 16);
alias header_udp_port : std_logic_vector(15 downto 0) is data_in(15 downto 0); alias header_udp_port : std_logic_vector(15 downto 0) is data_in(15 downto 0);
-- RTPS PARAMETER LIST HEADER -- RTPS PARAMETER LIST HEADER
alias parameter_id : std_logic_vector(15 downto 0) is data_in(31 downto 16); alias parameter_id : std_logic_vector(PARAMETER_ID_WIDTH-1 downto 0) is data_in(WORD_WIDTH-1 downto WORD_WIDTH-PARAMETER_ID_WIDTH);
alias parameter_length : std_logic_vector(15 downto 0) is data_in(15 downto 0); alias parameter_length : std_logic_vector(PARAMETER_LENGTH_WIDTH-1 downto 0) is data_in(PARAMETER_LENGTH_WIDTH-1 downto 0);
alias must_understand : std_logic is parameter_id(14); alias must_understand : std_logic is parameter_id(PARAMETER_ID_WIDTH-1);
-- RTPS DATA PAYLOAD HEADER -- RTPS DATA PAYLOAD HEADER
alias representation_id : std_logic_vector(15 downto 0) is data_in(31 downto 16); alias representation_id : std_logic_vector(PAYLOAD_REPRESENTATION_ID_WIDTH-1 downto 0) is data_in(WORD_WIDTH-1 downto WORD_WIDTH-PAYLOAD_REPRESENTATION_ID_WIDTH);
alias representation_options : std_logic_vector(15 downto 0) is data_in(15 downto 0); alias representation_options : std_logic_vector(PAYLOAD_REPRESENTATION_ID_WIDTH-1 downto 0) is data_in(PAYLOAD_REPRESENTATION_OPTIONS_WIDTH-1 downto 0);
-- RTPS SUBMESSAGE FLAGS -- RTPS SUBMESSAGE FLAGS
alias endian_flag : std_logic is flags(0); alias endian_flag : std_logic is flags(0);
alias endian_flag_next : std_logic is flags_next(0); alias endian_flag_next : std_logic is flags_next(0);

View File

@ -14,10 +14,12 @@ package rtps_package is
constant UDP_PORT_WIDTH : natural := 16; constant UDP_PORT_WIDTH : natural := 16;
constant IPv4_ADDRESS_WIDTH : natural := 32; constant IPv4_ADDRESS_WIDTH : natural := 32;
constant UDP_HEADER_LENGTH_WIDTH : natural := 16; constant UDP_HEADER_LENGTH_WIDTH : natural := 16;
-- CDR ENCODING WIDTHS -- IDL CDR ENCODING WIDTHS
constant CDR_INT8_WIDTH : natural := 8;
constant CDR_CHAR_WIDTH : natural := 8; constant CDR_CHAR_WIDTH : natural := 8;
constant CDR_OCTET_WIDTH : natural := 8; constant CDR_OCTET_WIDTH : natural := 8;
constant CDR_BOOLEAN_WIDTH : natural := 8; constant CDR_BOOLEAN_WIDTH : natural := 8;
constant CDR_WCHAR_WIDTH : natural := 16;
constant CDR_SHORT_WIDTH : natural := 16; constant CDR_SHORT_WIDTH : natural := 16;
constant CDR_ENUMERATION_SHORT_WIDTH : natural := 16; constant CDR_ENUMERATION_SHORT_WIDTH : natural := 16;
constant CDR_LONG_WIDTH : natural := 32; constant CDR_LONG_WIDTH : natural := 32;
@ -25,7 +27,7 @@ package rtps_package is
constant CDR_ENUMERATION_WIDTH : natural := 32; constant CDR_ENUMERATION_WIDTH : natural := 32;
constant CDR_LONG_LONG_WIDTH : natural := 64; constant CDR_LONG_LONG_WIDTH : natural := 64;
constant CDR_DOUBLE_WIDTH : natural := 64; constant CDR_DOUBLE_WIDTH : natural := 64;
constant CDR_LONG_DOUBLE_WIDTH : natural := 64; constant CDR_LONG_DOUBLE_WIDTH : natural := 128;
-- RTPS -- RTPS
-- NOTE: Widths not defined with a CDR Width are defined as byte arrays (Same Endian representation) -- NOTE: Widths not defined with a CDR Width are defined as byte arrays (Same Endian representation)
constant GUIDPREFIX_WIDTH : natural := 96; constant GUIDPREFIX_WIDTH : natural := 96;
@ -159,16 +161,16 @@ package rtps_package is
constant ANY_SAMPLE_STATE : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0) := x"FFFFFFFF"; constant ANY_SAMPLE_STATE : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0) := x"FFFFFFFF";
-- *VIEW STATE KIND* (DDS) -- *VIEW STATE KIND* (DDS)
constant NEW_VIEW_STATE : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0) := x"00000001"; constant NEW_VIEW_STATE : std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0) := x"00000001";
constant NOT_NEW_VIEW_STATE : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0) := x"00000002"; constant NOT_NEW_VIEW_STATE : std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0) := x"00000002";
constant ANY_VIEW_STATE : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0) := x"FFFFFFFF"; constant ANY_VIEW_STATE : std_logic_vector(VIEW_STATE_KIND_WIDTH-1 downto 0) := x"FFFFFFFF";
-- *INSTANCE STATE KIND* (DDS) -- *INSTANCE STATE KIND* (DDS)
constant ALIVE_INSTANCE_STATE : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0) := x"00000001"; constant ALIVE_INSTANCE_STATE : std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0) := x"00000001";
constant NOT_ALIVE_DISPOSED_INSTANCE_STATE : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0) := x"00000002"; constant NOT_ALIVE_DISPOSED_INSTANCE_STATE : std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0) := x"00000002";
constant NOT_ALIVE_NO_WRITERS_INSTANCE_STATE : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0) := x"00000004"; constant NOT_ALIVE_NO_WRITERS_INSTANCE_STATE : std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0) := x"00000004";
constant NOT_ALIVE_INSTANCE_STATE : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0) := x"00000006"; constant NOT_ALIVE_INSTANCE_STATE : std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0) := x"00000006";
constant ANY_INSTANCE_STATE : std_logic_vector(SAMPLE_STATE_KIND_WIDTH-1 downto 0) := x"FFFFFFFF"; constant ANY_INSTANCE_STATE : std_logic_vector(INSTANCE_STATE_KIND_WIDTH-1 downto 0) := x"FFFFFFFF";
-- *SAMPLE REJECTED STATUS KIND* (DDS) -- *SAMPLE REJECTED STATUS KIND* (DDS)
constant NOT_REJECTED : std_logic_vector(CDR_ENUMERATION_WIDTH-1 downto 0) := std_logic_vector(to_unsigned(0,CDR_ENUMERATION_WIDTH)); constant NOT_REJECTED : std_logic_vector(CDR_ENUMERATION_WIDTH-1 downto 0) := std_logic_vector(to_unsigned(0,CDR_ENUMERATION_WIDTH));