BUG FIX: Default Reliability is different for Readers and Writers

This commit is contained in:
Greek 2021-12-15 16:49:32 +01:00
parent 3a1aeb818e
commit 20dff4a208
25 changed files with 215 additions and 130 deletions

View File

@ -13,10 +13,10 @@ add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/last_word_in
add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/last_word_in_latch add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/last_word_in_latch
add wave -noupdate -radix hexadecimal /l1_rtps_builtin_endpoint_test1/uut/time add wave -noupdate -radix hexadecimal /l1_rtps_builtin_endpoint_test1/uut/time
add wave -noupdate -divider OUTPUT add wave -noupdate -divider OUTPUT
add wave -noupdate -radix hexadecimal /l1_rtps_builtin_endpoint_test1/uut/data_out add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/full_ro
add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/last_word_out add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/wr_ro
add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/rtps_wr add wave -noupdate -radix hexadecimal /l1_rtps_builtin_endpoint_test1/uut/data_out_ro
add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/rtps_full add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/last_word_out_ro
add wave -noupdate -divider {MAIN FSM} add wave -noupdate -divider {MAIN FSM}
add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/stage add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/stage
add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/stage_next add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/stage_next
@ -37,7 +37,7 @@ add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/mem_opcode
add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/mem_stage add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/mem_stage
add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/mem_stage_next add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/mem_stage_next
add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/mem_cnt add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/mem_cnt
add wave -noupdate -childformat {{/l1_rtps_builtin_endpoint_test1/uut/participant_data.guid_prefix -radix hexadecimal} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.meta_addr -radix hexadecimal} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.def_addr -radix hexadecimal} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.meta_port -radix hexadecimal} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.def_port -radix hexadecimal} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.lease_duration -radix unsigned} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.lease_deadline -radix unsigned} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.heartbeat_res_time -radix unsigned} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.acknack_res_time -radix unsigned} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.spdp_seq_nr -radix unsigned} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.pub_seq_nr -radix unsigned} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.sub_seq_nr -radix unsigned} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.mes_seq_nr -radix unsigned}} -expand -subitemconfig {/l1_rtps_builtin_endpoint_test1/uut/participant_data.guid_prefix {-height 15 -radix hexadecimal} /l1_rtps_builtin_endpoint_test1/uut/participant_data.meta_addr {-height 15 -radix hexadecimal} /l1_rtps_builtin_endpoint_test1/uut/participant_data.def_addr {-height 15 -radix hexadecimal} /l1_rtps_builtin_endpoint_test1/uut/participant_data.meta_port {-height 15 -radix hexadecimal} /l1_rtps_builtin_endpoint_test1/uut/participant_data.def_port {-height 15 -radix hexadecimal} /l1_rtps_builtin_endpoint_test1/uut/participant_data.lease_duration {-height 15 -radix unsigned} /l1_rtps_builtin_endpoint_test1/uut/participant_data.lease_deadline {-height 15 -radix unsigned} /l1_rtps_builtin_endpoint_test1/uut/participant_data.heartbeat_res_time {-height 15 -radix unsigned} /l1_rtps_builtin_endpoint_test1/uut/participant_data.acknack_res_time {-height 15 -radix unsigned} /l1_rtps_builtin_endpoint_test1/uut/participant_data.spdp_seq_nr {-height 15 -radix unsigned} /l1_rtps_builtin_endpoint_test1/uut/participant_data.pub_seq_nr {-height 15 -radix unsigned} /l1_rtps_builtin_endpoint_test1/uut/participant_data.sub_seq_nr {-height 15 -radix unsigned} /l1_rtps_builtin_endpoint_test1/uut/participant_data.mes_seq_nr {-height 15 -radix unsigned}} /l1_rtps_builtin_endpoint_test1/uut/participant_data add wave -noupdate -childformat {{/l1_rtps_builtin_endpoint_test1/uut/participant_data.guid_prefix -radix hexadecimal} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.meta_addr -radix hexadecimal} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.def_addr -radix hexadecimal} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.meta_port -radix hexadecimal} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.def_port -radix hexadecimal} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.lease_duration -radix unsigned} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.lease_deadline -radix unsigned} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.heartbeat_res_time -radix unsigned} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.acknack_res_time -radix unsigned} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.spdp_seq_nr -radix unsigned} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.pub_seq_nr -radix unsigned} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.sub_seq_nr -radix unsigned} {/l1_rtps_builtin_endpoint_test1/uut/participant_data.mes_seq_nr -radix unsigned}} -subitemconfig {/l1_rtps_builtin_endpoint_test1/uut/participant_data.guid_prefix {-height 15 -radix hexadecimal} /l1_rtps_builtin_endpoint_test1/uut/participant_data.meta_addr {-height 15 -radix hexadecimal} /l1_rtps_builtin_endpoint_test1/uut/participant_data.def_addr {-height 15 -radix hexadecimal} /l1_rtps_builtin_endpoint_test1/uut/participant_data.meta_port {-height 15 -radix hexadecimal} /l1_rtps_builtin_endpoint_test1/uut/participant_data.def_port {-height 15 -radix hexadecimal} /l1_rtps_builtin_endpoint_test1/uut/participant_data.lease_duration {-height 15 -radix unsigned} /l1_rtps_builtin_endpoint_test1/uut/participant_data.lease_deadline {-height 15 -radix unsigned} /l1_rtps_builtin_endpoint_test1/uut/participant_data.heartbeat_res_time {-height 15 -radix unsigned} /l1_rtps_builtin_endpoint_test1/uut/participant_data.acknack_res_time {-height 15 -radix unsigned} /l1_rtps_builtin_endpoint_test1/uut/participant_data.spdp_seq_nr {-height 15 -radix unsigned} /l1_rtps_builtin_endpoint_test1/uut/participant_data.pub_seq_nr {-height 15 -radix unsigned} /l1_rtps_builtin_endpoint_test1/uut/participant_data.sub_seq_nr {-height 15 -radix unsigned} /l1_rtps_builtin_endpoint_test1/uut/participant_data.mes_seq_nr {-height 15 -radix unsigned}} /l1_rtps_builtin_endpoint_test1/uut/participant_data
add wave -noupdate -radix unsigned /l1_rtps_builtin_endpoint_test1/uut/mem_addr_base add wave -noupdate -radix unsigned /l1_rtps_builtin_endpoint_test1/uut/mem_addr_base
add wave -noupdate -radix unsigned /l1_rtps_builtin_endpoint_test1/uut/mem_empty_head add wave -noupdate -radix unsigned /l1_rtps_builtin_endpoint_test1/uut/mem_empty_head
add wave -noupdate -radix unsigned /l1_rtps_builtin_endpoint_test1/uut/mem_occupied_head add wave -noupdate -radix unsigned /l1_rtps_builtin_endpoint_test1/uut/mem_occupied_head
@ -48,13 +48,13 @@ add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/parse_prc/rd_guard
add wave -noupdate -divider MISC add wave -noupdate -divider MISC
add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/alive add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/alive
add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/endpoint_alive add wave -noupdate /l1_rtps_builtin_endpoint_test1/uut/endpoint_alive
add wave -noupdate -radix unsigned -childformat {{/l1_rtps_builtin_endpoint_test1/uut/seq_nr(0) -radix unsigned} {/l1_rtps_builtin_endpoint_test1/uut/seq_nr(1) -radix unsigned}} -subitemconfig {/l1_rtps_builtin_endpoint_test1/uut/seq_nr(0) {-radix unsigned} /l1_rtps_builtin_endpoint_test1/uut/seq_nr(1) {-radix unsigned}} /l1_rtps_builtin_endpoint_test1/uut/seq_nr add wave -noupdate -radix unsigned -childformat {{/l1_rtps_builtin_endpoint_test1/uut/seq_nr(0) -radix unsigned} {/l1_rtps_builtin_endpoint_test1/uut/seq_nr(1) -radix unsigned}} -subitemconfig {/l1_rtps_builtin_endpoint_test1/uut/seq_nr(0) {-height 15 -radix unsigned} /l1_rtps_builtin_endpoint_test1/uut/seq_nr(1) {-height 15 -radix unsigned}} /l1_rtps_builtin_endpoint_test1/uut/seq_nr
add wave -noupdate -group FIFO -radix hexadecimal /l1_rtps_builtin_endpoint_test1/fifo_inst/data_in add wave -noupdate -expand -group FIFO -radix hexadecimal /l1_rtps_builtin_endpoint_test1/fifo_inst/data_in
add wave -noupdate -group FIFO /l1_rtps_builtin_endpoint_test1/fifo_inst/write add wave -noupdate -expand -group FIFO /l1_rtps_builtin_endpoint_test1/fifo_inst/write
add wave -noupdate -group FIFO /l1_rtps_builtin_endpoint_test1/fifo_inst/full add wave -noupdate -expand -group FIFO /l1_rtps_builtin_endpoint_test1/fifo_inst/full
add wave -noupdate -group FIFO -radix hexadecimal /l1_rtps_builtin_endpoint_test1/fifo_inst/data_out add wave -noupdate -expand -group FIFO -radix hexadecimal /l1_rtps_builtin_endpoint_test1/fifo_inst/data_out
add wave -noupdate -group FIFO /l1_rtps_builtin_endpoint_test1/fifo_inst/read add wave -noupdate -expand -group FIFO /l1_rtps_builtin_endpoint_test1/fifo_inst/read
add wave -noupdate -group FIFO /l1_rtps_builtin_endpoint_test1/fifo_inst/empty add wave -noupdate -expand -group FIFO /l1_rtps_builtin_endpoint_test1/fifo_inst/empty
add wave -noupdate -group RTPS_OUT -radix hexadecimal /l1_rtps_builtin_endpoint_test1/rtps_out_inst/data_in add wave -noupdate -group RTPS_OUT -radix hexadecimal /l1_rtps_builtin_endpoint_test1/rtps_out_inst/data_in
add wave -noupdate -group RTPS_OUT /l1_rtps_builtin_endpoint_test1/rtps_out_inst/last_word_in add wave -noupdate -group RTPS_OUT /l1_rtps_builtin_endpoint_test1/rtps_out_inst/last_word_in
add wave -noupdate -group RTPS_OUT /l1_rtps_builtin_endpoint_test1/rtps_out_inst/rd add wave -noupdate -group RTPS_OUT /l1_rtps_builtin_endpoint_test1/rtps_out_inst/rd
@ -70,8 +70,8 @@ add wave -noupdate -group TESTBENCH /l1_rtps_builtin_endpoint_test1/stimulus.len
add wave -noupdate -group TESTBENCH /l1_rtps_builtin_endpoint_test1/cnt_stim add wave -noupdate -group TESTBENCH /l1_rtps_builtin_endpoint_test1/cnt_stim
add wave -noupdate -group TESTBENCH /l1_rtps_builtin_endpoint_test1/packet_sent add wave -noupdate -group TESTBENCH /l1_rtps_builtin_endpoint_test1/packet_sent
TreeUpdate [SetDefaultTree] TreeUpdate [SetDefaultTree]
WaveRestoreCursors {Begin {31125000 ps} 1} {Error {36375000 ps} 1} {Cursor {36411652 ps} 0} WaveRestoreCursors {Begin {88075000 ps} 0} {Error {36375000 ps} 1} {Cursor {36411652 ps} 0}
quietly wave cursor active 2 quietly wave cursor active 1
configure wave -namecolwidth 149 configure wave -namecolwidth 149
configure wave -valuecolwidth 144 configure wave -valuecolwidth 144
configure wave -justifyvalue left configure wave -justifyvalue left
@ -86,4 +86,4 @@ configure wave -griddelta 40
configure wave -timeline 0 configure wave -timeline 0
configure wave -timelineunits ns configure wave -timelineunits ns
update update
WaveRestoreZoom {35541123 ps} {36689465 ps} WaveRestoreZoom {87500829 ps} {88649171 ps}

