Commit Graph

42 Commits

Author SHA1 Message Date
Greek
8f9f445f21 Add documentation 2021-11-17 14:27:30 +01:00
Greek
af1de8bab8 Make Templates for reader/writer wrapper and key_holder
Templates with the pre-defined code hull for the reader_wrapper,
writer_wrapper, and key_holder were created.
A "cookbook" of how to expand this TEMPLATES to create type specific IDL
conversions was also added.
The "code generation" is kept general to allow a code generator to
automatically produce this wrappers in the future.
2021-11-11 20:19:26 +01:00
Greek
4392aa8288 Parse PID_STATUS_INFO in RTPS Builtin Endpoint
The inline-QoS of PDP Packets is parsed, and Participants/Endpoints can
be unmatched by Unregister/Dispose Status Info Updates.
Test 1,2,3 was extended to test this functionality.
NOTE: PID_KEY_HASH is a requirement (at least for unmatching Endpoints),
as serialized key payloads are unsupported.
2021-05-14 12:08:21 +02:00
Greek
293d89f083 NACK SN in ACKNACk Response of RTPS Builtin Endpoint
Until now the ACKNACK Response of the RTPS Builtin Endpoint had an empty
Bitmap, effectively ACKing SNs, but never NACKing any (i.e. not
requesting any).
Similar to the RTPS Endpoints we request the next 32 SNs on every
ACKNACK Response.
The ParticipantMessageData SN Handling was also implemented.
2021-05-12 12:09:29 +02:00
Greek
90a4c7928a Backport Memory Controller to rtps_builtin_endpoint
Backport Memory Controller and Memory FSM from RTPS/DDS Endpoints to
RTPS Builtin Endpoint.
The Memory is now using a single linked list and the FSM uses Frame Field
Flags.
The main FSM uses check_time to initiate stale checks, and the stale
checks are done in the main FSM.
Testbench was modified to accomodate the changes (Previous L0 Test4 was
removed and integrated in L0 Test 1).
2021-05-11 13:23:55 +02:00
Greek
4fc9029554 REMOVE_WRITER DDS Operation generates Samples
The REMOVE_WRITER DDS Operation of DDS Reader now generates Samples if
the Instance State changes.
Updated testbench.
Added checks for DATA_AVAILABLE communication status.
2021-04-30 13:03:13 +02:00
Greek
0beafe13b3 Add test 3 of the DDS Reader
Test the DDS READ, TAKE, READ_NEXT_SAMPLE, TAKE_NEXT_SAMPLE,
READ_INSTANCE, TAKE_INSTANCE, READ_NEXT_INSTANCE, TAKE_NEXT_INSTANCE
Operations.
Backport fixes to previous testbenches.
Change handling of DISPOSE Samples of unknown Instances.
2021-04-25 16:12:22 +02:00
Greek
bac011905a Add Test 1 of DDS Reader
Test RTPS Operations ADD_CACHE_CHANGE, and REMOVE_WRITER of DDS Reader.
Port changes and code refoctoring in DDS Writer.
2021-04-11 16:39:17 +02:00
Greek
a6802cc538 Add Test1 of DDS Writer
Test RTPS GET_MIN_SN, GET_MAX_SN, GET_CACHE_CHANGE, REMOVE_CACHE_CHANGE,
ACK_CACHE_CHANGE, and NACK_CACHE_CHANGE Operations.
Test DDS Register, Unregister, Write, Dispose, and Lookup Instance
Operations.
2021-03-21 18:49:59 +01:00
Greek
981ca09149 Change Type-Dependant Code Interface, and Code refactoring
The instantiation of the KEY related entities is moved outside the DDS
Endpoints (Currently only changed in DDS Writer). Define new KEY_HOLDER
entity that is responsible for all Key related type-specific code.
Fix syntax of DDS Writer, and misc code refactoring.
2021-03-09 14:56:54 +01:00
Greek
3ba5fae871 Add Test4 of RTPS Writer
Test remote Reader Liveliness handling of RTPS Writer.
Backport fix to RTPS Reader.
Compiling and Passing
2021-03-03 18:40:36 +01:00
Greek
f96af25a6a Add Test2 of RTPS Writer
Test RTPS Output (DATA and GAP Message Generation) of the RTPS Writer.
Backport some small changes to Test1.
Compiling and Passing
2021-03-02 18:48:01 +01:00
Greek
f97e7da7bb Fix syntax of rtps_writer 2021-02-26 14:39:53 +01:00
Greek
0f7750bd5a Expanded test 1 and test 2 of RTPS Reader with different Generics
Tests are added for different Generics Settings (Durability,
Reliability, Keyed Topic).
Test 2 of RTPS Reader (User Tarffic Handling) is extended with a few
extra test cases.
2021-02-21 15:20:27 +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
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
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
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
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
929fbe5c80 * Update rtps_builtin_endpoint_test7
- Add participant Announcement check
* bug Fix in rtps_config_package
	- Fix Participant Announcement Generation
2020-12-06 18:25:19 +01:00
Greek
0f50e66942 * Add FWFT FIFO
* Added rtps_builtin_endpoint_test7 Level 1 testbench
	- Compiling and Passing
* Various Bug Fixes in rtps_builtin_endpoint
2020-12-06 17:26:15 +01:00
Greek
1812eaa41a * Added rtps_builtin_test4
- Memory Handling
	- Compiling and Passing
2020-11-29 10:28:30 +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
472af656b3 * Added rtps_builtin_endpoint_test3
- Compiling and Passing
2020-11-28 10:12:35 +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
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
9b4a2ed073 * Various Bug Fixes in rtps_handler
* rtps_handler_test1 Complete and Passing
2020-11-17 15:26:20 +01:00
Greek
9c95e58e32 * Added OSVVM Library as Submodule
* Merged stimulus generation procedures to one single procedure
* Integrated OSVVM into testbench
* Generated OSVVM Project Script File
* Various Bug Fixes to compile testbench
2020-11-15 20:34:39 +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
ce72c147a4 * Re-wrote "rtps_ahandler"
- Compiles
2020-10-29 11:31:41 +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
Greek
b79e631ac6 * tmp (Before Buffer reorder) 2020-10-21 12:38:51 +02:00
0ec0003eb3 * Fix ASCII Diagrams
* Constant RTPS Message generation (Endpoint and Participant)
2020-10-12 07:25:56 +02:00
809810f207 * Change builtin-endpoint to "last_word" System 2020-10-06 11:02:31 +02:00
aed60f9b01 * Finish Memory FSM 2020-10-06 08:35:31 +02:00
e6e4094583 * Endoint Match/Unmatch 2020-10-04 08:25:35 +02:00
4a6b19ef25 * Add Documentation/Commenting
* Update test project
2020-09-22 21:01:28 +02:00
Greek
9ab7d79d87 * Added Documentation
- 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
2020-05-24 13:08:03 +02:00