mirror of https://github.com/PentHertz/srsLTE.git
added default rlc um and am in the interface as factories
This commit is contained in:
parent
b903c1a52c
commit
92b4b168fe
|
@ -256,6 +256,40 @@ public:
|
||||||
rlc_cfg.am.t_status_prohibit = 0;
|
rlc_cfg.am.t_status_prohibit = 0;
|
||||||
return rlc_cfg;
|
return rlc_cfg;
|
||||||
}
|
}
|
||||||
|
static rlc_config_t default_rlc_um_config(uint32_t sn_size = 10)
|
||||||
|
{
|
||||||
|
rlc_config_t cnfg;
|
||||||
|
cnfg.rlc_mode = rlc_mode_t::um;
|
||||||
|
cnfg.um.t_reordering = 5;
|
||||||
|
if (sn_size == 10) {
|
||||||
|
cnfg.um.rx_sn_field_length = rlc_umd_sn_size_t::size10bits;
|
||||||
|
cnfg.um.rx_window_size = 512;
|
||||||
|
cnfg.um.rx_mod = 1024;
|
||||||
|
cnfg.um.tx_sn_field_length = rlc_umd_sn_size_t::size10bits;
|
||||||
|
cnfg.um.tx_mod = 1024;
|
||||||
|
} else if (sn_size == 5) {
|
||||||
|
cnfg.um.rx_sn_field_length = rlc_umd_sn_size_t::size5bits;
|
||||||
|
cnfg.um.rx_window_size = 16;
|
||||||
|
cnfg.um.rx_mod = 32;
|
||||||
|
cnfg.um.tx_sn_field_length = rlc_umd_sn_size_t::size5bits;
|
||||||
|
cnfg.um.tx_mod = 32;
|
||||||
|
} else {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
return cnfg;
|
||||||
|
}
|
||||||
|
static rlc_config_t default_rlc_am_config()
|
||||||
|
{
|
||||||
|
rlc_config_t rlc_cnfg;
|
||||||
|
rlc_cnfg.rlc_mode = rlc_mode_t::am;
|
||||||
|
rlc_cnfg.am.t_reordering = 5;
|
||||||
|
rlc_cnfg.am.t_status_prohibit = 5;
|
||||||
|
rlc_cnfg.am.max_retx_thresh = 4;
|
||||||
|
rlc_cnfg.am.poll_byte = 25;
|
||||||
|
rlc_cnfg.am.poll_pdu = 4;
|
||||||
|
rlc_cnfg.am.t_poll_retx = 5;
|
||||||
|
return rlc_cnfg;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
} // namespace srslte
|
} // namespace srslte
|
||||||
|
|
||||||
|
|
|
@ -129,19 +129,6 @@ private:
|
||||||
bool running;
|
bool running;
|
||||||
};
|
};
|
||||||
|
|
||||||
rlc_config_t default_rlc_cnfg()
|
|
||||||
{
|
|
||||||
rlc_config_t rlc_cnfg;
|
|
||||||
rlc_cnfg.rlc_mode = rlc_mode_t::am;
|
|
||||||
rlc_cnfg.am.t_reordering = 5;
|
|
||||||
rlc_cnfg.am.t_status_prohibit = 5;
|
|
||||||
rlc_cnfg.am.max_retx_thresh = 4;
|
|
||||||
rlc_cnfg.am.poll_byte = 25;
|
|
||||||
rlc_cnfg.am.poll_pdu = 4;
|
|
||||||
rlc_cnfg.am.t_poll_retx = 5;
|
|
||||||
return rlc_cnfg;
|
|
||||||
}
|
|
||||||
|
|
||||||
void basic_test_tx(rlc_am* rlc, byte_buffer_t pdu_bufs[NBUFS])
|
void basic_test_tx(rlc_am* rlc, byte_buffer_t pdu_bufs[NBUFS])
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -182,11 +169,11 @@ bool basic_test()
|
||||||
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
||||||
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
||||||
|
|
||||||
if (not rlc1.configure(default_rlc_cnfg())) {
|
if (not rlc1.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (not rlc2.configure(default_rlc_cnfg())) {
|
if (not rlc2.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -241,11 +228,11 @@ bool concat_test()
|
||||||
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
||||||
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
||||||
|
|
||||||
if (not rlc1.configure(default_rlc_cnfg())) {
|
if (not rlc1.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (not rlc2.configure(default_rlc_cnfg())) {
|
if (not rlc2.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -307,11 +294,11 @@ bool segment_test(bool in_seq_rx)
|
||||||
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
||||||
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
||||||
|
|
||||||
if (not rlc1.configure(default_rlc_cnfg())) {
|
if (not rlc1.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (not rlc2.configure(default_rlc_cnfg())) {
|
if (not rlc2.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -401,11 +388,11 @@ bool retx_test()
|
||||||
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
||||||
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
||||||
|
|
||||||
if (not rlc1.configure(default_rlc_cnfg())) {
|
if (not rlc1.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (not rlc2.configure(default_rlc_cnfg())) {
|
if (not rlc2.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -494,11 +481,11 @@ bool resegment_test_1()
|
||||||
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
||||||
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
||||||
|
|
||||||
if (not rlc1.configure(default_rlc_cnfg())) {
|
if (not rlc1.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (not rlc2.configure(default_rlc_cnfg())) {
|
if (not rlc2.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -600,11 +587,11 @@ bool resegment_test_2()
|
||||||
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
||||||
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
||||||
|
|
||||||
if (not rlc1.configure(default_rlc_cnfg())) {
|
if (not rlc1.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (not rlc2.configure(default_rlc_cnfg())) {
|
if (not rlc2.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -702,11 +689,11 @@ bool resegment_test_3()
|
||||||
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
||||||
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
||||||
|
|
||||||
if (not rlc1.configure(default_rlc_cnfg())) {
|
if (not rlc1.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (not rlc2.configure(default_rlc_cnfg())) {
|
if (not rlc2.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -799,11 +786,11 @@ bool resegment_test_4()
|
||||||
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
||||||
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
||||||
|
|
||||||
if (not rlc1.configure(default_rlc_cnfg())) {
|
if (not rlc1.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (not rlc2.configure(default_rlc_cnfg())) {
|
if (not rlc2.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -898,11 +885,11 @@ bool resegment_test_5()
|
||||||
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
||||||
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
||||||
|
|
||||||
if (not rlc1.configure(default_rlc_cnfg())) {
|
if (not rlc1.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (not rlc2.configure(default_rlc_cnfg())) {
|
if (not rlc2.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -998,11 +985,11 @@ bool resegment_test_6()
|
||||||
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
||||||
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
||||||
|
|
||||||
if (not rlc1.configure(default_rlc_cnfg())) {
|
if (not rlc1.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (not rlc2.configure(default_rlc_cnfg())) {
|
if (not rlc2.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1134,11 +1121,11 @@ bool resegment_test_7()
|
||||||
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
||||||
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
||||||
|
|
||||||
if (not rlc1.configure(default_rlc_cnfg())) {
|
if (not rlc1.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (not rlc2.configure(default_rlc_cnfg())) {
|
if (not rlc2.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1307,11 +1294,11 @@ bool resegment_test_8()
|
||||||
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
||||||
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
rlc_am rlc2(&log2, 1, &tester, &tester, &timers);
|
||||||
|
|
||||||
if (not rlc1.configure(default_rlc_cnfg())) {
|
if (not rlc1.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (not rlc2.configure(default_rlc_cnfg())) {
|
if (not rlc2.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1451,7 +1438,7 @@ bool reset_test()
|
||||||
|
|
||||||
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
||||||
|
|
||||||
if (not rlc1.configure(default_rlc_cnfg())) {
|
if (not rlc1.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1496,7 +1483,7 @@ bool resume_test()
|
||||||
|
|
||||||
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
||||||
|
|
||||||
if (not rlc1.configure(default_rlc_cnfg())) {
|
if (not rlc1.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1540,7 +1527,7 @@ bool stop_test()
|
||||||
|
|
||||||
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
rlc_am rlc1(&log1, 1, &tester, &tester, &timers);
|
||||||
|
|
||||||
if (not rlc1.configure(default_rlc_cnfg())) {
|
if (not rlc1.configure(rlc_config_t::default_rlc_am_config())) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -94,28 +94,6 @@ public:
|
||||||
uint32_t expected_sdu_len;
|
uint32_t expected_sdu_len;
|
||||||
};
|
};
|
||||||
|
|
||||||
srslte::rlc_config_t make_rlc_cnfg_default(uint32_t sn)
|
|
||||||
{
|
|
||||||
rlc_config_t cnfg;
|
|
||||||
cnfg.rlc_mode = rlc_mode_t::um;
|
|
||||||
cnfg.um.t_reordering = 5;
|
|
||||||
if (sn == 10) {
|
|
||||||
cnfg.um.rx_sn_field_length = rlc_umd_sn_size_t::size10bits;
|
|
||||||
cnfg.um.rx_window_size = 512;
|
|
||||||
cnfg.um.rx_mod = 1024;
|
|
||||||
cnfg.um.tx_sn_field_length = rlc_umd_sn_size_t::size10bits;
|
|
||||||
cnfg.um.tx_mod = 1024;
|
|
||||||
} else if (sn == 5) {
|
|
||||||
cnfg.um.rx_sn_field_length = rlc_umd_sn_size_t::size5bits;
|
|
||||||
cnfg.um.rx_window_size = 16;
|
|
||||||
cnfg.um.rx_mod = 32;
|
|
||||||
cnfg.um.tx_sn_field_length = rlc_umd_sn_size_t::size5bits;
|
|
||||||
cnfg.um.tx_mod = 32;
|
|
||||||
} else {
|
|
||||||
printf("NOT supported\n");
|
|
||||||
}
|
|
||||||
return cnfg;
|
|
||||||
}
|
|
||||||
|
|
||||||
int basic_test()
|
int basic_test()
|
||||||
{
|
{
|
||||||
|
@ -132,7 +110,7 @@ int basic_test()
|
||||||
rlc_um rlc1(&log1, 3, &tester, &tester, &timers);
|
rlc_um rlc1(&log1, 3, &tester, &tester, &timers);
|
||||||
rlc_um rlc2(&log2, 3, &tester, &tester, &timers);
|
rlc_um rlc2(&log2, 3, &tester, &tester, &timers);
|
||||||
|
|
||||||
rlc_config_t cnfg = make_rlc_cnfg_default(10);
|
rlc_config_t cnfg = rlc_config_t::default_rlc_um_config(10);
|
||||||
cnfg.rlc_mode = rlc_mode_t::um;
|
cnfg.rlc_mode = rlc_mode_t::um;
|
||||||
cnfg.um.t_reordering = 5;
|
cnfg.um.t_reordering = 5;
|
||||||
cnfg.um.rx_sn_field_length = rlc_umd_sn_size_t::size10bits;
|
cnfg.um.rx_sn_field_length = rlc_umd_sn_size_t::size10bits;
|
||||||
|
@ -202,7 +180,7 @@ int loss_test()
|
||||||
rlc_um rlc1(&log1, 3, &tester, &tester, &timers);
|
rlc_um rlc1(&log1, 3, &tester, &tester, &timers);
|
||||||
rlc_um rlc2(&log2, 3, &tester, &tester, &timers);
|
rlc_um rlc2(&log2, 3, &tester, &tester, &timers);
|
||||||
|
|
||||||
rlc_config_t cnfg = make_rlc_cnfg_default(10);
|
rlc_config_t cnfg = rlc_config_t::default_rlc_um_config(10);
|
||||||
|
|
||||||
rlc1.configure(cnfg);
|
rlc1.configure(cnfg);
|
||||||
rlc2.configure(cnfg);
|
rlc2.configure(cnfg);
|
||||||
|
@ -335,7 +313,7 @@ int reassmble_test()
|
||||||
rlc_um rlc1(&log1, 3, &tester, &tester, &timers);
|
rlc_um rlc1(&log1, 3, &tester, &tester, &timers);
|
||||||
rlc_um rlc2(&log2, 3, &tester, &tester, &timers);
|
rlc_um rlc2(&log2, 3, &tester, &tester, &timers);
|
||||||
|
|
||||||
rlc_config_t cnfg = make_rlc_cnfg_default(5);
|
rlc_config_t cnfg = rlc_config_t::default_rlc_um_config(5);
|
||||||
|
|
||||||
rlc1.configure(cnfg);
|
rlc1.configure(cnfg);
|
||||||
rlc2.configure(cnfg);
|
rlc2.configure(cnfg);
|
||||||
|
@ -444,7 +422,7 @@ int reassmble_test2()
|
||||||
rlc_um rlc1(&log1, 3, &tester, &tester, &timers);
|
rlc_um rlc1(&log1, 3, &tester, &tester, &timers);
|
||||||
rlc_um rlc2(&log2, 3, &tester, &tester, &timers);
|
rlc_um rlc2(&log2, 3, &tester, &tester, &timers);
|
||||||
|
|
||||||
rlc_config_t cnfg = make_rlc_cnfg_default(5);
|
rlc_config_t cnfg = rlc_config_t::default_rlc_um_config(5);
|
||||||
|
|
||||||
rlc1.configure(cnfg);
|
rlc1.configure(cnfg);
|
||||||
rlc2.configure(cnfg);
|
rlc2.configure(cnfg);
|
||||||
|
|
Loading…
Reference in New Issue