Commit 3021cf11 authored by Bing-Kai Hong's avatar Bing-Kai Hong

F1 & MAC:

1. Fix UE_CONTEXT_SETUP_REQUEST and CONTEXT_MODIFICATION_REQUEST encode/decode
2. Add gNB_DU_CONFIGURATION_UPDATE and gNB_CU_CONFIGURATION_UPDATE procedure
3. Add C_RNTI_TO_BIT_STRING function
4. Add INITIAL_UL_RRC_MESSAGE_TRANSFER procedure and with mac_du_data_ind (MSG3)
5. Add GNB-CUSystemInformation extension part for the F1SetupResponse procedure
parent a817b54c
......@@ -525,12 +525,16 @@ add_library(F1AP_LIB
include_directories ("${F1AP_C_DIR}")
include_directories ("${F1AP_DIR}")
message(${F1AP_C_DIR})
message(${F1AP_DIR})
add_library(F1AP
#${F1AP_DIR}/test.c
${F1AP_DIR}/DU_F1AP.c
${F1AP_DIR}/CU_F1AP.c
${F1AP_DIR}/sctp_du.c
${F1AP_DIR}/sctp_cu.c
)
add_executable(test_f1ap_du
......
This diff is collapsed.
This diff is collapsed.
......@@ -366,14 +366,19 @@ rx_sdu(const module_id_t enb_mod_idP,
for (ii = 0; ii < NB_RA_PROC_MAX; ii++) {
ra = &mac->common_channels[CC_idP].ra[ii];
if ((ra->rnti == current_rnti) && (ra->state != IDLE)) {
mac_rrc_data_ind(enb_mod_idP,
CC_idP,
frameP, subframeP,
old_rnti,
DCCH,
(uint8_t *) payload_ptr,
rx_lengths[i],
0);
//int RC.cudu.du_flag = 1;
int du_flag = 1;
mac_rrc_data_ind(
enb_mod_idP,
CC_idP,
frameP, subframeP, old_UE_id,
old_rnti,
DCCH,
(uint8_t *) payload_ptr,
rx_lengths[i],
0,
du_flag
);
// prepare transmission of Msg4(RRCConnectionReconfiguration)
ra->state = MSGCRNTI;
LOG_I(MAC,
......@@ -612,15 +617,20 @@ rx_sdu(const module_id_t enb_mod_idP,
rx_lengths[i], payload_ptr - sduP);
// kill RA procedure
}
mac_rrc_data_ind(enb_mod_idP,
//int RC.cudu.du_flag = 1;
int du_flag = 1;
mac_rrc_data_ind(
enb_mod_idP,
CC_idP,
frameP, subframeP,
frameP, subframeP, UE_id,
current_rnti,
CCCH,
(uint8_t *) payload_ptr,
rx_lengths[i],
0);
0,
du_flag
);
if (num_ce > 0) { // handle msg3 which is not RRCConnectionRequest
......
......@@ -47,14 +47,16 @@ mac_rrc_data_req(
int8_t
mac_rrc_data_ind(
const module_id_t module_idP,
const int CC_idP,
const int CC_id,
const frame_t frameP,
const sub_frame_t sub_frameP,
const int UE_id,
const rnti_t rntiP,
const rb_id_t srb_idP,
const uint8_t *sduP,
const uint8_t* sduP,
const sdu_size_t sdu_lenP,
const uint8_t mbsfn_sync_area
const uint8_t mbsfn_sync_areaP,
const int du_flag
);
int8_t
......
......@@ -232,6 +232,33 @@ mac_rrc_data_req(
return(0);
}
//--------------------------------------------------------------------------
int8_t
mac_du_data_ind(
const module_id_t module_idP,
const int CC_idP,
const int UE_id,
const rnti_t rntiP,
const uint8_t *sduP,
const sdu_size_t sdu_lenP
)
//--------------------------------------------------------------------------
{
printf(
"[F1 %d][RAPROC] CC_id %d current_rnti %x Received Msg3 from already registered UE %d: length %d, offset %ld\n",
module_idP, CC_idP, rntiP,
UE_id, sdu_lenP, sduP);
DU_send_INITIAL_UL_RRC_MESSAGE_TRANSFER(
module_idP,
CC_idP,
UE_id,
rntiP,
sduP,
sdu_lenP
);
}
//------------------------------------------------------------------------------
int8_t
mac_rrc_data_ind(
......@@ -239,14 +266,28 @@ mac_rrc_data_ind(
const int CC_id,
const frame_t frameP,
const sub_frame_t sub_frameP,
const int UE_id,
const rnti_t rntiP,
const rb_id_t srb_idP,
const uint8_t* sduP,
const sdu_size_t sdu_lenP,
const uint8_t mbsfn_sync_areaP
const uint8_t mbsfn_sync_areaP,
const int du_flag
)
//--------------------------------------------------------------------------
{
// navid update / Bing-Kai modify
if (du_flag) {
mac_du_data_ind(
module_idP,
CC_id,
UE_id,
rntiP,
sduP,
sdu_lenP);
}
SRB_INFO *Srb_info;
protocol_ctxt_t ctxt;
sdu_size_t sdu_size = 0;
......
......@@ -6446,6 +6446,7 @@ rrc_eNB_decode_ccch(
rrc_eNB_generate_RRCConnectionReject(ctxt_pP,
rrc_eNB_get_ue_context(RC.rrc[ctxt_pP->module_id], ctxt_pP->rnti),
CC_id);
// navid:
break;
}
......
......@@ -420,14 +420,16 @@ mac_rrc_data_req(
int8_t
mac_rrc_data_ind(
const module_id_t module_idP,
const int CC_id,
const int CC_id,
const frame_t frameP,
const sub_frame_t sub_frameP,
const int UE_id,
const rnti_t rntiP,
const rb_id_t srb_idP,
const uint8_t* sduP,
const sdu_size_t sdu_lenP,
const uint8_t mbsfn_sync_areaP
const uint8_t mbsfn_sync_areaP,
const int du_flag
);
int8_t
......
......@@ -252,8 +252,21 @@ do { \
} while(0)
/* TS 38.473 v15.2.1 section 9.3.1.32:
* C RNTI
*/
#define C_RNTI_TO_BIT_STRING(mACRO, bITsTRING) \
do { \
(bITsTRING)->buf = calloc(2, sizeof(uint8_t)); \
(bITsTRING)->buf[0] = (mACRO) >> 4; \
(bITsTRING)->buf[1] = ((mACRO) & 0x0f) << 4; \
(bITsTRING)->size = 2; \
(bITsTRING)->bits_unused = 0; \
} while(0)
/* TS 38.473 v15.1.1 section 9.3.2.1:
* NR CELL ID
* TRANSPORT LAYER ADDRESS
*/
#define TRANSPORT_LAYER_ADDRESS_TO_BIT_STRING(mACRO, bITsTRING) \
do { \
......
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