Commit Graph

23 Commits

Author SHA1 Message Date
Greek
4530688c8b Add test 2 of RTPS Reader
Test user traffic handling (DATA, HEARTBEAT, GAP).
Compiling and Passing
2021-02-21 00:02:22 +01:00
Greek
bfdc366273 Modify Endpoint Match Frame, Fix Test Suite
The reader falgs (Expects In-line QoS, Expects Historical Data, Is Best
Effort) of the remote reader is transfered in the Metatraffic Endpoint
Match Frame.
The Level 1 rtps_builtin_endpoint test was also fixed.
2021-02-15 13:50:48 +01:00
Greek
348d036659 Blind Implementation of DDS Writer
A Serialized Key Generator Entity Hull (responsible for generating the
serialized Key) was also added.
2021-02-13 20:09:35 +01:00
Greek
80cffb8197 Fix unaligned payload handling in DDS Reader
Since the payload can only be padded until the next 4-byte aligned
address, we needed a way to read out only the actual payload in case the
payload was not aligned in the last payload slot (did not go until the
end of the payload slot). This is now handled by an additional bit flag
in the Sample Status Info which denotes if the payload is aligned. In
the case the payload is unaligned, the last address of the last payload
slot contains the offset of the actual payload end.
This commit also adds MEMORY RESET states for the Sample, payload, and
instance Memory.
2021-02-08 12:31:36 +01:00
Greek
e8670aaf59 Blind implementation of RTPS Writer 2021-02-07 18:02:55 +01:00
Greek
d54bf55b46 Redo Memory Interface of RTPS Endpoint
The Memory Control Process is made more generic (with less specialised
code), to allow the main process more control. I.e. all Memory Frame
Fields are individually addressable (during GET and UPDATE).
The RAM instance is hidden behind a Memory Controller with Flow Control
Signals, allowing easy future integration to different Memory Interfaces
(e.g. AXI Lite).
2021-02-02 00:04:34 +01:00
Greek
164bd508c1 Blind implementation of READ/TAKE DDS READER operations
Finalized DDS Reader interface. Implemented read/take,
read_next_sample/take_next_sample, read_instance/take_instance,
read_next_instance/take_next_instance operations.
Instance Get operations were made generic to allow returning 2 variants
of instance data.
2021-01-25 20:04:55 +01:00
Greek
f152abc373 Remove GENERATION_COUNTERS Option
Generation Counters are always needed (e.g. for the calculation of the
view_state, since they are dependent on the reading of samples of the
last generation). As such, the Generation Counters were "converted" to
mandatory fields.
2021-01-22 12:01:16 +01:00
Greek
bdb397ae7d Major History Cache/DDS Endpoint Redesign
It was decided to connect the DDS Endpoint directly to the RTPS
Endpoint. The history_cache Entity will be converted to a generic
History Cache acording to the RTPS Specification.
Because of consistency requirements the implementation was changed to a
single process/single port RAM design.
This should fully (blindly) implement the RTPS Reader side of the DDS
Entity.
2021-01-21 12:51:39 +01:00
Greek
f2826ddd20 Change Sample Memory Format
The Sample Memory was changed to contain only the Instance Memory
Address instead of the whole Key Hash. This simplifies the B process and
reduces memory footprint.
The instance memory process was also updated to handle the conditional
fields defined in the previous commit.
2021-01-17 21:01:15 +01:00
Greek
7e84a15d54 Redo Blind Implementation of READER side (RTPS Endpoint & History Cache)
Redefined Sample Memory Format. The design decision was made to handle
most (if not all) of the DDS QOS inside the History Cache, which allows
storing needed information in a more efiicient way.
A (dual port) Instance Memory was added into the HC, to support the QOS
operations.
This commit only implements the A side processes for the READER case.
RESOURCE_LIMITS_QOS, TIME_BASED_FILTER_QOS, and HISTORY_QOS are handled.
The inter-entity communication was changed to allow the HC to mark
parsed changes as rejected, and allow future re-transmission (in the
case of Reliable communication).
2021-01-17 10:49:38 +01:00
Greek
9ff39c6fea Remove HIGHEST_AVAILABLE_SN from local endpoint buffer 2021-01-11 18:45:37 +01:00
Greek
35743b6f19 Add and update doc
Added documentation for MD5 HASH Cacluclation
Updated TODO and REF with new design decisions
2021-01-11 12:06:18 +01:00
Greek
a00f942826 change rtps_handler output format
While previously we sent the EntityID before the GUID Prefix (for some
reason), we changed swaped the order to allow easier decoding (by having
uniform format for all inputs)
2020-12-18 16:19:57 +01:00
Greek
c1bb9a7bd2 * Re-design rtps_handler
- Input format is now a decoded UDP Packet (Documented in REF.txt)
	  This allows the whole RTPS system to use universal input and output.
2020-11-30 15:48:47 +01:00
Greek
fec81c0b43 * Re-design rtps_builtin_endpoint
- Remove endpoint data from memory. Store only participant data
	- Write PARTICIPANT_UNMATCH_FRAME to all endpoints on remote participant removal
	- Write ENDPOINT_MATCH and ENDPOINT_UNMATCH frames for all remote endpoints
* Update testbenches to accomodate re-design
* Streamline scorboard reference pushing and testbench completion detection
2020-11-29 23:34:28 +01:00
Greek
eac58dd183 * rtps_builtin_endpoint in-memory fromat change
- Do not store local endpoint mask of remote endpoints
	- Send MATCH/UNMATCH Frames to all local Endpoinst (Not only previously matched)
2020-11-28 14:37:15 +01:00
Greek
32fd1ac31e * Add modelsim.ini File in gitignore
* Small change in rtps_builtin_endpoint_test1
	- Empty Signal was not toggling
* Added rtps_builtin_endpoint_test2
	- Compiling and Passing
* Update rtps_test_package
* Various bug Fixes in rtps_builtin_endpoint
2020-11-26 18:04:59 +01:00
Greek
521e2466f5 * Add new DEFAULT values in packages
* Add test RAM (Used for testbenches)
* Add Data Structures and functions to check memory contents
* Add rtps_builtin_endpoint_test1
	- Compiles and Passes
* Various bug fixes in rtps_builtin_endpoint to Pass testbench
2020-11-23 12:20:05 +01:00
Greek
16bd4558de * rtps_handler
- Handle case where packet end = submessage end (Avoid extra stage switches)
	- Fix last_word_out
	- Fix case where rd and empty are both high (INFO_TS)
* Modify Endpoint Frame format of GAP
	- Add dummy word to avoid complexity
* rtps_handler Testbench
	- Add check for last_word_out
2020-11-21 21:10:26 +01:00
Greek
c68caec626 * Package update
- New functions
	- Renames
	- New Definitions
* rtps_handler overhaul
	- Validity Check for Submessages
	- OVERREAD Guard
	- Info Timestamp parsed and sent to Endpoints
2020-11-13 11:44:17 +01:00
Greek
74515d0ecc * Code cleanup
* Varius fixes
* Code Comment
2020-10-24 17:00:52 +02:00
Greek
b5b71bbfa9 * Implemented Participant Message Handling 2020-10-21 19:41:23 +02:00