View File

@ -108,7 +108,10 @@ package user_config is
constant ENDPOINT_TIME_BASED_FILTER_QOS : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_TIME_BASED_FILTER_QOS); constant ENDPOINT_TIME_BASED_FILTER_QOS : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_TIME_BASED_FILTER_QOS);
-- XXX: PARTITION QoS Ignored -- XXX: PARTITION QoS Ignored
-- Array mapping RELIABILITY QoS to Endpoints -- Array mapping RELIABILITY QoS to Endpoints
constant ENDPOINT_RELIABILITY_QOS : USER_ENUMERATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_RELIABILITY_QOS); constant ENDPOINT_RELIABILITY_QOS : USER_ENUMERATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (
0 to NUM_READERS-1 => DEFAULT_RELIABILITY_QOS_R,
NUM_READERS to NUM_WRITERS-1 => DEFAULT_RELIABILITY_QOS_W
);
-- (Only relevant to Writers) -- (Only relevant to Writers)
constant ENDPOINT_MAX_BLOCKING_TIME : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_MAX_BLOCKING_TIME); constant ENDPOINT_MAX_BLOCKING_TIME : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_MAX_BLOCKING_TIME);
-- Array mapping LIFESPAN QoS to Endpoints (Only relevant to Writers) -- Array mapping LIFESPAN QoS to Endpoints (Only relevant to Writers)

View File

