Commit f2d5bce8 authored by rmagueta's avatar rmagueta

MIB NR: pdcch_ConfigSIB1 selection and fill

parent 413ab9bc
...@@ -43,30 +43,30 @@ ...@@ -43,30 +43,30 @@
extern RAN_CONTEXT_t RC; extern RAN_CONTEXT_t RC;
int8_t mac_rrc_nr_data_req(const module_id_t Mod_idP, int8_t mac_rrc_nr_data_req(const module_id_t Mod_idP,
const int CC_id, const int CC_id,
const frame_t frameP, const frame_t frameP,
const rb_id_t Srb_id, const rb_id_t Srb_id,
const uint8_t Nb_tb, const uint8_t Nb_tb,
uint8_t *const buffer_pP) { uint8_t *const buffer_pP ){
asn_enc_rval_t enc_rval; asn_enc_rval_t enc_rval;
uint8_t Sdu_size = 0; uint8_t Sdu_size = 0;
uint8_t sfn_msb = (uint8_t) ((frameP >> 4) & 0x3f); uint8_t sfn_msb = (uint8_t)((frameP>>4)&0x3f);
#ifdef DEBUG_RRC #ifdef DEBUG_RRC
LOG_D(RRC, "[eNB %d] mac_rrc_data_req to SRB ID=%ld\n", Mod_idP, Srb_id); LOG_D(RRC,"[eNB %d] mac_rrc_data_req to SRB ID=%ld\n",Mod_idP,Srb_id);
#endif #endif
gNB_RRC_INST *rrc; gNB_RRC_INST *rrc;
rrc_gNB_carrier_data_t *carrier; rrc_gNB_carrier_data_t *carrier;
NR_BCCH_BCH_Message_t *mib; NR_BCCH_BCH_Message_t *mib;
NR_SRB_INFO *srb_info; NR_SRB_INFO * srb_info;
char payload_size, *payload_pP; char payload_size, *payload_pP;
rrc = RC.nrrrc[Mod_idP]; rrc = RC.nrrrc[Mod_idP];
carrier = &rrc->carrier; carrier = &rrc->carrier;
mib = &carrier->mib; mib = &carrier->mib;
srb_info = &carrier->Srb0; srb_info = &carrier->Srb0;
/* MIBCH */ /* MIBCH */
if ((Srb_id & RAB_OFFSET) == MIBCH) { if ((Srb_id & RAB_OFFSET) == MIBCH) {
...@@ -176,32 +176,31 @@ int8_t mac_rrc_nr_data_req(const module_id_t Mod_idP, ...@@ -176,32 +176,31 @@ int8_t mac_rrc_nr_data_req(const module_id_t Mod_idP,
return (3); return (3);
} }
/* TODO BCCH SIB1 SIBs */ /* TODO BCCH SIB1 SIBs */
/* CCCH */ /* CCCH */
if ((Srb_id & RAB_OFFSET) == CCCH) { if( (Srb_id & RAB_OFFSET ) == CCCH) {
//struct rrc_eNB_ue_context_s *ue_context_p = rrc_eNB_get_ue_context(RC.rrc[Mod_idP],rnti); //struct rrc_eNB_ue_context_s *ue_context_p = rrc_eNB_get_ue_context(RC.rrc[Mod_idP],rnti);
//if (ue_context_p == NULL) return(0); //if (ue_context_p == NULL) return(0);
//eNB_RRC_UE_t *ue_p = &ue_context_p->ue_context; //eNB_RRC_UE_t *ue_p = &ue_context_p->ue_context;
LOG_D(RRC, "[gNB %d] Frame %d CCCH request (Srb_id %ld)\n", Mod_idP, frameP, Srb_id); LOG_D(RRC,"[gNB %d] Frame %d CCCH request (Srb_id %ld)\n", Mod_idP, frameP, Srb_id);
// srb_info=&ue_p->Srb0; // srb_info=&ue_p->Srb0;
payload_size = srb_info->Tx_buffer.payload_size; payload_size = srb_info->Tx_buffer.payload_size;
// check if data is there for MAC // check if data is there for MAC
if (payload_size > 0) { if (payload_size > 0) {
payload_pP = srb_info->Tx_buffer.Payload; payload_pP = srb_info->Tx_buffer.Payload;
LOG_D(RRC, "[gNB %d] CCCH (%p) has %d bytes (dest: %p, src %p)\n", Mod_idP, srb_info, payload_size, LOG_D(RRC,"[gNB %d] CCCH (%p) has %d bytes (dest: %p, src %p)\n", Mod_idP, srb_info, payload_size, buffer_pP, payload_pP);
buffer_pP, payload_pP); // Fill buffer
// Fill buffer memcpy((void *)buffer_pP, (void*)payload_pP, payload_size);
memcpy((void *) buffer_pP, (void *) payload_pP, payload_size); Sdu_size = payload_size;
Sdu_size = payload_size; srb_info->Tx_buffer.payload_size = 0;
srb_info->Tx_buffer.payload_size = 0;
}
return Sdu_size;
} }
return Sdu_size;
}
return (0); return(0);
} }
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment