Propagate LIFESPAN through ENDPOINT_MATCH_FRAME instead of inline QoS
Since we disabled the 'expectsInlineQoS' Flag due to Cyclone DDS compatibility, we no longer have access to the lifespan of the remote writers. The Endpoint Match Format was changed to also send the Lifespan Duration from the rtps_builtin_endpoint.
This commit is contained in:
parent
56b80bead2
commit
4b81cf9484
64
sim/L0_rtps_reader_test1_vbk.do
Normal file
64
sim/L0_rtps_reader_test1_vbk.do
Normal file
@ -0,0 +1,64 @@
|
||||
onerror {resume}
|
||||
quietly WaveActivateNextPane {} 0
|
||||
add wave -noupdate -divider SYSTEM
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/clk
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/reset
|
||||
add wave -noupdate -divider INPUT
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/empty_meta
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/rd_meta
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/last_word_in_meta
|
||||
add wave -noupdate -radix hexadecimal /l0_rtps_reader_test1_vbk/uut/data_in_meta
|
||||
add wave -noupdate -divider OUTPUT
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/start_hc
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/opcode_hc
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/ack_hc
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/done_hc
|
||||
add wave -noupdate -radix hexadecimal /l0_rtps_reader_test1_vbk/uut/data_out_hc
|
||||
add wave -noupdate -divider {MAIN FSM}
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/stage
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/stage_next
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/cnt
|
||||
add wave -noupdate -divider {MEMORY FSM}
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/mem_op_done
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/mem_op_start
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/mem_opcode
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/mem_stage
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/mem_stage_next
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/mem_cnt
|
||||
add wave -noupdate /l0_rtps_reader_test1_vbk/uut/mem_pos
|
||||
add wave -noupdate -radix unsigned /l0_rtps_reader_test1_vbk/uut/mem_addr_base
|
||||
add wave -noupdate -expand -group MEM_CTRL -radix unsigned /l0_rtps_reader_test1_vbk/uut/mem_addr
|
||||
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_reader_test1_vbk/uut/mem_valid_in
|
||||
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_reader_test1_vbk/uut/mem_ready_in
|
||||
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_reader_test1_vbk/uut/mem_read
|
||||
add wave -noupdate -expand -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test1_vbk/uut/mem_write_data
|
||||
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_reader_test1_vbk/uut/abort_read
|
||||
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_reader_test1_vbk/uut/mem_valid_out
|
||||
add wave -noupdate -expand -group MEM_CTRL /l0_rtps_reader_test1_vbk/uut/mem_ready_out
|
||||
add wave -noupdate -expand -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test1_vbk/uut/mem_read_data
|
||||
add wave -noupdate -divider TESTBENCH
|
||||
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1_vbk/start
|
||||
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1_vbk/cnt_stim
|
||||
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1_vbk/packet_sent
|
||||
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1_vbk/mem_check_done
|
||||
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1_vbk/stim_done
|
||||
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1_vbk/test_done
|
||||
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test1_vbk/uut/idle_sig
|
||||
TreeUpdate [SetDefaultTree]
|
||||
WaveRestoreCursors {Begin {8325000 ps} 1} {Error {9725000 ps} 1} {Cursor {9175000 ps} 0}
|
||||
quietly wave cursor active 3
|
||||
configure wave -namecolwidth 150
|
||||
configure wave -valuecolwidth 100
|
||||
configure wave -justifyvalue left
|
||||
configure wave -signalnamewidth 1
|
||||
configure wave -snapdistance 10
|
||||
configure wave -datasetprefix 0
|
||||
configure wave -rowmargin 4
|
||||
configure wave -childrowmargin 2
|
||||
configure wave -gridoffset 0
|
||||
configure wave -gridperiod 1
|
||||
configure wave -griddelta 40
|
||||
configure wave -timeline 0
|
||||
configure wave -timelineunits ns
|
||||
update
|
||||
WaveRestoreZoom {8888200 ps} {9912200 ps}
|
||||
82
sim/L0_rtps_reader_test2_tbk.do
Normal file
82
sim/L0_rtps_reader_test2_tbk.do
Normal file
@ -0,0 +1,82 @@
|
||||
onerror {resume}
|
||||
quietly WaveActivateNextPane {} 0
|
||||
add wave -noupdate -divider SYSTEM
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/clk
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/reset
|
||||
add wave -noupdate -divider INPUT
|
||||
add wave -noupdate -group META /l0_rtps_reader_test2_tbk/uut/empty_meta
|
||||
add wave -noupdate -group META /l0_rtps_reader_test2_tbk/uut/rd_meta
|
||||
add wave -noupdate -group META /l0_rtps_reader_test2_tbk/uut/last_word_in_meta
|
||||
add wave -noupdate -group META -radix hexadecimal /l0_rtps_reader_test2_tbk/uut/data_in_meta
|
||||
add wave -noupdate -expand -group USER /l0_rtps_reader_test2_tbk/uut/empty_user
|
||||
add wave -noupdate -expand -group USER /l0_rtps_reader_test2_tbk/uut/rd_user
|
||||
add wave -noupdate -expand -group USER -radix hexadecimal /l0_rtps_reader_test2_tbk/uut/data_in_user
|
||||
add wave -noupdate -expand -group USER /l0_rtps_reader_test2_tbk/uut/last_word_in_user
|
||||
add wave -noupdate -divider HC
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/start_hc
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/opcode_hc
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/ack_hc
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/valid_out_hc
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/ready_out_hc
|
||||
add wave -noupdate -radix hexadecimal /l0_rtps_reader_test2_tbk/uut/data_out_hc
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/last_word_out_hc
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/done_hc
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/ret_hc
|
||||
add wave -noupdate -divider {MAIN FSM}
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/stage
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/stage_next
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/cnt
|
||||
add wave -noupdate -divider {MEMORY FSM}
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/mem_op_done
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/mem_op_start
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/mem_opcode
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/mem_stage
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/mem_stage_next
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/mem_cnt
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/mem_pos
|
||||
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_tbk/uut/mem_addr_base
|
||||
add wave -noupdate -childformat {{/l0_rtps_reader_test2_tbk/uut/mem_endpoint_data.guid -radix hexadecimal} {/l0_rtps_reader_test2_tbk/uut/mem_endpoint_data.addr -radix hexadecimal} {/l0_rtps_reader_test2_tbk/uut/mem_endpoint_data.portn -radix hexadecimal} {/l0_rtps_reader_test2_tbk/uut/mem_endpoint_data.next_seq_nr -radix unsigned -childformat {{/l0_rtps_reader_test2_tbk/uut/mem_endpoint_data.next_seq_nr(0) -radix unsigned} {/l0_rtps_reader_test2_tbk/uut/mem_endpoint_data.next_seq_nr(1) -radix unsigned}}} {/l0_rtps_reader_test2_tbk/uut/mem_endpoint_data.lease_deadline -radix hexadecimal} {/l0_rtps_reader_test2_tbk/uut/mem_endpoint_data.res_time -radix hexadecimal}} -subitemconfig {/l0_rtps_reader_test2_tbk/uut/mem_endpoint_data.guid {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_tbk/uut/mem_endpoint_data.addr {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_tbk/uut/mem_endpoint_data.portn {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_tbk/uut/mem_endpoint_data.next_seq_nr {-height 15 -radix unsigned -childformat {{/l0_rtps_reader_test2_tbk/uut/mem_endpoint_data.next_seq_nr(0) -radix unsigned} {/l0_rtps_reader_test2_tbk/uut/mem_endpoint_data.next_seq_nr(1) -radix unsigned}}} /l0_rtps_reader_test2_tbk/uut/mem_endpoint_data.next_seq_nr(0) {-height 15 -radix unsigned} /l0_rtps_reader_test2_tbk/uut/mem_endpoint_data.next_seq_nr(1) {-height 15 -radix unsigned} /l0_rtps_reader_test2_tbk/uut/mem_endpoint_data.lease_deadline {-height 15 -radix hexadecimal} /l0_rtps_reader_test2_tbk/uut/mem_endpoint_data.res_time {-height 15 -radix hexadecimal}} /l0_rtps_reader_test2_tbk/uut/mem_endpoint_data
|
||||
add wave -noupdate -group MEM_CTRL -radix unsigned /l0_rtps_reader_test2_tbk/uut/mem_addr
|
||||
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_tbk/uut/mem_valid_in
|
||||
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_tbk/uut/mem_ready_in
|
||||
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_tbk/uut/mem_read
|
||||
add wave -noupdate -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test2_tbk/uut/mem_write_data
|
||||
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_tbk/uut/abort_read
|
||||
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_tbk/uut/mem_valid_out
|
||||
add wave -noupdate -group MEM_CTRL /l0_rtps_reader_test2_tbk/uut/mem_ready_out
|
||||
add wave -noupdate -group MEM_CTRL -radix hexadecimal /l0_rtps_reader_test2_tbk/uut/mem_read_data
|
||||
add wave -noupdate -divider TESTBENCH
|
||||
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_tbk/start_meta
|
||||
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_tbk/packet_sent_meta
|
||||
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_tbk/start_user
|
||||
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_tbk/packet_sent_user
|
||||
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_tbk/check_stage
|
||||
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_tbk/out_check_done
|
||||
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_tbk/stim_done
|
||||
add wave -noupdate -group TESTBENCH /l0_rtps_reader_test2_tbk/test_done
|
||||
add wave -noupdate -divider GAP
|
||||
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_tbk/uut/gap_start
|
||||
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_tbk/uut/gap_list_base
|
||||
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_tbk/uut/gap_list_end
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/bitmap_latch
|
||||
add wave -noupdate /l0_rtps_reader_test2_tbk/uut/bitmap_pos
|
||||
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_tbk/uut/next_seq_nr
|
||||
add wave -noupdate -radix unsigned /l0_rtps_reader_test2_tbk/uut/bitmap_cnt
|
||||
TreeUpdate [SetDefaultTree]
|
||||
WaveRestoreCursors {Begin {49575000 ps} 1} {Error {53225000 ps} 1} {Cursor {50275000 ps} 0}
|
||||
quietly wave cursor active 3
|
||||
configure wave -namecolwidth 150
|
||||
configure wave -valuecolwidth 100
|
||||
configure wave -justifyvalue left
|
||||
configure wave -signalnamewidth 1
|
||||
configure wave -snapdistance 10
|
||||
configure wave -datasetprefix 0
|
||||
configure wave -rowmargin 4
|
||||
configure wave -childrowmargin 2
|
||||
configure wave -gridoffset 0
|
||||
configure wave -gridperiod 1
|
||||
configure wave -griddelta 40
|
||||
configure wave -timeline 0
|
||||
configure wave -timelineunits ns
|
||||
update
|
||||
WaveRestoreZoom {49779800 ps} {50803800 ps}
|
||||
13
src/REF.txt
13
src/REF.txt
@ -269,6 +269,11 @@ ENDPOINT MATCH FRAME
|
||||
+-------------------------------+-------------------------------+
|
||||
06| UDP_PORT | READER_FLAGS |
|
||||
+-------------------------------+-------------------------------+
|
||||
07| |
|
||||
+ LIFESPAN_DURATION +
|
||||
08| [only for Reader Endpoints] |
|
||||
+-------------------------------+-------------------------------+
|
||||
|
||||
|
||||
READER_FLAGS
|
||||
------------
|
||||
@ -358,10 +363,14 @@ READER
|
||||
+ LEASE_DEADLINE +
|
||||
09| |
|
||||
+---------------------------------------------------------------+
|
||||
10| |
|
||||
+ RES_TIME + [Reliable Only]
|
||||
10| |
|
||||
+ LIFESPAN_DURATION +
|
||||
11| |
|
||||
+---------------------------------------------------------------+
|
||||
12| |
|
||||
+ RES_TIME + [Reliable Only]
|
||||
13| |
|
||||
+---------------------------------------------------------------+
|
||||
|
||||
WRITER
|
||||
------
|
||||
|
||||
@ -238,6 +238,7 @@ begin
|
||||
e0.participant := p0;
|
||||
e0.topic_name := ENDPOINT_TOPIC(0);
|
||||
e0.type_name := ENDPOINT_TYPE(0);
|
||||
e0.lifespan := gen_duration(3,0);
|
||||
|
||||
Log("Initiating Test", INFO);
|
||||
stim_done <= '0';
|
||||
@ -790,6 +791,42 @@ begin
|
||||
sub_p.data := EMPTY_TEST_PACKET;
|
||||
p_snp := p_snp + 1;
|
||||
|
||||
-- *PID_LIFESPAN*
|
||||
Log("Ignore Endpoint [Invalid PID_LIFESPAN]", INFO);
|
||||
sub_p.writerSN := p_snp;
|
||||
endpoint := e0;
|
||||
endpoint.reader := FALSE;
|
||||
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
|
||||
endpoint.entityId := gen_rand_entityid_2(FALSE);
|
||||
gen_endpoint_data(endpoint, sub_p.data, PID_LIFESPAN, -1);
|
||||
gen_sentinel(sub_p.data);
|
||||
gen_rtps_handler_out(sub_p, endpoint, stimulus);
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
sub_p.data := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Match Endpoint [Extra Bytes in PID_LIFESPAN]", INFO);
|
||||
sub_p.writerSN := p_snp;
|
||||
endpoint := e0;
|
||||
endpoint.reader := FALSE;
|
||||
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
|
||||
endpoint.entityId := gen_rand_entityid_2(FALSE);
|
||||
gen_endpoint_data(endpoint, sub_p.data, PID_LIFESPAN, +1);
|
||||
gen_sentinel(sub_p.data);
|
||||
gen_rtps_handler_out(sub_p, endpoint, stimulus);
|
||||
wr_sig := (0 => '1', 9 => '1', 10 => '1', 15 => '1', others => '0');
|
||||
push_endpoint_reference;
|
||||
start_test;
|
||||
wait_on_sent;
|
||||
wait_on_mem_check;
|
||||
stimulus := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
sub_p.data := EMPTY_TEST_PACKET;
|
||||
p_snp := p_snp + 1;
|
||||
|
||||
-- *PID_LIVELINESS*
|
||||
Log("Ignore Endpoint [Invalid PID_LIVELINESS]", INFO);
|
||||
sub_p.writerSN := p_snp;
|
||||
|
||||
@ -166,18 +166,21 @@ begin
|
||||
e1.participant := p0;
|
||||
e1.entityid := RV.RandSlv(ENTITYID_WIDTH);
|
||||
e1.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
|
||||
e1.lifespan := gen_duration(1,0);
|
||||
-- Endpoint 3
|
||||
e2 := DEFAULT_ENDPOINT_DATA;
|
||||
e2.reader := FALSE;
|
||||
e2.participant := p1;
|
||||
e2.entityid := RV.RandSlv(ENTITYID_WIDTH);
|
||||
e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
|
||||
e2.lifespan := gen_duration(2,0);
|
||||
-- Endpoint 4
|
||||
e3 := DEFAULT_ENDPOINT_DATA;
|
||||
e3.reader := FALSE;
|
||||
e3.participant := p1;
|
||||
e3.entityid := RV.RandSlv(ENTITYID_WIDTH);
|
||||
e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
|
||||
e3.lifespan := gen_duration(3,0);
|
||||
|
||||
Log("Initiating Test", INFO);
|
||||
stim_done <= '0';
|
||||
@ -340,6 +343,7 @@ begin
|
||||
endpoint.nr := 0;
|
||||
endpoint.match := MATCH;
|
||||
endpoint.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
|
||||
endpoint.lifespan := gen_duration(6,0);
|
||||
gen_endpoint_match_frame(endpoint, stimulus);
|
||||
SB_mem.Push(gen_writer_endpoint_mem_frame_b(endpoint));
|
||||
start_test;
|
||||
|
||||
@ -166,18 +166,21 @@ begin
|
||||
e1.participant := p0;
|
||||
e1.entityid := RV.RandSlv(ENTITYID_WIDTH);
|
||||
e1.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
|
||||
e1.lifespan := gen_duration(1,0);
|
||||
-- Endpoint 3
|
||||
e2 := DEFAULT_ENDPOINT_DATA;
|
||||
e2.reader := FALSE;
|
||||
e2.participant := p1;
|
||||
e2.entityid := RV.RandSlv(ENTITYID_WIDTH);
|
||||
e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
|
||||
e2.lifespan := gen_duration(2,0);
|
||||
-- Endpoint 4
|
||||
e3 := DEFAULT_ENDPOINT_DATA;
|
||||
e3.reader := FALSE;
|
||||
e3.participant := p1;
|
||||
e3.entityid := RV.RandSlv(ENTITYID_WIDTH);
|
||||
e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
|
||||
e3.lifespan := gen_duration(3,0);
|
||||
|
||||
Log("Initiating Test", INFO);
|
||||
stim_done <= '0';
|
||||
@ -340,6 +343,7 @@ begin
|
||||
endpoint.nr := 0;
|
||||
endpoint.match := MATCH;
|
||||
endpoint.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
|
||||
endpoint.lifespan := gen_duration(6,0);
|
||||
gen_endpoint_match_frame(endpoint, stimulus);
|
||||
SB_mem.Push(gen_writer_endpoint_mem_frame_a(endpoint));
|
||||
start_test;
|
||||
@ -348,8 +352,6 @@ begin
|
||||
wait_on_mem_check;
|
||||
-- MEMORY STATE [p1e2,p0e0,p1e3]
|
||||
|
||||
|
||||
|
||||
stim_done <= '1';
|
||||
wait_on_completion;
|
||||
TranscriptOpen(RESULTS_FILE, APPEND_MODE);
|
||||
|
||||
@ -107,7 +107,7 @@ begin
|
||||
variable payload : TEST_PACKET_TYPE := EMPTY_TEST_PACKET;
|
||||
variable sub : RTPS_SUBMESSAGE_TYPE := DEFAULT_RTPS_SUBMESSAGE;
|
||||
variable cc : CACHE_CHANGE_TYPE := DEFAULT_CACHE_CHANGE;
|
||||
variable src_ts, life_ts : TIME_TYPE := TIME_INVALID;
|
||||
variable src_ts : TIME_TYPE := TIME_INVALID;
|
||||
|
||||
-- Wrapper to use procedure as function
|
||||
impure function gen_rand_loc_2 return LOCATOR_TYPE is
|
||||
@ -207,7 +207,7 @@ begin
|
||||
SetLogEnable(INFO, TRUE);
|
||||
RV.InitSeed(RV'instance_name);
|
||||
|
||||
-- Endpoint 1
|
||||
-- Endpoint 0
|
||||
e0 := DEFAULT_ENDPOINT_DATA;
|
||||
e0.reader := FALSE;
|
||||
e0.nr := 0;
|
||||
@ -215,7 +215,8 @@ begin
|
||||
e0.entityid := RV.RandSlv(ENTITYID_WIDTH);
|
||||
e0.participant.guidPrefix := gen_rand_guid_prefix;
|
||||
e0.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
|
||||
-- Endpoint 2
|
||||
e0.lifespan := gen_duration(2,0);
|
||||
-- Endpoint 1
|
||||
e1 := DEFAULT_ENDPOINT_DATA;
|
||||
e1.reader := FALSE;
|
||||
e1.nr := 1;
|
||||
@ -223,7 +224,7 @@ begin
|
||||
e1.entityid := RV.RandSlv(ENTITYID_WIDTH);
|
||||
e1.participant.guidPrefix := gen_rand_guid_prefix;
|
||||
e1.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
|
||||
-- Endpoint 3
|
||||
-- Endpoint 2
|
||||
e2 := DEFAULT_ENDPOINT_DATA;
|
||||
e2.reader := FALSE;
|
||||
e2.nr := 2;
|
||||
@ -242,7 +243,6 @@ begin
|
||||
reset <= '0';
|
||||
|
||||
src_ts := TIME_INVALID;
|
||||
life_ts := TIME_INVALID;
|
||||
|
||||
-- *GENERAL SEQUENCE NUMBER HANDLING*
|
||||
Log("Test General SequenceNumber Handling", INFO);
|
||||
@ -281,7 +281,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -315,7 +315,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -381,7 +381,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -400,7 +400,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -448,7 +448,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -496,7 +496,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -544,7 +544,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -638,7 +638,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -700,7 +700,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -748,7 +748,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -796,7 +796,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -818,7 +818,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -826,9 +826,8 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 11, Inline-QoS (Lifespan, Status Info, Key Hash)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 11, Inline-QoS (Status Info, Key Hash)]", INFO);
|
||||
src_ts := gen_duration(1,0);
|
||||
life_ts := gen_duration(2,0);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
@ -842,11 +841,10 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -854,68 +852,14 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 12, Inline-QoS (Invalid PID_LIFESPAN)]", INFO);
|
||||
src_ts := gen_duration(1,100);
|
||||
life_ts := gen_duration(2,100);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_LIFESPAN, -1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 12, Inline-QoS (Extra Bytes in PID_LIFESPAN)]", INFO);
|
||||
src_ts := gen_duration(1,200);
|
||||
life_ts := gen_duration(2,200);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_LIFESPAN, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 13, Inline-QoS (Invalid PID_STATUS_INFO)]", INFO);
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 12, Inline-QoS (Invalid PID_STATUS_INFO)]", INFO);
|
||||
src_ts := gen_duration(1,300);
|
||||
life_ts := gen_duration(2,300);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(13);
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
@ -923,7 +867,6 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_STATUS_INFO, -1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
@ -932,9 +875,34 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 13, Inline-QoS (Extra Bytes in PID_STATUS_INFO)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 12, Inline-QoS (Extra Bytes in PID_STATUS_INFO)]", INFO);
|
||||
src_ts := gen_duration(1,400);
|
||||
life_ts := gen_duration(2,400);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_STATUS_INFO, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 13, Inline-QoS (Invalid PID_KEY_HASH)]", INFO);
|
||||
src_ts := gen_duration(1,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
@ -948,35 +916,6 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_STATUS_INFO, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 14, Inline-QoS (Invalid PID_KEY_HASH)]", INFO);
|
||||
src_ts := gen_duration(1,500);
|
||||
life_ts := gen_duration(2,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(14);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_KEY_HASH, -1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
@ -985,15 +924,14 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 14, Inline-QoS (Extra Bytes in PID_KEY_HASH)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 13, Inline-QoS (Extra Bytes in PID_KEY_HASH)]", INFO);
|
||||
src_ts := gen_duration(1,600);
|
||||
life_ts := gen_duration(2,600);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(14);
|
||||
sub.writerSN := gen_sn(13);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
@ -1001,11 +939,10 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_KEY_HASH, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1013,15 +950,14 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 15, Inline-QoS (Lifespan, Status Info, Key Hash), Little Endian]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 14, Inline-QoS (Status Info, Key Hash), Little Endian]", INFO);
|
||||
src_ts := gen_duration(1,700);
|
||||
life_ts := gen_duration(2,700);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(15);
|
||||
sub.writerSN := gen_sn(14);
|
||||
sub.flags(SUBMESSAGE_ENDIAN_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
@ -1030,11 +966,10 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '1', sub.inlineQos);
|
||||
gen_sentinel('1', sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1045,52 +980,48 @@ begin
|
||||
-- *NON_PAYLOAD TRAFFIC HANDLING*
|
||||
Log("Test Non-Payload Traffic Handling", INFO);
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 16, No Payload, Inline-QoS (Lifespan, Status Info, Key Hash)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 15, No Payload, Inline-QoS (Status Info, Key Hash)]", INFO);
|
||||
src_ts := gen_duration(2,0);
|
||||
life_ts := gen_duration(3,0);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(15);
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_DISPOSED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 16, Serialized Key, Inline-QoS (Status Info)]", INFO);
|
||||
src_ts := gen_duration(2,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(16);
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_DISPOSED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 17, Serialized Key, Inline-QoS (Lifespan, Status Info)]", INFO);
|
||||
src_ts := gen_duration(2,500);
|
||||
life_ts := gen_duration(3,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(17);
|
||||
sub.flags(SUBMESSAGE_KEY_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_UNREGISTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1098,20 +1029,18 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 18, No Payload, Inline-QoS (Lifespan, Status Info)]", INFO);
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 17, No Payload, Inline-QoS (Status Info)]", INFO);
|
||||
src_ts := gen_duration(2,600);
|
||||
life_ts := gen_duration(3,600);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(18);
|
||||
sub.writerSN := gen_sn(17);
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_DISPOSED;
|
||||
cc.src_timestamp := src_ts;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
@ -1121,7 +1050,6 @@ begin
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
src_ts := TIME_INVALID;
|
||||
life_ts := TIME_INVALID;
|
||||
|
||||
-- *HISTORY CACHE RESPONSE HANDLING*
|
||||
Log("Test History Cache Response Handling", INFO);
|
||||
@ -1137,7 +1065,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(FALSE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1156,7 +1084,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
|
||||
@ -107,7 +107,7 @@ begin
|
||||
variable payload : TEST_PACKET_TYPE := EMPTY_TEST_PACKET;
|
||||
variable sub : RTPS_SUBMESSAGE_TYPE := DEFAULT_RTPS_SUBMESSAGE;
|
||||
variable cc : CACHE_CHANGE_TYPE := DEFAULT_CACHE_CHANGE;
|
||||
variable src_ts, life_ts : TIME_TYPE := TIME_INVALID;
|
||||
variable src_ts : TIME_TYPE := TIME_INVALID;
|
||||
|
||||
-- Wrapper to use procedure as function
|
||||
impure function gen_rand_loc_2 return LOCATOR_TYPE is
|
||||
@ -215,6 +215,7 @@ begin
|
||||
e0.entityid := RV.RandSlv(ENTITYID_WIDTH);
|
||||
e0.participant.guidPrefix := gen_rand_guid_prefix;
|
||||
e0.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
|
||||
e0.lifespan := gen_duration(2,0);
|
||||
-- Endpoint 2
|
||||
e1 := DEFAULT_ENDPOINT_DATA;
|
||||
e1.reader := FALSE;
|
||||
@ -242,7 +243,6 @@ begin
|
||||
reset <= '0';
|
||||
|
||||
src_ts := TIME_INVALID;
|
||||
life_ts := TIME_INVALID;
|
||||
|
||||
-- *GENERAL SEQUENCE NUMBER HANDLING*
|
||||
Log("Test General SequenceNumber Handling", INFO);
|
||||
@ -281,7 +281,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -315,7 +315,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -366,7 +366,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -429,7 +429,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -492,7 +492,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -525,7 +525,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -619,7 +619,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -681,7 +681,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -729,7 +729,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -777,7 +777,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -828,7 +828,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -836,9 +836,8 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 11, Inline-QoS (Lifespan, Status Info, Key Hash)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 11, Inline-QoS (Status Info, Key Hash)]", INFO);
|
||||
src_ts := gen_duration(1,0);
|
||||
life_ts := gen_duration(2,0);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
@ -852,11 +851,10 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -864,68 +862,14 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 12, Inline-QoS (Invalid PID_LIFESPAN)]", INFO);
|
||||
src_ts := gen_duration(1,100);
|
||||
life_ts := gen_duration(2,100);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_LIFESPAN, -1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 12, Inline-QoS (Extra Bytes in PID_LIFESPAN)]", INFO);
|
||||
src_ts := gen_duration(1,200);
|
||||
life_ts := gen_duration(2,200);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_LIFESPAN, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 13, Inline-QoS (Invalid PID_STATUS_INFO)]", INFO);
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 12, Inline-QoS (Invalid PID_STATUS_INFO)]", INFO);
|
||||
src_ts := gen_duration(1,300);
|
||||
life_ts := gen_duration(2,300);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(13);
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
@ -933,7 +877,6 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_STATUS_INFO, -1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
@ -942,9 +885,34 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 13, Inline-QoS (Extra Bytes in PID_STATUS_INFO)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 12, Inline-QoS (Extra Bytes in PID_STATUS_INFO)]", INFO);
|
||||
src_ts := gen_duration(1,400);
|
||||
life_ts := gen_duration(2,400);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_STATUS_INFO, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 13, Inline-QoS (Invalid PID_KEY_HASH)]", INFO);
|
||||
src_ts := gen_duration(1,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
@ -958,35 +926,6 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_STATUS_INFO, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 14, Inline-QoS (Invalid PID_KEY_HASH)]", INFO);
|
||||
src_ts := gen_duration(1,500);
|
||||
life_ts := gen_duration(2,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(14);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_KEY_HASH, -1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
@ -995,15 +934,14 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 14, Inline-QoS (Extra Bytes in PID_KEY_HASH)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 13, Inline-QoS (Extra Bytes in PID_KEY_HASH)]", INFO);
|
||||
src_ts := gen_duration(1,600);
|
||||
life_ts := gen_duration(2,600);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(14);
|
||||
sub.writerSN := gen_sn(13);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
@ -1011,11 +949,10 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_KEY_HASH, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1023,15 +960,14 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 15, Inline-QoS (Lifespan, Status Info, Key Hash), Little Endian]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 14, Inline-QoS (Status Info, Key Hash), Little Endian]", INFO);
|
||||
src_ts := gen_duration(1,700);
|
||||
life_ts := gen_duration(2,700);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(15);
|
||||
sub.writerSN := gen_sn(14);
|
||||
sub.flags(SUBMESSAGE_ENDIAN_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
@ -1040,11 +976,10 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '1', sub.inlineQos);
|
||||
gen_sentinel('1', sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1055,52 +990,48 @@ begin
|
||||
-- *NON_PAYLOAD TRAFFIC HANDLING*
|
||||
Log("Test Non-Payload Traffic Handling", INFO);
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 16, No Payload, Inline-QoS (Lifespan, Status Info, Key Hash)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 15, No Payload, Inline-QoS (Status Info, Key Hash)]", INFO);
|
||||
src_ts := gen_duration(2,0);
|
||||
life_ts := gen_duration(3,0);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(15);
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_DISPOSED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 16, Serialized Key, Inline-QoS (Status Info)]", INFO);
|
||||
src_ts := gen_duration(2,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(16);
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_DISPOSED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 17, Serialized Key, Inline-QoS (Lifespan, Status Info)]", INFO);
|
||||
src_ts := gen_duration(2,500);
|
||||
life_ts := gen_duration(3,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(17);
|
||||
sub.flags(SUBMESSAGE_KEY_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_UNREGISTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1108,20 +1039,18 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 18, No Payload, Inline-QoS (Lifespan, Status Info)]", INFO);
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 17, No Payload, Inline-QoS (Status Info)]", INFO);
|
||||
src_ts := gen_duration(2,600);
|
||||
life_ts := gen_duration(3,600);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(18);
|
||||
sub.writerSN := gen_sn(17);
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_DISPOSED;
|
||||
cc.src_timestamp := src_ts;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
@ -1131,7 +1060,6 @@ begin
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
src_ts := TIME_INVALID;
|
||||
life_ts := TIME_INVALID;
|
||||
|
||||
-- *HISTORY CACHE RESPONSE HANDLING*
|
||||
Log("Test History Cache Response Handling", INFO);
|
||||
@ -1147,7 +1075,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(FALSE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1166,7 +1094,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
|
||||
@ -107,7 +107,7 @@ begin
|
||||
variable payload : TEST_PACKET_TYPE := EMPTY_TEST_PACKET;
|
||||
variable sub : RTPS_SUBMESSAGE_TYPE := DEFAULT_RTPS_SUBMESSAGE;
|
||||
variable cc : CACHE_CHANGE_TYPE := DEFAULT_CACHE_CHANGE;
|
||||
variable src_ts, life_ts : TIME_TYPE := TIME_INVALID;
|
||||
variable src_ts : TIME_TYPE := TIME_INVALID;
|
||||
|
||||
-- Wrapper to use procedure as function
|
||||
impure function gen_rand_loc_2 return LOCATOR_TYPE is
|
||||
@ -215,6 +215,7 @@ begin
|
||||
e0.entityid := RV.RandSlv(ENTITYID_WIDTH);
|
||||
e0.participant.guidPrefix := gen_rand_guid_prefix;
|
||||
e0.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
|
||||
e0.lifespan := gen_duration(2,0);
|
||||
-- Endpoint 2
|
||||
e1 := DEFAULT_ENDPOINT_DATA;
|
||||
e1.reader := FALSE;
|
||||
@ -242,7 +243,6 @@ begin
|
||||
reset <= '0';
|
||||
|
||||
src_ts := TIME_INVALID;
|
||||
life_ts := TIME_INVALID;
|
||||
|
||||
-- *GENERAL SEQUENCE NUMBER HANDLING*
|
||||
Log("Test General SequenceNumber Handling", INFO);
|
||||
@ -281,7 +281,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -315,7 +315,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -381,7 +381,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -429,7 +429,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -477,7 +477,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -525,7 +525,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -619,7 +619,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -681,7 +681,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -729,7 +729,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -777,7 +777,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -799,7 +799,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -807,9 +807,8 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 11, Inline-QoS (Lifespan, Status Info, Key Hash)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 11, Inline-QoS (Status Info, Key Hash)]", INFO);
|
||||
src_ts := gen_duration(1,0);
|
||||
life_ts := gen_duration(2,0);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
@ -823,11 +822,10 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -835,68 +833,14 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 12, Inline-QoS (Invalid PID_LIFESPAN)]", INFO);
|
||||
src_ts := gen_duration(1,100);
|
||||
life_ts := gen_duration(2,100);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_LIFESPAN, -1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 12, Inline-QoS (Extra Bytes in PID_LIFESPAN)]", INFO);
|
||||
src_ts := gen_duration(1,200);
|
||||
life_ts := gen_duration(2,200);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_LIFESPAN, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 13, Inline-QoS (Invalid PID_STATUS_INFO)]", INFO);
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 12, Inline-QoS (Invalid PID_STATUS_INFO)]", INFO);
|
||||
src_ts := gen_duration(1,300);
|
||||
life_ts := gen_duration(2,300);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(13);
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
@ -904,7 +848,6 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_STATUS_INFO, -1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
@ -913,9 +856,34 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 13, Inline-QoS (Extra Bytes in PID_STATUS_INFO)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 12, Inline-QoS (Extra Bytes in PID_STATUS_INFO)]", INFO);
|
||||
src_ts := gen_duration(1,400);
|
||||
life_ts := gen_duration(2,400);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_STATUS_INFO, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 13, Inline-QoS (Invalid PID_KEY_HASH)]", INFO);
|
||||
src_ts := gen_duration(1,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
@ -929,35 +897,6 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_STATUS_INFO, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 14, Inline-QoS (Invalid PID_KEY_HASH)]", INFO);
|
||||
src_ts := gen_duration(1,500);
|
||||
life_ts := gen_duration(2,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(14);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_KEY_HASH, -1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
@ -966,15 +905,14 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 14, Inline-QoS (Extra Bytes in PID_KEY_HASH)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 13, Inline-QoS (Extra Bytes in PID_KEY_HASH)]", INFO);
|
||||
src_ts := gen_duration(1,600);
|
||||
life_ts := gen_duration(2,600);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(14);
|
||||
sub.writerSN := gen_sn(13);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
@ -982,11 +920,10 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_KEY_HASH, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -994,15 +931,14 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 15, Inline-QoS (Lifespan, Status Info, Key Hash), Little Endian]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 14, Inline-QoS (Status Info, Key Hash), Little Endian]", INFO);
|
||||
src_ts := gen_duration(1,700);
|
||||
life_ts := gen_duration(2,700);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(15);
|
||||
sub.writerSN := gen_sn(14);
|
||||
sub.flags(SUBMESSAGE_ENDIAN_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
@ -1011,11 +947,10 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '1', sub.inlineQos);
|
||||
gen_sentinel('1', sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1026,52 +961,48 @@ begin
|
||||
-- *NON_PAYLOAD TRAFFIC HANDLING*
|
||||
Log("Test Non-Payload Traffic Handling", INFO);
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 16, No Payload, Inline-QoS (Lifespan, Status Info, Key Hash)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 15, No Payload, Inline-QoS (Status Info, Key Hash)]", INFO);
|
||||
src_ts := gen_duration(2,0);
|
||||
life_ts := gen_duration(3,0);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(15);
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_DISPOSED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 16, Serialized Key, Inline-QoS (Status Info)]", INFO);
|
||||
src_ts := gen_duration(2,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(16);
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_DISPOSED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 17, Serialized Key, Inline-QoS (Lifespan, Status Info)]", INFO);
|
||||
src_ts := gen_duration(2,500);
|
||||
life_ts := gen_duration(3,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(17);
|
||||
sub.flags(SUBMESSAGE_KEY_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_UNREGISTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1079,20 +1010,18 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 18, No Payload, Inline-QoS (Lifespan, Status Info)]", INFO);
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 17, No Payload, Inline-QoS (Status Info)]", INFO);
|
||||
src_ts := gen_duration(2,600);
|
||||
life_ts := gen_duration(3,600);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(18);
|
||||
sub.writerSN := gen_sn(17);
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_DISPOSED;
|
||||
cc.src_timestamp := src_ts;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
@ -1102,7 +1031,6 @@ begin
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
src_ts := TIME_INVALID;
|
||||
life_ts := TIME_INVALID;
|
||||
|
||||
-- *HISTORY CACHE RESPONSE HANDLING*
|
||||
Log("Test History Cache Response Handling", INFO);
|
||||
@ -1118,7 +1046,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(FALSE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1137,7 +1065,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
|
||||
@ -107,7 +107,7 @@ begin
|
||||
variable payload : TEST_PACKET_TYPE := EMPTY_TEST_PACKET;
|
||||
variable sub : RTPS_SUBMESSAGE_TYPE := DEFAULT_RTPS_SUBMESSAGE;
|
||||
variable cc : CACHE_CHANGE_TYPE := DEFAULT_CACHE_CHANGE;
|
||||
variable src_ts, life_ts : TIME_TYPE := TIME_INVALID;
|
||||
variable src_ts : TIME_TYPE := TIME_INVALID;
|
||||
|
||||
-- Wrapper to use procedure as function
|
||||
impure function gen_rand_loc_2 return LOCATOR_TYPE is
|
||||
@ -215,6 +215,7 @@ begin
|
||||
e0.entityid := RV.RandSlv(ENTITYID_WIDTH);
|
||||
e0.participant.guidPrefix := gen_rand_guid_prefix;
|
||||
e0.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
|
||||
e0.lifespan := gen_duration(2,0);
|
||||
-- Endpoint 2
|
||||
e1 := DEFAULT_ENDPOINT_DATA;
|
||||
e1.reader := FALSE;
|
||||
@ -242,7 +243,6 @@ begin
|
||||
reset <= '0';
|
||||
|
||||
src_ts := TIME_INVALID;
|
||||
life_ts := TIME_INVALID;
|
||||
|
||||
-- *GENERAL SEQUENCE NUMBER HANDLING*
|
||||
Log("Test General SequenceNumber Handling", INFO);
|
||||
@ -281,7 +281,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -330,7 +330,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -381,7 +381,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -444,7 +444,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -507,7 +507,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -540,7 +540,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -634,7 +634,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -696,7 +696,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -744,7 +744,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -792,7 +792,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -814,7 +814,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -822,9 +822,8 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 11, Inline-QoS (Lifespan, Status Info, Key Hash)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 11, Inline-QoS (Status Info, Key Hash)]", INFO);
|
||||
src_ts := gen_duration(1,0);
|
||||
life_ts := gen_duration(2,0);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
@ -838,11 +837,10 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -850,68 +848,14 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 12, Inline-QoS (Invalid PID_LIFESPAN)]", INFO);
|
||||
src_ts := gen_duration(1,100);
|
||||
life_ts := gen_duration(2,100);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_LIFESPAN, -1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 12, Inline-QoS (Extra Bytes in PID_LIFESPAN)]", INFO);
|
||||
src_ts := gen_duration(1,200);
|
||||
life_ts := gen_duration(2,200);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_LIFESPAN, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 13, Inline-QoS (Invalid PID_STATUS_INFO)]", INFO);
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 12, Inline-QoS (Invalid PID_STATUS_INFO)]", INFO);
|
||||
src_ts := gen_duration(1,300);
|
||||
life_ts := gen_duration(2,300);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(13);
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
@ -919,7 +863,6 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_STATUS_INFO, -1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
@ -928,9 +871,34 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 13, Inline-QoS (Extra Bytes in PID_STATUS_INFO)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 12, Inline-QoS (Extra Bytes in PID_STATUS_INFO)]", INFO);
|
||||
src_ts := gen_duration(1,400);
|
||||
life_ts := gen_duration(2,400);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_STATUS_INFO, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 13, Inline-QoS (Invalid PID_KEY_HASH)]", INFO);
|
||||
src_ts := gen_duration(1,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
@ -944,35 +912,6 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_STATUS_INFO, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 14, Inline-QoS (Invalid PID_KEY_HASH)]", INFO);
|
||||
src_ts := gen_duration(1,500);
|
||||
life_ts := gen_duration(2,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(14);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_KEY_HASH, -1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
@ -981,15 +920,14 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 14, Inline-QoS (Extra Bytes in PID_KEY_HASH)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 13, Inline-QoS (Extra Bytes in PID_KEY_HASH)]", INFO);
|
||||
src_ts := gen_duration(1,600);
|
||||
life_ts := gen_duration(2,600);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(14);
|
||||
sub.writerSN := gen_sn(13);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
@ -997,11 +935,10 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_KEY_HASH, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1009,15 +946,14 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 15, Inline-QoS (Lifespan, Status Info, Key Hash), Little Endian]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 14, Inline-QoS (Status Info, Key Hash), Little Endian]", INFO);
|
||||
src_ts := gen_duration(1,700);
|
||||
life_ts := gen_duration(2,700);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(15);
|
||||
sub.writerSN := gen_sn(14);
|
||||
sub.flags(SUBMESSAGE_ENDIAN_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
@ -1026,11 +962,10 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '1', sub.inlineQos);
|
||||
gen_sentinel('1', sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1041,52 +976,48 @@ begin
|
||||
-- *NON_PAYLOAD TRAFFIC HANDLING*
|
||||
Log("Test Non-Payload Traffic Handling", INFO);
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 16, No Payload, Inline-QoS (Lifespan, Status Info, Key Hash)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 15, No Payload, Inline-QoS (Status Info, Key Hash)]", INFO);
|
||||
src_ts := gen_duration(2,0);
|
||||
life_ts := gen_duration(3,0);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(15);
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_DISPOSED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 16, Serialized Key, Inline-QoS (Status Info)]", INFO);
|
||||
src_ts := gen_duration(2,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(16);
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_DISPOSED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 17, Serialized Key, Inline-QoS (Lifespan, Status Info)]", INFO);
|
||||
src_ts := gen_duration(2,500);
|
||||
life_ts := gen_duration(3,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(17);
|
||||
sub.flags(SUBMESSAGE_KEY_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_UNREGISTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1094,20 +1025,18 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 18, No Payload, Inline-QoS (Lifespan, Status Info)]", INFO);
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 17, No Payload, Inline-QoS (Status Info)]", INFO);
|
||||
src_ts := gen_duration(2,600);
|
||||
life_ts := gen_duration(3,600);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(18);
|
||||
sub.writerSN := gen_sn(17);
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_DISPOSED;
|
||||
cc.src_timestamp := src_ts;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
@ -1117,7 +1046,6 @@ begin
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
src_ts := TIME_INVALID;
|
||||
life_ts := TIME_INVALID;
|
||||
|
||||
-- *HISTORY CACHE RESPONSE HANDLING*
|
||||
Log("Test History Cache Response Handling", INFO);
|
||||
@ -1133,7 +1061,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(FALSE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1152,7 +1080,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
|
||||
@ -107,7 +107,7 @@ begin
|
||||
variable payload : TEST_PACKET_TYPE := EMPTY_TEST_PACKET;
|
||||
variable sub : RTPS_SUBMESSAGE_TYPE := DEFAULT_RTPS_SUBMESSAGE;
|
||||
variable cc : CACHE_CHANGE_TYPE := DEFAULT_CACHE_CHANGE;
|
||||
variable src_ts, life_ts : TIME_TYPE := TIME_INVALID;
|
||||
variable src_ts : TIME_TYPE := TIME_INVALID;
|
||||
|
||||
-- Wrapper to use procedure as function
|
||||
impure function gen_rand_loc_2 return LOCATOR_TYPE is
|
||||
@ -215,6 +215,7 @@ begin
|
||||
e0.entityid := RV.RandSlv(ENTITYID_WIDTH);
|
||||
e0.participant.guidPrefix := gen_rand_guid_prefix;
|
||||
e0.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
|
||||
e0.lifespan := gen_duration(2,0);
|
||||
-- Endpoint 2
|
||||
e1 := DEFAULT_ENDPOINT_DATA;
|
||||
e1.reader := FALSE;
|
||||
@ -242,7 +243,6 @@ begin
|
||||
reset <= '0';
|
||||
|
||||
src_ts := TIME_INVALID;
|
||||
life_ts := TIME_INVALID;
|
||||
|
||||
-- *GENERAL SEQUENCE NUMBER HANDLING*
|
||||
Log("Test General SequenceNumber Handling", INFO);
|
||||
@ -281,7 +281,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -330,7 +330,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -381,7 +381,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -444,7 +444,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -507,7 +507,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -540,7 +540,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -634,7 +634,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -696,7 +696,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -744,7 +744,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -792,7 +792,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -814,7 +814,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub); -- No key Hash due to WITH_KEY=FALSE
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -822,9 +822,8 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 11, Inline-QoS (Lifespan, Status Info, Key Hash)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 11, Inline-QoS (Status Info, Key Hash)]", INFO);
|
||||
src_ts := gen_duration(1,0);
|
||||
life_ts := gen_duration(2,0);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
@ -838,12 +837,11 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc.instance := HANDLE_NIL; -- No key Hash due to WITH_KEY=FALSE
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -851,69 +849,14 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 12, Inline-QoS (Invalid PID_LIFESPAN)]", INFO);
|
||||
src_ts := gen_duration(1,100);
|
||||
life_ts := gen_duration(2,100);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_LIFESPAN, -1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 12, Inline-QoS (Extra Bytes in PID_LIFESPAN)]", INFO);
|
||||
src_ts := gen_duration(1,200);
|
||||
life_ts := gen_duration(2,200);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_LIFESPAN, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc.instance := HANDLE_NIL; -- No key Hash due to WITH_KEY=FALSE
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 13, Inline-QoS (Invalid PID_STATUS_INFO)]", INFO);
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 12, Inline-QoS (Invalid PID_STATUS_INFO)]", INFO);
|
||||
src_ts := gen_duration(1,300);
|
||||
life_ts := gen_duration(2,300);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(13);
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
@ -921,7 +864,6 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_STATUS_INFO, -1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
@ -930,9 +872,35 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 13, Inline-QoS (Extra Bytes in PID_STATUS_INFO)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 12, Inline-QoS (Extra Bytes in PID_STATUS_INFO)]", INFO);
|
||||
src_ts := gen_duration(1,400);
|
||||
life_ts := gen_duration(2,400);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(12);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_STATUS_INFO, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc.instance := HANDLE_NIL; -- No key Hash due to WITH_KEY=FALSE
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 13, Inline-QoS (Invalid PID_KEY_HASH)]", INFO);
|
||||
src_ts := gen_duration(1,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
@ -946,36 +914,6 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_STATUS_INFO, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc.instance := HANDLE_NIL; -- No key Hash due to WITH_KEY=FALSE
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
wait_on_out_check;
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Ignore Endpoint 1 sent DATA [SN 14, Inline-QoS (Invalid PID_KEY_HASH)]", INFO);
|
||||
src_ts := gen_duration(1,500);
|
||||
life_ts := gen_duration(2,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(14);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_KEY_HASH, -1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
@ -984,15 +922,14 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 14, Inline-QoS (Extra Bytes in PID_KEY_HASH)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 13, Inline-QoS (Extra Bytes in PID_KEY_HASH)]", INFO);
|
||||
src_ts := gen_duration(1,600);
|
||||
life_ts := gen_duration(2,600);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(14);
|
||||
sub.writerSN := gen_sn(13);
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
@ -1000,12 +937,11 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos, PID_KEY_HASH, +1);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc.instance := HANDLE_NIL; -- No key Hash due to WITH_KEY=FALSE
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1013,15 +949,14 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 15, Inline-QoS (Lifespan, Status Info, Key Hash), Little Endian]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 14, Inline-QoS (Status Info, Key Hash), Little Endian]", INFO);
|
||||
src_ts := gen_duration(1,700);
|
||||
life_ts := gen_duration(2,700);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(15);
|
||||
sub.writerSN := gen_sn(14);
|
||||
sub.flags(SUBMESSAGE_ENDIAN_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_DATA_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
@ -1030,12 +965,11 @@ begin
|
||||
cc.kind := ALIVE_FILTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '1', sub.inlineQos);
|
||||
gen_sentinel('1', sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc.instance := HANDLE_NIL; -- No key Hash due to WITH_KEY=FALSE
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1046,26 +980,24 @@ begin
|
||||
-- *NON_PAYLOAD TRAFFIC HANDLING*
|
||||
Log("Test Non-Payload Traffic Handling", INFO);
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 16, No Payload, Inline-QoS (Lifespan, Status Info, Key Hash)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 15, No Payload, Inline-QoS (Status Info, Key Hash)]", INFO);
|
||||
src_ts := gen_duration(2,0);
|
||||
life_ts := gen_duration(3,0);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(16);
|
||||
sub.writerSN := gen_sn(15);
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_DISPOSED;
|
||||
cc.src_timestamp := src_ts;
|
||||
cc.instance := gen_key_hash;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc.instance := HANDLE_NIL; -- No key Hash due to WITH_KEY=FALSE
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1073,27 +1005,25 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 17, Serialized Key, Inline-QoS (Lifespan, Status Info)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 16, Serialized Key, Inline-QoS (Status Info)]", INFO);
|
||||
src_ts := gen_duration(2,500);
|
||||
life_ts := gen_duration(3,500);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(17);
|
||||
sub.writerSN := gen_sn(16);
|
||||
sub.flags(SUBMESSAGE_KEY_FLAG_POS) := '1';
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
sub.data := gen_payload;
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_UNREGISTERED;
|
||||
cc.src_timestamp := src_ts;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc.payload := EMPTY_TEST_PACKET; -- No payload due to WITH_KEY=FALSE
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1101,24 +1031,22 @@ begin
|
||||
stimulus_user := EMPTY_TEST_PACKET;
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
Log("Accept Endpoint 1 sent DATA [SN 18, No Payload, Inline-QoS (Lifespan, Status Info)]", INFO);
|
||||
Log("Accept Endpoint 1 sent DATA [SN 17, No Payload, Inline-QoS (Status Info)]", INFO);
|
||||
src_ts := gen_duration(2,600);
|
||||
life_ts := gen_duration(3,600);
|
||||
endpoint := e1;
|
||||
sub := DEFAULT_RTPS_SUBMESSAGE;
|
||||
sub.submessageID := SID_DATA;
|
||||
sub.writerId := endpoint.entityid;
|
||||
sub.readerId := DEFAULT_READER_ENTITYID;
|
||||
sub.writerSN := gen_sn(18);
|
||||
sub.writerSN := gen_sn(17);
|
||||
sub.flags(SUBMESSAGE_INLINE_QOS_FLAG_POS) := '1';
|
||||
cc := gen_cache_change(sub);
|
||||
cc.kind := NOT_ALIVE_DISPOSED;
|
||||
cc.src_timestamp := src_ts;
|
||||
endpoint.lifespan := life_ts;
|
||||
gen_inline_qos(cc, endpoint, TRUE, '0', sub.inlineQos);
|
||||
gen_sentinel(sub.inlineQos);
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
gen_add_cache_change_dds(cc, life_ts, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1127,7 +1055,6 @@ begin
|
||||
reference := EMPTY_TEST_PACKET;
|
||||
|
||||
src_ts := TIME_INVALID;
|
||||
life_ts := TIME_INVALID;
|
||||
|
||||
-- *HISTORY CACHE RESPONSE HANDLING*
|
||||
Log("Test History Cache Response Handling", INFO);
|
||||
@ -1143,7 +1070,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(FALSE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
@ -1162,7 +1089,7 @@ begin
|
||||
sub.data := gen_payload;
|
||||
gen_rtps_handler_out(sub, get_loc(endpoint), FALSE, src_ts, endpoint.participant.guidPrefix, stimulus_user);
|
||||
cc := gen_cache_change(sub);
|
||||
gen_add_cache_change_dds(cc, TIME_INVALID, endpoint.nr, reference);
|
||||
gen_add_cache_change_dds(cc, endpoint.lifespan, endpoint.nr, reference);
|
||||
push_reference(TRUE);
|
||||
start_user_test;
|
||||
wait_on_user_sent;
|
||||
|
||||
@ -137,7 +137,7 @@ architecture arch of rtps_builtin_endpoint is
|
||||
type STAGE_TYPE is (IDLE, PACKET_HEADER, PACKET_SRC_ADDR, PACKET_SRC_ENTITYID, PACKET_SRC_GUIDPREFIX, PACKET_DEST_ENTITYID,
|
||||
CHECK_SRC_ENTITYID, LATCH_SEQ_NR, PROCESS_DATA, PROCESS_MESSAGE_SEQUENCE_NUMBERS, PROCESS_MESSAGE, PROCESS_GAP, PROCESS_GAP_SEQUENCE_NUMBERS, FIND_NEXT_VALID_IN_BITMAP,
|
||||
PROCESS_PL, CHECK_DEFAULT, SELECT_LOCATOR, LATCH_STRING_LENGTH, COMPARE_STRING, RXO_DURABILITY, RXO_DEADLINE, RXO_LIVELINESS, RXO_LEASE_DURATION, LATCH_LEASE_DURATION,
|
||||
RXO_RELIABILITY, RXO_DESTINATION_ORDER, RXO_OWNERSHIP, RXO_PRESENTATION, RXO_PARTITION, RXO_LATENCY_BUDGET, CHECK_MAX_SIZE_SERIALIZED,
|
||||
LATCH_LIFESPAN_DURATION, RXO_RELIABILITY, RXO_DESTINATION_ORDER, RXO_OWNERSHIP, RXO_PRESENTATION, RXO_PARTITION, RXO_LATENCY_BUDGET, CHECK_MAX_SIZE_SERIALIZED,
|
||||
MATCH_DOMAIN_ID, MATCH_PROTOCOL_VERSION, LATCH_LOCATOR, LATCH_EXPECTS_INLINE_QOS, MATCH_GUID, CHECK_REMOTE_BUILTIN_ENDPOINTS, CHECK_STATUS_INFO,
|
||||
PARTICIPANT_MATCH_STAGE, INFORM_ENDPOINTS_MATCH, INFORM_ENDPOINTS_UNMATCH, INFORM_ENDPOINTS_PARTICIPANT_UNMATCH, PARTICIPANT_STALE_CHECK,
|
||||
LATCH_REMOVED_GUIDPREFIX, PROCESS_HEARTBEAT, PROCESS_HEARTBEAT_SEQUENCE_NUMBERS, SEND_ACKNACK, SEND_HEARTBEAT, PROCESS_ACKNACK,
|
||||
@ -353,6 +353,8 @@ architecture arch of rtps_builtin_endpoint is
|
||||
signal meta_uc_port, meta_uc_port_next : std_logic_vector(UDP_PORT_WIDTH-1 downto 0);
|
||||
-- Participant Lease Duration Latch
|
||||
signal lease_duration, lease_duration_next : DURATION_TYPE;
|
||||
-- Endpoint Lifespan Duration Latch
|
||||
signal lifespan_duration, lifespan_duration_next : DURATION_TYPE;
|
||||
-- General Purpose Long latch
|
||||
signal long_latch, long_latch_next : std_logic_vector(CDR_LONG_WIDTH-1 downto 0);
|
||||
-- Contains flags that signify which PIDs where received. This is done in order to use the default value for
|
||||
@ -595,6 +597,7 @@ begin
|
||||
-- LATCH_LOCATOR Store Locator. NOTE: Only Metatraffic and User Locators are differentiated. Unicast and Multicast are overwriting each other and the last parsed is the one to be used.
|
||||
-- LATCH_EXPECTS_INLINE_QOS Store 'expectsInlineQoS' Flag
|
||||
-- LATCH_LEASE_DURATION Store remote Participant Lease Duration
|
||||
-- LATCH_LIFESPAN_DURATION Store remote Endpoint Lifespan Duration
|
||||
-- CHECK_REMOTE_BUILTIN_ENDPOINTS Check if the remote Participant has the required built-in Endpoints
|
||||
-- RXO_DURABILITY Check Compatibility of Durability QoS
|
||||
-- RXO_DEADLINE Check Compatibility of Deadline QoS
|
||||
@ -650,6 +653,7 @@ begin
|
||||
participant_match_next <= participant_match;
|
||||
is_subscriber_next <= is_subscriber;
|
||||
lease_duration_next <= lease_duration;
|
||||
lifespan_duration_next <= lifespan_duration;
|
||||
def_mc_addr_next <= def_mc_addr;
|
||||
def_uc_addr_next <= def_uc_addr;
|
||||
meta_mc_addr_next <= meta_mc_addr;
|
||||
@ -803,6 +807,7 @@ begin
|
||||
def_mc_port_next <= UDP_PORT_INVALID;
|
||||
def_uc_port_next <= UDP_PORT_INVALID;
|
||||
lease_duration_next <= DEFAULT_PARTICIPANT_LEASE_DURATION;
|
||||
lifespan_duration_next <= DURATION_INFINITE;
|
||||
reader_flags_next <= (READER_EXPECTS_INLINE_QOS_FLAG => DEFAULT_EXPECTS_INLINE_QOS, READER_EXPECTS_HISTORICAL_DATA_FLAG => DEFAULT_EXPECTS_HISTORICAL_DATA_FLAG, READER_IS_BEST_EFFORT_FLAG => DEFAULT_IS_BEST_EFFORT_FLAG, others => '0');
|
||||
rcvd_next <= (others => '0');
|
||||
ud_status_next <= '0';
|
||||
@ -2263,9 +2268,12 @@ begin
|
||||
-- Ignore
|
||||
null;
|
||||
when PID_LIFESPAN =>
|
||||
-- Ignore
|
||||
-- NOTE: Lifespan is requested via in-line QoS and handled directly by the endpoint
|
||||
null;
|
||||
-- Ignore in-line QoS
|
||||
-- Only relevant for Endpoint Discovery Protocol
|
||||
if(qos_flag = '0' and message_type = EDP) then
|
||||
stage_next <= LATCH_LIFESPAN_DURATION;
|
||||
cnt_next <= 0;
|
||||
end if;
|
||||
when PID_DURABILITY_SERVICE =>
|
||||
-- Ignore
|
||||
null;
|
||||
@ -2697,6 +2705,24 @@ begin
|
||||
null;
|
||||
end case;
|
||||
end if;
|
||||
when LATCH_LIFESPAN_DURATION =>
|
||||
-- Input FIFO Guard
|
||||
if (empty = '0') then
|
||||
rd_guard := '1';
|
||||
|
||||
-- Latch Lease Duration
|
||||
case (cnt) is
|
||||
when 0 =>
|
||||
lifespan_duration_next(0) <= unsigned(data_in_swapped);
|
||||
cnt_next <= cnt + 1;
|
||||
when 1 =>
|
||||
lifespan_duration_next(1) <= unsigned(data_in_swapped);
|
||||
-- DONE
|
||||
stage_next <= SKIP_PARAMETER;
|
||||
when others =>
|
||||
null;
|
||||
end case;
|
||||
end if;
|
||||
when CHECK_REMOTE_BUILTIN_ENDPOINTS =>
|
||||
-- Input FIFO Guard
|
||||
if (empty = '0') then
|
||||
@ -3132,7 +3158,6 @@ begin
|
||||
when 6 =>
|
||||
-- Default
|
||||
data_out_sig <= (others => '0');
|
||||
last_word_out_sig <= '1';
|
||||
|
||||
-- If Endpoint did not set Port, use Participant Default
|
||||
if (def_port /= UDP_PORT_INVALID) then
|
||||
@ -3142,8 +3167,23 @@ begin
|
||||
end if;
|
||||
|
||||
if (is_subscriber = '1') then
|
||||
last_word_out_sig <= '1';
|
||||
data_out_sig(15 downto 0) <= reader_flags;
|
||||
|
||||
-- DONE
|
||||
stage_next <= INFORM_ENDPOINTS_UNMATCH;
|
||||
cnt_next <= 0;
|
||||
else
|
||||
cnt_next <= cnt + 1;
|
||||
end if;
|
||||
-- Lifespan Duration 1/2
|
||||
when 7 =>
|
||||
data_out_sig <= std_logic_vector(lifespan_duration(0));
|
||||
cnt_next <= cnt + 1;
|
||||
-- Lifespan Duration 2/2
|
||||
when 8 =>
|
||||
last_word_out_sig <= '1';
|
||||
data_out_sig <= std_logic_vector(lifespan_duration(1));
|
||||
|
||||
-- DONE
|
||||
stage_next <= INFORM_ENDPOINTS_UNMATCH;
|
||||
@ -6107,6 +6147,7 @@ begin
|
||||
live_gap_start <= to_double_word(to_unsigned(2, 64));
|
||||
live_gap_end <= FIRST_SEQUENCENUMBER;
|
||||
lease_duration <= DURATION_ZERO;
|
||||
lifespan_duration <= DURATION_ZERO;
|
||||
check_time <= TIME_INVALID;
|
||||
announcement_time <= time + PARTICIPANT_ANNOUNCEMENT_PERIOD;
|
||||
heartbeat_time <= time + HEARTBEAT_PERIOD;
|
||||
@ -6174,6 +6215,7 @@ begin
|
||||
live_gap_start <= live_gap_start_next;
|
||||
live_gap_end <= live_gap_end_next;
|
||||
lease_duration <= lease_duration_next;
|
||||
lifespan_duration <= lifespan_duration_next;
|
||||
check_time <= check_time_next;
|
||||
announcement_time <= announcement_time_next;
|
||||
heartbeat_time <= heartbeat_time_next;
|
||||
|
||||
@ -69,9 +69,9 @@ architecture arch of rtps_reader is
|
||||
variable ret : natural := 0;
|
||||
begin
|
||||
if (qos = RELIABLE_RELIABILITY_QOS) then
|
||||
ret := 12;
|
||||
ret := 14;
|
||||
else
|
||||
ret := 8;
|
||||
ret := 10;
|
||||
end if;
|
||||
return ret;
|
||||
end function;
|
||||
@ -89,14 +89,15 @@ architecture arch of rtps_reader is
|
||||
|
||||
-- *ENDPOINT MEMORY FRAME FIELD FLAGS*
|
||||
-- Flags mapping to the respective Endpoint Memory Frame Fields
|
||||
constant EMF_FLAG_WIDTH : natural := 7;
|
||||
constant EMF_FLAG_WIDTH : natural := 8;
|
||||
constant EMF_ENTITYID_FLAG : std_logic_vector(0 to EMF_FLAG_WIDTH-1) := (0 => '1', others => '0');
|
||||
constant EMF_GUIDPREFIX_FLAG : std_logic_vector(0 to EMF_FLAG_WIDTH-1) := (1 => '1', others => '0');
|
||||
constant EMF_IPV4_ADDR_FLAG : std_logic_vector(0 to EMF_FLAG_WIDTH-1) := (2 => '1', others => '0');
|
||||
constant EMF_UDP_PORT_FLAG : std_logic_vector(0 to EMF_FLAG_WIDTH-1) := (3 => '1', others => '0');
|
||||
constant EMF_NEXT_SEQ_NR_FLAG : std_logic_vector(0 to EMF_FLAG_WIDTH-1) := (4 => '1', others => '0');
|
||||
constant EMF_LEASE_DEADLINE_FLAG : std_logic_vector(0 to EMF_FLAG_WIDTH-1) := (5 => '1', others => '0');
|
||||
constant EMF_RES_TIME_FLAG : std_logic_vector(0 to EMF_FLAG_WIDTH-1) := (6 => '1', others => '0');
|
||||
constant EMF_LIFESPAN_DURATION_FLAG : std_logic_vector(0 to EMF_FLAG_WIDTH-1) := (6 => '1', others => '0');
|
||||
constant EMF_RES_TIME_FLAG : std_logic_vector(0 to EMF_FLAG_WIDTH-1) := (7 => '1', others => '0');
|
||||
|
||||
-- *ENDPOINT MEMORY FRAME FIELD OFFSETS*
|
||||
-- 4-Byte Word Offsets to Beginning of Respective Fields in the Endpoint Memory Frame
|
||||
@ -114,15 +115,16 @@ architecture arch of rtps_reader is
|
||||
end if;
|
||||
return ret;
|
||||
end function;
|
||||
constant EMF_NEXT_SEQ_NR_OFFSET : natural := gen_emf_next_seq_nr_offset(RELIABILITY_QOS);
|
||||
constant EMF_LEASE_DEADLINE_OFFSET : natural := EMF_NEXT_SEQ_NR_OFFSET + 2;
|
||||
constant EMF_RES_TIME_OFFSET : natural := EMF_LEASE_DEADLINE_OFFSET + 2;
|
||||
constant EMF_NEXT_SEQ_NR_OFFSET : natural := gen_emf_next_seq_nr_offset(RELIABILITY_QOS);
|
||||
constant EMF_LEASE_DEADLINE_OFFSET : natural := EMF_NEXT_SEQ_NR_OFFSET + 2;
|
||||
constant EMF_LIFESPAN_DURATION_OFFSET : natural := EMF_LEASE_DEADLINE_OFFSET + 2;
|
||||
constant EMF_RES_TIME_OFFSET : natural := EMF_LIFESPAN_DURATION_OFFSET + 2;
|
||||
|
||||
|
||||
--*****TYPE DECLARATION*****
|
||||
-- FSM states. Explained below in detail
|
||||
type STAGE_TYPE is (IDLE, LATCH_GUIDPREFIX, LATCH_ENTITYID, INITIATE_ENDPOINT_SEARCH, LATCH_ENDPOINT_DATA, METATRAFFIC_OPERATION, LATCH_SRC_ADDR,
|
||||
LATCH_EXTRA_DATA, LATCH_HEARTBEAT, PROCESS_HEARTBEAT, LATCH_GAP, PROCESS_GAP, FIND_NEXT_VALID_IN_BITMAP, PROCESS_INLINE_QOS, LATCH_LIFESPAN,
|
||||
LATCH_EXTRA_DATA, LATCH_HEARTBEAT, PROCESS_HEARTBEAT, LATCH_GAP, PROCESS_GAP, FIND_NEXT_VALID_IN_BITMAP, PROCESS_INLINE_QOS,
|
||||
LATCH_KEY_HASH, LATCH_STATUS_INFO, INITIATE_ADD_CACHE_CHANGE_REQUEST, ADD_CACHE_CHANGE, PUSH_PAYLOAD, FINALIZE_ADD_CACHE_CHANGE_REQUEST,
|
||||
ENDPOINT_STALE_CHECK, SEND_HEADER, SEND_ACKNACK, SKIP_PARAMETER, SKIP_PACKET, SKIP_META_OPERATION);
|
||||
-- Memory FSM states. Explained below in detail
|
||||
@ -151,6 +153,7 @@ architecture arch of rtps_reader is
|
||||
portn : std_logic_vector(UDP_PORT_WIDTH-1 downto 0);
|
||||
next_seq_nr : SEQUENCENUMBER_TYPE;
|
||||
lease_deadline : TIME_TYPE;
|
||||
lifespan : DURATION_TYPE;
|
||||
res_time : TIME_TYPE;
|
||||
end record;
|
||||
-- Zero initialized Endpoint Data
|
||||
@ -160,6 +163,7 @@ architecture arch of rtps_reader is
|
||||
portn => UDP_PORT_INVALID,
|
||||
next_seq_nr => SEQUENCENUMBER_UNKNOWN,
|
||||
lease_deadline => TIME_INVALID,
|
||||
lifespan => DURATION_INFINITE,
|
||||
res_time => TIME_INVALID
|
||||
);
|
||||
-- Endpoint Data Latch used as temporal cache by Memory Process
|
||||
@ -168,6 +172,7 @@ architecture arch of rtps_reader is
|
||||
addr : std_logic_vector(IPv4_ADDRESS_WIDTH-1 downto 0);
|
||||
portn : std_logic_vector(UDP_PORT_WIDTH-1 downto 0);
|
||||
lease_deadline : TIME_TYPE;
|
||||
lifespan : DURATION_TYPE;
|
||||
res_time : TIME_TYPE;
|
||||
next_seq_nr : SEQUENCENUMBER_TYPE;
|
||||
field_flag : std_logic_vector(0 to EMF_FLAG_WIDTH-1);
|
||||
@ -178,6 +183,7 @@ architecture arch of rtps_reader is
|
||||
addr => IPv4_ADDRESS_INVALID,
|
||||
portn => UDP_PORT_INVALID,
|
||||
lease_deadline => TIME_INVALID,
|
||||
lifespan => DURATION_INFINITE,
|
||||
res_time => TIME_INVALID,
|
||||
next_seq_nr => SEQUENCENUMBER_UNKNOWN,
|
||||
field_flag => (others => '0')
|
||||
@ -222,7 +228,7 @@ architecture arch of rtps_reader is
|
||||
signal key_hash_rcvd, key_hash_rcvd_next : std_logic;
|
||||
-- Status Info Latch
|
||||
signal status_info, status_info_next : std_logic_vector(STATUS_INFO_WIDTH-1 downto 0);
|
||||
-- Lifespan Latch
|
||||
-- Lifespan Latch (Contains Lifespan Duration during meta parsing, and Lifespan Deadline during user parsing)
|
||||
signal lifespan, lifespan_next : TIME_TYPE;
|
||||
-- RTPS Sequence Number Latch
|
||||
signal seq_nr, seq_nr_next : SEQUENCENUMBER_TYPE;
|
||||
@ -281,7 +287,7 @@ architecture arch of rtps_reader is
|
||||
-- Highest Endpoint Memory Address (Points to first Address of last occupied Endpoint Frame)
|
||||
signal max_endpoint_addr, max_endpoint_addr_next : unsigned(ENDPOINT_MEMORY_ADDR_WIDTH-1 downto 0);
|
||||
-- General Purpose Couter
|
||||
signal mem_cnt, mem_cnt_next : natural range 0 to 23;
|
||||
signal mem_cnt, mem_cnt_next : natural range 0 to 27;
|
||||
-- Latch for Endpoint Data from Memory
|
||||
signal mem_endpoint_data, mem_endpoint_data_next : ENDPOINT_DATA_TYPE;
|
||||
-- Latch for Endpoint Data from main process
|
||||
@ -385,7 +391,6 @@ begin
|
||||
-- PROCESS_GAP Parse RTPS GAP Submsessage. Initiates search for next valid Sequence Number if currently expected Sequence Number is in GAP
|
||||
-- FIND_NEXT_VALID_IN_BITMAP Iterate through Bitmap and find the next valid Sequence Number.
|
||||
-- PROCESS_INLINE_QOS Parse in-line Parameter List QoS
|
||||
-- LATCH_LIFESPAN Store LIFESPAN_QOS
|
||||
-- LATCH_KEY_HASH Store KEY_HASH
|
||||
-- LATCH_STATUS_INFO Store STATUS_INFO
|
||||
-- INITIATE_ADD_CACHE_CHANGE_REQUEST Initiate an ADD_CACHE_CHANGE Operation
|
||||
@ -636,7 +641,7 @@ begin
|
||||
case (opcode) is
|
||||
when SID_DATA =>
|
||||
stage_next <= LATCH_EXTRA_DATA;
|
||||
mem_field_flags <= EMF_NEXT_SEQ_NR_FLAG;
|
||||
mem_field_flags <= EMF_NEXT_SEQ_NR_FLAG or EMF_LIFESPAN_DURATION_FLAG;
|
||||
cnt_next <= 0;
|
||||
when SID_HEARTBEAT =>
|
||||
stage_next <= LATCH_HEARTBEAT;
|
||||
@ -665,8 +670,18 @@ begin
|
||||
when 1 =>
|
||||
--assert (last_word_in_meta = '1') report "last_word_in_meta not set" severity FAILURE;
|
||||
|
||||
-- NOTE: Reader Flags are ignored, since they are only relevant for Writer Endpoints
|
||||
portn_next <= data_in_meta(WORD_WIDTH-1 downto WORD_WIDTH-UDP_PORT_WIDTH);
|
||||
|
||||
cnt_next <= cnt + 1;
|
||||
-- Lifespan Duration 1/2
|
||||
when 2 =>
|
||||
lifespan_next(0) <= unsigned(data_in_meta);
|
||||
cnt_next <= cnt + 1;
|
||||
-- Lifespan Duration 2/2
|
||||
when 3 =>
|
||||
lifespan_next(1) <= unsigned(data_in_meta);
|
||||
|
||||
stage_next <= METATRAFFIC_OPERATION;
|
||||
when others =>
|
||||
null;
|
||||
@ -679,13 +694,15 @@ begin
|
||||
when EMO_ENDPOINT_MATCH =>
|
||||
-- Endpoint already in Memory
|
||||
if (mem_addr_base /= ENDPOINT_MEMORY_MAX_ADDRESS) then
|
||||
-- Update the Endpoint Data
|
||||
-- NOTE: The Lease Duration is NOT updated in case of an update. That is the responsibility of the Liveliness Update
|
||||
mem_op_start <= '1';
|
||||
mem_opcode <= UPDATE_ENDPOINT;
|
||||
-- Synthesis Guard
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS) then
|
||||
-- Update the Endpoint Data
|
||||
-- NOTE: The Lease Duration is NOT updated in case of an update. That is the responsibility of the Liveliness Update
|
||||
mem_op_start <= '1';
|
||||
mem_opcode <= UPDATE_ENDPOINT;
|
||||
mem_field_flags <= EMF_IPV4_ADDR_FLAG or EMF_UDP_PORT_FLAG;
|
||||
mem_field_flags <= EMF_IPV4_ADDR_FLAG or EMF_UDP_PORT_FLAG or EMF_LIFESPAN_DURATION_FLAG;
|
||||
else
|
||||
mem_field_flags <= EMF_LIFESPAN_DURATION_FLAG;
|
||||
end if;
|
||||
-- DONE
|
||||
stage_next <= IDLE;
|
||||
@ -1135,8 +1152,8 @@ begin
|
||||
-- Ignore
|
||||
null;
|
||||
when PID_LIFESPAN =>
|
||||
stage_next <= LATCH_LIFESPAN;
|
||||
cnt_next <= 0;
|
||||
-- Ignore
|
||||
null;
|
||||
when PID_CONTENT_FILTER_INFO =>
|
||||
-- Ignore
|
||||
null;
|
||||
@ -1185,35 +1202,6 @@ begin
|
||||
end if;
|
||||
end case;
|
||||
end if;
|
||||
when LATCH_LIFESPAN =>
|
||||
-- Input FIFO Guard
|
||||
if (empty_user = '0') then
|
||||
rd_guard := '1';
|
||||
|
||||
case (cnt) is
|
||||
-- Lifespan 1/2
|
||||
when 0 =>
|
||||
-- NOTE: We are misusing the sn_latch_1 as temporal CDR_LONG storage
|
||||
sn_latch_1_next(0) <= unsigned(data_in_swapped);
|
||||
cnt_next <= cnt + 1;
|
||||
-- Lifespan 2/2
|
||||
when 1 =>
|
||||
tmp_dw := (0 => sn_latch_1(0), 1 => unsigned(data_in_swapped));
|
||||
|
||||
-- TODO: Use source timestamp if clocks with remote synchronized
|
||||
-- Calculate Sample Lifespan Deadline
|
||||
if (tmp_dw /= DURATION_INFINITE) then
|
||||
lifespan_next <= time + tmp_dw;
|
||||
else
|
||||
lifespan_next <= TIME_INVALID;
|
||||
end if;
|
||||
|
||||
-- DONE
|
||||
stage_next <= SKIP_PARAMETER;
|
||||
when others =>
|
||||
null;
|
||||
end case;
|
||||
end if;
|
||||
when LATCH_KEY_HASH =>
|
||||
-- Input FIFO Guard
|
||||
if (empty_user = '0') then
|
||||
@ -1253,11 +1241,11 @@ begin
|
||||
stage_next <= SKIP_PARAMETER;
|
||||
end if;
|
||||
when INITIATE_ADD_CACHE_CHANGE_REQUEST =>
|
||||
-- Precondition: mem_endpoint_data set (EMF_NEXT_SEQ_NR_FLAG)
|
||||
-- Precondition: mem_endpoint_data set (EMF_NEXT_SEQ_NR_FLAG, EMF_LIFESPAN_DURATION_FLAG)
|
||||
|
||||
-- Wait for Endpoint Data
|
||||
if (mem_op_done = '1') then
|
||||
assert check_mask(current_emf, EMF_NEXT_SEQ_NR_FLAG) severity FAILURE;
|
||||
assert check_mask(current_emf, EMF_NEXT_SEQ_NR_FLAG or EMF_LIFESPAN_DURATION_FLAG) severity FAILURE;
|
||||
|
||||
-- Unknown Endpoint
|
||||
if (mem_addr_base = ENDPOINT_MEMORY_MAX_ADDRESS) then
|
||||
@ -1275,8 +1263,14 @@ begin
|
||||
opcode_hc <= ADD_CACHE_CHANGE;
|
||||
-- Wait until History Cache acknowledges request
|
||||
if (ack_hc = '1') then
|
||||
stage_next <= ADD_CACHE_CHANGE;
|
||||
cnt_next <= 0;
|
||||
-- TODO: Use source timestamp if clocks with remote synchronized
|
||||
-- Calculate Sample Lifespan Deadline
|
||||
if (mem_endpoint_data.lifespan /= DURATION_INFINITE) then
|
||||
lifespan_next <= time + mem_endpoint_data.lifespan;
|
||||
end if;
|
||||
|
||||
stage_next <= ADD_CACHE_CHANGE;
|
||||
cnt_next <= 0;
|
||||
end if;
|
||||
end if;
|
||||
else
|
||||
@ -1808,6 +1802,7 @@ begin
|
||||
addr => addr_next,
|
||||
portn => portn_next,
|
||||
lease_deadline => lease_deadline,
|
||||
lifespan => lifespan_next,
|
||||
res_time => res_time,
|
||||
next_seq_nr => next_seq_nr_next,
|
||||
field_flag => mem_field_flags
|
||||
@ -1835,6 +1830,7 @@ begin
|
||||
mem_endpoint_data_next.next_seq_nr <= FIRST_SEQUENCENUMBER;
|
||||
end if;
|
||||
mem_endpoint_data_next.lease_deadline <= lease_deadline;
|
||||
mem_endpoint_data_next.lifespan <= lifespan_next;
|
||||
mem_endpoint_data_next.res_time <= TIME_INVALID;
|
||||
|
||||
mem_addr_base_next <= FIRST_ENDPOINT_ADDRESS;
|
||||
@ -1853,8 +1849,10 @@ begin
|
||||
mem_cnt_next <= 2;
|
||||
elsif check_mask(mem_field_flags,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 4;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_field_flags,EMF_RES_TIME_FLAG)) then
|
||||
elsif check_mask(mem_field_flags,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 6;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_field_flags,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 8;
|
||||
else
|
||||
-- DONE
|
||||
mem_stage_next <= IDLE;
|
||||
@ -1908,8 +1906,10 @@ begin
|
||||
mem_cnt_next <= 6;
|
||||
elsif check_mask(mem_field_flags,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 8;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_field_flags,EMF_RES_TIME_FLAG)) then
|
||||
elsif check_mask(mem_field_flags,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 10;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_field_flags,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 12;
|
||||
else
|
||||
-- DONE
|
||||
mem_stage_next <= IDLE;
|
||||
@ -2061,8 +2061,10 @@ begin
|
||||
mem_cnt_next <= 6;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 8;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 10;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 12;
|
||||
else
|
||||
-- DONE
|
||||
mem_stage_next <= IDLE;
|
||||
@ -2092,10 +2094,12 @@ begin
|
||||
mem_cnt_next <= 6;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 8;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 10;
|
||||
else
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 12;
|
||||
else
|
||||
mem_cnt_next <= 14;
|
||||
end if;
|
||||
end if;
|
||||
-- GET GUID Prefix 1/3
|
||||
@ -2131,13 +2135,15 @@ begin
|
||||
mem_cnt_next <= 6;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 8;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 10;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 12;
|
||||
else
|
||||
if check_mask(mem_endpoint_latch_data.field_flag,EMF_ENTITYID_FLAG) then
|
||||
mem_cnt_next <= 12;
|
||||
mem_cnt_next <= 14;
|
||||
else
|
||||
mem_cnt_next <= 13;
|
||||
mem_cnt_next <= 15;
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
@ -2156,15 +2162,17 @@ begin
|
||||
mem_cnt_next <= 6;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 8;
|
||||
elsif ((RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS) and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 10;
|
||||
elsif ((RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS) and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 12;
|
||||
else
|
||||
if check_mask(mem_endpoint_latch_data.field_flag,EMF_ENTITYID_FLAG) then
|
||||
mem_cnt_next <= 12;
|
||||
mem_cnt_next <= 14;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_GUIDPREFIX_FLAG) then
|
||||
mem_cnt_next <= 13;
|
||||
mem_cnt_next <= 15;
|
||||
else
|
||||
mem_cnt_next <= 16;
|
||||
mem_cnt_next <= 18;
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
@ -2182,17 +2190,19 @@ begin
|
||||
mem_cnt_next <= 6;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 8;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 10;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 12;
|
||||
else
|
||||
if check_mask(mem_endpoint_latch_data.field_flag,EMF_ENTITYID_FLAG) then
|
||||
mem_cnt_next <= 12;
|
||||
mem_cnt_next <= 14;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_GUIDPREFIX_FLAG) then
|
||||
mem_cnt_next <= 13;
|
||||
mem_cnt_next <= 15;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_IPV4_ADDR_FLAG)) then
|
||||
mem_cnt_next <= 16;
|
||||
mem_cnt_next <= 18;
|
||||
else
|
||||
mem_cnt_next <= 17;
|
||||
mem_cnt_next <= 19;
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
@ -2215,19 +2225,21 @@ begin
|
||||
if (mem_ready_in = '1') then
|
||||
if check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 8;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 10;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 12;
|
||||
else
|
||||
if check_mask(mem_endpoint_latch_data.field_flag,EMF_ENTITYID_FLAG) then
|
||||
mem_cnt_next <= 12;
|
||||
mem_cnt_next <= 14;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_GUIDPREFIX_FLAG) then
|
||||
mem_cnt_next <= 13;
|
||||
mem_cnt_next <= 15;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_IPV4_ADDR_FLAG)) then
|
||||
mem_cnt_next <= 16;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_UDP_PORT_FLAG)) then
|
||||
mem_cnt_next <= 17;
|
||||
else
|
||||
mem_cnt_next <= 18;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_UDP_PORT_FLAG)) then
|
||||
mem_cnt_next <= 19;
|
||||
else
|
||||
mem_cnt_next <= 20;
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
@ -2247,26 +2259,64 @@ begin
|
||||
mem_read <= '1';
|
||||
-- Memory Flow Control Guard
|
||||
if (mem_ready_in = '1') then
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
if check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 10;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 12;
|
||||
else
|
||||
if check_mask(mem_endpoint_latch_data.field_flag,EMF_ENTITYID_FLAG) then
|
||||
mem_cnt_next <= 12;
|
||||
mem_cnt_next <= 14;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_GUIDPREFIX_FLAG) then
|
||||
mem_cnt_next <= 13;
|
||||
mem_cnt_next <= 15;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_IPV4_ADDR_FLAG)) then
|
||||
mem_cnt_next <= 16;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_UDP_PORT_FLAG)) then
|
||||
mem_cnt_next <= 17;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_NEXT_SEQ_NR_FLAG) then
|
||||
mem_cnt_next <= 18;
|
||||
else
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_UDP_PORT_FLAG)) then
|
||||
mem_cnt_next <= 19;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_NEXT_SEQ_NR_FLAG) then
|
||||
mem_cnt_next <= 20;
|
||||
else
|
||||
mem_cnt_next <= 22;
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
-- GET Lifespan Duration 1/2
|
||||
when 10 =>
|
||||
mem_valid_in <= '1';
|
||||
mem_addr <= mem_addr_base + EMF_LIFESPAN_DURATION_OFFSET;
|
||||
mem_read <= '1';
|
||||
-- Memory Flow Control Guard
|
||||
if (mem_ready_in = '1') then
|
||||
mem_cnt_next <= mem_cnt + 1;
|
||||
end if;
|
||||
-- GET Lifespan Duration 2/2
|
||||
when 11 =>
|
||||
mem_valid_in <= '1';
|
||||
mem_addr <= mem_addr_base + EMF_LIFESPAN_DURATION_OFFSET + 1;
|
||||
mem_read <= '1';
|
||||
-- Memory Flow Control Guard
|
||||
if (mem_ready_in = '1') then
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 12;
|
||||
else
|
||||
if check_mask(mem_endpoint_latch_data.field_flag,EMF_ENTITYID_FLAG) then
|
||||
mem_cnt_next <= 14;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_GUIDPREFIX_FLAG) then
|
||||
mem_cnt_next <= 15;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_IPV4_ADDR_FLAG)) then
|
||||
mem_cnt_next <= 18;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_UDP_PORT_FLAG)) then
|
||||
mem_cnt_next <= 19;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_NEXT_SEQ_NR_FLAG) then
|
||||
mem_cnt_next <= 20;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 22;
|
||||
else
|
||||
mem_cnt_next <= 24;
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
-- GET Response Time 1/2
|
||||
when 10 =>
|
||||
when 12 =>
|
||||
-- Synthesis Guard
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS) then
|
||||
mem_valid_in <= '1';
|
||||
@ -2278,7 +2328,7 @@ begin
|
||||
end if;
|
||||
end if;
|
||||
-- GET Response Time 2/2
|
||||
when 11 =>
|
||||
when 13 =>
|
||||
-- Synthesis Guard
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS) then
|
||||
mem_valid_in <= '1';
|
||||
@ -2287,48 +2337,52 @@ begin
|
||||
-- Memory Flow Control Guard
|
||||
if (mem_ready_in = '1') then
|
||||
if check_mask(mem_endpoint_latch_data.field_flag,EMF_ENTITYID_FLAG) then
|
||||
mem_cnt_next <= 12;
|
||||
mem_cnt_next <= 14;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_GUIDPREFIX_FLAG) then
|
||||
mem_cnt_next <= 13;
|
||||
mem_cnt_next <= 15;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_IPV4_ADDR_FLAG)) then
|
||||
mem_cnt_next <= 16;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_UDP_PORT_FLAG)) then
|
||||
mem_cnt_next <= 17;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_NEXT_SEQ_NR_FLAG) then
|
||||
mem_cnt_next <= 18;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_UDP_PORT_FLAG)) then
|
||||
mem_cnt_next <= 19;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_NEXT_SEQ_NR_FLAG) then
|
||||
mem_cnt_next <= 20;
|
||||
else
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 22;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 24;
|
||||
else
|
||||
mem_cnt_next <= 26;
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
-- READ Entity ID
|
||||
when 12 =>
|
||||
when 14 =>
|
||||
mem_ready_out <= '1';
|
||||
-- Memory Flow Control Guard
|
||||
if (mem_valid_out = '1') then
|
||||
mem_endpoint_data_next.guid(3) <= mem_read_data;
|
||||
|
||||
if check_mask(mem_endpoint_latch_data.field_flag,EMF_GUIDPREFIX_FLAG) then
|
||||
mem_cnt_next <= 13;
|
||||
mem_cnt_next <= 15;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_IPV4_ADDR_FLAG)) then
|
||||
mem_cnt_next <= 16;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_UDP_PORT_FLAG)) then
|
||||
mem_cnt_next <= 17;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_NEXT_SEQ_NR_FLAG) then
|
||||
mem_cnt_next <= 18;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_UDP_PORT_FLAG)) then
|
||||
mem_cnt_next <= 19;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_NEXT_SEQ_NR_FLAG) then
|
||||
mem_cnt_next <= 20;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 22;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 24;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 26;
|
||||
else
|
||||
-- DONE
|
||||
mem_stage_next <= IDLE;
|
||||
end if;
|
||||
end if;
|
||||
-- READ GUID Prefix 1/3
|
||||
when 13 =>
|
||||
when 15 =>
|
||||
mem_ready_out <= '1';
|
||||
-- Memory Flow Control Guard
|
||||
if (mem_valid_out = '1') then
|
||||
@ -2337,7 +2391,7 @@ begin
|
||||
mem_cnt_next <= mem_cnt + 1;
|
||||
end if;
|
||||
-- READ GUID Prefix 2/3
|
||||
when 14 =>
|
||||
when 16 =>
|
||||
mem_ready_out <= '1';
|
||||
-- Memory Flow Control Guard
|
||||
if (mem_valid_out = '1') then
|
||||
@ -2346,29 +2400,31 @@ begin
|
||||
mem_cnt_next <= mem_cnt + 1;
|
||||
end if;
|
||||
-- READ GUID Prefix 3/3
|
||||
when 15 =>
|
||||
when 17 =>
|
||||
mem_ready_out <= '1';
|
||||
-- Memory Flow Control Guard
|
||||
if (mem_valid_out = '1') then
|
||||
mem_endpoint_data_next.guid(2) <= mem_read_data;
|
||||
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_IPV4_ADDR_FLAG)) then
|
||||
mem_cnt_next <= 16;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_UDP_PORT_FLAG)) then
|
||||
mem_cnt_next <= 17;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_NEXT_SEQ_NR_FLAG) then
|
||||
mem_cnt_next <= 18;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_UDP_PORT_FLAG)) then
|
||||
mem_cnt_next <= 19;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_NEXT_SEQ_NR_FLAG) then
|
||||
mem_cnt_next <= 20;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 22;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 24;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 26;
|
||||
else
|
||||
-- DONE
|
||||
mem_stage_next <= IDLE;
|
||||
end if;
|
||||
end if;
|
||||
-- READ IPv4 Address
|
||||
when 16 =>
|
||||
when 18 =>
|
||||
-- Synthesis Guard
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS) then
|
||||
mem_ready_out <= '1';
|
||||
@ -2377,13 +2433,15 @@ begin
|
||||
mem_endpoint_data_next.addr <= mem_read_data;
|
||||
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_UDP_PORT_FLAG)) then
|
||||
mem_cnt_next <= 17;
|
||||
mem_cnt_next <= 19;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_NEXT_SEQ_NR_FLAG) then
|
||||
mem_cnt_next <= 18;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 20;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 22;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 24;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 26;
|
||||
else
|
||||
-- DONE
|
||||
mem_stage_next <= IDLE;
|
||||
@ -2391,7 +2449,7 @@ begin
|
||||
end if;
|
||||
end if;
|
||||
-- READ UDP Port
|
||||
when 17 =>
|
||||
when 19 =>
|
||||
-- Synthesis Guard
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS) then
|
||||
mem_ready_out <= '1';
|
||||
@ -2400,11 +2458,13 @@ begin
|
||||
mem_endpoint_data_next.portn <= mem_read_data(WORD_WIDTH-1 downto WORD_WIDTH-UDP_PORT_WIDTH);
|
||||
|
||||
if check_mask(mem_endpoint_latch_data.field_flag,EMF_NEXT_SEQ_NR_FLAG) then
|
||||
mem_cnt_next <= 18;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 20;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 22;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 24;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 26;
|
||||
else
|
||||
-- DONE
|
||||
mem_stage_next <= IDLE;
|
||||
@ -2412,7 +2472,7 @@ begin
|
||||
end if;
|
||||
end if;
|
||||
-- READ Next Sequence Number 1/2
|
||||
when 18 =>
|
||||
when 20 =>
|
||||
mem_ready_out <= '1';
|
||||
-- Memory Flow Control Guard
|
||||
if (mem_valid_out = '1') then
|
||||
@ -2421,23 +2481,25 @@ begin
|
||||
mem_cnt_next <= mem_cnt + 1;
|
||||
end if;
|
||||
-- READ Next Sequence Number 2/2
|
||||
when 19 =>
|
||||
when 21 =>
|
||||
mem_ready_out <= '1';
|
||||
-- Memory Flow Control Guard
|
||||
if (mem_valid_out = '1') then
|
||||
mem_endpoint_data_next.next_seq_nr(1) <= unsigned(mem_read_data);
|
||||
|
||||
if check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 20;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 22;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 24;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 26;
|
||||
else
|
||||
-- DONE
|
||||
mem_stage_next <= IDLE;
|
||||
end if;
|
||||
end if;
|
||||
-- READ Lease Deadline 1/2
|
||||
when 20 =>
|
||||
when 22 =>
|
||||
mem_ready_out <= '1';
|
||||
-- Memory Flow Control Guard
|
||||
if (mem_valid_out = '1') then
|
||||
@ -2446,21 +2508,46 @@ begin
|
||||
mem_cnt_next <= mem_cnt + 1;
|
||||
end if;
|
||||
-- READ Lease Deadline 2/2
|
||||
when 21 =>
|
||||
when 23 =>
|
||||
mem_ready_out <= '1';
|
||||
-- Memory Flow Control Guard
|
||||
if (mem_valid_out = '1') then
|
||||
mem_endpoint_data_next.lease_deadline(1) <= unsigned(mem_read_data);
|
||||
|
||||
if check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 24;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 26;
|
||||
else
|
||||
-- DONE
|
||||
mem_stage_next <= IDLE;
|
||||
end if;
|
||||
end if;
|
||||
-- READ Lifespan Duration 1/2
|
||||
when 24 =>
|
||||
mem_ready_out <= '1';
|
||||
-- Memory Flow Control Guard
|
||||
if (mem_valid_out = '1') then
|
||||
mem_endpoint_data_next.lifespan(0) <= unsigned(mem_read_data);
|
||||
|
||||
mem_cnt_next <= mem_cnt + 1;
|
||||
end if;
|
||||
-- READ Lifespan Duration 2/2
|
||||
when 25 =>
|
||||
mem_ready_out <= '1';
|
||||
-- Memory Flow Control Guard
|
||||
if (mem_valid_out = '1') then
|
||||
mem_endpoint_data_next.lifespan(1) <= unsigned(mem_read_data);
|
||||
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 22;
|
||||
mem_cnt_next <= 26;
|
||||
else
|
||||
-- DONE
|
||||
mem_stage_next <= IDLE;
|
||||
end if;
|
||||
end if;
|
||||
-- READ Response Time 1/2
|
||||
when 22 =>
|
||||
when 26 =>
|
||||
-- Synthesis Guard
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS) then
|
||||
mem_ready_out <= '1';
|
||||
@ -2472,7 +2559,7 @@ begin
|
||||
end if;
|
||||
end if;
|
||||
-- READ Response Time 2/2
|
||||
when 23 =>
|
||||
when 27 =>
|
||||
-- Synthesis Guard
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS) then
|
||||
mem_ready_out <= '1';
|
||||
@ -2585,6 +2672,22 @@ begin
|
||||
mem_valid_in <= '1';
|
||||
mem_addr <= mem_addr_base + EMF_LEASE_DEADLINE_OFFSET + 1;
|
||||
mem_write_data <= std_logic_vector(mem_endpoint_latch_data.lease_deadline(1));
|
||||
if (mem_ready_in = '1') then
|
||||
mem_cnt_next <= mem_cnt + 1;
|
||||
end if;
|
||||
-- Lifespan Duration 1/2
|
||||
when 10 =>
|
||||
mem_valid_in <= '1';
|
||||
mem_addr <= mem_addr_base + EMF_LIFESPAN_DURATION_OFFSET;
|
||||
mem_write_data <= std_logic_vector(mem_endpoint_latch_data.lifespan(0));
|
||||
if (mem_ready_in = '1') then
|
||||
mem_cnt_next <= mem_cnt + 1;
|
||||
end if;
|
||||
-- Lifespan Duration 2/2
|
||||
when 11 =>
|
||||
mem_valid_in <= '1';
|
||||
mem_addr <= mem_addr_base + EMF_LIFESPAN_DURATION_OFFSET + 1;
|
||||
mem_write_data <= std_logic_vector(mem_endpoint_latch_data.lifespan(1));
|
||||
if (mem_ready_in = '1') then
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS) then
|
||||
mem_cnt_next <= mem_cnt + 1;
|
||||
@ -2594,7 +2697,7 @@ begin
|
||||
end if;
|
||||
end if;
|
||||
-- Response Time 1/2
|
||||
when 10 =>
|
||||
when 12 =>
|
||||
-- Synthesis Guard
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS) then
|
||||
mem_valid_in <= '1';
|
||||
@ -2605,7 +2708,7 @@ begin
|
||||
end if;
|
||||
end if;
|
||||
-- Response Time 2/2
|
||||
when 11 =>
|
||||
when 13 =>
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS) then
|
||||
mem_valid_in <= '1';
|
||||
mem_addr <= mem_addr_base + EMF_RES_TIME_OFFSET + 1;
|
||||
@ -2636,8 +2739,10 @@ begin
|
||||
mem_cnt_next <= 2;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 4;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 6;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 8;
|
||||
else
|
||||
-- DONE
|
||||
mem_stage_next <= IDLE;
|
||||
@ -2658,8 +2763,10 @@ begin
|
||||
mem_cnt_next <= 2;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 4;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 6;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 8;
|
||||
else
|
||||
-- DONE
|
||||
mem_stage_next <= IDLE;
|
||||
@ -2685,8 +2792,10 @@ begin
|
||||
if (mem_ready_in = '1') then
|
||||
if check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 4;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 6;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 8;
|
||||
else
|
||||
-- DONE
|
||||
mem_stage_next <= IDLE;
|
||||
@ -2709,15 +2818,41 @@ begin
|
||||
mem_endpoint_data_next.lease_deadline <= mem_endpoint_latch_data.lease_deadline;
|
||||
-- Memory Flow Control Guard
|
||||
if (mem_ready_in = '1') then
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
if check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 6;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 8;
|
||||
else
|
||||
-- DONE
|
||||
mem_stage_next <= IDLE;
|
||||
end if;
|
||||
end if;
|
||||
-- Lifespan Duration 1/2
|
||||
when 6 =>
|
||||
mem_valid_in <= '1';
|
||||
mem_addr <= mem_addr_base + EMF_LIFESPAN_DURATION_OFFSET;
|
||||
mem_write_data <= std_logic_vector(mem_endpoint_latch_data.lifespan(0));
|
||||
-- Memory Flow Control Guard
|
||||
if (mem_ready_in = '1') then
|
||||
mem_cnt_next <= mem_cnt + 1;
|
||||
end if;
|
||||
-- Lifespan Duration 2/2
|
||||
when 7 =>
|
||||
mem_valid_in <= '1';
|
||||
mem_addr <= mem_addr_base + EMF_LIFESPAN_DURATION_OFFSET + 1;
|
||||
mem_write_data <= std_logic_vector(mem_endpoint_latch_data.lifespan(1));
|
||||
mem_endpoint_data_next.lifespan <= mem_endpoint_latch_data.lifespan;
|
||||
-- Memory Flow Control Guard
|
||||
if (mem_ready_in = '1') then
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 8;
|
||||
else
|
||||
-- DONE
|
||||
mem_stage_next <= IDLE;
|
||||
end if;
|
||||
end if;
|
||||
-- Response Time 1/2
|
||||
when 6 =>
|
||||
when 8 =>
|
||||
-- Synthesis Guard
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS) then
|
||||
mem_valid_in <= '1';
|
||||
@ -2729,7 +2864,7 @@ begin
|
||||
end if;
|
||||
end if;
|
||||
-- Response Time 2/2
|
||||
when 7 =>
|
||||
when 9 =>
|
||||
-- Synthesis Guard
|
||||
if (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS) then
|
||||
mem_valid_in <= '1';
|
||||
@ -2906,8 +3041,10 @@ begin
|
||||
mem_cnt_next <= 6;
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LEASE_DEADLINE_FLAG) then
|
||||
mem_cnt_next <= 8;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
elsif check_mask(mem_endpoint_latch_data.field_flag,EMF_LIFESPAN_DURATION_FLAG) then
|
||||
mem_cnt_next <= 10;
|
||||
elsif (RELIABILITY_QOS = RELIABLE_RELIABILITY_QOS and check_mask(mem_endpoint_latch_data.field_flag,EMF_RES_TIME_FLAG)) then
|
||||
mem_cnt_next <= 12;
|
||||
else
|
||||
-- DONE
|
||||
mem_stage_next <= IDLE;
|
||||
|
||||
@ -24,9 +24,9 @@ package rtps_test_package is
|
||||
-- rtps_builtin_endpoint Participant Frame Size
|
||||
constant PARTICIPANT_FRAME_SIZE : natural := 24;
|
||||
-- rtps_reader Endpoint Frame Size (RELIABLE=TRUE)
|
||||
constant WRITER_ENDPOINT_FRAME_SIZE_A : natural := 12;
|
||||
constant WRITER_ENDPOINT_FRAME_SIZE_A : natural := 14;
|
||||
-- rtps_reader Endpoint Frame Size (RELIABLE=FALSE)
|
||||
constant WRITER_ENDPOINT_FRAME_SIZE_B : natural := 8;
|
||||
constant WRITER_ENDPOINT_FRAME_SIZE_B : natural := 10;
|
||||
-- rtps_writer Endpoint Frame Size (RELIABLE=TRUE)
|
||||
constant READER_ENDPOINT_FRAME_SIZE_A : natural := 15;
|
||||
-- rtps_writer Endpoint Frame Size (RELIABLE=FALSE)
|
||||
@ -473,19 +473,19 @@ package rtps_test_package is
|
||||
-- pos ID (Memory Position) of Source Remote Writer
|
||||
-- output Destination of generated output
|
||||
procedure gen_add_cache_change_dds(ref : in CACHE_CHANGE_TYPE; lifespan_deadline : in TIME_TYPE; pos : in natural; output : inout TEST_PACKET_TYPE);
|
||||
-- Generate a rtps_reader memory Participant Frame based on "ref". (A Version)
|
||||
function gen_reader_endpoint_mem_frame_a (ref : ENDPOINT_DATA_TYPE) return TEST_READER_ENDPOINT_MEMORY_FRAME_TYPE_A;
|
||||
-- Generate a rtps_reader memory Participant Frame based on "ref". (B Version)
|
||||
function gen_reader_endpoint_mem_frame_b (ref : ENDPOINT_DATA_TYPE) return TEST_READER_ENDPOINT_MEMORY_FRAME_TYPE_B;
|
||||
|
||||
|
||||
-- *RTPS WRITER*
|
||||
-- Generate a rtps_writer memory Participant Frame based on "ref". (A Version)
|
||||
function gen_writer_endpoint_mem_frame_a (ref : ENDPOINT_DATA_TYPE) return TEST_WRITER_ENDPOINT_MEMORY_FRAME_TYPE_A;
|
||||
-- Generate a rtps_writer memory Participant Frame based on "ref". (B Version)
|
||||
function gen_writer_endpoint_mem_frame_b (ref : ENDPOINT_DATA_TYPE) return TEST_WRITER_ENDPOINT_MEMORY_FRAME_TYPE_B;
|
||||
|
||||
|
||||
-- *RTPS WRITER*
|
||||
-- Generate a rtps_reader memory Participant Frame based on "ref". (A Version)
|
||||
function gen_reader_endpoint_mem_frame_a (ref : ENDPOINT_DATA_TYPE) return TEST_READER_ENDPOINT_MEMORY_FRAME_TYPE_A;
|
||||
-- Generate a rtps_reader memory Participant Frame based on "ref". (B Version)
|
||||
function gen_reader_endpoint_mem_frame_b (ref : ENDPOINT_DATA_TYPE) return TEST_READER_ENDPOINT_MEMORY_FRAME_TYPE_B;
|
||||
|
||||
|
||||
-- *RTPS_HANDLER*
|
||||
-- Generates RTPS_HANDLER output
|
||||
-- ref RTPS Submessage
|
||||
@ -1960,6 +1960,20 @@ package body rtps_test_package is
|
||||
else
|
||||
ret(i).data := (others => '-');
|
||||
end if;
|
||||
-- Lifespan Duration 1/2
|
||||
when 10 =>
|
||||
if (ref.match = MATCH) then
|
||||
ret(i).data := std_logic_vector(ref.lifespan(0));
|
||||
else
|
||||
ret(i).data := (others => '-');
|
||||
end if;
|
||||
-- Lifespan Duration 2/2
|
||||
when 11 =>
|
||||
if (ref.match = MATCH) then
|
||||
ret(i).data := std_logic_vector(ref.lifespan(1));
|
||||
else
|
||||
ret(i).data := (others => '-');
|
||||
end if;
|
||||
-- Other Fields Ignored
|
||||
when others =>
|
||||
ret(i).data := (others => '-');
|
||||
@ -2013,6 +2027,20 @@ package body rtps_test_package is
|
||||
else
|
||||
ret(i).data := (others => '-');
|
||||
end if;
|
||||
-- Lifespan Duration 1/2
|
||||
when 8 =>
|
||||
if (ref.match = MATCH) then
|
||||
ret(i).data := std_logic_vector(ref.lifespan(0));
|
||||
else
|
||||
ret(i).data := (others => '-');
|
||||
end if;
|
||||
-- Lifespan Duration 2/2
|
||||
when 9 =>
|
||||
if (ref.match = MATCH) then
|
||||
ret(i).data := std_logic_vector(ref.lifespan(1));
|
||||
else
|
||||
ret(i).data := (others => '-');
|
||||
end if;
|
||||
-- Other Fields Ignored
|
||||
when others =>
|
||||
ret(i).data := (others => '-');
|
||||
@ -2655,6 +2683,13 @@ package body rtps_test_package is
|
||||
output.data(output.length)(READER_IS_BEST_EFFORT_FLAG) := '1' when (ref.reliability = BEST_EFFORT_RELIABILITY_QOS) else '0';
|
||||
end if;
|
||||
output.length := output.length + 1;
|
||||
-- Lifespan Duration
|
||||
if (not ref.reader) then
|
||||
output.data(output.length) := std_logic_vector(ref.lifespan(0));
|
||||
output.length := output.length + 1;
|
||||
output.data(output.length) := std_logic_vector(ref.lifespan(1));
|
||||
output.length := output.length + 1;
|
||||
end if;
|
||||
end if;
|
||||
|
||||
-- Mark Last Word
|
||||
|
||||
Loading…
Reference in New Issue
Block a user