@ -88,7 +88,7 @@ use work.rtps_test_package.all;
-- READER 14 -- READER 14
-- * LEASE_DURATION 20s -- * LEASE_DURATION 20s
-- READER 15 -- READER 15
-- * RELIABILITY BEST_EFFORT -- * RELIABILITY RELIABLE
-- READER 16 -- READER 16
-- * DESTINATION_ORDER BY_SOURCE_TIMESTAMP -- * DESTINATION_ORDER BY_SOURCE_TIMESTAMP
@ -266,7 +266,7 @@ begin
0 => (0 => '1', 9 => '1', 10 => '1', 15 => '1', others => '0'), 0 => (0 => '1', 9 => '1', 10 => '1', 15 => '1', others => '0'),
1 => (1 => '1', others => '0'), 1 => (1 => '1', others => '0'),
2 => (2 => '1', others => '0'), 2 => (2 => '1', others => '0'),
3 => (15 => '1', others => '0'), 3 => (0 => '1', 9 => '1', 10 => '1', others => '0'),
4 => (0 => '1', 3 => '1', 4 => '1', 5 => '1', 8 => '1', 9 => '1', 10 => '1', 11 => '1', 14 => '1', 15 => '1', 16 => '1', others => '0'), 4 => (0 => '1', 3 => '1', 4 => '1', 5 => '1', 8 => '1', 9 => '1', 10 => '1', 11 => '1', 14 => '1', 15 => '1', 16 => '1', others => '0'),
5 => (0 => '1', 4 => '1', 5 => '1', 6 => '1', 9 => '1', 10 => '1', 15 => '1', others => '0'), 5 => (0 => '1', 4 => '1', 5 => '1', 6 => '1', 9 => '1', 10 => '1', 15 => '1', others => '0'),
6 => (10 => '1', others => '0'), 6 => (10 => '1', others => '0'),
@ -334,11 +334,13 @@ begin
e1.topic_name := ENDPOINT_TOPIC(0); e1.topic_name := ENDPOINT_TOPIC(0);
e1.type_name := ENDPOINT_TYPE(0); e1.type_name := ENDPOINT_TYPE(0);
e1.reader := FALSE; e1.reader := FALSE;
e1.reliability := DEFAULT_RELIABILITY_QOS_W;
e2.participant := p2; e2.participant := p2;
e2.entityId := gen_rand_entityid_2(TRUE); e2.entityId := gen_rand_entityid_2(TRUE);
e2.topic_name := ENDPOINT_TOPIC(0); e2.topic_name := ENDPOINT_TOPIC(0);
e2.type_name := ENDPOINT_TYPE(0); e2.type_name := ENDPOINT_TYPE(0);
e2.reader := TRUE; e2.reader := TRUE;
e2.reliability := DEFAULT_RELIABILITY_QOS_R;
user_data := convert_string("USER_DATA" & (10 to 256 => NUL)); user_data := convert_string("USER_DATA" & (10 to 256 => NUL));
group_data := convert_string("GROUP_DATA" & (11 to 256 => NUL)); group_data := convert_string("GROUP_DATA" & (11 to 256 => NUL));
@ -500,6 +502,7 @@ begin
sub_p.writerSN := p2_snp; sub_p.writerSN := p2_snp;
endpoint := DEFAULT_ENDPOINT_DATA; endpoint := DEFAULT_ENDPOINT_DATA;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
endpoint.participant := p2; endpoint.participant := p2;
endpoint.topic_name := ENDPOINT_TOPIC(0); endpoint.topic_name := ENDPOINT_TOPIC(0);
@ -521,6 +524,7 @@ begin
sub_p.writerSN := p2_snp; sub_p.writerSN := p2_snp;
endpoint := DEFAULT_ENDPOINT_DATA; endpoint := DEFAULT_ENDPOINT_DATA;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
endpoint.participant := p2; endpoint.participant := p2;
endpoint.topic_name := ENDPOINT_TOPIC(0); endpoint.topic_name := ENDPOINT_TOPIC(0);
@ -542,6 +546,7 @@ begin
sub_p.writerSN := p2_snp; sub_p.writerSN := p2_snp;
endpoint := DEFAULT_ENDPOINT_DATA; endpoint := DEFAULT_ENDPOINT_DATA;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
endpoint.participant := p2; endpoint.participant := p2;
endpoint.topic_name := ENDPOINT_TOPIC(0); endpoint.topic_name := ENDPOINT_TOPIC(0);
@ -563,6 +568,7 @@ begin
sub_p.writerSN := p2_snp; sub_p.writerSN := p2_snp;
endpoint := DEFAULT_ENDPOINT_DATA; endpoint := DEFAULT_ENDPOINT_DATA;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
endpoint.participant := p2; endpoint.participant := p2;
endpoint.topic_name := ENDPOINT_TOPIC(0); endpoint.topic_name := ENDPOINT_TOPIC(0);
@ -587,6 +593,7 @@ begin
sub_p.writerSN := p2_snp; sub_p.writerSN := p2_snp;
endpoint := DEFAULT_ENDPOINT_DATA; endpoint := DEFAULT_ENDPOINT_DATA;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
endpoint.participant := p2; endpoint.participant := p2;
endpoint.topic_name := ENDPOINT_TOPIC(0); endpoint.topic_name := ENDPOINT_TOPIC(0);
@ -608,6 +615,7 @@ begin
sub_p.writerSN := p2_snp; sub_p.writerSN := p2_snp;
endpoint := DEFAULT_ENDPOINT_DATA; endpoint := DEFAULT_ENDPOINT_DATA;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
endpoint.participant := p2; endpoint.participant := p2;
endpoint.topic_name := ENDPOINT_TOPIC(0); endpoint.topic_name := ENDPOINT_TOPIC(0);
@ -631,6 +639,7 @@ begin
sub_s.writerSN := p2_sns; sub_s.writerSN := p2_sns;
endpoint := DEFAULT_ENDPOINT_DATA; endpoint := DEFAULT_ENDPOINT_DATA;
endpoint.reader := TRUE; endpoint.reader := TRUE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_R;
endpoint.entityId := gen_rand_entityid_2(TRUE); endpoint.entityId := gen_rand_entityid_2(TRUE);
endpoint.participant := p2; endpoint.participant := p2;
endpoint.topic_name := ENDPOINT_TOPIC(0); endpoint.topic_name := ENDPOINT_TOPIC(0);
@ -652,6 +661,7 @@ begin
sub_s.writerSN := p2_sns; sub_s.writerSN := p2_sns;
endpoint := DEFAULT_ENDPOINT_DATA; endpoint := DEFAULT_ENDPOINT_DATA;
endpoint.reader := TRUE; endpoint.reader := TRUE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_R;
endpoint.entityId := gen_rand_entityid_2(TRUE); endpoint.entityId := gen_rand_entityid_2(TRUE);
endpoint.participant := p2; endpoint.participant := p2;
endpoint.topic_name := ENDPOINT_TOPIC(0); endpoint.topic_name := ENDPOINT_TOPIC(0);
@ -674,6 +684,7 @@ begin
sub_s.writerSN := p2_sns; sub_s.writerSN := p2_sns;
endpoint := DEFAULT_ENDPOINT_DATA; endpoint := DEFAULT_ENDPOINT_DATA;
endpoint.reader := TRUE; endpoint.reader := TRUE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_R;
endpoint.entityId := gen_rand_entityid_2(TRUE); endpoint.entityId := gen_rand_entityid_2(TRUE);
endpoint.participant := p2; endpoint.participant := p2;
endpoint.topic_name := ENDPOINT_TOPIC(0); endpoint.topic_name := ENDPOINT_TOPIC(0);
@ -695,6 +706,7 @@ begin
sub_s.writerSN := p2_sns; sub_s.writerSN := p2_sns;
endpoint := DEFAULT_ENDPOINT_DATA; endpoint := DEFAULT_ENDPOINT_DATA;
endpoint.reader := TRUE; endpoint.reader := TRUE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_R;
endpoint.entityId := gen_rand_entityid_2(TRUE); endpoint.entityId := gen_rand_entityid_2(TRUE);
endpoint.participant := p2; endpoint.participant := p2;
endpoint.topic_name := ENDPOINT_TOPIC(0); endpoint.topic_name := ENDPOINT_TOPIC(0);
@ -706,7 +718,7 @@ begin
gen_endpoint_data(endpoint, sub_s.data); gen_endpoint_data(endpoint, sub_s.data);
gen_sentinel(sub_s.data); gen_sentinel(sub_s.data);
gen_rtps_handler_out(sub_s, endpoint, stimulus); gen_rtps_handler_out(sub_s, endpoint, stimulus);
wr_sig := (NUM_READERS => '1', NUM_READERS+4 => '1', NUM_READERS+5 => '1', NUM_READERS+7 => '1', others => '0'); wr_sig := (NUM_READERS => '1', NUM_READERS+3 => '1', NUM_READERS+4 => '1', NUM_READERS+5 => '1', NUM_READERS+7 => '1', others => '0');
push_endpoint_reference; push_endpoint_reference;
start_test; start_test;
wait_on_complete; wait_on_complete;
@ -719,6 +731,7 @@ begin
sub_s.writerSN := p2_sns; sub_s.writerSN := p2_sns;
endpoint := DEFAULT_ENDPOINT_DATA; endpoint := DEFAULT_ENDPOINT_DATA;
endpoint.reader := TRUE; endpoint.reader := TRUE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_R;
endpoint.entityId := gen_rand_entityid_2(TRUE); endpoint.entityId := gen_rand_entityid_2(TRUE);
endpoint.participant := p2; endpoint.participant := p2;
endpoint.topic_name := ENDPOINT_TOPIC(0); endpoint.topic_name := ENDPOINT_TOPIC(0);
@ -740,7 +753,7 @@ begin
Log("Match Participant 2 Writer [Default]", INFO); Log("Match Participant 2 Writer [Default]", INFO);
sub_p.writerSN := p2_snp; sub_p.writerSN := p2_snp;
endpoint := e1; endpoint := e1;
gen_endpoint_data(endpoint, sub_p.data); gen_endpoint_data(endpoint, sub_p.data);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
gen_rtps_handler_out(sub_p, endpoint, stimulus); gen_rtps_handler_out(sub_p, endpoint, stimulus);
@ -755,11 +768,11 @@ begin
Log("Match Participant 2 Reader [Default]", INFO); Log("Match Participant 2 Reader [Default]", INFO);
sub_s.writerSN := p2_sns; sub_s.writerSN := p2_sns;
endpoint := e2; endpoint := e2;
gen_endpoint_data(endpoint, sub_s.data); gen_endpoint_data(endpoint, sub_s.data);
gen_sentinel(sub_s.data); gen_sentinel(sub_s.data);
gen_rtps_handler_out(sub_s, endpoint, stimulus); gen_rtps_handler_out(sub_s, endpoint, stimulus);
wr_sig := (NUM_READERS => '1', NUM_READERS+4 => '1', NUM_READERS+5 => '1', NUM_READERS+7 => '1', others => '0'); wr_sig := (NUM_READERS => '1', NUM_READERS+3 => '1', NUM_READERS+4 => '1', NUM_READERS+5 => '1', NUM_READERS+7 => '1', others => '0');
push_endpoint_reference; push_endpoint_reference;
start_test; start_test;
wait_on_complete; wait_on_complete;
@ -770,7 +783,7 @@ begin
Log("Update Participant 2 Writer [Unicast Locators (1 valid, 2 invalid)]", INFO); Log("Update Participant 2 Writer [Unicast Locators (1 valid, 2 invalid)]", INFO);
sub_p.writerSN := p2_snp; sub_p.writerSN := p2_snp;
endpoint := e1; endpoint := e1;
endpoint.unicastLocatorList := (numLocators => int(4,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, 1 => gen_rand_loc_2, 2 => gen_rand_loc_2, 3 => gen_rand_loc_2, others => EMPTY_LOCATOR)); endpoint.unicastLocatorList := (numLocators => int(4,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, 1 => gen_rand_loc_2, 2 => gen_rand_loc_2, 3 => gen_rand_loc_2, others => EMPTY_LOCATOR));
endpoint.unicastLocatorList.locator(1).kind := LOCATOR_KIND_UDPv6; endpoint.unicastLocatorList.locator(1).kind := LOCATOR_KIND_UDPv6;
endpoint.unicastLocatorList.locator(2).addr := (others => '0'); endpoint.unicastLocatorList.locator(2).addr := (others => '0');
@ -789,7 +802,7 @@ begin
Log("Update Participant 2 Reader [Multicast Locator (1 valid, 2 invalid)]", INFO); Log("Update Participant 2 Reader [Multicast Locator (1 valid, 2 invalid)]", INFO);
sub_s.writerSN := p2_sns; sub_s.writerSN := p2_sns;
endpoint := e2; endpoint := e2;
endpoint.multicastLocatorList := (numLocators => int(4,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, 1 => gen_rand_loc_2, 2 => gen_rand_loc_2, 3 => gen_rand_loc_2, others => EMPTY_LOCATOR)); endpoint.multicastLocatorList := (numLocators => int(4,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, 1 => gen_rand_loc_2, 2 => gen_rand_loc_2, 3 => gen_rand_loc_2, others => EMPTY_LOCATOR));
endpoint.multicastLocatorList.locator(1).kind := LOCATOR_KIND_UDPv6; endpoint.multicastLocatorList.locator(1).kind := LOCATOR_KIND_UDPv6;
endpoint.multicastLocatorList.locator(2).addr := (others => '0'); endpoint.multicastLocatorList.locator(2).addr := (others => '0');
@ -797,7 +810,7 @@ begin
gen_endpoint_data(endpoint, sub_s.data); gen_endpoint_data(endpoint, sub_s.data);
gen_sentinel(sub_s.data); gen_sentinel(sub_s.data);
gen_rtps_handler_out(sub_s, endpoint, stimulus); gen_rtps_handler_out(sub_s, endpoint, stimulus);
wr_sig := (NUM_READERS => '1', NUM_READERS+4 => '1', NUM_READERS+5 => '1', NUM_READERS+7 => '1', others => '0'); wr_sig := (NUM_READERS => '1', NUM_READERS+3 => '1', NUM_READERS+4 => '1', NUM_READERS+5 => '1', NUM_READERS+7 => '1', others => '0');
push_endpoint_reference; push_endpoint_reference;
start_test; start_test;
wait_on_complete; wait_on_complete;
@ -807,13 +820,13 @@ begin
p2_sns := p2_sns + 1; p2_sns := p2_sns + 1;
Log("Change Match Participant 2 Writer [Reliability Best Effort]", INFO); Log("Change Match Participant 2 Writer [Reliability Best Effort]", INFO);
sub_p.writerSN := p2_snp; sub_p.writerSN := p2_snp;
endpoint := e1; endpoint := e1;
endpoint.reliability := BEST_EFFORT_RELIABILITY_QOS; endpoint.reliability := BEST_EFFORT_RELIABILITY_QOS;
gen_endpoint_data(endpoint, sub_p.data); gen_endpoint_data(endpoint, sub_p.data);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
gen_rtps_handler_out(sub_p, endpoint, stimulus); gen_rtps_handler_out(sub_p, endpoint, stimulus);
wr_sig := (15 => '1', others => '0'); wr_sig := (0 => '1', 9 => '1', 10 => '1', others => '0');
push_endpoint_reference; push_endpoint_reference;
start_test; start_test;
wait_on_complete; wait_on_complete;
@ -824,7 +837,7 @@ begin
Log("Change Match Participant 2 Reader [Topic & Type Change]", INFO); Log("Change Match Participant 2 Reader [Topic & Type Change]", INFO);
sub_s.writerSN := p2_sns; sub_s.writerSN := p2_sns;
endpoint := e2; endpoint := e2;
endpoint.topic_name := ENDPOINT_TOPIC(2); endpoint.topic_name := ENDPOINT_TOPIC(2);
endpoint.type_name := ENDPOINT_TYPE(2); endpoint.type_name := ENDPOINT_TYPE(2);
gen_endpoint_data(endpoint, sub_s.data); gen_endpoint_data(endpoint, sub_s.data);

View File

