Remove rb_id parameter from SDAP TX entity - QFI determines DRB mapping
- Remove rb_id parameter from nr_sdap_tx_entity() function signature - Update tx_entity function pointer - Remove rb_id parameter from sdap_data_req() function signature - Remove unused rb_id variable from sdap_tun_read_thread The rb_id parameter was redundant since SDAP determines DRB ID from QFI mapping via entity->qfi2drb_map(entity, qfi). This simplifies the interface.
This commit is contained in:
@@ -151,7 +151,6 @@ double cpuf;
|
|||||||
bool sdap_data_req(protocol_ctxt_t *ctxt_p,
|
bool sdap_data_req(protocol_ctxt_t *ctxt_p,
|
||||||
const ue_id_t ue_id,
|
const ue_id_t ue_id,
|
||||||
const srb_flag_t srb_flag,
|
const srb_flag_t srb_flag,
|
||||||
const rb_id_t rb_id,
|
|
||||||
const mui_t mui,
|
const mui_t mui,
|
||||||
const confirm_t confirm,
|
const confirm_t confirm,
|
||||||
const sdu_size_t sdu_buffer_size,
|
const sdu_size_t sdu_buffer_size,
|
||||||
|
|||||||
@@ -47,7 +47,6 @@ static void reblock_tun_socket(int fd)
|
|||||||
bool sdap_data_req(protocol_ctxt_t *ctxt_p,
|
bool sdap_data_req(protocol_ctxt_t *ctxt_p,
|
||||||
const ue_id_t ue_id,
|
const ue_id_t ue_id,
|
||||||
const srb_flag_t srb_flag,
|
const srb_flag_t srb_flag,
|
||||||
const int rb_id,
|
|
||||||
const mui_t mui,
|
const mui_t mui,
|
||||||
const confirm_t confirm,
|
const confirm_t confirm,
|
||||||
const sdu_size_t sdu_buffer_size,
|
const sdu_size_t sdu_buffer_size,
|
||||||
@@ -69,7 +68,6 @@ bool sdap_data_req(protocol_ctxt_t *ctxt_p,
|
|||||||
bool ret = sdap_entity->tx_entity(sdap_entity,
|
bool ret = sdap_entity->tx_entity(sdap_entity,
|
||||||
ctxt_p,
|
ctxt_p,
|
||||||
srb_flag,
|
srb_flag,
|
||||||
rb_id,
|
|
||||||
mui,
|
mui,
|
||||||
confirm,
|
confirm,
|
||||||
sdu_buffer_size,
|
sdu_buffer_size,
|
||||||
@@ -115,8 +113,6 @@ static void *sdap_tun_read_thread(void *arg)
|
|||||||
int len;
|
int len;
|
||||||
reblock_tun_socket(entity->pdusession_sock);
|
reblock_tun_socket(entity->pdusession_sock);
|
||||||
|
|
||||||
int rb_id = 1;
|
|
||||||
|
|
||||||
while (!entity->stop_thread) {
|
while (!entity->stop_thread) {
|
||||||
len = read(entity->pdusession_sock, &rx_buf, NL_MAX_PAYLOAD);
|
len = read(entity->pdusession_sock, &rx_buf, NL_MAX_PAYLOAD);
|
||||||
if (len == -1) {
|
if (len == -1) {
|
||||||
@@ -147,7 +143,6 @@ static void *sdap_tun_read_thread(void *arg)
|
|||||||
entity->tx_entity(entity,
|
entity->tx_entity(entity,
|
||||||
&ctxt,
|
&ctxt,
|
||||||
SRB_FLAG_NO,
|
SRB_FLAG_NO,
|
||||||
rb_id,
|
|
||||||
RLC_MUI_UNDEFINED,
|
RLC_MUI_UNDEFINED,
|
||||||
RLC_SDU_CONFIRM_NO,
|
RLC_SDU_CONFIRM_NO,
|
||||||
len,
|
len,
|
||||||
|
|||||||
@@ -35,7 +35,6 @@
|
|||||||
bool sdap_data_req(protocol_ctxt_t *ctxt_p,
|
bool sdap_data_req(protocol_ctxt_t *ctxt_p,
|
||||||
const ue_id_t ue_id,
|
const ue_id_t ue_id,
|
||||||
const srb_flag_t srb_flag,
|
const srb_flag_t srb_flag,
|
||||||
const int rb_id,
|
|
||||||
const mui_t mui,
|
const mui_t mui,
|
||||||
const confirm_t confirm,
|
const confirm_t confirm,
|
||||||
const sdu_size_t sdu_buffer_size,
|
const sdu_size_t sdu_buffer_size,
|
||||||
|
|||||||
@@ -81,7 +81,6 @@ void nr_pdcp_submit_sdap_ctrl_pdu(ue_id_t ue_id, int sdap_ctrl_pdu_drb, nr_sdap_
|
|||||||
static bool nr_sdap_tx_entity(nr_sdap_entity_t *entity,
|
static bool nr_sdap_tx_entity(nr_sdap_entity_t *entity,
|
||||||
protocol_ctxt_t *ctxt_p,
|
protocol_ctxt_t *ctxt_p,
|
||||||
const srb_flag_t srb_flag,
|
const srb_flag_t srb_flag,
|
||||||
const int rb_id,
|
|
||||||
const mui_t mui,
|
const mui_t mui,
|
||||||
const confirm_t confirm,
|
const confirm_t confirm,
|
||||||
const sdu_size_t sdu_buffer_size,
|
const sdu_size_t sdu_buffer_size,
|
||||||
@@ -94,8 +93,6 @@ static bool nr_sdap_tx_entity(nr_sdap_entity_t *entity,
|
|||||||
/* The offset of the SDAP header, it might be 0 if has_sdap_tx is not true in the pdcp entity. */
|
/* The offset of the SDAP header, it might be 0 if has_sdap_tx is not true in the pdcp entity. */
|
||||||
int offset=0;
|
int offset=0;
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
/*Hardcode DRB ID given from upper layer (ue/gnb_tun_read_thread rb_id), it will change if we have SDAP*/
|
|
||||||
int sdap_drb_id = rb_id;
|
|
||||||
bool sdap_ul_tx = false;
|
bool sdap_ul_tx = false;
|
||||||
bool sdap_dl_tx = false;
|
bool sdap_dl_tx = false;
|
||||||
|
|
||||||
@@ -105,10 +102,9 @@ static bool nr_sdap_tx_entity(nr_sdap_entity_t *entity,
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint8_t sdap_buf[SDAP_MAX_PDU];
|
uint8_t sdap_buf[SDAP_MAX_PDU];
|
||||||
int pdcp_entity = entity->qfi2drb_map(entity, qfi);
|
int drb_id = entity->qfi2drb_map(entity, qfi);
|
||||||
|
|
||||||
if (pdcp_entity != SDAP_MAP_RULE_EMPTY) {
|
if (drb_id != SDAP_MAP_RULE_EMPTY) {
|
||||||
sdap_drb_id = pdcp_entity;
|
|
||||||
sdap_ul_tx = entity->qfi2drb_table[qfi].entity_role & SDAP_UL_TX; // UE TX entity
|
sdap_ul_tx = entity->qfi2drb_table[qfi].entity_role & SDAP_UL_TX; // UE TX entity
|
||||||
sdap_dl_tx = entity->qfi2drb_table[qfi].entity_role & SDAP_DL_TX; // gNB TX entity
|
sdap_dl_tx = entity->qfi2drb_table[qfi].entity_role & SDAP_DL_TX; // gNB TX entity
|
||||||
LOG_D(SDAP, "TX - QFI: %u is mapped to DRB ID: %d\n", qfi, entity->qfi2drb_table[qfi].drb_id);
|
LOG_D(SDAP, "TX - QFI: %u is mapped to DRB ID: %d\n", qfi, entity->qfi2drb_table[qfi].drb_id);
|
||||||
@@ -121,7 +117,7 @@ static bool nr_sdap_tx_entity(nr_sdap_entity_t *entity,
|
|||||||
LOG_D(SDAP, "TX - DRB ID: %d does not have SDAP header\n", entity->qfi2drb_table[qfi].drb_id);
|
LOG_D(SDAP, "TX - DRB ID: %d does not have SDAP header\n", entity->qfi2drb_table[qfi].drb_id);
|
||||||
ret = nr_pdcp_data_req_drb(ctxt_p,
|
ret = nr_pdcp_data_req_drb(ctxt_p,
|
||||||
srb_flag,
|
srb_flag,
|
||||||
sdap_drb_id,
|
drb_id,
|
||||||
mui,
|
mui,
|
||||||
confirm,
|
confirm,
|
||||||
sdu_buffer_size,
|
sdu_buffer_size,
|
||||||
@@ -189,7 +185,7 @@ static bool nr_sdap_tx_entity(nr_sdap_entity_t *entity,
|
|||||||
*/
|
*/
|
||||||
ret = nr_pdcp_data_req_drb(ctxt_p,
|
ret = nr_pdcp_data_req_drb(ctxt_p,
|
||||||
srb_flag,
|
srb_flag,
|
||||||
sdap_drb_id,
|
drb_id,
|
||||||
mui,
|
mui,
|
||||||
confirm,
|
confirm,
|
||||||
sdu_buffer_size + offset,
|
sdu_buffer_size + offset,
|
||||||
|
|||||||
@@ -122,7 +122,6 @@ typedef struct nr_sdap_entity_s {
|
|||||||
bool (*tx_entity)(struct nr_sdap_entity_s *entity,
|
bool (*tx_entity)(struct nr_sdap_entity_s *entity,
|
||||||
protocol_ctxt_t *ctxt_p,
|
protocol_ctxt_t *ctxt_p,
|
||||||
const srb_flag_t srb_flag,
|
const srb_flag_t srb_flag,
|
||||||
const int rb_id,
|
|
||||||
const mui_t mui,
|
const mui_t mui,
|
||||||
const confirm_t confirm,
|
const confirm_t confirm,
|
||||||
const sdu_size_t sdu_buffer_size,
|
const sdu_size_t sdu_buffer_size,
|
||||||
|
|||||||
@@ -1244,7 +1244,6 @@ static int Gtpv1uHandleGpdu(int h, uint8_t *msgBuf, uint32_t msgBufLen, const st
|
|||||||
if (!uedata.callBackSDAP(&ctxt,
|
if (!uedata.callBackSDAP(&ctxt,
|
||||||
uedata.ue_id,
|
uedata.ue_id,
|
||||||
srb_flag,
|
srb_flag,
|
||||||
rb_id,
|
|
||||||
mui,
|
mui,
|
||||||
confirm,
|
confirm,
|
||||||
sdu_buffer_size,
|
sdu_buffer_size,
|
||||||
|
|||||||
@@ -49,7 +49,6 @@ typedef struct gtpv1u_gnb_delete_tunnel_req_s gtpv1u_gnb_delete_tunnel_req_t;
|
|||||||
typedef bool (*gtpCallbackSDAP)(protocol_ctxt_t *ctxt_pP,
|
typedef bool (*gtpCallbackSDAP)(protocol_ctxt_t *ctxt_pP,
|
||||||
const ue_id_t ue_id,
|
const ue_id_t ue_id,
|
||||||
const srb_flag_t srb_flagP,
|
const srb_flag_t srb_flagP,
|
||||||
const int rb_idP,
|
|
||||||
const mui_t muiP,
|
const mui_t muiP,
|
||||||
const confirm_t confirmP,
|
const confirm_t confirmP,
|
||||||
const sdu_size_t sdu_buffer_sizeP,
|
const sdu_size_t sdu_buffer_sizeP,
|
||||||
|
|||||||
@@ -165,7 +165,6 @@ static struct ue_stat {
|
|||||||
static bool recv_ng(protocol_ctxt_t *ctxt,
|
static bool recv_ng(protocol_ctxt_t *ctxt,
|
||||||
const ue_id_t ue_id,
|
const ue_id_t ue_id,
|
||||||
const srb_flag_t flag,
|
const srb_flag_t flag,
|
||||||
const int rb,
|
|
||||||
const mui_t mui,
|
const mui_t mui,
|
||||||
const confirm_t confirm,
|
const confirm_t confirm,
|
||||||
const sdu_size_t size,
|
const sdu_size_t size,
|
||||||
|
|||||||
Reference in New Issue
Block a user