Merge remote-tracking branch 'origin/develop' into NR_DCI_01
This commit is contained in:
@@ -1545,7 +1545,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ(msg_p).eMBMS_configured = 0;
|
||||
printf("No eMBMS configuration, skipping it\n");
|
||||
// eMTC configuration
|
||||
char brparamspath[MAX_OPTNAME_SIZE*2 + 16];
|
||||
char brparamspath[MAX_OPTNAME_SIZE*2 + 160];
|
||||
sprintf(brparamspath,"%s.%s", ccspath, ENB_CONFIG_STRING_EMTC_PARAMETERS);
|
||||
config_get(eMTCParams, sizeof(eMTCParams)/sizeof(paramdef_t), brparamspath);
|
||||
RRC_CONFIGURATION_REQ(msg_p).eMTC_configured = eMTCconfig.eMTC_configured&1;
|
||||
@@ -1554,7 +1554,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
else printf("No eMTC configuration, skipping it\n");
|
||||
|
||||
// Sidelink configuration
|
||||
char SLparamspath[MAX_OPTNAME_SIZE*2 + 16];
|
||||
char SLparamspath[MAX_OPTNAME_SIZE*2 + 160];
|
||||
sprintf(SLparamspath,"%s.%s", ccspath, ENB_CONFIG_STRING_SL_PARAMETERS);
|
||||
config_get( SLParams, sizeof(SLParams)/sizeof(paramdef_t), SLparamspath);
|
||||
// Sidelink Resource pool information
|
||||
|
||||
@@ -226,7 +226,7 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
||||
|
||||
ie->value.choice.ResourceCoordinationTransferContainer.buf = malloc(4);
|
||||
ie->value.choice.ResourceCoordinationTransferContainer.size = 4;
|
||||
strncpy((char *)ie->value.choice.ResourceCoordinationTransferContainer.buf, "123", 3);
|
||||
strncpy((char *)ie->value.choice.ResourceCoordinationTransferContainer.buf, "123", 4);
|
||||
|
||||
|
||||
OCTET_STRING_fromBuf(&ie->value.choice.ResourceCoordinationTransferContainer, "asdsa1d32sa1d31asd31as",
|
||||
|
||||
@@ -295,6 +295,18 @@ store_dlsch_buffer(module_id_t Mod_id,
|
||||
#endif
|
||||
}
|
||||
|
||||
/* hack: in schedule_ue_spec, 3 bytes are "reserved" (this should be
|
||||
* done better). An RLC AM entity may ask for only 2 bytes for
|
||||
* ACKing and get a TBS of 32 bits and due to these 3 reserved bytes we may
|
||||
* end up with only 1 byte left for RLC, which is not enough. This hack
|
||||
* prevents the problem. To be done better at some point. If the function
|
||||
* schedule_ue_spec is (has been) reworked, this hack can be removed.
|
||||
* Dig for "TBS - ta_len - header_length_total - sdu_length_total - 3"
|
||||
* in schedule_ue_spec.
|
||||
*/
|
||||
if (UE_template->dl_buffer_total > 0 && UE_template->dl_buffer_total <= 2)
|
||||
UE_template->dl_buffer_total += 3;
|
||||
|
||||
if (UE_template->dl_buffer_total > 0)
|
||||
LOG_D(MAC,
|
||||
"[eNB %d] Frame %d Subframe %d : RLC status for UE %d : total DL buffer size %d and total number of pdu %d \n",
|
||||
|
||||
@@ -274,7 +274,7 @@ int8_t nr_ue_decode_mib(module_id_t module_id,
|
||||
uint16_t frame_number_4lsb = 0;
|
||||
for (int i=0; i<4; i++)
|
||||
frame_number_4lsb |= ((extra_bits>>i)&1)<<(3-i);
|
||||
uint8_t half_frame_bit = ( extra_bits >> 4 ) & 0x1; // extra bits[4]
|
||||
//uint8_t half_frame_bit = ( extra_bits >> 4 ) & 0x1; // extra bits[4]
|
||||
uint8_t ssb_subcarrier_offset_msb = ( extra_bits >> 5 ) & 0x1; // extra bits[5]
|
||||
uint8_t ssb_subcarrier_offset = (uint8_t)mac->mib->ssb_SubcarrierOffset;
|
||||
|
||||
|
||||
@@ -386,7 +386,7 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
|
||||
}
|
||||
|
||||
start_meas(&RC.nrmac[module_idP]->eNB_scheduler);
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ULSCH_SCHEDULER,VCD_FUNCTION_IN);
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_DLSCH_ULSCH_SCHEDULER,VCD_FUNCTION_IN);
|
||||
|
||||
pdcp_run(&ctxt);
|
||||
//rrc_rx_tx(&ctxt, CC_id);
|
||||
@@ -505,5 +505,5 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
|
||||
|
||||
stop_meas(&RC.nrmac[module_idP]->eNB_scheduler);
|
||||
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ULSCH_SCHEDULER,VCD_FUNCTION_OUT);
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_DLSCH_ULSCH_SCHEDULER,VCD_FUNCTION_OUT);
|
||||
}
|
||||
|
||||
@@ -588,9 +588,10 @@ static void check_t_reassembly(nr_rlc_entity_um_t *entity)
|
||||
cur = entity->rx_list;
|
||||
while (cur != NULL &&
|
||||
sn_compare_rx(entity, cur->sn, entity->rx_next_reassembly) < 0) {
|
||||
nr_rlc_free_pdu(cur);
|
||||
nr_rlc_pdu_t *p = cur;
|
||||
cur = cur->next;
|
||||
entity->rx_list = cur;
|
||||
nr_rlc_free_pdu(p);
|
||||
}
|
||||
|
||||
if (sn_compare_rx(entity, entity->rx_next_highest,
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
#include "openair2/LAYER2/NR_MAC_gNB/mac_proto.h"
|
||||
#include "openair2/RRC/LTE/rrc_eNB_GTPV1U.h"
|
||||
#include "executables/softmodem-common.h"
|
||||
#include <openair2/RRC/NR/rrc_gNB_UE_context.h>
|
||||
|
||||
void rrc_parse_ue_capabilities(gNB_RRC_INST *rrc, LTE_UE_CapabilityRAT_ContainerList_t *UE_CapabilityRAT_ContainerList, x2ap_ENDC_sgnb_addition_req_t *m, NR_CG_ConfigInfo_IEs_t *cg_config_info) {
|
||||
struct rrc_gNB_ue_context_s *ue_context_p = NULL;
|
||||
|
||||
Reference in New Issue
Block a user