@ -125,7 +125,7 @@ begin
variable RV : RandomPType; variable RV : RandomPType;
variable p0, participant : PARTICIPANT_DATA_TYPE := DEFAULT_PARTICIPANT_DATA; variable p0, participant : PARTICIPANT_DATA_TYPE := DEFAULT_PARTICIPANT_DATA;
variable e0, endpoint : ENDPOINT_DATA_TYPE := DEFAULT_ENDPOINT_DATA; variable e0, endpoint : ENDPOINT_DATA_TYPE := DEFAULT_ENDPOINT_DATA;
variable p_sn, p_snp, p_sns : SEQUENCENUMBER_TYPE := FIRST_SEQUENCENUMBER; variable p_sn, p_snp, p_sns : SEQUENCENUMBER_TYPE := FIRST_SEQUENCENUMBER;
variable wr_sig : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); variable wr_sig : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0');
-- Wrapper to use procedure as function -- Wrapper to use procedure as function
@ -635,6 +635,7 @@ begin
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data); gen_endpoint_data(endpoint, sub_p.data);
gen_rtps_handler_out(sub_p, endpoint, stimulus); gen_rtps_handler_out(sub_p, endpoint, stimulus);
@ -647,10 +648,11 @@ begin
-- *PID_TOPIC_NAME* -- *PID_TOPIC_NAME*
Log("Ignore Endpoint [Invalid PID_TOPIC_NAME]", INFO); Log("Ignore Endpoint [Invalid PID_TOPIC_NAME]", INFO);
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_TOPIC_NAME, -1); gen_endpoint_data(endpoint, sub_p.data, PID_TOPIC_NAME, -1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
gen_rtps_handler_out(sub_p, endpoint, stimulus); gen_rtps_handler_out(sub_p, endpoint, stimulus);
@ -662,9 +664,10 @@ begin
sub_p.data := EMPTY_TEST_PACKET; sub_p.data := EMPTY_TEST_PACKET;
Log("Match Endpoint [Extra Bytes in PID_TOPIC_NAME]", INFO); Log("Match Endpoint [Extra Bytes in PID_TOPIC_NAME]", INFO);
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_TOPIC_NAME, +1); gen_endpoint_data(endpoint, sub_p.data, PID_TOPIC_NAME, +1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
@ -681,9 +684,10 @@ begin
-- *PID_TYPE_NAME* -- *PID_TYPE_NAME*
Log("Ignore Endpoint [Invalid PID_TYPE_NAME]", INFO); Log("Ignore Endpoint [Invalid PID_TYPE_NAME]", INFO);
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_TYPE_NAME, -1); gen_endpoint_data(endpoint, sub_p.data, PID_TYPE_NAME, -1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
@ -696,9 +700,10 @@ begin
sub_p.data := EMPTY_TEST_PACKET; sub_p.data := EMPTY_TEST_PACKET;
Log("Match Endpoint [Extra Bytes in PID_TYPE_NAME]", INFO); Log("Match Endpoint [Extra Bytes in PID_TYPE_NAME]", INFO);
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_TYPE_NAME, +1); gen_endpoint_data(endpoint, sub_p.data, PID_TYPE_NAME, +1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
@ -715,9 +720,10 @@ begin
-- *PID_DURABILITY* -- *PID_DURABILITY*
Log("Ignore Endpoint [Invalid PID_DURABILITY]", INFO); Log("Ignore Endpoint [Invalid PID_DURABILITY]", INFO);
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_DURABILITY, -1); gen_endpoint_data(endpoint, sub_p.data, PID_DURABILITY, -1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
@ -730,9 +736,10 @@ begin
sub_p.data := EMPTY_TEST_PACKET; sub_p.data := EMPTY_TEST_PACKET;
Log("Match Endpoint [Extra Bytes in PID_DURABILITY]", INFO); Log("Match Endpoint [Extra Bytes in PID_DURABILITY]", INFO);
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_DURABILITY, +1); gen_endpoint_data(endpoint, sub_p.data, PID_DURABILITY, +1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
@ -749,9 +756,10 @@ begin
-- *PID_DEADLINE* -- *PID_DEADLINE*
Log("Ignore Endpoint [Invalid PID_DEADLINE]", INFO); Log("Ignore Endpoint [Invalid PID_DEADLINE]", INFO);
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_DEADLINE, -1); gen_endpoint_data(endpoint, sub_p.data, PID_DEADLINE, -1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
@ -764,9 +772,10 @@ begin
sub_p.data := EMPTY_TEST_PACKET; sub_p.data := EMPTY_TEST_PACKET;
Log("Match Endpoint [Extra Bytes in PID_DEADLINE]", INFO); Log("Match Endpoint [Extra Bytes in PID_DEADLINE]", INFO);
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_DEADLINE, +1); gen_endpoint_data(endpoint, sub_p.data, PID_DEADLINE, +1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
@ -786,6 +795,7 @@ begin
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_LIVELINESS, -1); gen_endpoint_data(endpoint, sub_p.data, PID_LIVELINESS, -1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
@ -801,6 +811,7 @@ begin
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_LIVELINESS, +1); gen_endpoint_data(endpoint, sub_p.data, PID_LIVELINESS, +1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
@ -820,6 +831,7 @@ begin
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_RELIABILITY, -1); gen_endpoint_data(endpoint, sub_p.data, PID_RELIABILITY, -1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
@ -835,6 +847,7 @@ begin
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_RELIABILITY, +1); gen_endpoint_data(endpoint, sub_p.data, PID_RELIABILITY, +1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
@ -851,10 +864,11 @@ begin
-- *PID_DESTINATION_ORDER* -- *PID_DESTINATION_ORDER*
Log("Ignore Endpoint [Invalid PID_DESTINATION_ORDER]", INFO); Log("Ignore Endpoint [Invalid PID_DESTINATION_ORDER]", INFO);
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_DESTINATION_ORDER, -1); gen_endpoint_data(endpoint, sub_p.data, PID_DESTINATION_ORDER, -1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
gen_rtps_handler_out(sub_p, endpoint, stimulus); gen_rtps_handler_out(sub_p, endpoint, stimulus);
@ -869,6 +883,7 @@ begin
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_DESTINATION_ORDER, +1); gen_endpoint_data(endpoint, sub_p.data, PID_DESTINATION_ORDER, +1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
@ -885,10 +900,11 @@ begin
-- *PID_OWNERSHIP* -- *PID_OWNERSHIP*
Log("Ignore Endpoint [Invalid PID_OWNERSHIP]", INFO); Log("Ignore Endpoint [Invalid PID_OWNERSHIP]", INFO);
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_OWNERSHIP, -1); gen_endpoint_data(endpoint, sub_p.data, PID_OWNERSHIP, -1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
gen_rtps_handler_out(sub_p, endpoint, stimulus); gen_rtps_handler_out(sub_p, endpoint, stimulus);
@ -903,6 +919,7 @@ begin
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_OWNERSHIP, +1); gen_endpoint_data(endpoint, sub_p.data, PID_OWNERSHIP, +1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
@ -919,10 +936,11 @@ begin
-- *PID_PRESENTATION* -- *PID_PRESENTATION*
Log("Ignore Endpoint [Invalid PID_PRESENTATION]", INFO); Log("Ignore Endpoint [Invalid PID_PRESENTATION]", INFO);
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_PRESENTATION, -1); gen_endpoint_data(endpoint, sub_p.data, PID_PRESENTATION, -1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
gen_rtps_handler_out(sub_p, endpoint, stimulus); gen_rtps_handler_out(sub_p, endpoint, stimulus);
@ -937,6 +955,7 @@ begin
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_PRESENTATION, +1); gen_endpoint_data(endpoint, sub_p.data, PID_PRESENTATION, +1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
@ -953,10 +972,11 @@ begin
-- *PID_LATENCY_BUDGET* -- *PID_LATENCY_BUDGET*
Log("Ignore Endpoint [Invalid PID_LATENCY_BUDGET]", INFO); Log("Ignore Endpoint [Invalid PID_LATENCY_BUDGET]", INFO);
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_LATENCY_BUDGET, -1); gen_endpoint_data(endpoint, sub_p.data, PID_LATENCY_BUDGET, -1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
gen_rtps_handler_out(sub_p, endpoint, stimulus); gen_rtps_handler_out(sub_p, endpoint, stimulus);
@ -971,6 +991,7 @@ begin
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_LATENCY_BUDGET, +1); gen_endpoint_data(endpoint, sub_p.data, PID_LATENCY_BUDGET, +1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
@ -987,10 +1008,11 @@ begin
-- *PID_ENDPOINT_GUID* -- *PID_ENDPOINT_GUID*
Log("Ignore Endpoint [Invalid PID_ENDPOINT_GUID]", INFO); Log("Ignore Endpoint [Invalid PID_ENDPOINT_GUID]", INFO);
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_ENDPOINT_GUID, -1); gen_endpoint_data(endpoint, sub_p.data, PID_ENDPOINT_GUID, -1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
gen_rtps_handler_out(sub_p, endpoint, stimulus); gen_rtps_handler_out(sub_p, endpoint, stimulus);
@ -1005,6 +1027,7 @@ begin
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
gen_endpoint_data(endpoint, sub_p.data, PID_ENDPOINT_GUID, +1); gen_endpoint_data(endpoint, sub_p.data, PID_ENDPOINT_GUID, +1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
@ -1021,10 +1044,9 @@ begin
-- *PID_EXPECTS_INLINE_QOS* -- *PID_EXPECTS_INLINE_QOS*
Log("Ignore Endpoint [Invalid PID_EXPECTS_INLINE_QOS]", INFO); Log("Ignore Endpoint [Invalid PID_EXPECTS_INLINE_QOS]", INFO);
sub_s.writerSN := p_sns; sub_s.writerSN := p_sns;
endpoint := e0; endpoint := e0;
endpoint.reader := TRUE; endpoint.entityId := gen_rand_entityid_2(TRUE);
endpoint.entityId := gen_rand_entityid_2(TRUE);
gen_endpoint_data(endpoint, sub_s.data, PID_EXPECTS_INLINE_QOS, -1); gen_endpoint_data(endpoint, sub_s.data, PID_EXPECTS_INLINE_QOS, -1);
gen_sentinel(sub_s.data); gen_sentinel(sub_s.data);
gen_rtps_handler_out(sub_s, endpoint, stimulus); gen_rtps_handler_out(sub_s, endpoint, stimulus);
@ -1036,30 +1058,30 @@ begin
sub_s.data := EMPTY_TEST_PACKET; sub_s.data := EMPTY_TEST_PACKET;
Log("Match Endpoint [Extra Bytes in PID_EXPECTS_INLINE_QOS]", INFO); Log("Match Endpoint [Extra Bytes in PID_EXPECTS_INLINE_QOS]", INFO);
sub_s.writerSN := p_sns; sub_s.writerSN := p_sns;
endpoint := e0; endpoint := e0;
endpoint.reader := TRUE; endpoint.entityId := gen_rand_entityid_2(TRUE);
endpoint.entityId := gen_rand_entityid_2(TRUE);
gen_endpoint_data(endpoint, sub_s.data, PID_EXPECTS_INLINE_QOS, +1); gen_endpoint_data(endpoint, sub_s.data, PID_EXPECTS_INLINE_QOS, +1);
gen_sentinel(sub_s.data); gen_sentinel(sub_s.data);
gen_rtps_handler_out(sub_s, endpoint, stimulus); gen_rtps_handler_out(sub_s, endpoint, stimulus);
wr_sig := (0 => '1', 9 => '1', 10 => '1', 15 => '1', others => '0'); wr_sig := (NUM_READERS => '1', NUM_READERS+3 => '1', NUM_READERS+4 => '1', NUM_READERS+5 => '1', NUM_READERS+7 => '1', others => '0');
push_endpoint_reference; push_endpoint_reference;
start_test; start_test;
wait_on_sent; wait_on_sent;
wait_on_mem_check; wait_on_mem_check;
stimulus := EMPTY_TEST_PACKET; stimulus := EMPTY_TEST_PACKET;
reference := EMPTY_TEST_PACKET; reference := EMPTY_TEST_PACKET;
sub_s.data := EMPTY_TEST_PACKET; sub_p.data := EMPTY_TEST_PACKET;
p_sns := p_sns + 1; p_sns := p_sns + 1;
-- *PID_DATA_MAX_SIZE_SERIALIZED* -- *PID_DATA_MAX_SIZE_SERIALIZED*
Log("Ignore Endpoint [Invalid PID_DATA_MAX_SIZE_SERIALIZED]", INFO); Log("Ignore Endpoint [Invalid PID_DATA_MAX_SIZE_SERIALIZED]", INFO);
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.max_size_serialized:= int(65000, CDR_LONG_WIDTH); endpoint.entityId := gen_rand_entityid_2(FALSE);
endpoint.max_size_serialized := int(65000, CDR_LONG_WIDTH);
gen_endpoint_data(endpoint, sub_p.data, PID_DATA_MAX_SIZE_SERIALIZED, -1); gen_endpoint_data(endpoint, sub_p.data, PID_DATA_MAX_SIZE_SERIALIZED, -1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
gen_rtps_handler_out(sub_p, endpoint, stimulus); gen_rtps_handler_out(sub_p, endpoint, stimulus);
@ -1071,11 +1093,12 @@ begin
sub_p.data := EMPTY_TEST_PACKET; sub_p.data := EMPTY_TEST_PACKET;
Log("Match Endpoint [Extra Bytes in PID_DATA_MAX_SIZE_SERIALIZED]", INFO); Log("Match Endpoint [Extra Bytes in PID_DATA_MAX_SIZE_SERIALIZED]", INFO);
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.max_size_serialized:= int(65000, CDR_LONG_WIDTH); endpoint.entityId := gen_rand_entityid_2(FALSE);
endpoint.max_size_serialized := int(65000, CDR_LONG_WIDTH);
gen_endpoint_data(endpoint, sub_p.data, PID_DATA_MAX_SIZE_SERIALIZED, +1); gen_endpoint_data(endpoint, sub_p.data, PID_DATA_MAX_SIZE_SERIALIZED, +1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
gen_rtps_handler_out(sub_p, endpoint, stimulus); gen_rtps_handler_out(sub_p, endpoint, stimulus);
@ -1094,8 +1117,9 @@ begin
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.entityId := gen_rand_entityid_2(FALSE);
endpoint.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); endpoint.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
gen_endpoint_data(endpoint, sub_p.data, PID_UNICAST_LOCATOR, -1); gen_endpoint_data(endpoint, sub_p.data, PID_UNICAST_LOCATOR, -1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
gen_rtps_handler_out(sub_p, endpoint, stimulus); gen_rtps_handler_out(sub_p, endpoint, stimulus);
@ -1107,11 +1131,12 @@ begin
sub_p.data := EMPTY_TEST_PACKET; sub_p.data := EMPTY_TEST_PACKET;
Log("Match Endpoint [Extra Bytes in PID_UNICAST_LOCATOR]", INFO); Log("Match Endpoint [Extra Bytes in PID_UNICAST_LOCATOR]", INFO);
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); endpoint.entityId := gen_rand_entityid_2(FALSE);
endpoint.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
gen_endpoint_data(endpoint, sub_p.data, PID_UNICAST_LOCATOR, +1); gen_endpoint_data(endpoint, sub_p.data, PID_UNICAST_LOCATOR, +1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
gen_rtps_handler_out(sub_p, endpoint, stimulus); gen_rtps_handler_out(sub_p, endpoint, stimulus);
@ -1158,10 +1183,11 @@ begin
-- *PID_MULTICAST_LOCATOR* -- *PID_MULTICAST_LOCATOR*
Log("Ignore Endpoint [Invalid PID_MULTICAST_LOCATOR]", INFO); Log("Ignore Endpoint [Invalid PID_MULTICAST_LOCATOR]", INFO);
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE);
endpoint.multicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); endpoint.multicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
gen_endpoint_data(endpoint, sub_p.data, PID_MULTICAST_LOCATOR, -1); gen_endpoint_data(endpoint, sub_p.data, PID_MULTICAST_LOCATOR, -1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);
@ -1174,10 +1200,11 @@ begin
sub_p.data := EMPTY_TEST_PACKET; sub_p.data := EMPTY_TEST_PACKET;
Log("Match Endpoint [Extra Bytes in PID_MULTICAST_LOCATOR]", INFO); Log("Match Endpoint [Extra Bytes in PID_MULTICAST_LOCATOR]", INFO);
sub_p.writerSN := p_snp; sub_p.writerSN := p_snp;
endpoint := e0; endpoint := e0;
endpoint.reader := FALSE; endpoint.reader := FALSE;
endpoint.entityId := gen_rand_entityid_2(FALSE); endpoint.reliability := DEFAULT_RELIABILITY_QOS_W;
endpoint.entityId := gen_rand_entityid_2(FALSE);
endpoint.multicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); endpoint.multicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
gen_endpoint_data(endpoint, sub_p.data, PID_MULTICAST_LOCATOR, +1); gen_endpoint_data(endpoint, sub_p.data, PID_MULTICAST_LOCATOR, +1);
gen_sentinel(sub_p.data); gen_sentinel(sub_p.data);

View File

@ -227,13 +227,15 @@ begin
e0.topic_name := ENDPOINT_TOPIC(2); e0.topic_name := ENDPOINT_TOPIC(2);
e0.type_name := ENDPOINT_TYPE(2); e0.type_name := ENDPOINT_TYPE(2);
e0.reader := FALSE; e0.reader := FALSE;
e0.reliability := DEFAULT_RELIABILITY_QOS_W;
e0.entityId := gen_rand_entityid_2(FALSE); e0.entityId := gen_rand_entityid_2(FALSE);
e1.participant := p0; e1.participant := p0;
e1.topic_name := ENDPOINT_TOPIC(2); e1.topic_name := ENDPOINT_TOPIC(2);
e1.type_name := ENDPOINT_TYPE(2); e1.type_name := ENDPOINT_TYPE(2);
e1.reader := TRUE; e1.reader := TRUE;
e1.entityId := gen_rand_entityid_2(FALSE); e1.reliability := DEFAULT_RELIABILITY_QOS_R;
e1.entityId := gen_rand_entityid_2(TRUE);
Log("Initiating Test", INFO); Log("Initiating Test", INFO);
stim_done <= '0'; stim_done <= '0';

View File

@ -166,6 +166,7 @@ begin
e0.participant := p0; e0.participant := p0;
e0.entityid := RV.RandSlv(ENTITYID_WIDTH); e0.entityid := RV.RandSlv(ENTITYID_WIDTH);
e0.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e0.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e0.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 2 -- Endpoint 2
e1 := DEFAULT_ENDPOINT_DATA; e1 := DEFAULT_ENDPOINT_DATA;
e1.participant := p0; e1.participant := p0;
@ -186,6 +187,7 @@ begin
e3.entityid := RV.RandSlv(ENTITYID_WIDTH); e3.entityid := RV.RandSlv(ENTITYID_WIDTH);
e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e3.expectsInlineQoS(0) := '1'; e3.expectsInlineQoS(0) := '1';
e3.reliability := RELIABLE_RELIABILITY_QOS;
Log("Initiating Test", INFO); Log("Initiating Test", INFO);
stim_done <= '0'; stim_done <= '0';

View File

@ -166,6 +166,7 @@ begin
e0.participant := p0; e0.participant := p0;
e0.entityid := RV.RandSlv(ENTITYID_WIDTH); e0.entityid := RV.RandSlv(ENTITYID_WIDTH);
e0.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e0.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e0.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 2 -- Endpoint 2
e1 := DEFAULT_ENDPOINT_DATA; e1 := DEFAULT_ENDPOINT_DATA;
e1.participant := p0; e1.participant := p0;
@ -186,6 +187,7 @@ begin
e3.entityid := RV.RandSlv(ENTITYID_WIDTH); e3.entityid := RV.RandSlv(ENTITYID_WIDTH);
e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e3.expectsInlineQoS(0) := '1'; e3.expectsInlineQoS(0) := '1';
e3.reliability := RELIABLE_RELIABILITY_QOS;
Log("Initiating Test", INFO); Log("Initiating Test", INFO);
stim_done <= '0'; stim_done <= '0';

View File

@ -197,6 +197,7 @@ begin
e0.participant.guidPrefix := gen_rand_guid_prefix; e0.participant.guidPrefix := gen_rand_guid_prefix;
e0.entityid := RV.RandSlv(ENTITYID_WIDTH); e0.entityid := RV.RandSlv(ENTITYID_WIDTH);
e0.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e0.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e0.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 1 -- Endpoint 1
e1 := DEFAULT_ENDPOINT_DATA; e1 := DEFAULT_ENDPOINT_DATA;
e1.participant.guidPrefix := gen_rand_guid_prefix; e1.participant.guidPrefix := gen_rand_guid_prefix;
@ -209,6 +210,7 @@ begin
e2.entityid := RV.RandSlv(ENTITYID_WIDTH); e2.entityid := RV.RandSlv(ENTITYID_WIDTH);
e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e2.expectsInlineQoS(0) := '1'; e2.expectsInlineQoS(0) := '1';
e2.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 3 -- Endpoint 3
e3 := DEFAULT_ENDPOINT_DATA; e3 := DEFAULT_ENDPOINT_DATA;
e3.participant.guidPrefix := gen_rand_guid_prefix; e3.participant.guidPrefix := gen_rand_guid_prefix;

View File

@ -352,6 +352,7 @@ begin
e0.entityid := RV.RandSlv(ENTITYID_WIDTH); e0.entityid := RV.RandSlv(ENTITYID_WIDTH);
e0.participant.guidPrefix := gen_rand_guid_prefix; 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.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e0.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 1 -- Endpoint 1
e1 := DEFAULT_ENDPOINT_DATA; e1 := DEFAULT_ENDPOINT_DATA;
e1.nr := 1; e1.nr := 1;
@ -368,6 +369,7 @@ begin
e2.participant.guidPrefix := gen_rand_guid_prefix; e2.participant.guidPrefix := gen_rand_guid_prefix;
e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e2.expectsInlineQoS(0) := '1'; e2.expectsInlineQoS(0) := '1';
e2.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 3 -- Endpoint 3
e3 := DEFAULT_ENDPOINT_DATA; e3 := DEFAULT_ENDPOINT_DATA;
e3.nr := 3; e3.nr := 3;
@ -376,6 +378,7 @@ begin
e3.participant.guidPrefix := gen_rand_guid_prefix; e3.participant.guidPrefix := gen_rand_guid_prefix;
e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e3.durability := TRANSIENT_LOCAL_DURABILITY_QOS; e3.durability := TRANSIENT_LOCAL_DURABILITY_QOS;
e3.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 4 -- Endpoint 4
e4 := DEFAULT_ENDPOINT_DATA; e4 := DEFAULT_ENDPOINT_DATA;
e4.nr := 4; e4.nr := 4;

View File

@ -352,6 +352,7 @@ begin
e0.entityid := RV.RandSlv(ENTITYID_WIDTH); e0.entityid := RV.RandSlv(ENTITYID_WIDTH);
e0.participant.guidPrefix := gen_rand_guid_prefix; 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.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e0.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 1 -- Endpoint 1
e1 := DEFAULT_ENDPOINT_DATA; e1 := DEFAULT_ENDPOINT_DATA;
e1.nr := 1; e1.nr := 1;
@ -368,6 +369,7 @@ begin
e2.participant.guidPrefix := gen_rand_guid_prefix; e2.participant.guidPrefix := gen_rand_guid_prefix;
e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e2.expectsInlineQoS(0) := '1'; e2.expectsInlineQoS(0) := '1';
e2.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 3 -- Endpoint 3
e3 := DEFAULT_ENDPOINT_DATA; e3 := DEFAULT_ENDPOINT_DATA;
e3.nr := 3; e3.nr := 3;
@ -376,6 +378,7 @@ begin
e3.participant.guidPrefix := gen_rand_guid_prefix; e3.participant.guidPrefix := gen_rand_guid_prefix;
e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e3.durability := TRANSIENT_LOCAL_DURABILITY_QOS; e3.durability := TRANSIENT_LOCAL_DURABILITY_QOS;
e3.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 4 -- Endpoint 4
e4 := DEFAULT_ENDPOINT_DATA; e4 := DEFAULT_ENDPOINT_DATA;
e4.nr := 4; e4.nr := 4;

View File

@ -352,6 +352,7 @@ begin
e0.entityid := RV.RandSlv(ENTITYID_WIDTH); e0.entityid := RV.RandSlv(ENTITYID_WIDTH);
e0.participant.guidPrefix := gen_rand_guid_prefix; 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.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e0.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 1 -- Endpoint 1
e1 := DEFAULT_ENDPOINT_DATA; e1 := DEFAULT_ENDPOINT_DATA;
e1.nr := 1; e1.nr := 1;
@ -368,6 +369,7 @@ begin
e2.participant.guidPrefix := gen_rand_guid_prefix; e2.participant.guidPrefix := gen_rand_guid_prefix;
e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e2.expectsInlineQoS(0) := '1'; e2.expectsInlineQoS(0) := '1';
e2.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 3 -- Endpoint 3
e3 := DEFAULT_ENDPOINT_DATA; e3 := DEFAULT_ENDPOINT_DATA;
e3.nr := 3; e3.nr := 3;
@ -376,6 +378,7 @@ begin
e3.participant.guidPrefix := gen_rand_guid_prefix; e3.participant.guidPrefix := gen_rand_guid_prefix;
e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e3.durability := TRANSIENT_LOCAL_DURABILITY_QOS; e3.durability := TRANSIENT_LOCAL_DURABILITY_QOS;
e3.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 4 -- Endpoint 4
e4 := DEFAULT_ENDPOINT_DATA; e4 := DEFAULT_ENDPOINT_DATA;
e4.nr := 4; e4.nr := 4;

View File

@ -352,6 +352,7 @@ begin
e0.entityid := RV.RandSlv(ENTITYID_WIDTH); e0.entityid := RV.RandSlv(ENTITYID_WIDTH);
e0.participant.guidPrefix := gen_rand_guid_prefix; 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.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e0.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 1 -- Endpoint 1
e1 := DEFAULT_ENDPOINT_DATA; e1 := DEFAULT_ENDPOINT_DATA;
e1.nr := 1; e1.nr := 1;
@ -368,6 +369,7 @@ begin
e2.participant.guidPrefix := gen_rand_guid_prefix; e2.participant.guidPrefix := gen_rand_guid_prefix;
e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e2.expectsInlineQoS(0) := '1'; e2.expectsInlineQoS(0) := '1';
e2.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 3 -- Endpoint 3
e3 := DEFAULT_ENDPOINT_DATA; e3 := DEFAULT_ENDPOINT_DATA;
e3.nr := 3; e3.nr := 3;
@ -376,6 +378,7 @@ begin
e3.participant.guidPrefix := gen_rand_guid_prefix; e3.participant.guidPrefix := gen_rand_guid_prefix;
e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e3.durability := TRANSIENT_LOCAL_DURABILITY_QOS; e3.durability := TRANSIENT_LOCAL_DURABILITY_QOS;
e3.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 4 -- Endpoint 4
e4 := DEFAULT_ENDPOINT_DATA; e4 := DEFAULT_ENDPOINT_DATA;
e4.nr := 4; e4.nr := 4;

View File

@ -352,6 +352,7 @@ begin
e0.entityid := RV.RandSlv(ENTITYID_WIDTH); e0.entityid := RV.RandSlv(ENTITYID_WIDTH);
e0.participant.guidPrefix := gen_rand_guid_prefix; 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.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e0.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 1 -- Endpoint 1
e1 := DEFAULT_ENDPOINT_DATA; e1 := DEFAULT_ENDPOINT_DATA;
e1.nr := 1; e1.nr := 1;
@ -368,6 +369,7 @@ begin
e2.participant.guidPrefix := gen_rand_guid_prefix; e2.participant.guidPrefix := gen_rand_guid_prefix;
e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e2.expectsInlineQoS(0) := '1'; e2.expectsInlineQoS(0) := '1';
e2.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 3 -- Endpoint 3
e3 := DEFAULT_ENDPOINT_DATA; e3 := DEFAULT_ENDPOINT_DATA;
e3.nr := 3; e3.nr := 3;
@ -376,6 +378,7 @@ begin
e3.participant.guidPrefix := gen_rand_guid_prefix; e3.participant.guidPrefix := gen_rand_guid_prefix;
e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e3.durability := TRANSIENT_LOCAL_DURABILITY_QOS; e3.durability := TRANSIENT_LOCAL_DURABILITY_QOS;
e3.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 4 -- Endpoint 4
e4 := DEFAULT_ENDPOINT_DATA; e4 := DEFAULT_ENDPOINT_DATA;
e4.nr := 4; e4.nr := 4;

View File

@ -352,6 +352,7 @@ begin
e0.entityid := RV.RandSlv(ENTITYID_WIDTH); e0.entityid := RV.RandSlv(ENTITYID_WIDTH);
e0.participant.guidPrefix := gen_rand_guid_prefix; 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.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e0.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 1 -- Endpoint 1
e1 := DEFAULT_ENDPOINT_DATA; e1 := DEFAULT_ENDPOINT_DATA;
e1.nr := 1; e1.nr := 1;
@ -368,6 +369,7 @@ begin
e2.participant.guidPrefix := gen_rand_guid_prefix; e2.participant.guidPrefix := gen_rand_guid_prefix;
e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e2.expectsInlineQoS(0) := '1'; e2.expectsInlineQoS(0) := '1';
e2.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 3 -- Endpoint 3
e3 := DEFAULT_ENDPOINT_DATA; e3 := DEFAULT_ENDPOINT_DATA;
e3.nr := 3; e3.nr := 3;
@ -376,6 +378,7 @@ begin
e3.participant.guidPrefix := gen_rand_guid_prefix; e3.participant.guidPrefix := gen_rand_guid_prefix;
e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e3.durability := TRANSIENT_LOCAL_DURABILITY_QOS; e3.durability := TRANSIENT_LOCAL_DURABILITY_QOS;
e3.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 4 -- Endpoint 4
e4 := DEFAULT_ENDPOINT_DATA; e4 := DEFAULT_ENDPOINT_DATA;
e4.nr := 4; e4.nr := 4;

View File

@ -353,6 +353,7 @@ begin
e0.entityid := RV.RandSlv(ENTITYID_WIDTH); e0.entityid := RV.RandSlv(ENTITYID_WIDTH);
e0.participant.guidPrefix := gen_rand_guid_prefix; 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.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e0.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 1 -- Endpoint 1
e1 := DEFAULT_ENDPOINT_DATA; e1 := DEFAULT_ENDPOINT_DATA;
e1.nr := 1; e1.nr := 1;
@ -369,6 +370,7 @@ begin
e2.participant.guidPrefix := gen_rand_guid_prefix; e2.participant.guidPrefix := gen_rand_guid_prefix;
e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e2.expectsInlineQoS(0) := '1'; e2.expectsInlineQoS(0) := '1';
e2.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 3 -- Endpoint 3
e3 := DEFAULT_ENDPOINT_DATA; e3 := DEFAULT_ENDPOINT_DATA;
e3.nr := 3; e3.nr := 3;
@ -377,6 +379,7 @@ begin
e3.participant.guidPrefix := gen_rand_guid_prefix; e3.participant.guidPrefix := gen_rand_guid_prefix;
e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e3.durability := TRANSIENT_LOCAL_DURABILITY_QOS; e3.durability := TRANSIENT_LOCAL_DURABILITY_QOS;
e3.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 4 -- Endpoint 4
e4 := DEFAULT_ENDPOINT_DATA; e4 := DEFAULT_ENDPOINT_DATA;
e4.nr := 4; e4.nr := 4;

View File

@ -355,6 +355,7 @@ begin
e0.entityid := RV.RandSlv(ENTITYID_WIDTH); e0.entityid := RV.RandSlv(ENTITYID_WIDTH);
e0.participant.guidPrefix := gen_rand_guid_prefix; 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.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e0.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 1 -- Endpoint 1
e1 := DEFAULT_ENDPOINT_DATA; e1 := DEFAULT_ENDPOINT_DATA;
e1.nr := 1; e1.nr := 1;
@ -371,6 +372,7 @@ begin
e2.participant.guidPrefix := gen_rand_guid_prefix; e2.participant.guidPrefix := gen_rand_guid_prefix;
e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e2.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e2.expectsInlineQoS(0) := '1'; e2.expectsInlineQoS(0) := '1';
e2.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 3 -- Endpoint 3
e3 := DEFAULT_ENDPOINT_DATA; e3 := DEFAULT_ENDPOINT_DATA;
e3.nr := 3; e3.nr := 3;
@ -379,6 +381,7 @@ begin
e3.participant.guidPrefix := gen_rand_guid_prefix; e3.participant.guidPrefix := gen_rand_guid_prefix;
e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR)); e3.unicastLocatorList := (numLocators => int(1,CDR_LONG_WIDTH), locator => (0 => gen_rand_loc_2, others => EMPTY_LOCATOR));
e3.durability := TRANSIENT_LOCAL_DURABILITY_QOS; e3.durability := TRANSIENT_LOCAL_DURABILITY_QOS;
e3.reliability := RELIABLE_RELIABILITY_QOS;
-- Endpoint 4 -- Endpoint 4
e4 := DEFAULT_ENDPOINT_DATA; e4 := DEFAULT_ENDPOINT_DATA;
e4.nr := 4; e4.nr := 4;

