mirror of https://github.com/PentHertz/srsLTE.git
Clang-formated PDCP NR PR.
This commit is contained in:
parent
964db869a6
commit
491695ab77
|
@ -22,8 +22,8 @@
|
|||
#ifndef SRSLTE_PDCP_H
|
||||
#define SRSLTE_PDCP_H
|
||||
|
||||
#include "srslte/common/log.h"
|
||||
#include "srslte/common/common.h"
|
||||
#include "srslte/common/log.h"
|
||||
#include "srslte/interfaces/ue_interfaces.h"
|
||||
#include "srslte/upper/pdcp_entity_lte.h"
|
||||
|
||||
|
|
|
@ -119,7 +119,7 @@ inline uint32_t pdcp_entity_base::HFN(uint32_t count)
|
|||
|
||||
inline uint32_t pdcp_entity_base::SN(uint32_t count)
|
||||
{
|
||||
return count & (0xFFFFFFFF >> (32 -cfg.sn_len));
|
||||
return count & (0xFFFFFFFF >> (32 - cfg.sn_len));
|
||||
}
|
||||
|
||||
inline uint32_t pdcp_entity_base::COUNT(uint32_t hfn, uint32_t sn)
|
||||
|
|
|
@ -23,14 +23,13 @@
|
|||
#define SRSLTE_PDCP_ENTITY_LTE_H
|
||||
|
||||
#include "srslte/common/buffer_pool.h"
|
||||
#include "srslte/common/log.h"
|
||||
#include "srslte/common/common.h"
|
||||
#include "srslte/interfaces/ue_interfaces.h"
|
||||
#include "srslte/common/log.h"
|
||||
#include "srslte/common/security.h"
|
||||
#include "srslte/common/threads.h"
|
||||
#include "srslte/interfaces/ue_interfaces.h"
|
||||
#include "srslte/upper/pdcp_entity_base.h"
|
||||
|
||||
|
||||
namespace srslte {
|
||||
|
||||
/****************************************************************************
|
||||
|
@ -44,7 +43,7 @@ namespace srslte {
|
|||
* LTE PDCP Entity
|
||||
* Class for LTE PDCP entities
|
||||
***************************************************************************/
|
||||
class pdcp_entity_lte final: public pdcp_entity_base
|
||||
class pdcp_entity_lte final : public pdcp_entity_base
|
||||
{
|
||||
public:
|
||||
pdcp_entity_lte();
|
||||
|
|
|
@ -22,13 +22,13 @@
|
|||
#ifndef SRSLTE_PDCP_ENTITY_NR_H
|
||||
#define SRSLTE_PDCP_ENTITY_NR_H
|
||||
|
||||
#include "pdcp_entity_base.h"
|
||||
#include "srslte/common/buffer_pool.h"
|
||||
#include "srslte/common/log.h"
|
||||
#include "srslte/common/common.h"
|
||||
#include "srslte/common/interfaces_common.h"
|
||||
#include "srslte/common/log.h"
|
||||
#include "srslte/common/security.h"
|
||||
#include "srslte/common/threads.h"
|
||||
#include "pdcp_entity_base.h"
|
||||
|
||||
namespace srslte {
|
||||
|
||||
|
@ -76,7 +76,7 @@ private:
|
|||
// Packing/Unpacking Helper functions
|
||||
void read_data_header(const unique_byte_buffer_t& sdu, uint32_t* rcvd_sn);
|
||||
void write_data_header(const unique_byte_buffer_t& sdu, uint32_t sn);
|
||||
void extract_mac(const unique_byte_buffer_t &sdu, uint8_t* mac);
|
||||
void extract_mac(const unique_byte_buffer_t& sdu, uint8_t* mac);
|
||||
void append_mac(const unique_byte_buffer_t& sdu, uint8_t* mac);
|
||||
};
|
||||
|
||||
|
|
|
@ -184,7 +184,7 @@ void pdcp::change_lcid(uint32_t old_lcid, uint32_t new_lcid)
|
|||
if (valid_lcid(old_lcid) && not valid_lcid(new_lcid)) {
|
||||
// insert old PDCP entity into new LCID
|
||||
pdcp_map_t::iterator it = pdcp_array.find(old_lcid);
|
||||
pdcp_entity_lte *pdcp_entity = it->second;
|
||||
pdcp_entity_lte* pdcp_entity = it->second;
|
||||
if (not pdcp_array.insert(pdcp_map_pair_t(new_lcid, pdcp_entity)).second) {
|
||||
pdcp_log->error("Error inserting PDCP entity into array\n.");
|
||||
goto exit;
|
||||
|
@ -193,7 +193,11 @@ void pdcp::change_lcid(uint32_t old_lcid, uint32_t new_lcid)
|
|||
pdcp_array.erase(it);
|
||||
pdcp_log->warning("Changed LCID of PDCP bearer from %d to %d\n", old_lcid, new_lcid);
|
||||
} else {
|
||||
pdcp_log->error("Can't change PDCP of bearer %s from %d to %d. Bearer doesn't exist or new LCID already occupied.\n", rrc->get_rb_name(old_lcid).c_str(), old_lcid, new_lcid);
|
||||
pdcp_log->error(
|
||||
"Can't change PDCP of bearer %s from %d to %d. Bearer doesn't exist or new LCID already occupied.\n",
|
||||
rrc->get_rb_name(old_lcid).c_str(),
|
||||
old_lcid,
|
||||
new_lcid);
|
||||
}
|
||||
exit:
|
||||
pthread_rwlock_unlock(&rwlock);
|
||||
|
|
|
@ -50,19 +50,18 @@ void pdcp_entity_base::config_security(uint8_t* k_rrc_enc_,
|
|||
integrity_algorithm_id_text[integ_algo],
|
||||
ciphering_algorithm_id_text[cipher_algo]);
|
||||
|
||||
log->debug_hex(k_rrc_enc, 32,"K_rrc_enc");
|
||||
log->debug_hex(k_up_enc, 32,"K_up_enc");
|
||||
log->debug_hex(k_rrc_int, 32,"K_rrc_int");
|
||||
log->debug_hex(k_up_int, 32,"K_up_int");
|
||||
log->debug_hex(k_rrc_enc, 32, "K_rrc_enc");
|
||||
log->debug_hex(k_up_enc, 32, "K_up_enc");
|
||||
log->debug_hex(k_rrc_int, 32, "K_rrc_int");
|
||||
log->debug_hex(k_up_int, 32, "K_up_int");
|
||||
}
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* Security functions
|
||||
***************************************************************************/
|
||||
void pdcp_entity_base::integrity_generate(uint8_t* msg, uint32_t msg_len, uint32_t count, uint8_t* mac)
|
||||
{
|
||||
uint8_t *k_int;
|
||||
uint8_t* k_int;
|
||||
|
||||
// If control plane use RRC integrity key. If data use user plane key
|
||||
if (is_srb()) {
|
||||
|
@ -71,27 +70,14 @@ void pdcp_entity_base::integrity_generate(uint8_t* msg, uint32_t msg_len, uint32
|
|||
k_int = k_up_int;
|
||||
}
|
||||
|
||||
switch(integ_algo)
|
||||
{
|
||||
switch (integ_algo) {
|
||||
case INTEGRITY_ALGORITHM_ID_EIA0:
|
||||
break;
|
||||
case INTEGRITY_ALGORITHM_ID_128_EIA1:
|
||||
security_128_eia1(&k_int[16],
|
||||
count,
|
||||
cfg.bearer_id - 1,
|
||||
cfg.tx_direction,
|
||||
msg,
|
||||
msg_len,
|
||||
mac);
|
||||
security_128_eia1(&k_int[16], count, cfg.bearer_id - 1, cfg.tx_direction, msg, msg_len, mac);
|
||||
break;
|
||||
case INTEGRITY_ALGORITHM_ID_128_EIA2:
|
||||
security_128_eia2(&k_int[16],
|
||||
count,
|
||||
cfg.bearer_id - 1,
|
||||
cfg.tx_direction,
|
||||
msg,
|
||||
msg_len,
|
||||
mac);
|
||||
security_128_eia2(&k_int[16], count, cfg.bearer_id - 1, cfg.tx_direction, msg, msg_len, mac);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -109,7 +95,7 @@ bool pdcp_entity_base::integrity_verify(uint8_t* msg, uint32_t msg_len, uint32_t
|
|||
{
|
||||
uint8_t mac_exp[4] = {};
|
||||
bool is_valid = true;
|
||||
uint8_t *k_int;
|
||||
uint8_t* k_int;
|
||||
|
||||
// If control plane use RRC integrity key. If data use user plane key
|
||||
if (is_srb()) {
|
||||
|
@ -157,7 +143,7 @@ bool pdcp_entity_base::integrity_verify(uint8_t* msg, uint32_t msg_len, uint32_t
|
|||
void pdcp_entity_base::cipher_encrypt(uint8_t* msg, uint32_t msg_len, uint32_t count, uint8_t* ct)
|
||||
{
|
||||
byte_buffer_t ct_tmp;
|
||||
uint8_t *k_enc;
|
||||
uint8_t* k_enc;
|
||||
|
||||
// If control plane use RRC encrytion key. If data use user plane key
|
||||
if (is_srb()) {
|
||||
|
@ -192,7 +178,7 @@ void pdcp_entity_base::cipher_encrypt(uint8_t* msg, uint32_t msg_len, uint32_t c
|
|||
void pdcp_entity_base::cipher_decrypt(uint8_t* ct, uint32_t ct_len, uint32_t count, uint8_t* msg)
|
||||
{
|
||||
byte_buffer_t msg_tmp;
|
||||
uint8_t *k_enc;
|
||||
uint8_t* k_enc;
|
||||
|
||||
// If control plane use RRC encrytion key. If data use user plane key
|
||||
if (is_srb()) {
|
||||
|
@ -207,8 +193,7 @@ void pdcp_entity_base::cipher_decrypt(uint8_t* ct, uint32_t ct_len, uint32_t cou
|
|||
(cfg.rx_direction == SECURITY_DIRECTION_DOWNLINK) ? "Downlink" : "Uplink");
|
||||
log->debug_hex(ct, ct_len, "Cipher decrypt input msg");
|
||||
|
||||
switch(cipher_algo)
|
||||
{
|
||||
switch (cipher_algo) {
|
||||
case CIPHERING_ALGORITHM_ID_EEA0:
|
||||
break;
|
||||
case CIPHERING_ALGORITHM_ID_128_EEA1:
|
||||
|
@ -222,7 +207,6 @@ void pdcp_entity_base::cipher_decrypt(uint8_t* ct, uint32_t ct_len, uint32_t cou
|
|||
default:
|
||||
break;
|
||||
}
|
||||
log->debug_hex(msg, ct_len,"Cipher decrypt output msg");
|
||||
}
|
||||
|
||||
log->debug_hex(msg, ct_len, "Cipher decrypt output msg");
|
||||
}
|
||||
} // namespace srslte
|
||||
|
|
|
@ -104,18 +104,20 @@ void pdcp_entity_lte::reset()
|
|||
// GW/RRC interface
|
||||
void pdcp_entity_lte::write_sdu(unique_byte_buffer_t sdu, bool blocking)
|
||||
{
|
||||
log->info_hex(sdu->msg, sdu->N_bytes,
|
||||
log->info_hex(sdu->msg,
|
||||
sdu->N_bytes,
|
||||
"TX %s SDU, SN: %d, do_integrity = %s, do_encryption = %s",
|
||||
rrc->get_rb_name(lcid).c_str(), tx_count,
|
||||
(do_integrity) ? "true" : "false", (do_encryption) ? "true" : "false");
|
||||
rrc->get_rb_name(lcid).c_str(),
|
||||
tx_count,
|
||||
(do_integrity) ? "true" : "false",
|
||||
(do_encryption) ? "true" : "false");
|
||||
|
||||
mutex.lock();
|
||||
|
||||
if (is_srb()) {
|
||||
pdcp_pack_control_pdu(tx_count, sdu.get());
|
||||
if (do_integrity) {
|
||||
integrity_generate(
|
||||
sdu->msg, sdu->N_bytes - 4, tx_count, &sdu->msg[sdu->N_bytes - 4]);
|
||||
integrity_generate(sdu->msg, sdu->N_bytes - 4, tx_count, &sdu->msg[sdu->N_bytes - 4]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -176,8 +178,7 @@ void pdcp_entity_lte::write_pdu(unique_byte_buffer_t pdu)
|
|||
}
|
||||
|
||||
if (do_integrity) {
|
||||
if (not integrity_verify(
|
||||
pdu->msg, pdu->N_bytes - 4, sn, &(pdu->msg[pdu->N_bytes - 4]))) {
|
||||
if (not integrity_verify(pdu->msg, pdu->N_bytes - 4, sn, &(pdu->msg[pdu->N_bytes - 4]))) {
|
||||
log->error_hex(pdu->msg, pdu->N_bytes, "%s Dropping PDU", rrc->get_rb_name(lcid).c_str());
|
||||
goto exit;
|
||||
}
|
||||
|
@ -199,7 +200,7 @@ exit:
|
|||
* Ref: 3GPP TS 36.323 v10.1.0 Section 5.1.2
|
||||
***************************************************************************/
|
||||
// DRBs mapped on RLC UM (5.1.2.1.3)
|
||||
void pdcp_entity_lte::handle_um_drb_pdu(const srslte::unique_byte_buffer_t &pdu)
|
||||
void pdcp_entity_lte::handle_um_drb_pdu(const srslte::unique_byte_buffer_t& pdu)
|
||||
{
|
||||
uint32_t sn;
|
||||
if (12 == cfg.sn_len) {
|
||||
|
@ -229,7 +230,7 @@ void pdcp_entity_lte::handle_um_drb_pdu(const srslte::unique_byte_buffer_t &pdu)
|
|||
}
|
||||
|
||||
// DRBs mapped on RLC AM, without re-ordering (5.1.2.1.2)
|
||||
void pdcp_entity_lte::handle_am_drb_pdu(const srslte::unique_byte_buffer_t &pdu)
|
||||
void pdcp_entity_lte::handle_am_drb_pdu(const srslte::unique_byte_buffer_t& pdu)
|
||||
{
|
||||
uint32_t sn, count;
|
||||
pdcp_unpack_data_pdu_long_sn(pdu.get(), &sn);
|
||||
|
@ -293,7 +294,6 @@ uint32_t pdcp_entity_lte::get_dl_count()
|
|||
return rx_count;
|
||||
}
|
||||
|
||||
|
||||
uint32_t pdcp_entity_lte::get_ul_count()
|
||||
{
|
||||
return tx_count;
|
||||
|
@ -303,8 +303,7 @@ uint32_t pdcp_entity_lte::get_ul_count()
|
|||
* Pack/Unpack helper functions
|
||||
* Ref: 3GPP TS 36.323 v10.1.0
|
||||
***************************************************************************/
|
||||
|
||||
void pdcp_pack_control_pdu(uint32_t sn, byte_buffer_t *sdu)
|
||||
void pdcp_pack_control_pdu(uint32_t sn, byte_buffer_t* sdu)
|
||||
{
|
||||
// Make room and add header
|
||||
sdu->msg--;
|
||||
|
@ -316,10 +315,9 @@ void pdcp_pack_control_pdu(uint32_t sn, byte_buffer_t *sdu)
|
|||
sdu->msg[sdu->N_bytes++] = (PDCP_CONTROL_MAC_I >> 16) & 0xFF;
|
||||
sdu->msg[sdu->N_bytes++] = (PDCP_CONTROL_MAC_I >> 8) & 0xFF;
|
||||
sdu->msg[sdu->N_bytes++] = PDCP_CONTROL_MAC_I & 0xFF;
|
||||
|
||||
}
|
||||
|
||||
void pdcp_unpack_control_pdu(byte_buffer_t *pdu, uint32_t *sn)
|
||||
void pdcp_unpack_control_pdu(byte_buffer_t* pdu, uint32_t* sn)
|
||||
{
|
||||
// Strip header
|
||||
*sn = *pdu->msg & 0x1F;
|
||||
|
@ -332,7 +330,7 @@ void pdcp_unpack_control_pdu(byte_buffer_t *pdu, uint32_t *sn)
|
|||
// TODO: integrity check MAC
|
||||
}
|
||||
|
||||
void pdcp_pack_data_pdu_short_sn(uint32_t sn, byte_buffer_t *sdu)
|
||||
void pdcp_pack_data_pdu_short_sn(uint32_t sn, byte_buffer_t* sdu)
|
||||
{
|
||||
// Make room and add header
|
||||
sdu->msg--;
|
||||
|
@ -340,7 +338,7 @@ void pdcp_pack_data_pdu_short_sn(uint32_t sn, byte_buffer_t *sdu)
|
|||
sdu->msg[0] = (PDCP_D_C_DATA_PDU << 7) | (sn & 0x7F);
|
||||
}
|
||||
|
||||
void pdcp_unpack_data_pdu_short_sn(byte_buffer_t *sdu, uint32_t *sn)
|
||||
void pdcp_unpack_data_pdu_short_sn(byte_buffer_t* sdu, uint32_t* sn)
|
||||
{
|
||||
// Strip header
|
||||
*sn = sdu->msg[0] & 0x7F;
|
||||
|
@ -348,7 +346,7 @@ void pdcp_unpack_data_pdu_short_sn(byte_buffer_t *sdu, uint32_t *sn)
|
|||
sdu->N_bytes--;
|
||||
}
|
||||
|
||||
void pdcp_pack_data_pdu_long_sn(uint32_t sn, byte_buffer_t *sdu)
|
||||
void pdcp_pack_data_pdu_long_sn(uint32_t sn, byte_buffer_t* sdu)
|
||||
{
|
||||
// Make room and add header
|
||||
sdu->msg -= 2;
|
||||
|
@ -357,7 +355,7 @@ void pdcp_pack_data_pdu_long_sn(uint32_t sn, byte_buffer_t *sdu)
|
|||
sdu->msg[1] = sn & 0xFF;
|
||||
}
|
||||
|
||||
void pdcp_unpack_data_pdu_long_sn(byte_buffer_t *sdu, uint32_t *sn)
|
||||
void pdcp_unpack_data_pdu_long_sn(byte_buffer_t* sdu, uint32_t* sn)
|
||||
{
|
||||
// Strip header
|
||||
*sn = (sdu->msg[0] & 0x0F) << 8;
|
||||
|
@ -365,5 +363,4 @@ void pdcp_unpack_data_pdu_long_sn(byte_buffer_t *sdu, uint32_t *sn)
|
|||
sdu->msg += 2;
|
||||
sdu->N_bytes -= 2;
|
||||
}
|
||||
|
||||
}
|
||||
} // namespace srslte
|
||||
|
|
|
@ -20,8 +20,8 @@
|
|||
*/
|
||||
|
||||
#include "srslte/upper/pdcp_entity_nr.h"
|
||||
#include "srslte/common/security.h"
|
||||
#include "srslte/common/int_helpers.h"
|
||||
#include "srslte/common/security.h"
|
||||
|
||||
namespace srslte {
|
||||
|
||||
|
@ -68,10 +68,12 @@ void pdcp_entity_nr::reset()
|
|||
// SDAP/RRC interface
|
||||
void pdcp_entity_nr::write_sdu(unique_byte_buffer_t sdu, bool blocking)
|
||||
{
|
||||
log->info_hex(sdu->msg, sdu->N_bytes,
|
||||
log->info_hex(sdu->msg,
|
||||
sdu->N_bytes,
|
||||
"TX %s SDU, do_integrity = %s, do_encryption = %s",
|
||||
rrc->get_rb_name(lcid).c_str(),
|
||||
(do_integrity) ? "true" : "false", (do_encryption) ? "true" : "false");
|
||||
(do_integrity) ? "true" : "false",
|
||||
(do_encryption) ? "true" : "false");
|
||||
|
||||
// Start discard timer TODO
|
||||
// Perform header compression TODO
|
||||
|
@ -150,7 +152,7 @@ void pdcp_entity_nr::write_pdu(unique_byte_buffer_t pdu)
|
|||
// TODO Store PDU in reception buffer
|
||||
|
||||
// Update RX_NEXT
|
||||
if(rcvd_count >= rx_next){
|
||||
if (rcvd_count >= rx_next) {
|
||||
rx_next = rcvd_count + 1;
|
||||
}
|
||||
|
||||
|
@ -174,10 +176,10 @@ void pdcp_entity_nr::write_pdu(unique_byte_buffer_t pdu)
|
|||
// TODO handle reordering timers
|
||||
}
|
||||
|
||||
void pdcp_entity_nr::read_data_header(const unique_byte_buffer_t& pdu, uint32_t *rcvd_sn)
|
||||
void pdcp_entity_nr::read_data_header(const unique_byte_buffer_t& pdu, uint32_t* rcvd_sn)
|
||||
{
|
||||
// Check PDU is long enough to extract header
|
||||
if(pdu->N_bytes <= cfg.hdr_len_bytes){
|
||||
if (pdu->N_bytes <= cfg.hdr_len_bytes) {
|
||||
log->error("PDU too small to extract header\n");
|
||||
return;
|
||||
}
|
||||
|
@ -230,7 +232,7 @@ void pdcp_entity_nr::write_data_header(const srslte::unique_byte_buffer_t& sdu,
|
|||
}
|
||||
}
|
||||
|
||||
void pdcp_entity_nr::extract_mac(const unique_byte_buffer_t &pdu, uint8_t* mac)
|
||||
void pdcp_entity_nr::extract_mac(const unique_byte_buffer_t& pdu, uint8_t* mac)
|
||||
{
|
||||
// Check enough space for MAC
|
||||
if (pdu->N_bytes < 4) {
|
||||
|
@ -243,7 +245,7 @@ void pdcp_entity_nr::extract_mac(const unique_byte_buffer_t &pdu, uint8_t* mac)
|
|||
pdu->N_bytes -= 4;
|
||||
}
|
||||
|
||||
void pdcp_entity_nr::append_mac(const unique_byte_buffer_t &sdu, uint8_t* mac)
|
||||
void pdcp_entity_nr::append_mac(const unique_byte_buffer_t& sdu, uint8_t* mac)
|
||||
{
|
||||
// Check enough space for MAC
|
||||
if (sdu->N_bytes + 4 > sdu->get_tailroom()) {
|
||||
|
@ -255,5 +257,4 @@ void pdcp_entity_nr::append_mac(const unique_byte_buffer_t &sdu, uint8_t* mac)
|
|||
memcpy(&sdu->msg[sdu->N_bytes], mac, 4);
|
||||
sdu->N_bytes += 4;
|
||||
}
|
||||
|
||||
} // namespace srslte
|
||||
|
|
|
@ -133,17 +133,23 @@ private:
|
|||
/*
|
||||
* Genric function to test transmission of in-sequence packets
|
||||
*/
|
||||
int test_tx(uint32_t n_packets, uint8_t pdcp_sn_len, srslte::unique_byte_buffer_t pdu_exp, srslte::byte_buffer_pool* pool, srslte::log* log)
|
||||
int test_tx(uint32_t n_packets,
|
||||
uint8_t pdcp_sn_len,
|
||||
srslte::unique_byte_buffer_t pdu_exp,
|
||||
srslte::byte_buffer_pool* pool,
|
||||
srslte::log* log)
|
||||
{
|
||||
srslte::pdcp_entity_nr pdcp;
|
||||
srslte::srslte_pdcp_config_t cfg = {1, srslte::PDCP_RB_IS_DRB, SECURITY_DIRECTION_UPLINK, SECURITY_DIRECTION_DOWNLINK, pdcp_sn_len};
|
||||
srslte::srslte_pdcp_config_t cfg = {
|
||||
1, srslte::PDCP_RB_IS_DRB, SECURITY_DIRECTION_UPLINK, SECURITY_DIRECTION_DOWNLINK, pdcp_sn_len};
|
||||
|
||||
rlc_dummy rlc(log);
|
||||
rrc_dummy rrc(log);
|
||||
gw_dummy gw(log);
|
||||
|
||||
pdcp.init(&rlc, &rrc, &gw, log, 0, cfg);
|
||||
pdcp.config_security(k_enc, k_int, k_enc, k_int, srslte::CIPHERING_ALGORITHM_ID_128_EEA2, srslte::INTEGRITY_ALGORITHM_ID_128_EIA2);
|
||||
pdcp.config_security(
|
||||
k_enc, k_int, k_enc, k_int, srslte::CIPHERING_ALGORITHM_ID_128_EEA2, srslte::INTEGRITY_ALGORITHM_ID_128_EIA2);
|
||||
pdcp.enable_integrity();
|
||||
pdcp.enable_encryption();
|
||||
|
||||
|
@ -186,7 +192,7 @@ int test_tx_all(srslte::byte_buffer_pool* pool, srslte::log* log)
|
|||
srslte::unique_byte_buffer_t pdu_exp_sn0_len12 = allocate_unique_buffer(*pool);
|
||||
memcpy(pdu_exp_sn0_len12->msg, pdu1, PDU1_LEN);
|
||||
pdu_exp_sn0_len12->N_bytes = PDU1_LEN;
|
||||
//TESTASSERT(test_tx(1, srslte::PDCP_SN_LEN_12, std::move(pdu_exp_sn0_len12), pool, log) == 0);
|
||||
TESTASSERT(test_tx(1, srslte::PDCP_SN_LEN_12, std::move(pdu_exp_sn0_len12), pool, log) == 0);
|
||||
|
||||
/*
|
||||
* TX Test 2: PDCP Entity with SN LEN = 12
|
||||
|
@ -198,7 +204,7 @@ int test_tx_all(srslte::byte_buffer_pool* pool, srslte::log* log)
|
|||
srslte::unique_byte_buffer_t pdu_exp_sn2048_len12 = allocate_unique_buffer(*pool);
|
||||
memcpy(pdu_exp_sn2048_len12->msg, pdu2, PDU2_LEN);
|
||||
pdu_exp_sn2048_len12->N_bytes = PDU2_LEN;
|
||||
//TESTASSERT(test_tx(2049, srslte::PDCP_SN_LEN_12, std::move(pdu_exp_sn2048_len12), pool, log) == 0);
|
||||
TESTASSERT(test_tx(2049, srslte::PDCP_SN_LEN_12, std::move(pdu_exp_sn2048_len12), pool, log) == 0);
|
||||
|
||||
/*
|
||||
* TX Test 3: PDCP Entity with SN LEN = 12
|
||||
|
@ -210,7 +216,7 @@ int test_tx_all(srslte::byte_buffer_pool* pool, srslte::log* log)
|
|||
srslte::unique_byte_buffer_t pdu_exp_sn4096_len12 = allocate_unique_buffer(*pool);
|
||||
memcpy(pdu_exp_sn4096_len12->msg, pdu3, PDU3_LEN);
|
||||
pdu_exp_sn4096_len12->N_bytes = PDU3_LEN;
|
||||
//TESTASSERT(test_tx(4097, srslte::PDCP_SN_LEN_12, std::move(pdu_exp_sn4096_len12), pool, log) == 0);
|
||||
TESTASSERT(test_tx(4097, srslte::PDCP_SN_LEN_12, std::move(pdu_exp_sn4096_len12), pool, log) == 0);
|
||||
|
||||
/*
|
||||
* TX Test 4: PDCP Entity with SN LEN = 18
|
||||
|
@ -324,7 +330,6 @@ int run_all_tests(srslte::byte_buffer_pool* pool)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
run_all_tests(srslte::byte_buffer_pool::get_instance());
|
||||
|
|
Loading…
Reference in New Issue