Commit 6ff08f63 authored by matzakos's avatar matzakos

Fixed issue with concurrent data traffic through oip0 (D2D) and oip1 (PDN)

parent 7df1df61
......@@ -947,6 +947,7 @@ void ue_send_sl_sdu(module_id_t module_idP,
LOG_I(MAC, "SL_RESET_RLC_FLAG_NO\n");
}
if(UE_rrc_inst[0].Info[0].rnti == 0){
mac_rlc_data_ind(
module_idP,
0x1234,
......@@ -963,6 +964,25 @@ void ue_send_sl_sdu(module_id_t module_idP,
,reset_flag
#endif
);
}
else{
mac_rlc_data_ind(
module_idP,
UE_rrc_inst[0].Info[0].rnti,
eNB_index,
frameP,
ENB_FLAG_NO,
MBMS_FLAG_NO,
lcid, //3/10
rlc_sdu,
rlc_sdu_len,
1,
NULL
#ifdef Rel14
,reset_flag
#endif
);
}
} else { //SL_DISCOVERY
uint16_t len = sdu_len;
LOG_D( MAC, "SL DISCOVERY \n");
......@@ -3333,49 +3353,18 @@ SLSCH_t *ue_get_slsch(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_
LOG_D(MAC,"Checking SLSCH for absSF %d\n",absSF);
if ((absSF%40) == 0) { // fill PSCCH data later in first subframe of SL period
ue->sltx_active = 0;
/*
for (i = 0; i < MAX_NUM_LCID; i++){
if (ue->SL_LCID[i] > 0) {
for (int j = 0; j < ue->numCommFlows; j++){
if ((ue->sourceL2Id > 0) && (ue->destinationList[j] >0) ){
rlc_status = mac_rlc_status_ind(module_idP, 0x1234,0,frameP,subframeP,ENB_FLAG_NO,MBMS_FLAG_NO,
ue->SL_LCID[i], 0xFFFF, ue->sourceL2Id, ue->destinationList[j]);
if (rlc_status.bytes_in_buffer > 2){
LOG_I(MAC,"SFN.SF %d.%d: Scheduling for %d bytes in Sidelink buffer\n",frameP,subframeP,rlc_status.bytes_in_buffer);
// Fill in group id for off-network communications
ue->sltx_active = 1;
//store LCID, destinationL2Id
ue->slsch_lcid = ue->SL_LCID[i];
ue->destinationL2Id = ue->destinationList[j];
break;
}
}
if ((ue->sourceL2Id > 0) && (ue->groupList[j] >0) ){
rlc_status = mac_rlc_status_ind(module_idP, 0x1234,0,frameP,subframeP,ENB_FLAG_NO,MBMS_FLAG_NO,
ue->SL_LCID[i], 0xFFFF, ue->sourceL2Id, ue->groupList[j]);
if (rlc_status.bytes_in_buffer > 2){
LOG_I(MAC,"SFN.SF %d.%d: Scheduling for %d bytes in Sidelink buffer\n",frameP,subframeP,rlc_status.bytes_in_buffer);
// Fill in group id for off-network communications
ue->sltx_active = 1;
//store LCID, destinationL2Id
ue->slsch_lcid = ue->SL_LCID[i];
ue->destinationL2Id = ue->groupList[j];
break;
}
}
}
}
if ( ue->sltx_active == 1) break;
}
*/
for (i = 0; i < MAX_NUM_LCID; i++){
if (ue->sl_info[i].LCID > 0) {
// for (int j = 0; j < ue->numCommFlows; j++){
if ((ue->sourceL2Id > 0) && (ue->sl_info[i].destinationL2Id >0) ){
if(UE_rrc_inst[0].Info[0].rnti == 0){
rlc_status = mac_rlc_status_ind(module_idP, 0x1234,0,frameP,subframeP,ENB_FLAG_NO,MBMS_FLAG_NO,
ue->sl_info[i].LCID, 0xFFFF, ue->sourceL2Id, ue->sl_info[i].destinationL2Id );
}
else{
rlc_status = mac_rlc_status_ind(module_idP, UE_rrc_inst[0].Info[0].rnti,0,frameP,subframeP,ENB_FLAG_NO,MBMS_FLAG_NO,
ue->sl_info[i].LCID, 0xFFFF, ue->sourceL2Id, ue->sl_info[i].destinationL2Id );
}
if (rlc_status.bytes_in_buffer > 2){
LOG_I(MAC,"SFN.SF %d.%d: Scheduling for %d bytes in Sidelink buffer \n",frameP,subframeP,rlc_status.bytes_in_buffer);
......@@ -3390,8 +3379,15 @@ SLSCH_t *ue_get_slsch(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_
}
if ((ue->sourceL2Id > 0) && (ue->sl_info[i].groupL2Id >0) ){
if(UE_rrc_inst[0].Info[0].rnti == 0){
rlc_status = mac_rlc_status_ind(module_idP, 0x1234,0,frameP,subframeP,ENB_FLAG_NO,MBMS_FLAG_NO,
ue->sl_info[i].LCID, 0xFFFF, ue->sourceL2Id, ue->sl_info[i].groupL2Id);
}
else{
rlc_status = mac_rlc_status_ind(module_idP, UE_rrc_inst[0].Info[0].rnti,0,frameP,subframeP,ENB_FLAG_NO,MBMS_FLAG_NO,
ue->sl_info[i].LCID, 0xFFFF, ue->sourceL2Id, ue->sl_info[i].groupL2Id);
}
if (rlc_status.bytes_in_buffer > 2){
LOG_I(MAC,"SFN.SF %d.%d: Scheduling for %d bytes in Sidelink buffer\n",frameP,subframeP,rlc_status.bytes_in_buffer);
// Fill in group id for off-network communications
......@@ -3420,6 +3416,7 @@ SLSCH_t *ue_get_slsch(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_
else req = rlc_status.bytes_in_buffer;
if (req>0) {
if(UE_rrc_inst[0].Info[0].rnti == 0){
sdu_length = mac_rlc_data_req(module_idP,
0x1234,
0,
......@@ -3434,6 +3431,23 @@ SLSCH_t *ue_get_slsch(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_
ue->destinationL2Id
#endif
);
}
else{
sdu_length = mac_rlc_data_req(module_idP,
UE_rrc_inst[0].Info[0].rnti,
0,
frameP,
ENB_FLAG_NO,
MBMS_FLAG_NO,
ue->slsch_lcid,
req,
(char*)(ue->slsch_pdu.payload + sizeof(SLSCH_SUBHEADER_24_Bit_DST_LONG))
#ifdef Rel14
,ue->sourceL2Id,
ue->destinationL2Id
#endif
);
}
// Notes: 1. hard-coded to 24-bit destination format for now
if (sdu_length > 0) {
......
......@@ -1334,6 +1334,7 @@ rrc_pdcp_config_asn1_req (
DevCheck4(drb_id < maxDRB, drb_id, maxDRB, ctxt_pP->module_id, ctxt_pP->rnti);
key = PDCP_COLL_KEY_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, drb_id, SRB_FLAG_NO);
LOG_I(PDCP, "rnti value: %d, DRB_ID: %d \n", ctxt_pP->rnti, drb_id);
h_rc = hashtable_get(pdcp_coll_p, key, (void**)&pdcp_p);
if (h_rc == HASH_TABLE_OK) {
......
......@@ -5774,8 +5774,12 @@ void *rrc_control_socket_thread_fct(void *arg)
//Establish a new RBID/LCID for this communication
// Establish a SLRB (using DRB 4 for now)
UE = &UE_rrc_inst[module_id];
if(UE->Info[0].rnti == 0){
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, 0, ENB_FLAG_NO, 0x1234, 0, 0,0);
}
else{
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, 0, ENB_FLAG_NO, UE_rrc_inst[0].Info[0].rnti, 0, 0,0);
}
UE->DRB_config[0][0] = CALLOC(1,sizeof(struct DRB_ToAddMod));
UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long));
UE->DRB_config[0][0]->drb_Identity = group_comm_rbid;
......@@ -5827,7 +5831,10 @@ void *rrc_control_socket_thread_fct(void *arg)
*logicalchannelgroup_drb = 1;
DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb;
//if(UE->DRB_configList == NULL){
UE->DRB_configList = CALLOC(1,sizeof(DRB_ToAddModList_t));
//}
ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][0]);
rrc_pdcp_config_asn1_req(&ctxt,
......
......@@ -89,9 +89,11 @@ UE0:
MSIN="0000000001";
#USIM_API_K="e56e26f5608b8d268f2556e198a0e01b";
#USIM_API_K="8baf473f2f8fd09487cccbd7097c6862"; #initial
USIM_API_K= "11111111111111111111111111111111";
#USIM_API_K= "11111111111111111111111111111111"; #nano
USIM_API_K="fec86ba6eb707ed08905757b1bb44b8f";
#OPC="e734f8734007d6c5ce7a0508809e7e9c"; #initial
OPC="f47f37e4719a9c379e3447f089b1f10a";
#OPC="f47f37e4719a9c379e3447f089b1f10a"; #nano
OPC="C42449363BBAD02B66D16BC975D77CC1";
MSISDN="33611123456";
};
......
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