View File

@ -105,7 +105,7 @@ package user_config is
constant ENDPOINT_TIME_BASED_FILTER_QOS : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_TIME_BASED_FILTER_QOS); constant ENDPOINT_TIME_BASED_FILTER_QOS : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_TIME_BASED_FILTER_QOS);
-- XXX: PARTITION QoS Ignored -- XXX: PARTITION QoS Ignored
-- Array mapping RELIABILITY QoS to Endpoints -- Array mapping RELIABILITY QoS to Endpoints
constant ENDPOINT_RELIABILITY_QOS : USER_ENUMERATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_RELIABILITY_QOS); constant ENDPOINT_RELIABILITY_QOS : USER_ENUMERATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => RELIABLE_RELIABILITY_QOS);
-- (Only relevant to Writers) -- (Only relevant to Writers)
constant ENDPOINT_MAX_BLOCKING_TIME : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_MAX_BLOCKING_TIME); constant ENDPOINT_MAX_BLOCKING_TIME : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_MAX_BLOCKING_TIME);
-- Array mapping LIFESPAN QoS to Endpoints (Only relevant to Writers) -- Array mapping LIFESPAN QoS to Endpoints (Only relevant to Writers)

View File

@ -107,7 +107,7 @@ package user_config is
constant ENDPOINT_TIME_BASED_FILTER_QOS : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_TIME_BASED_FILTER_QOS); constant ENDPOINT_TIME_BASED_FILTER_QOS : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_TIME_BASED_FILTER_QOS);
-- XXX: PARTITION QoS Ignored -- XXX: PARTITION QoS Ignored
-- Array mapping RELIABILITY QoS to Endpoints -- Array mapping RELIABILITY QoS to Endpoints
constant ENDPOINT_RELIABILITY_QOS : USER_ENUMERATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_RELIABILITY_QOS); constant ENDPOINT_RELIABILITY_QOS : USER_ENUMERATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => RELIABLE_RELIABILITY_QOS);
-- (Only relevant to Writers) -- (Only relevant to Writers)
constant ENDPOINT_MAX_BLOCKING_TIME : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_MAX_BLOCKING_TIME); constant ENDPOINT_MAX_BLOCKING_TIME : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_MAX_BLOCKING_TIME);
-- Array mapping LIFESPAN QoS to Endpoints (Only relevant to Writers) -- Array mapping LIFESPAN QoS to Endpoints (Only relevant to Writers)

