diff --git a/openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c b/openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c index f9b212428cce3453f0163d22272af02905543d7e..002e770a625b2ba141a4877be2ffdbe3f391dd7a 100644 --- a/openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c +++ b/openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c @@ -56,7 +56,7 @@ struct nlmsghdr *nas_nlh_rx = NULL; struct iovec nas_iov_tx; struct iovec nas_iov_rx = {nl_rx_buf, sizeof(nl_rx_buf)}; -int nas_sock_fd; +int nas_sock_fd[MAX_MOBILES_PER_ENB]; struct msghdr nas_msg_tx; struct msghdr nas_msg_rx; @@ -96,72 +96,75 @@ static int tun_alloc(char *dev) { int netlink_init_tun(void) { int ret; char ifname[64]; - sprintf(ifname, "oip1"); - nas_sock_fd = tun_alloc(ifname); - if (nas_sock_fd == -1) { - printf("[NETLINK] Error opening socket %d (%d:%s)\n",nas_sock_fd,errno, strerror(errno)); - exit(1); - } + for (int i = 0; i < NUMBER_OF_UE_MAX; i++) { + sprintf(ifname, "oaitun_ue%d",i+1); + nas_sock_fd[i] = tun_alloc(ifname); - printf("[NETLINK]Opened socket with fd %d\n",nas_sock_fd); - ret = fcntl(nas_sock_fd,F_SETFL,O_NONBLOCK); + if (nas_sock_fd[i] == -1) { + printf("[NETLINK] Error opening socket %s (%d:%s)\n",ifname,errno, strerror(errno)); + exit(1); + } - if (ret == -1) { - printf("[NETLINK] Error fcntl (%d:%s)\n",errno, strerror(errno)); + printf("[NETLINK]Opened socket %s with fd %d\n",ifname,nas_sock_fd[i]); + ret = fcntl(nas_sock_fd[i],F_SETFL,O_NONBLOCK); - if (LINK_ENB_PDCP_TO_IP_DRIVER) { - exit(1); + if (ret == -1) { + printf("[NETLINK] Error fcntl (%d:%s)\n",errno, strerror(errno)); + + if (LINK_ENB_PDCP_TO_IP_DRIVER) { + exit(1); + } } - } - memset(&nas_src_addr, 0, sizeof(nas_src_addr)); - nas_src_addr.nl_family = AF_NETLINK; - nas_src_addr.nl_pid = 1;//getpid(); /* self pid */ - nas_src_addr.nl_groups = 0; /* not in mcast groups */ - ret = bind(nas_sock_fd, (struct sockaddr *)&nas_src_addr, sizeof(nas_src_addr)); - memset(&nas_dest_addr, 0, sizeof(nas_dest_addr)); - nas_dest_addr.nl_family = AF_NETLINK; - nas_dest_addr.nl_pid = 0; /* For Linux Kernel */ - nas_dest_addr.nl_groups = 0; /* unicast */ + memset(&nas_src_addr, 0, sizeof(nas_src_addr)); + nas_src_addr.nl_family = AF_NETLINK; + nas_src_addr.nl_pid = 1;//getpid(); /* self pid */ + nas_src_addr.nl_groups = 0; /* not in mcast groups */ + ret = bind(nas_sock_fd[i], (struct sockaddr *)&nas_src_addr, sizeof(nas_src_addr)); + memset(&nas_dest_addr, 0, sizeof(nas_dest_addr)); + nas_dest_addr.nl_family = AF_NETLINK; + nas_dest_addr.nl_pid = 0; /* For Linux Kernel */ + nas_dest_addr.nl_groups = 0; /* unicast */ // TX PART - nas_nlh_tx=(struct nlmsghdr *)malloc(NLMSG_SPACE(NL_MAX_PAYLOAD)); - memset(nas_nlh_tx, 0, NLMSG_SPACE(NL_MAX_PAYLOAD)); + nas_nlh_tx=(struct nlmsghdr *)malloc(NLMSG_SPACE(NL_MAX_PAYLOAD)); + memset(nas_nlh_tx, 0, NLMSG_SPACE(NL_MAX_PAYLOAD)); /* Fill the netlink message header */ - nas_nlh_tx->nlmsg_len = NLMSG_SPACE(NL_MAX_PAYLOAD); - nas_nlh_tx->nlmsg_pid = 1;//getpid(); /* self pid */ - nas_nlh_tx->nlmsg_flags = 0; - nas_iov_tx.iov_base = (void *)nas_nlh_tx; - nas_iov_tx.iov_len = nas_nlh_tx->nlmsg_len; - memset(&nas_msg_tx,0,sizeof(nas_msg_tx)); - nas_msg_tx.msg_name = (void *)&nas_dest_addr; - nas_msg_tx.msg_namelen = sizeof(nas_dest_addr); - nas_msg_tx.msg_iov = &nas_iov_tx; - nas_msg_tx.msg_iovlen = 1; + nas_nlh_tx->nlmsg_len = NLMSG_SPACE(NL_MAX_PAYLOAD); + nas_nlh_tx->nlmsg_pid = 1;//getpid(); /* self pid */ + nas_nlh_tx->nlmsg_flags = 0; + nas_iov_tx.iov_base = (void *)nas_nlh_tx; + nas_iov_tx.iov_len = nas_nlh_tx->nlmsg_len; + memset(&nas_msg_tx,0,sizeof(nas_msg_tx)); + nas_msg_tx.msg_name = (void *)&nas_dest_addr; + nas_msg_tx.msg_namelen = sizeof(nas_dest_addr); + nas_msg_tx.msg_iov = &nas_iov_tx; + nas_msg_tx.msg_iovlen = 1; // RX PART - memset(&nas_msg_rx,0,sizeof(nas_msg_rx)); - nas_msg_rx.msg_name = (void *)&nas_src_addr; - nas_msg_rx.msg_namelen = sizeof(nas_src_addr); - nas_msg_rx.msg_iov = &nas_iov_rx; - nas_msg_rx.msg_iovlen = 1; + memset(&nas_msg_rx,0,sizeof(nas_msg_rx)); + nas_msg_rx.msg_name = (void *)&nas_src_addr; + nas_msg_rx.msg_namelen = sizeof(nas_src_addr); + nas_msg_rx.msg_iov = &nas_iov_rx; + nas_msg_rx.msg_iovlen = 1; + } /* for */ return 1; } int netlink_init(void) { int ret; - nas_sock_fd = socket(PF_NETLINK, SOCK_RAW,GRAAL_NETLINK_ID); + nas_sock_fd[0] = socket(PF_NETLINK, SOCK_RAW,GRAAL_NETLINK_ID); - if (nas_sock_fd == -1) { - printf("[NETLINK] Error opening socket %d (%d:%s)\n",nas_sock_fd,errno, strerror(errno)); + if (nas_sock_fd[0] == -1) { + printf("[NETLINK] Error opening socket %d (%d:%s)\n",nas_sock_fd[0],errno, strerror(errno)); if (LINK_ENB_PDCP_TO_IP_DRIVER) { exit(1); } } - printf("[NETLINK]Opened socket with fd %d\n",nas_sock_fd); - ret = fcntl(nas_sock_fd,F_SETFL,O_NONBLOCK); + printf("[NETLINK]Opened socket with fd %d\n",nas_sock_fd[0]); + ret = fcntl(nas_sock_fd[0],F_SETFL,O_NONBLOCK); if (ret == -1) { printf("[NETLINK] Error fcntl (%d:%s)\n",errno, strerror(errno)); @@ -175,7 +178,7 @@ int netlink_init(void) { nas_src_addr.nl_family = AF_NETLINK; nas_src_addr.nl_pid = 1;//getpid(); /* self pid */ nas_src_addr.nl_groups = 0; /* not in mcast groups */ - ret = bind(nas_sock_fd, (struct sockaddr *)&nas_src_addr, sizeof(nas_src_addr)); + ret = bind(nas_sock_fd[0], (struct sockaddr *)&nas_src_addr, sizeof(nas_src_addr)); memset(&nas_dest_addr, 0, sizeof(nas_dest_addr)); nas_dest_addr.nl_family = AF_NETLINK; nas_dest_addr.nl_pid = 0; /* For Linux Kernel */ @@ -200,6 +203,6 @@ int netlink_init(void) { nas_msg_rx.msg_namelen = sizeof(nas_src_addr); nas_msg_rx.msg_iov = &nas_iov_rx; nas_msg_rx.msg_iovlen = 1; - return(nas_sock_fd); + return(nas_sock_fd[0]); } diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c index 70414286eebafadc10e4a600e0a8835fa549aad7..7f05e05bb0d0ea119a53ca715ee9617b2fe5dae4 100644 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c @@ -100,11 +100,9 @@ boolean_t pdcp_data_req( const confirm_t confirmP, const sdu_size_t sdu_buffer_sizeP, unsigned char *const sdu_buffer_pP, - const pdcp_transmission_mode_t modeP -#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - ,const uint32_t *const sourceL2Id - ,const uint32_t *const destinationL2Id -#endif + const pdcp_transmission_mode_t modeP, + const uint32_t *const sourceL2Id, + const uint32_t *const destinationL2Id ) //----------------------------------------------------------------------------- { @@ -189,19 +187,12 @@ boolean_t pdcp_data_req( LOG_UI(PDCP, "Before rlc_data_req 1, srb_flagP: %d, rb_idP: %d \n", srb_flagP, rb_idP); } rlc_status = rlc_data_req(ctxt_pP, srb_flagP, MBMS_FLAG_YES, rb_idP, muiP, confirmP, sdu_buffer_sizeP, pdcp_pdu_p -#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,NULL, NULL -#endif ); } else { rlc_status = RLC_OP_STATUS_OUT_OF_RESSOURCES; - LOG_W(PDCP,PROTOCOL_CTXT_FMT" PDCP_DATA_REQ SDU DROPPED, OUT OF MEMORY \n", + LOG_E(PDCP,PROTOCOL_CTXT_FMT" PDCP_DATA_REQ SDU DROPPED, OUT OF MEMORY \n", PROTOCOL_CTXT_ARGS(ctxt_pP)); -#if defined(STOP_ON_IP_TRAFFIC_OVERLOAD) - AssertFatal(0, PROTOCOL_CTXT_FMT"[RB %u] PDCP_DATA_REQ SDU DROPPED, OUT OF MEMORY \n", - PROTOCOL_CTXT_ARGS(ctxt_pP), - rb_idP); -#endif } } else { // calculate the pdcp header and trailer size @@ -344,14 +335,11 @@ boolean_t pdcp_data_req( stop_meas(&UE_pdcp_stats[ctxt_pP->module_id].data_req); } -#if defined(STOP_ON_IP_TRAFFIC_OVERLOAD) - AssertFatal(0, "[FRAME %5u][%s][PDCP][MOD %u/%u][RB %u] PDCP_DATA_REQ SDU DROPPED, OUT OF MEMORY \n", + LOG_E(PDCP, "[FRAME %5u][%s][PDCP][MOD %u][RB %u] PDCP_DATA_REQ SDU DROPPED, OUT OF MEMORY \n", ctxt_pP->frame, (ctxt_pP->enb_flag) ? "eNB" : "UE", - ctxt_pP->enb_module_id, - ctxt_pP->ue_module_id, + ctxt_pP->module_id, rb_idP); -#endif VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_DATA_REQ,VCD_FUNCTION_OUT); return FALSE; } @@ -364,10 +352,8 @@ boolean_t pdcp_data_req( "[MSG] PDCP DL %s PDU on rb_id %d\n",(srb_flagP)? "CONTROL" : "DATA", rb_idP); LOG_D(PDCP, "Before rlc_data_req 2, srb_flagP: %d, rb_idP: %d \n", srb_flagP, rb_idP); rlc_status = rlc_data_req(ctxt_pP, srb_flagP, MBMS_FLAG_NO, rb_idP, muiP, confirmP, pdcp_pdu_size, pdcp_pdu_p -#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,sourceL2Id ,destinationL2Id -#endif ); } @@ -832,19 +818,15 @@ pdcp_data_ind( Pdcp_stats_rx_bytes_tmp_w[ctxt_pP->module_id][pdcp_uid][rb_idP+rb_offset]+=(sdu_buffer_sizeP - payload_offset); Pdcp_stats_rx_sn[ctxt_pP->module_id][pdcp_uid][rb_idP+rb_offset]=sequence_number; - if (oo_flag == 1 ) + if (oo_flag == 1 ){ Pdcp_stats_rx_outoforder[ctxt_pP->module_id][pdcp_uid][rb_idP+rb_offset]++; - + } else { + LOG_E(PDCP, PROTOCOL_PDCP_CTXT_FMT" PDCP_DATA_IND SDU DROPPED, OUT OF ORDER \n", + PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP, pdcp_p)); + } Pdcp_stats_rx_aiat[ctxt_pP->module_id][pdcp_uid][rb_idP+rb_offset]+= (pdcp_enb[ctxt_pP->module_id].sfn - Pdcp_stats_rx_iat[ctxt_pP->module_id][pdcp_uid][rb_idP+rb_offset]); Pdcp_stats_rx_aiat_tmp_w[ctxt_pP->module_id][pdcp_uid][rb_idP+rb_offset]+=(pdcp_enb[ctxt_pP->module_id].sfn - Pdcp_stats_rx_iat[ctxt_pP->module_id][pdcp_uid][rb_idP+rb_offset]); Pdcp_stats_rx_iat[ctxt_pP->module_id][pdcp_uid][rb_idP+rb_offset]=pdcp_enb[ctxt_pP->module_id].sfn; -#if defined(STOP_ON_IP_TRAFFIC_OVERLOAD) - else { - AssertFatal(0, PROTOCOL_PDCP_CTXT_FMT" PDCP_DATA_IND SDU DROPPED, OUT OF MEMORY \n", - PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP, pdcp_p)); - } - -#endif } free_mem_block(sdu_buffer_pP, __func__); @@ -962,10 +944,8 @@ pdcp_run ( RRC_DCCH_DATA_REQ (msg_p).confirmp, RRC_DCCH_DATA_REQ (msg_p).sdu_size, RRC_DCCH_DATA_REQ (msg_p).sdu_p, - RRC_DCCH_DATA_REQ (msg_p).mode -#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - , NULL, NULL -#endif + RRC_DCCH_DATA_REQ (msg_p).mode, + NULL, NULL ); if (result != TRUE) @@ -1117,11 +1097,9 @@ rrc_pdcp_config_asn1_req ( const uint8_t security_modeP, uint8_t *const kRRCenc_pP, uint8_t *const kRRCint_pP, - uint8_t *const kUPenc_pP -#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) - ,LTE_PMCH_InfoList_r9_t *const pmch_InfoList_r9_pP -#endif - ,rb_id_t *const defaultDRB + uint8_t *const kUPenc_pP, + LTE_PMCH_InfoList_r9_t *const pmch_InfoList_r9_pP, + rb_id_t *const defaultDRB ) //----------------------------------------------------------------------------- { @@ -1144,11 +1122,10 @@ rrc_pdcp_config_asn1_req ( hashtable_rc_t h_rc; hash_key_t key_defaultDRB = HASHTABLE_NOT_A_KEY_VALUE; hashtable_rc_t h_defaultDRB_rc; -#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) int i,j; LTE_MBMS_SessionInfoList_r9_t *mbms_SessionInfoList_r9_p = NULL; LTE_MBMS_SessionInfo_r9_t *MBMS_SessionInfo_p = NULL; -#endif + LOG_T(PDCP, PROTOCOL_CTXT_FMT" %s() SRB2ADD %p DRB2ADD %p DRB2RELEASE %p\n", PROTOCOL_CTXT_ARGS(ctxt_pP), __FUNCTION__, @@ -1438,7 +1415,6 @@ rrc_pdcp_config_asn1_req ( } } -#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) if (pmch_InfoList_r9_pP != NULL) { for (i=0; i<pmch_InfoList_r9_pP->list.count; i++) { @@ -1501,7 +1477,6 @@ rrc_pdcp_config_asn1_req ( } } -#endif return 0; } @@ -1665,7 +1640,6 @@ pdcp_config_req_asn1 ( memset(pdcp_pP, 0, sizeof(pdcp_t)); break; -#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) case CONFIG_ACTION_MBMS_ADD: case CONFIG_ACTION_MBMS_MODIFY: @@ -1685,7 +1659,6 @@ pdcp_config_req_asn1 ( } break; -#endif case CONFIG_ACTION_SET_SECURITY_MODE: pdcp_config_set_security( @@ -1958,10 +1931,9 @@ void pdcp_layer_init(void) { module_id_t instance; int i,j; -#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) mbms_session_id_t session_id; mbms_service_id_t service_id; -#endif + /* * Initialize SDU list */ @@ -1970,7 +1942,6 @@ void pdcp_layer_init(void) AssertFatal(pdcp_coll_p != NULL, "UNRECOVERABLE error, PDCP hashtable_create failed"); for (instance = 0; instance < MAX_MOBILES_PER_ENB; instance++) { -#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) for (service_id = 0; service_id < LTE_maxServiceCount; service_id++) { for (session_id = 0; session_id < LTE_maxSessionPerPMCH; session_id++) { @@ -1978,22 +1949,17 @@ void pdcp_layer_init(void) } } -#endif pdcp_eNB_UE_instance_to_rnti[instance] = NOT_A_RNTI; } pdcp_eNB_UE_instance_to_rnti_index = 0; for (instance = 0; instance < NUMBER_OF_eNB_MAX; instance++) { -#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - for (service_id = 0; service_id < LTE_maxServiceCount; service_id++) { for (session_id = 0; session_id < LTE_maxSessionPerPMCH; session_id++) { memset(&pdcp_mbms_array_eNB[instance][service_id][session_id], 0, sizeof(pdcp_mbms_t)); } } - -#endif } #ifdef MBMS_MULTICAST_OUT diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c index 2a42c711040b503c32e2374abd021cd495984a1f..9532cf3324315237e483cd40c047a0f59cdb75ee 100644 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c @@ -74,16 +74,16 @@ extern struct nlmsghdr *nas_nlh_rx; extern struct iovec nas_iov_tx; extern struct iovec nas_iov_rx; -extern int nas_sock_fd; +extern int nas_sock_fd[MAX_MOBILES_PER_ENB]; extern struct msghdr nas_msg_tx; extern struct msghdr nas_msg_rx; - extern uint8_t nfapi_mode; - #ifdef UESIM_EXPANSION +extern uint8_t nfapi_mode; +#ifdef UESIM_EXPANSION extern uint16_t inst_pdcp_list[NUMBER_OF_UE_MAX]; - #endif +#endif extern Packet_OTG_List_t *otg_pdcp_buffer; @@ -124,11 +124,11 @@ int pdcp_fifo_flush_sdus(const protocol_ctxt_t *const ctxt_pP) { ret = sendto(pdcp_pc5_sockfd, &(sdu_p->data[sizeof(pdcp_data_ind_header_t)]), sizeof(sidelink_pc5s_element), 0, (struct sockaddr *)&prose_pdcp_addr,sizeof(prose_pdcp_addr) ); } else if (UE_NAS_USE_TUN) { - ret = write(nas_sock_fd, &(sdu_p->data[sizeof(pdcp_data_ind_header_t)]),sizeToWrite ); + ret = write(nas_sock_fd[ctxt_pP->module_id], &(sdu_p->data[sizeof(pdcp_data_ind_header_t)]),sizeToWrite ); } else if (PDCP_USE_NETLINK) {//UE_NAS_USE_TUN memcpy(NLMSG_DATA(nas_nlh_tx), (uint8_t *) sdu_p->data, sizeToWrite); nas_nlh_tx->nlmsg_len = sizeToWrite; - ret = sendmsg(nas_sock_fd,&nas_msg_tx,0); + ret = sendmsg(nas_sock_fd[0],&nas_msg_tx,0); } // PDCP_USE_NETLINK AssertFatal(ret >= 0,"[PDCP_FIFOS] pdcp_fifo_flush_sdus (errno: %d %s)\n", errno, strerror(errno)); @@ -155,7 +155,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t *const ctxt_pP) { do { VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_FIFO_READ, 1 ); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_FIFO_READ_BUFFER, 1 ); - len = read(nas_sock_fd, &nl_rx_buf, NL_MAX_PAYLOAD); + len = read(nas_sock_fd[ctxt_pP->module_id], &nl_rx_buf, NL_MAX_PAYLOAD); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_FIFO_READ_BUFFER, 0 ); if (len<=0) continue; @@ -180,9 +180,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t *const ctxt_pP) { pdcp_data_req(&ctxt, SRB_FLAG_NO, rab_id, RLC_MUI_UNDEFINED, RLC_SDU_CONFIRM_NO, len, (unsigned char *)nl_rx_buf, PDCP_TRANSMISSION_MODE_DATA -#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , NULL, NULL -#endif ); } else { MSC_LOG_RX_DISCARDED_MESSAGE( @@ -214,7 +212,6 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t *const ctxt_pP) { module_id_t ue_id = 0; pdcp_t *pdcp_p = NULL; //TTN for D2D (PC5S) -#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int prose_addr_len; char send_buf[BUFSIZE], receive_buf[BUFSIZE]; //int optval; @@ -225,14 +222,12 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t *const ctxt_pP) { //uint32_t groupL2Id; //module_id_t module_id = 0; pc5s_header_t *pc5s_header; -#endif static unsigned char pdcp_read_state_g =0; int len = 1; int msg_len; rb_id_t rab_id = 0; int rlc_data_req_flag = 3; //TTN for D2D (PC5S) -#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) prose_addr_len = sizeof(prose_pdcp_addr); // receive a message from ProSe App memset(receive_buf, 0, BUFSIZE); @@ -368,11 +363,9 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t *const ctxt_pP) { RLC_SDU_CONFIRM_NO, pc5s_header->data_size, (unsigned char *)receive_buf, - PDCP_TRANSMISSION_MODE_DATA -#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - ,&pc5s_header->sourceL2Id - ,&pc5s_header->destinationL2Id -#endif + PDCP_TRANSMISSION_MODE_DATA, + &pc5s_header->sourceL2Id, + &pc5s_header->destinationL2Id ); } else { MSC_LOG_RX_DISCARDED_MESSAGE( @@ -425,11 +418,9 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t *const ctxt_pP) { RLC_SDU_CONFIRM_NO, pc5s_header->data_size, (unsigned char *)receive_buf, - PDCP_TRANSMISSION_MODE_DATA -#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - ,&pc5s_header->sourceL2Id - ,&pc5s_header->destinationL2Id -#endif + PDCP_TRANSMISSION_MODE_DATA, + &pc5s_header->sourceL2Id, + &pc5s_header->destinationL2Id ); } } @@ -439,12 +430,11 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t *const ctxt_pP) { } } -#endif while ((len > 0) && (rlc_data_req_flag !=0)) { VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_FIFO_READ, 1 ); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_FIFO_READ_BUFFER, 1 ); - len = recvmsg(nas_sock_fd, &nas_msg_rx, 0); + len = recvmsg(nas_sock_fd[0], &nas_msg_rx, 0); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_FIFO_READ_BUFFER, 0 ); if (len<=0) { @@ -570,9 +560,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t *const ctxt_pP) { pdcp_read_header_g.data_size, (unsigned char *)NLMSG_DATA(nas_nlh_rx), PDCP_TRANSMISSION_MODE_DATA -#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,NULL, NULL -#endif ); } else { LOG_D(PDCP, "[FRAME %5u][eNB][IP][INSTANCE %u][RB %u][--- PDCP_DATA_REQ / %d Bytes ---X][PDCP][MOD %u][UE %u][RB %u] NON INSTANCIATED INSTANCE, DROPPED\n", @@ -607,9 +595,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t *const ctxt_pP) { pdcp_read_header_g.data_size, (unsigned char *)NLMSG_DATA(nas_nlh_rx), PDCP_TRANSMISSION_MODE_DATA -#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,NULL, NULL -#endif ); } } @@ -672,11 +658,9 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t *const ctxt_pP) { RLC_SDU_CONFIRM_NO, pdcp_read_header_g.data_size, (unsigned char *)NLMSG_DATA(nas_nlh_rx), - PDCP_TRANSMISSION_MODE_DATA -#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - ,NULL - ,NULL -#endif + PDCP_TRANSMISSION_MODE_DATA, + NULL, + NULL ); } else { pdcp_data_req( @@ -687,11 +671,9 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t *const ctxt_pP) { RLC_SDU_CONFIRM_NO, pdcp_read_header_g.data_size, (unsigned char *)NLMSG_DATA(nas_nlh_rx), - PDCP_TRANSMISSION_MODE_DATA -#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - ,&pdcp_read_header_g.sourceL2Id - ,&pdcp_read_header_g.destinationL2Id -#endif + PDCP_TRANSMISSION_MODE_DATA, + &pdcp_read_header_g.sourceL2Id, + &pdcp_read_header_g.destinationL2Id ); } } else { @@ -747,11 +729,9 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t *const ctxt_pP) { RLC_SDU_CONFIRM_NO, pdcp_read_header_g.data_size, (unsigned char *)NLMSG_DATA(nas_nlh_rx), - PDCP_TRANSMISSION_MODE_DATA -#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - ,NULL - ,NULL -#endif + PDCP_TRANSMISSION_MODE_DATA, + NULL, + NULL ); } else { pdcp_data_req ( @@ -762,11 +742,9 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t *const ctxt_pP) { RLC_SDU_CONFIRM_NO, pdcp_read_header_g.data_size, (unsigned char *)NLMSG_DATA(nas_nlh_rx), - PDCP_TRANSMISSION_MODE_DATA -#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - ,&pdcp_read_header_g.sourceL2Id - ,&pdcp_read_header_g.destinationL2Id -#endif + PDCP_TRANSMISSION_MODE_DATA, + &pdcp_read_header_g.sourceL2Id, + &pdcp_read_header_g.destinationL2Id ); } } @@ -808,7 +786,6 @@ void pdcp_fifo_read_input_sdus_from_otg (const protocol_ctxt_t *const ctxt_pP) } //TTN for D2D (PC5S) -#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) void pdcp_pc5_socket_init() { @@ -841,4 +818,3 @@ pdcp_pc5_socket_init() { } } -#endif diff --git a/openair2/LAYER2/RLC/rlc.c b/openair2/LAYER2/RLC/rlc.c index 74e22194f9c7fc2308721b941bf50fce5e4b8600..f306db8680c2e3c20341b9c162d5c668a0718607 100644 --- a/openair2/LAYER2/RLC/rlc.c +++ b/openair2/LAYER2/RLC/rlc.c @@ -640,8 +640,6 @@ rlc_module_init (void) { } for (module_id1=0; module_id1 < MAX_MOBILES_PER_ENB; module_id1++) { -#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - for (k=0; k < RLC_MAX_MBMS_LC; k++) { rlc_mbms_lcid2service_session_id_ue[module_id1][k].service_id = 0; rlc_mbms_lcid2service_session_id_ue[module_id1][k].session_id = 0; @@ -650,23 +648,15 @@ rlc_module_init (void) { for (k=0; k < NB_RB_MBMS_MAX; k++) { rlc_mbms_rbid2lcid_ue[module_id1][k] = RLC_LC_UNALLOCATED; } - -#endif } - for (module_id1=0; module_id1 < NUMBER_OF_eNB_MAX; module_id1++) { -#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - - for (k=0; k < RLC_MAX_MBMS_LC; k++) { - rlc_mbms_lcid2service_session_id_eNB[module_id1][k].service_id = 0; - rlc_mbms_lcid2service_session_id_eNB[module_id1][k].session_id = 0; - } - - for (k=0; k < NB_RB_MBMS_MAX; k++) { - rlc_mbms_rbid2lcid_eNB[module_id1][k] = RLC_LC_UNALLOCATED; - } + for (k=0; k < RLC_MAX_MBMS_LC; k++) { + rlc_mbms_lcid2service_session_id_eNB[0][k].service_id = 0; + rlc_mbms_lcid2service_session_id_eNB[0][k].session_id = 0; + } -#endif + for (k=0; k < NB_RB_MBMS_MAX; k++) { + rlc_mbms_rbid2lcid_eNB[0][k] = RLC_LC_UNALLOCATED; } pool_buffer_init(); diff --git a/openair3/NAS/UE/ESM/esm_ebr_context.c b/openair3/NAS/UE/ESM/esm_ebr_context.c index c0827ed9db0852fa7127f6633a9a257ee1e79c73..b9a29d9bb2e32218e32d6a17b6ebbbea965b9a33 100644 --- a/openair3/NAS/UE/ESM/esm_ebr_context.c +++ b/openair3/NAS/UE/ESM/esm_ebr_context.c @@ -282,37 +282,43 @@ int esm_ebr_context_create( #ifdef UESIM_EXPANSION uint16_t inst_nic = (pdn->ip_addr[3] & 0x000000FF) - 2; res = sprintf(command_line, - "ifconfig oip%d %s netmask %s broadcast %s up && " + "ifconfig %s%d %s netmask %s broadcast %s up && " "ip rule add from %s/24 table %d && " "ip rule add to %s/24 table %d && " - "ip route add default dev oip%d table %d", + "ip route add default dev %s%d table %d", + UE_NAS_USE_TUN?"oaitun_ue":"oip", inst_nic + 1, ipv4_addr, netmask, broadcast, ipv4_addr, 201, ipv4_addr, 201, + UE_NAS_USE_TUN?"oaitun_ue":"oip", inst_nic + 1, 201); inst_pdcp_list[inst_nic] = ueid; #else res = sprintf(command_line, - "ifconfig oip%d %s netmask %s broadcast %s up && " + "ifconfig %s%d %s netmask %s broadcast %s up && " "ip rule add from %s/32 table %d && " "ip rule add to %s/32 table %d && " - "ip route add default dev oip%d table %d", + "ip route add default dev %s%d table %d", + UE_NAS_USE_TUN?"oaitun_ue":"oip", ueid + 1, ipv4_addr, netmask, broadcast, ipv4_addr, ueid + 201, ipv4_addr, ueid + 201, + UE_NAS_USE_TUN?"oaitun_ue":"oip", ueid + 1, ueid + 201); #endif } // PDCP_USE_NETLINK } else { res = sprintf(command_line, - "ifconfig oip%d %s netmask %s broadcast %s up && " + "ifconfig %s%d %s netmask %s broadcast %s up && " "ip rule add from %s/32 table %d && " "ip rule add to %s/32 table %d && " - "ip route add default dev oip%d table %d", + "ip route add default dev %s%d table %d", + UE_NAS_USE_TUN?"oaitun_ue":"oip", ueid + 1, ipv4_addr, netmask, broadcast, ipv4_addr, ueid + 201, ipv4_addr, ueid + 201, + UE_NAS_USE_TUN?"oaitun_ue":"oip", ueid + 1, ueid + 201); } if ( res<0 ) { diff --git a/targets/RT/USER/lte-uesoftmodem.c b/targets/RT/USER/lte-uesoftmodem.c index 40cbcf917dae09f5c70cdbe362451643a92fac56..1204d6daf0caed43a52151d229751d16235f7c2c 100644 --- a/targets/RT/USER/lte-uesoftmodem.c +++ b/targets/RT/USER/lte-uesoftmodem.c @@ -772,7 +772,7 @@ int main( int argc, char **argv ) { init_opt(); uint32_t pdcp_initmask = ((!IS_SOFTMODEM_NOS1) || IS_SOFTMODEM_NOKRNMOD)? LINK_ENB_PDCP_TO_GTPV1U_BIT : (LINK_ENB_PDCP_TO_GTPV1U_BIT | PDCP_USE_NETLINK_BIT | LINK_ENB_PDCP_TO_IP_DRIVER_BIT); - if ( IS_SOFTMODEM_BASICSIM ) { + if ( IS_SOFTMODEM_BASICSIM || (nfapi_mode == 3) ) { pdcp_initmask = pdcp_initmask | UE_NAS_USE_TUN_BIT; }