View File

@ -104,7 +104,7 @@ package user_config is
constant ENDPOINT_TIME_BASED_FILTER_QOS : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_TIME_BASED_FILTER_QOS); constant ENDPOINT_TIME_BASED_FILTER_QOS : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_TIME_BASED_FILTER_QOS);
-- XXX: PARTITION QoS Ignored -- XXX: PARTITION QoS Ignored
-- Array mapping RELIABILITY QoS to Endpoints -- Array mapping RELIABILITY QoS to Endpoints
constant ENDPOINT_RELIABILITY_QOS : USER_ENUMERATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_RELIABILITY_QOS); constant ENDPOINT_RELIABILITY_QOS : USER_ENUMERATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => RELIABLE_RELIABILITY_QOS);
-- (Only relevant to Writers) -- (Only relevant to Writers)
constant ENDPOINT_MAX_BLOCKING_TIME : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_MAX_BLOCKING_TIME); constant ENDPOINT_MAX_BLOCKING_TIME : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_MAX_BLOCKING_TIME);
-- Array mapping LIFESPAN QoS to Endpoints (Only relevant to Writers) -- Array mapping LIFESPAN QoS to Endpoints (Only relevant to Writers)

View File

@ -104,7 +104,7 @@ package user_config is
constant ENDPOINT_TIME_BASED_FILTER_QOS : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_TIME_BASED_FILTER_QOS); constant ENDPOINT_TIME_BASED_FILTER_QOS : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_TIME_BASED_FILTER_QOS);
-- XXX: PARTITION QoS Ignored -- XXX: PARTITION QoS Ignored
-- Array mapping RELIABILITY QoS to Endpoints -- Array mapping RELIABILITY QoS to Endpoints
constant ENDPOINT_RELIABILITY_QOS : USER_ENUMERATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_RELIABILITY_QOS); constant ENDPOINT_RELIABILITY_QOS : USER_ENUMERATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => RELIABLE_RELIABILITY_QOS);
-- (Only relevant to Writers) -- (Only relevant to Writers)
constant ENDPOINT_MAX_BLOCKING_TIME : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_MAX_BLOCKING_TIME); constant ENDPOINT_MAX_BLOCKING_TIME : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_MAX_BLOCKING_TIME);
-- Array mapping LIFESPAN QoS to Endpoints (Only relevant to Writers) -- Array mapping LIFESPAN QoS to Endpoints (Only relevant to Writers)

View File

@ -184,9 +184,11 @@ package user_config is
-- XXX: PARTITION QoS Ignored -- XXX: PARTITION QoS Ignored
-- Array mapping RELIABILITY QoS to Endpoints -- Array mapping RELIABILITY QoS to Endpoints
constant ENDPOINT_RELIABILITY_QOS : USER_ENUMERATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := ( constant ENDPOINT_RELIABILITY_QOS : USER_ENUMERATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (
15 => BEST_EFFORT_RELIABILITY_QOS, 0 to 14 => DEFAULT_RELIABILITY_QOS_R,
NUM_READERS+3 => BEST_EFFORT_RELIABILITY_QOS, 15 => RELIABLE_RELIABILITY_QOS,
others => DEFAULT_RELIABILITY_QOS 16 => DEFAULT_RELIABILITY_QOS_R,
NUM_READERS+3 => BEST_EFFORT_RELIABILITY_QOS,
others => DEFAULT_RELIABILITY_QOS_W
); );
-- (Only relevant to Writers) -- (Only relevant to Writers)
constant ENDPOINT_MAX_BLOCKING_TIME : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := ( constant ENDPOINT_MAX_BLOCKING_TIME : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (

View File

@ -77,8 +77,9 @@ package rtps_config_package is
constant READER_EXPECTS_INLINE_QOS_FLAG : natural := 0; constant READER_EXPECTS_INLINE_QOS_FLAG : natural := 0;
constant READER_EXPECTS_HISTORICAL_DATA_FLAG : natural := 1; constant READER_EXPECTS_HISTORICAL_DATA_FLAG : natural := 1;
constant READER_IS_BEST_EFFORT_FLAG : natural := 2; constant READER_IS_BEST_EFFORT_FLAG : natural := 2;
-- TODO: Auto generate based on other defaults
constant DEFAULT_EXPECTS_HISTORICAL_DATA_FLAG : std_logic := '0'; constant DEFAULT_EXPECTS_HISTORICAL_DATA_FLAG : std_logic := '0';
constant DEFAULT_IS_BEST_EFFORT_FLAG : std_logic := '0'; constant DEFAULT_IS_BEST_EFFORT_FLAG : std_logic := '1';
-- Marks the Reader Endpoint in the Endpoint Array -- Marks the Reader Endpoint in the Endpoint Array
constant ENDPOINT_READERS : std_logic_vector(0 to NUM_ENDPOINTS-1); --Deferred to package body constant ENDPOINT_READERS : std_logic_vector(0 to NUM_ENDPOINTS-1); --Deferred to package body
@ -521,7 +522,7 @@ package body rtps_config_package is
ret.data(ind+len) := std_logic_vector(ENDPOINT_TIME_BASED_FILTER_QOS(i)(1)); ret.data(ind+len) := std_logic_vector(ENDPOINT_TIME_BASED_FILTER_QOS(i)(1));
end if; end if;
-- RELIABILITY -- RELIABILITY
if (ENDPOINT_RELIABILITY_QOS(i) /= DEFAULT_RELIABILITY_QOS or ENDPOINT_MAX_BLOCKING_TIME(i) /= DEFAULT_MAX_BLOCKING_TIME) then if (ENDPOINT_RELIABILITY_QOS(i) /= DEFAULT_RELIABILITY_QOS_R or ENDPOINT_MAX_BLOCKING_TIME(i) /= DEFAULT_MAX_BLOCKING_TIME) then
len := len + 1; len := len + 1;
ret.data(ind+len) := PID_RELIABILITY & std_logic_vector(to_unsigned(12, 16)); ret.data(ind+len) := PID_RELIABILITY & std_logic_vector(to_unsigned(12, 16));
len := len + 1; len := len + 1;
@ -706,7 +707,7 @@ package body rtps_config_package is
ret.data(ind+len) := std_logic_vector(ENDPOINT_LEASE_DURATION(i)(1)); ret.data(ind+len) := std_logic_vector(ENDPOINT_LEASE_DURATION(i)(1));
end if; end if;
-- RELIABILITY -- RELIABILITY
if (ENDPOINT_RELIABILITY_QOS(i) /= DEFAULT_RELIABILITY_QOS or ENDPOINT_MAX_BLOCKING_TIME(i) /= DEFAULT_MAX_BLOCKING_TIME) then if (ENDPOINT_RELIABILITY_QOS(i) /= DEFAULT_RELIABILITY_QOS_W or ENDPOINT_MAX_BLOCKING_TIME(i) /= DEFAULT_MAX_BLOCKING_TIME) then
len := len + 1; len := len + 1;
ret.data(ind+len) := PID_RELIABILITY & std_logic_vector(to_unsigned(12, 16)); ret.data(ind+len) := PID_RELIABILITY & std_logic_vector(to_unsigned(12, 16));
len := len + 1; len := len + 1;
@ -831,7 +832,7 @@ package body rtps_config_package is
ret.data(ret.length) := std_logic_vector(ENDPOINT_LEASE_DURATION(id)(1)); ret.data(ret.length) := std_logic_vector(ENDPOINT_LEASE_DURATION(id)(1));
end if; end if;
-- RELIABILITY -- RELIABILITY
if (ENDPOINT_RELIABILITY_QOS(id) /= DEFAULT_RELIABILITY_QOS or ENDPOINT_MAX_BLOCKING_TIME(id) /= DEFAULT_MAX_BLOCKING_TIME) then if (ENDPOINT_RELIABILITY_QOS(id) /= DEFAULT_RELIABILITY_QOS_W or ENDPOINT_MAX_BLOCKING_TIME(id) /= DEFAULT_MAX_BLOCKING_TIME) then
ret.length := ret.length + 1; ret.length := ret.length + 1;
ret.data(ret.length) := PID_RELIABILITY & std_logic_vector(to_unsigned(12, 16)); ret.data(ret.length) := PID_RELIABILITY & std_logic_vector(to_unsigned(12, 16));
ret.length := ret.length + 1; ret.length := ret.length + 1;
@ -1146,8 +1147,14 @@ package body rtps_config_package is
ret.LIVELINESS_QOS(i) := '0'; ret.LIVELINESS_QOS(i) := '0';
end if; end if;
-- RELIABILITY -- RELIABILITY
if (not check_qos_compatibility(boolean_to_std_logic(is_reader), '1', unsigned(DEFAULT_RELIABILITY_QOS), unsigned(ENDPOINT_RELIABILITY_QOS(i)))) then if (is_reader) then
ret.RELIABILITY_QOS(i) := '0'; if (not check_qos_compatibility(boolean_to_std_logic(is_reader), '1', unsigned(DEFAULT_RELIABILITY_QOS_R), unsigned(ENDPOINT_RELIABILITY_QOS(i)))) then
ret.RELIABILITY_QOS(i) := '0';
end if;
else
if (not check_qos_compatibility(boolean_to_std_logic(is_reader), '1', unsigned(DEFAULT_RELIABILITY_QOS_W), unsigned(ENDPOINT_RELIABILITY_QOS(i)))) then
ret.RELIABILITY_QOS(i) := '0';
end if;
end if; end if;
-- DESTINATION_ORDER -- DESTINATION_ORDER
if (not check_qos_compatibility(boolean_to_std_logic(is_reader), '1', unsigned(DEFAULT_DESTINATION_ORDER_QOS), unsigned(ENDPOINT_DESTINATION_ORDER_QOS(i)))) then if (not check_qos_compatibility(boolean_to_std_logic(is_reader), '1', unsigned(DEFAULT_DESTINATION_ORDER_QOS), unsigned(ENDPOINT_DESTINATION_ORDER_QOS(i)))) then

View File

@ -392,7 +392,8 @@ package rtps_package is
-- RELIABILITY -- RELIABILITY
constant BEST_EFFORT_RELIABILITY_QOS : std_logic_vector(CDR_ENUMERATION_WIDTH-1 downto 0) := std_logic_vector(to_unsigned(1,CDR_ENUMERATION_WIDTH)); constant BEST_EFFORT_RELIABILITY_QOS : std_logic_vector(CDR_ENUMERATION_WIDTH-1 downto 0) := std_logic_vector(to_unsigned(1,CDR_ENUMERATION_WIDTH));
constant RELIABLE_RELIABILITY_QOS : std_logic_vector(CDR_ENUMERATION_WIDTH-1 downto 0) := std_logic_vector(to_unsigned(2,CDR_ENUMERATION_WIDTH)); constant RELIABLE_RELIABILITY_QOS : std_logic_vector(CDR_ENUMERATION_WIDTH-1 downto 0) := std_logic_vector(to_unsigned(2,CDR_ENUMERATION_WIDTH));
constant DEFAULT_RELIABILITY_QOS : std_logic_vector(CDR_ENUMERATION_WIDTH-1 downto 0) := RELIABLE_RELIABILITY_QOS; constant DEFAULT_RELIABILITY_QOS_W : std_logic_vector(CDR_ENUMERATION_WIDTH-1 downto 0) := RELIABLE_RELIABILITY_QOS;
constant DEFAULT_RELIABILITY_QOS_R : std_logic_vector(CDR_ENUMERATION_WIDTH-1 downto 0) := BEST_EFFORT_RELIABILITY_QOS;
-- MAX BLOCKING TIME (RELIABILITY) -- MAX BLOCKING TIME (RELIABILITY)
constant DEFAULT_MAX_BLOCKING_TIME : DURATION_TYPE; --Deferred to Package Body (100 ms) constant DEFAULT_MAX_BLOCKING_TIME : DURATION_TYPE; --Deferred to Package Body (100 ms)
-- TRANSPORT_PRIORITY -- TRANSPORT_PRIORITY

View File

@ -823,7 +823,7 @@ package body rtps_test_package is
liveliness => DEFAULT_LIVELINESS_QOS, liveliness => DEFAULT_LIVELINESS_QOS,
leaseDuration => DEFAULT_LEASE_DURATION, leaseDuration => DEFAULT_LEASE_DURATION,
time_based_filter => DEFAULT_TIME_BASED_FILTER_QOS, time_based_filter => DEFAULT_TIME_BASED_FILTER_QOS,
reliability => DEFAULT_RELIABILITY_QOS, reliability => DEFAULT_RELIABILITY_QOS_R,
max_blocking_time => DEFAULT_MAX_BLOCKING_TIME, max_blocking_time => DEFAULT_MAX_BLOCKING_TIME,
lifespan => DEFAULT_LIFESPAN_QOS, lifespan => DEFAULT_LIFESPAN_QOS,
destination_order => DEFAULT_DESTINATION_ORDER_QOS, destination_order => DEFAULT_DESTINATION_ORDER_QOS,
@ -2448,7 +2448,7 @@ package body rtps_test_package is
end if; end if;
end if; end if;
-- RELIABILITY -- RELIABILITY
if (ref.reliability /= DEFAULT_RELIABILITY_QOS or ref.max_blocking_time /= DEFAULT_MAX_BLOCKING_TIME or pid = PID_RELIABILITY) then if ((ref.reader and ref.reliability /= DEFAULT_RELIABILITY_QOS_R) or ((not ref.reader) and ref.reliability /= DEFAULT_RELIABILITY_QOS_W) or ref.max_blocking_time /= DEFAULT_MAX_BLOCKING_TIME or pid = PID_RELIABILITY) then
if (pid = PID_RELIABILITY) then if (pid = PID_RELIABILITY) then
assert (12+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE; assert (12+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
output.data(output.length) := endian_swap(ref.littleEndian, PID_RELIABILITY) & endian_swap(ref.littleEndian, int(12+(offset*4),PARAMETER_LENGTH_WIDTH)); output.data(output.length) := endian_swap(ref.littleEndian, PID_RELIABILITY) & endian_swap(ref.littleEndian, int(12+(offset*4),PARAMETER_LENGTH_WIDTH));
@ -2870,7 +2870,7 @@ package body rtps_test_package is
end if; end if;
end if; end if;
-- RELIABILITY -- RELIABILITY
if (endpoint.reliability /= DEFAULT_RELIABILITY_QOS or endpoint.max_blocking_time /= DEFAULT_MAX_BLOCKING_TIME or pid = PID_RELIABILITY) then if (endpoint.reliability /= DEFAULT_RELIABILITY_QOS_W or endpoint.max_blocking_time /= DEFAULT_MAX_BLOCKING_TIME or pid = PID_RELIABILITY) then
if (pid = PID_RELIABILITY) then if (pid = PID_RELIABILITY) then
assert (12+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE; assert (12+(offset*4) >= 0) report "Parameter Length < 0" severity FAILURE;
output.data(output.length) := endian_swap(littleEndian, PID_RELIABILITY) & endian_swap(littleEndian, int(12+(offset*4),PARAMETER_LENGTH_WIDTH)); output.data(output.length) := endian_swap(littleEndian, PID_RELIABILITY) & endian_swap(littleEndian, int(12+(offset*4),PARAMETER_LENGTH_WIDTH));

View File

@ -104,7 +104,7 @@ package user_config is
constant ENDPOINT_TIME_BASED_FILTER_QOS : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_TIME_BASED_FILTER_QOS); constant ENDPOINT_TIME_BASED_FILTER_QOS : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_TIME_BASED_FILTER_QOS);
-- XXX: PARTITION QoS Ignored -- XXX: PARTITION QoS Ignored
-- Array mapping RELIABILITY QoS to Endpoints -- Array mapping RELIABILITY QoS to Endpoints
constant ENDPOINT_RELIABILITY_QOS : USER_ENUMERATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_RELIABILITY_QOS); constant ENDPOINT_RELIABILITY_QOS : USER_ENUMERATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => RELIABLE_RELIABILITY_QOS);
-- (Only relevant to Writers) -- (Only relevant to Writers)
constant ENDPOINT_MAX_BLOCKING_TIME : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_MAX_BLOCKING_TIME); constant ENDPOINT_MAX_BLOCKING_TIME : USER_DURATION_ARRAY_TYPE(0 to NUM_ENDPOINTS-1) := (others => DEFAULT_MAX_BLOCKING_TIME);
-- Array mapping LIFESPAN QoS to Endpoints (Only relevant to Writers) -- Array mapping LIFESPAN QoS to Endpoints (Only relevant to Writers)