Commit 40b1f542 authored by matzakos's avatar matzakos

Continue with unfinished merge with develop branch.

parent 119b8a57
......@@ -71,6 +71,23 @@ openair2/LAYER2/RLC/rlc.h
openair2/LAYER2/RLC/rlc_mac.c
openair2/LAYER2/RLC/rlc_mpls.c
openair2/LAYER2/RLC/rlc_rrc.c
openair2/NETWORK_DRIVER/UE_IP/common.c
openair2/NETWORK_DRIVER/UE_IP/device.c
openair2/NETWORK_DRIVER/UE_IP/local.h
openair2/PHY_INTERFACE/IF_Module.c
openair2/PHY_INTERFACE/UE_MAC_interface.h (Should be completely deleted)
openair2/PHY_INTERFACE/phy_stub_UE.c
openair2/PHY_INTERFACE/phy_stub_UE.h
openair2/RRC/LTE/L2_interface.c
openair2/RRC/LTE/L2_interface_ue.c
openair2/RRC/LTE/MESSAGES/asn1_msg.c (Inside do_sib23() there are some lines ASN_SEQUENCE_ADD(...) corresponding to the addition of
SIB18, 19,21 which are commented out in the develop-version whereas they were intially integrated from
Thinh in the sidelink branches. Is this the removal that Cedric did for RF operation because
the SIB2/3 message turned out to be very large with these new elements?.
Additional not sure whether lines 1646-1663 should be included or not. They were in the sidelink branch
version)
openair2/RRC/LTE/MESSAGES/asn1_msg.h
openair2/RRC/LTE/rrc_UE.c (Some clonflicts were comlicated)
......@@ -81,18 +98,6 @@ openair2/LAYER2/RLC/rlc_rrc.c
deleted by them: openair1/PHY/TOOLS/file_output.c
deleted by them: openair1/SCHED/pusch_pc.c
both modified: openair2/NETWORK_DRIVER/UE_IP/common.c
both modified: openair2/NETWORK_DRIVER/UE_IP/device.c
both modified: openair2/NETWORK_DRIVER/UE_IP/local.h
both modified: openair2/PHY_INTERFACE/IF_Module.c
both added: openair2/PHY_INTERFACE/UE_MAC_interface.h
both added: openair2/PHY_INTERFACE/phy_stub_UE.c
both added: openair2/PHY_INTERFACE/phy_stub_UE.h
both modified: openair2/RRC/LTE/L2_interface.c
both modified: openair2/RRC/LTE/L2_interface_ue.c
both modified: openair2/RRC/LTE/MESSAGES/asn1_msg.c
both modified: openair2/RRC/LTE/MESSAGES/asn1_msg.h
both modified: openair2/RRC/LTE/rrc_UE.c
both modified: openair2/RRC/LTE/rrc_defs.h
both modified: openair2/RRC/LTE/rrc_eNB.c
both modified: openair2/RRC/LTE/rrc_proto.h
......@@ -183,7 +188,7 @@ openair2/LAYER2/RLC/rlc_rrc.c
both modified: openair2/LAYER2/RLC/rlc.h
both modified: openair2/LAYER2/RLC/rlc_mac.c
both modified: openair2/LAYER2/RLC/rlc_mpls.c
both modified: openair2/LAYER2/RLC/rlc_rrc.c #Conflicts solved up to here
both modified: openair2/LAYER2/RLC/rlc_rrc.c
both modified: openair2/NETWORK_DRIVER/UE_IP/common.c
both modified: openair2/NETWORK_DRIVER/UE_IP/device.c
both modified: openair2/NETWORK_DRIVER/UE_IP/local.h
......@@ -192,10 +197,10 @@ openair2/LAYER2/RLC/rlc_rrc.c
both added: openair2/PHY_INTERFACE/phy_stub_UE.c
both added: openair2/PHY_INTERFACE/phy_stub_UE.h
both modified: openair2/RRC/LTE/L2_interface.c
both modified: openair2/RRC/LTE/L2_interface_ue.c
both modified: openair2/RRC/LTE/L2_interface_ue.c
both modified: openair2/RRC/LTE/MESSAGES/asn1_msg.c
both modified: openair2/RRC/LTE/MESSAGES/asn1_msg.h
both modified: openair2/RRC/LTE/rrc_UE.c
both modified: openair2/RRC/LTE/rrc_UE.c #Conflicts solved up to here
both modified: openair2/RRC/LTE/rrc_defs.h
both modified: openair2/RRC/LTE/rrc_eNB.c
both modified: openair2/RRC/LTE/rrc_proto.h
......
......@@ -255,11 +255,7 @@ ue_ip_common_ip2wireless(
//---------------------------------------------------------------------------
struct pdcp_data_req_header_s pdcph;
ue_ip_priv_t *priv_p=netdev_priv(ue_ip_dev[instP]);
<<<<<<< HEAD
#ifdef Rel14
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
>>>>>>> main/develop
ipversion_t *ipv_p = NULL;
unsigned int hard_header_len = 0;
unsigned char *src_addr = 0;
......@@ -309,7 +305,6 @@ ue_ip_common_ip2wireless(
case 4:
src_addr = (unsigned char *)&((struct iphdr *)&skb_pP->data[hard_header_len])->saddr;
<<<<<<< HEAD
dst_addr = (unsigned char *)&((struct iphdr *)&skb_pP->data[hard_header_len])->daddr;
#ifdef OAI_DRV_DEBUG_SEND
......@@ -339,21 +334,6 @@ ue_ip_common_ip2wireless(
//pdcph.destinationL2Id = ntohl( ((struct iphdr *)&skb_pP->data[hard_header_len])->daddr) & 0x00FFFFFF;
printk("[UE_IP_DRV] source Id: 0x%08x\n",pdcph.sourceL2Id );
printk("[UE_IP_DRV] destinationL2Id Id: 0x%08x\n",pdcph.destinationL2Id );
=======
if (src_addr) {
printk("[UE_IP_DRV][%s] Source %d.%d.%d.%d\n",__FUNCTION__, src_addr[0],src_addr[1],src_addr[2],src_addr[3]);
}
dst_addr = (unsigned char *)&((struct iphdr *)&skb_pP->data[hard_header_len])->daddr;
if (dst_addr) {
printk("[UE_IP_DRV][%s] Dest %d.%d.%d.%d\n",__FUNCTION__, dst_addr[0],dst_addr[1],dst_addr[2],dst_addr[3]);
}
//get Ipv4 address and pass to PCDP header
printk("[UE_IP_DRV] source Id: 0x%08x\n",pdcph.sourceL2Id );
printk("[UE_IP_DRV] destinationL2Id Id: 0x%08x\n",pdcph.destinationL2Id );
pdcph.sourceL2Id = ntohl( ((struct iphdr *)&skb_pP->data[hard_header_len])->saddr) & 0x00FFFFFF;
pdcph.destinationL2Id = ntohl( ((struct iphdr *)&skb_pP->data[hard_header_len])->daddr) & 0x00FFFFFF;
>>>>>>> main/develop
break;
default:
......
......@@ -99,12 +99,6 @@ void *ue_ip_interrupt(void)
}
#endif //NETLINK
//---------------------------------------------------------------------------
<<<<<<< HEAD
=======
>>>>>>> main/develop
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0))
void ue_ip_timer(struct timer_list *t)
#else
......@@ -268,11 +262,7 @@ int ue_ip_hard_start_xmit(struct sk_buff *skb_pP, struct net_device *dev_pP)
// End debug information
netif_stop_queue(dev_pP);
<<<<<<< HEAD
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) || defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1796)
=======
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) || (defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1796)
>>>>>>> main/develop
netif_trans_update(dev_pP);
#else
dev_pP->trans_start = jiffies;
......
......@@ -91,11 +91,7 @@ typedef struct pdcp_data_req_header_s {
sdu_size_t data_size;
signed int inst;
ip_traffic_type_t traffic_type;
<<<<<<< HEAD
#ifdef Rel14
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
>>>>>>> main/develop
uint32_t sourceL2Id;
uint32_t destinationL2Id;
#endif
......@@ -106,11 +102,7 @@ typedef struct pdcp_data_ind_header_s {
sdu_size_t data_size;
signed int inst;
ip_traffic_type_t dummy_traffic_type;
<<<<<<< HEAD
#ifdef Rel14
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
>>>>>>> main/develop
uint32_t sourceL2Id;
uint32_t destinationL2Id;
#endif
......
......@@ -583,11 +583,7 @@ void UL_indication(UL_IND_t *UL_info)
sched_info->DL_req = &mac->DL_req[CC_id];
sched_info->HI_DCI0_req = &mac->HI_DCI0_req[CC_id][sched_info->subframe];
if ((mac->common_channels[CC_id].tdd_Config==NULL) ||
<<<<<<< HEAD
(is_UL_sf(&mac->common_channels[CC_id],(sched_info->subframe+sf_ahead)%10)>0))
=======
(is_UL_sf(&mac->common_channels[CC_id],sched_info->subframe)>0))
>>>>>>> main/develop
sched_info->UL_req = &mac->UL_req[CC_id];
else
sched_info->UL_req = NULL;
......
<<<<<<< HEAD
/*This is the interface module between PHY
*Provided the FAPI style interface structures for P7.
*
*
*
*//*
=======
/*
>>>>>>> main/develop
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
<<<<<<< HEAD
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
=======
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
>>>>>>> main/develop
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
<<<<<<< HEAD
=======
/* This is the interface module between PHY
* Provided the FAPI style interface structures for P7.
*/
>>>>>>> main/develop
/*! \file openair2/PHY_INTERFACE/IF_Module.h
* \brief data structures for PHY/MAC interface modules
* \author EURECOM/NTUST
* \date 2017
* \version 0.1
* \company Eurecom
* \email: raymond.knopp@eurecom.fr
* \note
* \warning
*/
#ifndef __UE_MAC_INTERFACE__H__
#define __UE_MAC_INTERFACE__H__
#include "nfapi_interface.h"
#include "openair1/PHY/impl_defs_lte.h"
#include "targets/COMMON/openairinterface5g_limits.h"
#define MAX_NUM_DL_PDU 100
#define MAX_NUM_UL_PDU 100
#define MAX_NUM_HI_DCI0_PDU 100
#define MAX_NUM_TX_REQUEST_PDU 100
#define MAX_NUM_HARQ_IND 100
#define MAX_NUM_CRC_IND 100
#define MAX_NUM_SR_IND 100
#define MAX_NUM_CQI_IND 100
#define MAX_NUM_RACH_IND 100
#define MAX_NUM_SRS_IND 100
// UE_MAC enums
typedef enum {
UE_MAC_DL_IND_PDSCH_PDU_TYPE =0,
UE_MAC_DL_IND_SI_PDSCH_PDU_TYPE,
UE_MAC_DL_IND_P_PDSCH_PDU_TYPE,
UE_MAC_DL_IND_DLSCH_RAR_PDU_TYPE
} UE_MAC_dl_ind_pdu_type_e;
// UE_MAC enums
typedef enum {
UE_MAC_Tx_IND_Msg1_TYPE =0,
UE_MAC_Tx_IND_Msg3_TYPE
} UE_MAC_Tx_ind_type_e;
// *** UE_UL_Config.request related structures
typedef struct{
//module_id_t module_idP;
//int CC_id;
//frame_t frameP;
uint8_t eNB_id;
//uint16_t rnti;
//sub_frame_t subframe_tx;
uint32_t SR_payload; //0 or 1
}UE_MAC_ul_config_SR;
typedef struct{
//module_id_t module_idP;
//int CC_id;
//frame_t frameP;
uint8_t eNB_indexP;
//sub_frame_t subframeP;
uint8_t ra_RACH_MaskIndex;
int8_t ra_PREAMBLE_RECEIVED_TARGET_POWER;
uint8_t ra_TDD_map_index;
uint16_t ra_RNTI;
uint8_t *Msg3;
}UE_MAC_ul_config_rach;
typedef struct {
union {
UE_MAC_ul_config_rach ue_rach_config;
//UE_MAC_ul_config_ULSCH ue_ULSCH_pdu;
UE_MAC_ul_config_SR ue_SR_config;
};
} UE_MAC_ul_config_request_list;
typedef struct {
nfapi_tl_t tl;
uint16_t length_list;
UE_MAC_ul_config_request_list* ue_ul_config_list;
} UE_MAC_ul_config_request_body_t;
typedef struct {
//nfapi_p7_message_header_t header;
uint16_t sfn_sf;
UE_MAC_ul_config_request_body_t ue_ul_config_request_body; //nfapi_dl_config_request_body_t
} UE_MAC_ul_config_request_t;
// *** UE_Tx.request related structures
typedef struct {
uint16_t pdu_length;
uint16_t pdu_index;
uint8_t num_segments;
struct {
uint32_t segment_length;
uint8_t* segment_data;
} segments[NFAPI_TX_MAX_SEGMENTS];
} UE_MAC_tx_request_pdu_t;
typedef struct {
nfapi_tl_t tl;
uint16_t number_of_pdus;
UE_MAC_tx_request_pdu_t* ue_tx_pdu_list;
} UE_MAC_tx_request_body_t;
typedef struct {
//nfapi_p7_message_header_t header;
uint16_t sfn_sf;
UE_MAC_tx_request_body_t ue_tx_request_body;
} UE_MAC_tx_request_t;
typedef struct{
}UE_MAC_sl_config_request_Tx_t;
typedef struct{
}UE_MAC_sl_config_request_Rx_t;
typedef struct{
}UE_MAC_sl_tx_request_t;
// *** UE_DL.indication related structures
typedef struct{
unsigned char eNB_index;
uint8_t first_sync; //boolean 0 or 1
uint8_t sync; // boolean 0 or 1 to indicate whether rrc_out_of_sync_ind() or dl_phy_sync_success()
// should be called from the handler function of the interface respectively.
}UE_MAC_bch_indication_pdu_t;
typedef struct{
nfapi_tl_t tl;
UE_MAC_bch_indication_pdu_t* bch_ind_list;
}UE_MAC_BCH_indication_body_t;
<<<<<<< HEAD
// Panos: Corresponding to inputs of MAC functions: ue_send_sdu(), ue_decode_si(), ue_decode_p().
=======
// Corresponding to inputs of MAC functions: ue_send_sdu(), ue_decode_si(), ue_decode_p().
>>>>>>> main/develop
typedef struct{
uint8_t* data;
uint16_t data_len;
}UE_MAC_dlsch_pdu;
<<<<<<< HEAD
// Panos: Corresponding to inputs of MAC function: process_rar().
=======
// Corresponding to inputs of MAC function: process_rar().
>>>>>>> main/develop
typedef struct{
rnti_t ra_rnti;
uint8_t* rar_input_buffer; // Originating from PHY
rnti_t* t_crnti;
uint8_t preamble_index;
uint8_t* rar_output_buffer; //should be returned to PHY: dlsch0->harq_processes[0]->b
}UE_MAC_dlsch_rar_pdu;
typedef struct{
uint8_t pdu_type;
uint8_t eNB_index;
union{
UE_MAC_dlsch_pdu dlsch_pdu_ind;
UE_MAC_dlsch_rar_pdu dlsch_rar_pdu_ind;
};
}UE_MAC_dlsch_indication_pdu_t;
typedef struct{
nfapi_tl_t tl;
uint16_t number_of_pdus;
UE_MAC_dlsch_indication_pdu_t* dlsch_ind_list;
}UE_MAC_DLSCH_indication_body_t;
// *** UE_SL.indication related structures
typedef struct{
}ue_sci_indication_body_t;
typedef struct{
}ue_SLSCH_indication_body_t;
typedef struct{
}ue_SLDCH_indication_body_t;
typedef struct{
}ue_SLBCH_indication_body_t;
// *** UE_Config_common.request related structures
typedef struct {
uint8_t subframeAssignment;
uint8_t specialSubframePatterns;
}UE_PHY_tdd_frame_structure_t;
typedef struct {
uint16_t rootSequenceIndex;
uint8_t prach_Config_enabled;
uint8_t prach_ConfigIndex;
uint8_t highSpeedFlag;
uint8_t zeroCorrelationZoneConfig;
uint8_t prach_FreqOffset;
}UE_PHY_prach_config_t;
typedef struct {
uint8_t deltaPUCCH_Shift;
uint8_t nRB_CQI;
uint8_t nCS_AN;
uint16_t n1PUCCH_AN;
}UE_PHY_pucch_config_t;
typedef struct {
int8_t referenceSignalPower;
uint8_t p_b;
}UE_PHY_pdsch_config_t;
typedef struct {
uint8_t n_SB;
PUSCH_HOPPING_t hoppingMode;
uint8_t pusch_HoppingOffset;
uint8_t enable64QAM;
uint8_t groupHoppingEnabled;
uint8_t groupAssignmentPUSCH;
uint8_t sequenceHoppingEnabled;
uint8_t cyclicShift;
}UE_PHY_pusch_config_t;
typedef struct{
uint8_t enabled_flag;
uint8_t srs_BandwidthConfig;
uint8_t srs_SubframeConfig;
uint8_t ackNackSRS_SimultaneousTransmission;
uint8_t srs_MaxUpPts;
}UE_PHY_SRS_config_t;
typedef struct{
int8_t p0_NominalPUSCH;
PUSCH_alpha_t alpha;
int8_t p0_NominalPUCCH;
int8_t deltaPreambleMsg3;
long deltaF_PUCCH_Format1;
long deltaF_PUCCH_Format1b;
long deltaF_PUCCH_Format2;
long deltaF_PUCCH_Format2a;
long deltaF_PUCCH_Format2b;
}UE_PHY_UL_power_control_config_t;
typedef struct{
uint8_t maxHARQ_Msg3Tx;
}UE_PHY_HARQ_Msg3_config_t;
typedef struct{
uint8_t nb_antennas_tx;
}UE_PHY_antenna_config_t;
typedef struct{
PHICH_RESOURCE_t phich_resource;
PHICH_DURATION_t phich_duration;
}UE_PHY_phich_config_t;
typedef struct {
UE_PHY_tdd_frame_structure_t ue_tdd_frame_structure_config;
UE_PHY_prach_config_t ue_prach_config;
UE_PHY_pucch_config_t ue_pucch_config;
UE_PHY_pdsch_config_t ue_pdsch_config;
UE_PHY_pusch_config_t ue_pusch_config;
UE_PHY_SRS_config_t ue_srs_config;
UE_PHY_UL_power_control_config_t ue_ul_pow_cntl_config;
UE_PHY_HARQ_Msg3_config_t ue_harq_msg3_config;
/* Where can we find the types and values of the configuration for the PCH?
UE_MAC_pusch_config_t ue_pch_config
radioResourceConfigCommon->pcch_Config.defaultPagingCycle, radioResourceConfigCommon->pcch_Config.nB*/
UE_PHY_antenna_config_t ue_ant_config;
UE_PHY_phich_config_t ue_phich_config;
/* MBSFN?*/
}UE_PHY_config_common_request_t;
// *** UE_Config_dedicated. request related structures
typedef struct{
PA_t p_a;
}UE_PHY_pdsch_config_dedicated_t;
typedef struct{
uint8_t ackNackRepetition;
ANFBmode_t tdd_AckNackFeedbackMode;
//ACKNAKREP_t repetitionFactor;
//uint16_t n1PUCCH_AN_Rep;
}UE_PHY_pucch_config_dedicated_t;
typedef struct{
uint16_t betaOffset_ACK_Index;
uint16_t betaOffset_RI_Index;
uint16_t betaOffset_CQI_Index;
}UE_PHY_pusch_config_dedicated_t;
typedef struct{
int8_t p0_UE_PUSCH;
uint8_t deltaMCS_Enabled;
uint8_t accumulationEnabled;
int8_t p0_UE_PUCCH;
int8_t pSRS_Offset;
uint8_t filterCoefficient;
}UE_PHY_ul_power_control_config_dedicated_t;
typedef struct{
uint16_t sr_PUCCH_ResourceIndex;
uint8_t sr_ConfigIndex;
DSR_TRANSMAX_t dsr_TransMax;
}UE_PHY_SR_config_dedicated_t;
typedef struct{
uint8_t srsConfigDedicatedSetup;
uint8_t duration;
uint8_t cyclicShift;
uint8_t freqDomainPosition;
uint8_t srs_Bandwidth;
uint16_t srs_ConfigIndex;
uint8_t srs_HoppingBandwidth;
uint8_t transmissionComb;
//uint8_t srsCellSubframe;
//uint8_t srsUeSubframe;
}UE_PHY_srs_ul_config_dedicated_t;
typedef struct{
CQI_REPORTMODEAPERIODIC cqi_ReportModeAperiodic;
CQI_REPORTPERIODIC CQI_ReportPeriodic;
//int8_t nomPDSCH_RS_EPRE_Offset;
}UE_PHY_cqi_report_config_dedicated_t;
typedef struct{
uint8_t transmission_mode [NUMBER_OF_CONNECTED_eNB_MAX];
UE_PHY_pdsch_config_dedicated_t ue_pdsch_config;
UE_PHY_pucch_config_dedicated_t ue_pucch_config;
UE_PHY_pusch_config_dedicated_t ue_pusch_config;
UE_PHY_ul_power_control_config_dedicated_t ue_ul_pow_cntrl_config;
UE_PHY_SR_config_dedicated_t ue_SR_config;
UE_PHY_srs_ul_config_dedicated_t ue_srs_ul_config;
UE_PHY_cqi_report_config_dedicated_t ue_cqi_report_config;
}UE_PHY_config_dedicated_request_t;
#endif
/*
typedef struct {
nfapi_p4_p5_message_header_t header;
uint8_t num_tlv;
nfapi_subframe_config_t subframe_config;
nfapi_rf_config_t rf_config;
nfapi_phich_config_t phich_config;
nfapi_sch_config_t sch_config;
nfapi_prach_config_t prach_config;
nfapi_pusch_config_t pusch_config;
nfapi_pucch_config_t pucch_config;
nfapi_srs_config_t srs_config;
nfapi_uplink_reference_signal_config_t uplink_reference_signal_config;
nfapi_laa_config_t laa_config;
nfapi_emtc_config_t emtc_config;
nfapi_tdd_frame_structure_t tdd_frame_structure_config;
nfapi_l23_config_t l23_config;
nfapi_nb_iot_config_t nb_iot_config;
// addition nfapi tlvs as per table 2-16 in idle or configure
nfapi_nfapi_t nfapi_config;
nfapi_vendor_extension_tlv_t vendor_extension;
} nfapi_config_request_t;
typedef struct {
nfapi_tl_t tl;
uint8_t dci_format;
uint8_t cce_index;
uint8_t aggregation_level;
uint16_t rnti;
uint8_t resource_block_start;
uint8_t number_of_resource_block;
uint8_t mcs_1;
uint8_t cyclic_shift_2_for_drms;
uint8_t frequency_hopping_enabled_flag;
uint8_t frequency_hopping_bits;
uint8_t new_data_indication_1;
uint8_t ue_tx_antenna_seleciton;
uint8_t tpc;
uint8_t cqi_csi_request;
uint8_t ul_index;
uint8_t dl_assignment_index;
uint32_t tpc_bitmap;
uint16_t transmission_power;
} nfapi_hi_dci0_dci_pdu_rel8_t;
*/
......@@ -2,19 +2,11 @@
//#include "openair1/PHY/defs.h"
//#include "openair2/PHY_INTERFACE/IF_Module.h"
//#include "openair1/PHY/extern.h"
<<<<<<< HEAD
#include "openair2/LAYER2/MAC/extern.h"
#include "openair2/LAYER2/MAC/defs.h"
#include "openair2/LAYER2/MAC/proto.h"
//#include "openair2/LAYER2/MAC/vars.h"
#include "openair1/SCHED/defs.h"
=======
#include "openair2/LAYER2/MAC/mac_extern.h"
#include "openair2/LAYER2/MAC/mac.h"
#include "openair2/LAYER2/MAC/mac_proto.h"
//#include "openair2/LAYER2/MAC/vars.h"
#include "openair1/SCHED_UE/sched_UE.h"
>>>>>>> main/develop
#include "nfapi/open-nFAPI/nfapi/public_inc/nfapi_interface.h"
//#include "common/ran_context.h"
#include "openair2/PHY_INTERFACE/phy_stub_UE.h"
......@@ -30,10 +22,6 @@
extern int oai_nfapi_crc_indication(nfapi_crc_indication_t *crc_ind);
extern int oai_nfapi_rx_ind(nfapi_rx_indication_t *ind);
extern int oai_nfapi_rach_ind(nfapi_rach_indication_t *rach_ind);
<<<<<<< HEAD
//extern static int rrc_set_state (module_id_t ue_mod_idP, Rrc_State_t state);
=======
>>>>>>> main/develop
void configure_nfapi_pnf(char *vnf_ip_addr, int vnf_p5_port, char *pnf_ip_addr, int pnf_p7_port, int vnf_p7_port);
......@@ -80,11 +68,7 @@ void fill_rx_indication_UE_MAC(module_id_t Mod_id,int frame,int subframe, UL_IND
pdu->data = ulsch_buffer;
// estimate timing advance for MAC
//sync_pos = lte_est_timing_advance_pusch(eNB,UE_id);
<<<<<<< HEAD
timing_advance_update = 0; //Panos: Don't know what to put here
=======
timing_advance_update = 0; // Don't know what to put here
>>>>>>> main/develop
pdu->rx_indication_rel8.timing_advance = timing_advance_update;
int SNRtimes10 = 640;
......@@ -103,10 +87,6 @@ void fill_rx_indication_UE_MAC(module_id_t Mod_id,int frame,int subframe, UL_IND
void fill_sr_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_INFO, uint16_t rnti) {
<<<<<<< HEAD
LOG_I(MAC, "fill_sr_indication_UE_MAC() for Mod_Id: %d \n", Mod_id);
=======
>>>>>>> main/develop
pthread_mutex_lock(&UE_mac_inst[Mod_id].UL_INFO_mutex);
......@@ -125,17 +105,10 @@ void fill_sr_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_I
pdu->instance_length = 0; // don't know what to do with this
// pdu->rx_ue_information.handle = handle;
pdu->rx_ue_information.tl.tag = NFAPI_RX_UE_INFORMATION_TAG;
<<<<<<< HEAD
pdu->rx_ue_information.rnti = rnti; //UE_mac_inst[Mod_id].crnti;; //Panos: Is this the right RNTI?
// Panos dependency from PHY not sure how to substitute this. Should we hardcode it?
=======
pdu->rx_ue_information.rnti = rnti; //UE_mac_inst[Mod_id].crnti
// dependency from PHY not sure how to substitute this. Should we hardcode it?
>>>>>>> main/develop
//int SNRtimes10 = dB_fixed_times10(stat) - 200;//(10*eNB->measurements.n0_power_dB[0]);
int SNRtimes10 = 640;
......@@ -157,11 +130,7 @@ void fill_crc_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_
pthread_mutex_lock(&UE_mac_inst[Mod_id].UL_INFO_mutex);
<<<<<<< HEAD
//Panos: REMEMBER HAVE EXCHANGED THE FOLLOWING TWO LINES HERE!
=======
// REMEMBER HAVE EXCHANGED THE FOLLOWING TWO LINES HERE!
>>>>>>> main/develop
nfapi_crc_indication_pdu_t *pdu = &UL_INFO->crc_ind.crc_indication_body.crc_pdu_list[UL_INFO->crc_ind.crc_indication_body.number_of_crcs];
UL_INFO->crc_ind.sfn_sf = frame<<4| subframe;
......@@ -203,15 +172,9 @@ void fill_rach_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL
UL_INFO->rach_ind.rach_indication_body.preamble_list = (nfapi_preamble_pdu_t*)malloc(UL_INFO->rach_ind.rach_indication_body.number_of_preambles*sizeof(nfapi_preamble_pdu_t));
UL_INFO->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.tl.tag = NFAPI_PREAMBLE_REL8_TAG;
<<<<<<< HEAD
UL_INFO->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.timing_advance = 0; //Panos: Not sure about that
//Panos: The two following should get extracted from the call to get_prach_resources().
=======
UL_INFO->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.timing_advance = 0; // Not sure about that
//The two following should get extracted from the call to get_prach_resources().
>>>>>>> main/develop
UL_INFO->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.preamble = ra_PreambleIndex;
UL_INFO->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.rnti = ra_RNTI;
//UL_INFO->rach_ind.rach_indication_body.number_of_preambles++;
......@@ -228,11 +191,7 @@ void fill_rach_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL
UL_INFO->rach_ind.rach_indication_body.preamble_list[0].preamble_rel8.rnti,
UL_INFO->rach_ind.rach_indication_body.preamble_list[0].preamble_rel13.rach_resource_type);
<<<<<<< HEAD
//Panos: This function is currently defined only in the nfapi-RU-RAU-split so we should call it when we merge
=======
// This function is currently defined only in the nfapi-RU-RAU-split so we should call it when we merge
>>>>>>> main/develop
// with that branch.
oai_nfapi_rach_ind(&UL_INFO->rach_ind);
free(UL_INFO->rach_ind.rach_indication_body.preamble_list);
......@@ -251,34 +210,22 @@ void fill_ulsch_cqi_indication_UE_MAC(int Mod_id, uint16_t frame,uint8_t subfram
pdu->rx_ue_information.tl.tag = NFAPI_RX_UE_INFORMATION_TAG;
pdu->rx_ue_information.rnti = rnti;
<<<<<<< HEAD
//Panos: Since we assume that CRC flag is always 0 (ACK) I guess that data_offset should always be 0.
=======
// Since we assume that CRC flag is always 0 (ACK) I guess that data_offset should always be 0.
>>>>>>> main/develop
pdu->cqi_indication_rel9.data_offset = 0;
// by default set O to rank 1 value
//pdu->cqi_indication_rel9.length = (ulsch_harq->Or1>>3) + ((ulsch_harq->Or1&7) > 0 ? 1 : 0);
<<<<<<< HEAD
// Panos: Not useful field for our case
=======
// Not useful field for our case
>>>>>>> main/develop
pdu->cqi_indication_rel9.tl.tag = NFAPI_CQI_INDICATION_REL9_TAG;
pdu->cqi_indication_rel9.length = 0;
pdu->cqi_indication_rel9.ri[0] = 0;
pdu->cqi_indication_rel9.timing_advance = 0;
pdu->cqi_indication_rel9.number_of_cc_reported = 1;
pdu->ul_cqi_information.channel = 1; // PUSCH
pdu->cqi_indication_rel9.number_of_cc_reported = 1;
pdu->ul_cqi_information.channel = 1; // PUSCH
<<<<<<< HEAD
//Panos: Not sure how to substitute this. This should be the actual CQI value? So can
=======
// Not sure how to substitute this. This should be the actual CQI value? So can
>>>>>>> main/develop
// we hardcode it to a specific value?
//memcpy((void*)raw_pdu->pdu,ulsch_harq->o,pdu->cqi_indication_rel9.length);
raw_pdu->pdu[0] = 7;
......@@ -292,11 +239,6 @@ void fill_ulsch_cqi_indication_UE_MAC(int Mod_id, uint16_t frame,uint8_t subfram
void fill_ulsch_harq_indication_UE_MAC(int Mod_id, int frame,int subframe, UL_IND_t *UL_INFO, nfapi_ul_config_ulsch_harq_information *harq_information, uint16_t rnti)
{
<<<<<<< HEAD
LOG_I(MAC, "Panos-D: fill_ulsch_harq_indication_UE_MAC(), NUM ACK_NAK REL. 10: %d, NUM ACK_NAK REL. 13: %d, SFN/SF: %d/%d", harq_information->harq_information_rel10.harq_size, harq_information->harq_information_rel13.harq_size_2, frame, subframe);
=======
>>>>>>> main/develop
pthread_mutex_lock(&UE_mac_inst[Mod_id].UL_INFO_mutex);
nfapi_harq_indication_pdu_t *pdu = &UL_INFO->harq_ind.harq_indication_body.harq_pdu_list[UL_INFO->harq_ind.harq_indication_body.number_of_harqs];
int i;
......@@ -312,26 +254,6 @@ void fill_ulsch_harq_indication_UE_MAC(int Mod_id, int frame,int subframe, UL_IN
pdu->rx_ue_information.tl.tag = NFAPI_RX_UE_INFORMATION_TAG;
pdu->rx_ue_information.rnti = rnti;
<<<<<<< HEAD
//Panos: For now we consider only FDD
//if (eNB->frame_parms.frame_type == FDD) {
pdu->harq_indication_fdd_rel13.tl.tag = NFAPI_HARQ_INDICATION_FDD_REL13_TAG;
pdu->harq_indication_fdd_rel13.mode = 0;
pdu->harq_indication_fdd_rel13.number_of_ack_nack = 1; //harq_information->harq_information_rel10.harq_size;
//pdu->harq_indication_fdd_rel13.number_of_ack_nack = harq_information->harq_information_rel10.harq_size;
//Panos: Could this be wrong? Is the number_of_ack_nack field equivalent to O_ACK?
//pdu->harq_indication_fdd_rel13.number_of_ack_nack = ulsch_harq->O_ACK;
pdu->harq_indication_fdd_rel13.harq_tb_n[0] = 1;
/*for (i=0;i<harq_information->harq_information_rel10.harq_size;i++) {
pdu->harq_indication_fdd_rel13.harq_tb_n[i] = 1; //Panos: Assuming always an ACK (No NACK or DTX)
}*/
=======
// For now we consider only FDD
//if (eNB->frame_parms.frame_type == FDD) {
pdu->harq_indication_fdd_rel13.tl.tag = NFAPI_HARQ_INDICATION_FDD_REL13_TAG;
......@@ -346,7 +268,6 @@ void fill_ulsch_harq_indication_UE_MAC(int Mod_id, int frame,int subframe, UL_IN
pdu->harq_indication_fdd_rel13.harq_tb_n[i] = 1; // Assuming always an ACK (No NACK or DTX)
}
>>>>>>> main/develop
UL_INFO->harq_ind.harq_indication_body.number_of_harqs++;
pthread_mutex_unlock(&UE_mac_inst[Mod_id].UL_INFO_mutex);
......@@ -362,11 +283,6 @@ void fill_uci_harq_indication_UE_MAC(int Mod_id,
/*uint8_t tdd_mapping_mode,
uint16_t tdd_multiplexing_mask*/) {
<<<<<<< HEAD
LOG_I (MAC, "Panos-D: fill_uci_harq_indication_UE_MAC 1 SFN/SF: %d/%d \n", frame, subframe);
=======
>>>>>>> main/develop
pthread_mutex_lock(&UE_mac_inst[Mod_id].UL_INFO_mutex);
nfapi_harq_indication_t *ind = &UL_INFO->harq_ind;
nfapi_harq_indication_body_t *body = &ind->harq_indication_body;
......@@ -401,12 +317,7 @@ void fill_uci_harq_indication_UE_MAC(int Mod_id,
pdu->harq_indication_fdd_rel13.number_of_ack_nack = 1;
//AssertFatal(harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[0] == 4, "harq_ack[0] is %d, should be 1,2 or 4\n",harq_ack[0]);
<<<<<<< HEAD
pdu->harq_indication_fdd_rel13.harq_tb_n[0] = 1; //Panos: Assuming always an ACK (No NACK or DTX)
LOG_I (MAC, "Panos-D: fill_uci_harq_indication_UE_MAC 2 SFN/SF: %d/%d, harq_information->harq_information_rel9_fdd.harq_size: %d \n", frame, subframe, harq_information->harq_information_rel9_fdd.harq_size);
=======
pdu->harq_indication_fdd_rel13.harq_tb_n[0] = 1; // Assuming always an ACK (No NACK or DTX)
>>>>>>> main/develop
}
......@@ -415,15 +326,8 @@ void fill_uci_harq_indication_UE_MAC(int Mod_id,
pdu->harq_indication_fdd_rel13.tl.tag = NFAPI_HARQ_INDICATION_FDD_REL13_TAG;
pdu->harq_indication_fdd_rel13.mode = 0;
pdu->harq_indication_fdd_rel13.number_of_ack_nack = 2;
<<<<<<< HEAD
pdu->harq_indication_fdd_rel13.harq_tb_n[0] = 1; //Panos: Assuming always an ACK (No NACK or DTX)
pdu->harq_indication_fdd_rel13.harq_tb_n[1] = 1; //Panos: Assuming always an ACK (No NACK or DTX)
LOG_I (MAC, "Panos-D: fill_uci_harq_indication_UE_MAC 3 SFN/SF: %d/%d, harq_information->harq_information_rel9_fdd.harq_size: %d \n", frame, subframe, harq_information->harq_information_rel9_fdd.harq_size);
=======
pdu->harq_indication_fdd_rel13.harq_tb_n[0] = 1; // Assuming always an ACK (No NACK or DTX)
pdu->harq_indication_fdd_rel13.harq_tb_n[1] = 1; // Assuming always an ACK (No NACK or DTX)
>>>>>>> main/develop
}
else AssertFatal(1==0,"only format 1a/b for now, received \n");
......@@ -440,18 +344,10 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
nfapi_ul_config_request_pdu_t *ul_config_pdu,
uint16_t frame,uint8_t subframe,uint8_t srs_present, int index)
{
<<<<<<< HEAD
nfapi_ul_config_ulsch_pdu_rel8_t *rel8 = &ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8;
if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_PDU_TYPE) {
LOG_D(PHY,"Applying UL config for UE, rnti %x for frame %d, subframe %d\n",
rel8->rnti,frame,subframe);
=======
if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_PDU_TYPE) {
LOG_D(PHY,"Applying UL config for UE, rnti %x for frame %d, subframe %d\n",
(ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8).rnti,frame,subframe);
>>>>>>> main/develop
uint8_t ulsch_buffer[5477] __attribute__ ((aligned(32)));
uint16_t buflen = ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.size;
......@@ -463,17 +359,6 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti);
fill_rx_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, UE_mac_inst[Mod_id].RA_prach_resources.Msg3,buflen, rnti, index);
Msg3_transmitted(Mod_id, 0, frame, 0);
<<<<<<< HEAD
// Panos: Modification
UE_mac_inst[Mod_id].UE_mode[0] = PUSCH;
UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
// Panos: This should be done after the reception of the respective hi_dci0
//UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
}
else {
//LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 2.3 \n");
=======
// Modification
UE_mac_inst[Mod_id].UE_mode[0] = PUSCH;
UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
......@@ -482,7 +367,6 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
//UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
}
else {
>>>>>>> main/develop
ue_get_sdu( Mod_id, 0, frame, subframe, 0, ulsch_buffer, buflen, &access_mode);
fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti);
fill_rx_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, ulsch_buffer,buflen, rnti, index);
......@@ -505,19 +389,11 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
fill_rx_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, UE_mac_inst[Mod_id].RA_prach_resources.Msg3,buflen, rnti, index);
Msg3_transmitted(Mod_id, 0, frame, 0);
//UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
<<<<<<< HEAD
// Panos: Modification
=======
// Modification
>>>>>>> main/develop
UE_mac_inst[Mod_id].UE_mode[0] = PUSCH;
UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
}
else {
<<<<<<< HEAD
//LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 3.1 \n");
=======
>>>>>>> main/develop
ue_get_sdu( Mod_id, 0, frame, subframe, 0, ulsch_buffer, buflen, &access_mode);
fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti);
fill_rx_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, ulsch_buffer,buflen, rnti, index);
......@@ -540,11 +416,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
fill_rx_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, UE_mac_inst[Mod_id].RA_prach_resources.Msg3,buflen, rnti, index);
Msg3_transmitted(Mod_id, 0, frame, 0);
//UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
<<<<<<< HEAD
// Panos: Modification
=======
// Modification
>>>>>>> main/develop
UE_mac_inst[Mod_id].UE_mode[0] = PUSCH;
UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
}
......@@ -571,11 +444,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
fill_rx_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, UE_mac_inst[Mod_id].RA_prach_resources.Msg3,buflen, rnti, index);
Msg3_transmitted(Mod_id, 0, frame, 0);
//UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
<<<<<<< HEAD
// Panos: Modification
=======
// Modification
>>>>>>> main/develop
UE_mac_inst[Mod_id].UE_mode[0] = PUSCH;
UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
}
......@@ -690,26 +560,15 @@ int ul_config_req_UE_MAC(nfapi_ul_config_request_t* req, int timer_frame, int ti
int tx_req_UE_MAC(nfapi_tx_request_t* req)
{
<<<<<<< HEAD
uint16_t sfn = NFAPI_SFNSF2SFN(req->sfn_sf);
uint16_t sf = NFAPI_SFNSF2SF(req->sfn_sf);
LOG_D(PHY,"%s() SFN/SF:%d/%d PDUs:%d\n", __FUNCTION__, sfn, sf, req->tx_request_body.number_of_pdus);
=======
LOG_D(PHY,"%s() SFN/SF:%d/%d PDUs:%d\n", __FUNCTION__, NFAPI_SFNSF2SFN(req->sfn_sf), NFAPI_SFNSF2SF(req->sfn_sf), req->tx_request_body.number_of_pdus);
>>>>>>> main/develop
for (int i=0; i<req->tx_request_body.number_of_pdus; i++)
{
LOG_D(PHY,"%s() SFN/SF:%d/%d number_of_pdus:%d [PDU:%d] pdu_length:%d pdu_index:%d num_segments:%d\n",
__FUNCTION__,
<<<<<<< HEAD
sfn, sf,
=======
NFAPI_SFNSF2SFN(req->sfn_sf), NFAPI_SFNSF2SF(req->sfn_sf),
>>>>>>> main/develop
req->tx_request_body.number_of_pdus,
i,
req->tx_request_body.tx_pdu_list[i].pdu_length,
......@@ -786,25 +645,15 @@ int dl_config_req_UE_MAC(nfapi_dl_config_request_t* req, module_id_t Mod_id) //,
}
else if (dl_config_pdu_list[i].dci_dl_pdu.dci_dl_pdu_rel8.rnti_type == 2) {
dl_config_pdu_tmp = &dl_config_pdu_list[i+1];
<<<<<<< HEAD
//LOG_I(MAC, "Panos-D: Before decoding SIB1 1\n \n");
=======
>>>>>>> main/develop
if(dl_config_pdu_tmp->pdu_type == NFAPI_DL_CONFIG_DLSCH_PDU_TYPE && dl_config_pdu_list[i].dci_dl_pdu.dci_dl_pdu_rel8.rnti == 0xFFFF && UE_mac_inst[Mod_id].UE_mode[0] != NOT_SYNCHED){ //&& UE_mac_inst[Mod_id].UE_mode[0] != NOT_SYNCHED
if(dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index <= tx_req_num_elems -1){
//if(tx_request_pdu_list + dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index!= NULL){
<<<<<<< HEAD
//LOG_I(MAC, "Panos-D: Before decoding SIB1 2\n \n");
ue_decode_si(Mod_id, 0, sfn, 0,
tx_request_pdu_list[dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_data,
tx_request_pdu_list[dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_length,
NULL,NULL,NULL);
=======
ue_decode_si(Mod_id, 0, sfn, 0,
tx_request_pdu_list[dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_data,
tx_request_pdu_list[dl_config_pdu_tmp->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_length);
>>>>>>> main/develop
i++;
}
else{
......@@ -865,21 +714,12 @@ int dl_config_req_UE_MAC(nfapi_dl_config_request_t* req, module_id_t Mod_id) //,
// for our case.
//LOG_E(MAC,"dl_config_req_UE_MAC 4 Received MIB: sfn/sf: %d.%d \n", sfn, sf);
if(UE_mac_inst[Mod_id].UE_mode[0] == NOT_SYNCHED){
<<<<<<< HEAD
//rrc_set_state(Mod_id, RRC_STATE_IDLE);
=======
>>>>>>> main/develop
dl_phy_sync_success(Mod_id,sfn,0, 1);
LOG_E(MAC,"dl_config_req_UE_MAC 5 Received MIB: UE_mode: %d, sfn/sf: %d.%d\n", UE_mac_inst[Mod_id].UE_mode[0], sfn, sf);
UE_mac_inst[Mod_id].UE_mode[0]=PRACH;
}
<<<<<<< HEAD
//else
//dl_phy_sync_success(Mod_id,sfn,0, 0);
=======
else
dl_phy_sync_success(Mod_id,sfn,0, 0);
>>>>>>> main/develop
}
......@@ -944,20 +784,9 @@ int hi_dci0_req_UE_MAC(nfapi_hi_dci0_request_t* req, module_id_t Mod_id)
// pnf_p7_subframe_ind.
int memcpy_dl_config_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_dl_config_request_t* req)
{
<<<<<<< HEAD
//module_id_t Mod_id = 0; //Panos: Currently static (only for one UE) but this should change.
//for (Mod_id=0; Mod_id<NB_UE_INST; Mod_id++){
dl_config_req = (nfapi_dl_config_request_t*)malloc(sizeof(nfapi_dl_config_request_t));
//LOG_I(MAC, "Panos-D: memcpy_dl_config_req 1, Mod_id:%d \n", Mod_id);
=======
//for (Mod_id=0; Mod_id<NB_UE_INST; Mod_id++){
dl_config_req = (nfapi_dl_config_request_t*)malloc(sizeof(nfapi_dl_config_request_t));
>>>>>>> main/develop
//UE_mac_inst[Mod_id].dl_config_req->header = req->header;
dl_config_req->sfn_sf = req->sfn_sf;
......@@ -985,13 +814,6 @@ int memcpy_dl_config_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_dl_config_request
int memcpy_ul_config_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_ul_config_request_t* req)
{
<<<<<<< HEAD
//LOG_D(MAC, "Panos-D: memcpy_ul_config_req 1 \n");
//module_id_t Mod_id = 0; //Panos: Currently static (only for one UE) but this should change.
=======
>>>>>>> main/develop
//for (Mod_id=0; Mod_id<NB_UE_INST; Mod_id++){
......@@ -1023,12 +845,6 @@ int memcpy_ul_config_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_ul_config_request
int memcpy_tx_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_tx_request_t* req)
{
<<<<<<< HEAD
//module_id_t Mod_id = 0; //Panos: Currently static (only for one UE) but this should change.
=======
>>>>>>> main/develop
tx_req_num_elems = req->tx_request_body.number_of_pdus;
tx_request_pdu_list = (nfapi_tx_request_pdu_t*) calloc(tx_req_num_elems, sizeof(nfapi_tx_request_pdu_t));
for (int i=0; i<tx_req_num_elems; i++) {
......@@ -1051,13 +867,6 @@ int memcpy_tx_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_tx_request_t* req)
int memcpy_hi_dci0_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_hi_dci0_request_t* req)
{
//if(req!=0){
<<<<<<< HEAD
//module_id_t Mod_id = 0; //Panos: Currently static (only for one UE) but this should change.
=======
>>>>>>> main/develop
//for (Mod_id=0; Mod_id<NB_UE_INST; Mod_id++){
hi_dci0_req = (nfapi_hi_dci0_request_t*)malloc(sizeof(nfapi_hi_dci0_request_t));
......@@ -1081,8 +890,7 @@ int memcpy_hi_dci0_req (nfapi_pnf_p7_config_t* pnf_p7, nfapi_hi_dci0_request_t*
//LOG_I(MAC, "Original hi_dci0 req. type:%d, Copy type: %d \n",req->hi_dci0_request_body.hi_dci0_pdu_list[i].pdu_type, UE_mac_inst[Mod_id].hi_dci0_req->hi_dci0_request_body.hi_dci0_pdu_list[i].pdu_type);
}
//}
return 0;
return 0;
}
......@@ -1101,11 +909,7 @@ void UE_config_stub_pnf(void) {
if (strcmp(*(L1_ParamList.paramarray[j][L1_TRANSPORT_N_PREFERENCE_IDX].strptr), "local_mac") == 0) {
sf_ahead = 4; // Need 4 subframe gap between RX and TX
}
<<<<<<< HEAD
// Panos: Right now that we have only one UE (thread) it is ok to put the eth_params in the UE_mac_inst.
=======
// Right now that we have only one UE (thread) it is ok to put the eth_params in the UE_mac_inst.
>>>>>>> main/develop
// Later I think we have to change that to attribute eth_params to a global element for all the UEs.
else if (strcmp(*(L1_ParamList.paramarray[j][L1_TRANSPORT_N_PREFERENCE_IDX].strptr), "nfapi") == 0) {
stub_eth_params.local_if_name = strdup(*(L1_ParamList.paramarray[j][L1_LOCAL_N_IF_NAME_IDX].strptr));
......@@ -1187,12 +991,7 @@ void phy_config_request(PHY_Config_t *phy_config) {
uint32_t from_earfcn(int eutra_bandP, uint32_t dl_earfcn) { return(0);}
int32_t get_uldl_offset(int eutra_bandP) { return(0);}
<<<<<<< HEAD
int l1_north_init_eNB() {
=======
int l1_north_init_eNB(void) {
>>>>>>> main/develop
return 0;
}
......
......@@ -21,11 +21,7 @@ UL_IND_t *UL_INFO;
nfapi_tx_request_pdu_t* tx_request_pdu_list;
// New
<<<<<<< HEAD
/// Panos: Pointers to config_request types. Used from nfapi callback functions.
=======
/// Pointers to config_request types. Used from nfapi callback functions.
>>>>>>> main/develop
nfapi_dl_config_request_t* dl_config_req;
nfapi_ul_config_request_t* ul_config_req;
nfapi_hi_dci0_request_t* hi_dci0_req;
......@@ -39,11 +35,7 @@ eth_params_t stub_eth_params;
<<<<<<< HEAD
// Panos: This function should return all the sched_response config messages which concern a specific UE. Inside this
=======
// This function should return all the sched_response config messages which concern a specific UE. Inside this
>>>>>>> main/develop
// function we should somehow make the translation of config message's rnti to Mod_ID.
Sched_Rsp_t get_nfapi_sched_response(uint8_t Mod_id);
......
......@@ -259,36 +259,7 @@ mac_rrc_data_ind(
if((srb_idP & RAB_OFFSET) == CCCH) {
Srb_info = &RC.rrc[module_idP]->carrier[CC_id].Srb0;
LOG_D(RRC,"[eNB %d] Received SDU for CCCH on SRB %d\n",module_idP,Srb_info->Srb_id);
<<<<<<< HEAD:openair2/RRC/LITE/L2_interface.c
#if 0 //defined(ENABLE_ITTI)
{
MessageDef *message_p;
int msg_sdu_size = sizeof(RRC_MAC_CCCH_DATA_IND (message_p).sdu);
if (sdu_lenP > msg_sdu_size) {
LOG_E(RRC, "SDU larger than CCCH SDU buffer size (%d, %d)", sdu_lenP, msg_sdu_size);
sdu_size = msg_sdu_size;
} else {
sdu_size = sdu_lenP;
}
message_p = itti_alloc_new_message (TASK_MAC_ENB, RRC_MAC_CCCH_DATA_IND);
RRC_MAC_CCCH_DATA_IND (message_p).frame = frameP;
RRC_MAC_CCCH_DATA_IND (message_p).sub_frame = sub_frameP;
RRC_MAC_CCCH_DATA_IND (message_p).rnti = rntiP;
RRC_MAC_CCCH_DATA_IND (message_p).sdu_size = sdu_size;
RRC_MAC_CCCH_DATA_IND (message_p).CC_id = CC_id;
memset (RRC_MAC_CCCH_DATA_IND (message_p).sdu, 0, CCCH_SDU_SIZE);
memcpy (RRC_MAC_CCCH_DATA_IND (message_p).sdu, sduP, sdu_size);
LOG_D(RRC,"[eNB %d] Sending message to RRC task\n",module_idP);
itti_send_msg_to_task (TASK_RRC_ENB, ctxt.instance, message_p);
}
#else
=======
>>>>>>> main/develop:openair2/RRC/LTE/L2_interface.c
// msg("\n******INST %d Srb_info %p, Srb_id=%d****\n\n",Mod_id,Srb_info,Srb_info->Srb_id);
if (sdu_lenP > 0) {
memcpy(Srb_info->Rx_buffer.Payload,sduP,sdu_lenP);
......
......@@ -59,8 +59,6 @@ mac_rrc_data_req_ue(
)
//--------------------------------------------------------------------------
{
<<<<<<< HEAD:openair2/RRC/LITE/L2_interface_ue.c
protocol_ctxt_t ctxt;
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, Mod_idP, 0, 0, frameP/10, frameP%10,eNB_indexP);
......@@ -68,23 +66,6 @@ mac_rrc_data_req_ue(
#ifdef DEBUG_RRC
int i;
LOG_I(RRC,"[eNB %d] mac_rrc_data_req to SRB ID=%d\n",Mod_idP,Srb_idP);
=======
LOG_D(RRC,"[eNB %d] mac_rrc_data_req to SRB ID=%d\n",Mod_idP,Srb_id);
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
LOG_D(RRC,"[UE %d] Frame %d Filling SL DISCOVERY SRB_ID %d\n",Mod_idP,frameP,Srb_id);
LOG_D(RRC,"[UE %d] Frame %d buffer_pP status %d,\n",Mod_idP,frameP, UE_rrc_inst[Mod_idP].SL_Discovery[eNB_index].Tx_buffer.payload_size);
//TTN (for D2D)
if (Srb_id == SL_DISCOVERY && UE_rrc_inst[Mod_idP].SL_Discovery[eNB_index].Tx_buffer.payload_size > 0){
memcpy(&buffer_pP[0],&UE_rrc_inst[Mod_idP].SL_Discovery[eNB_index].Tx_buffer.Payload[0],UE_rrc_inst[Mod_idP].SL_Discovery[eNB_index].Tx_buffer.payload_size);
uint8_t Ret_size=UE_rrc_inst[Mod_idP].SL_Discovery[eNB_index].Tx_buffer.payload_size;
LOG_I(RRC,"[UE %d] Sending SL_Discovery, size %d bytes\n",Mod_idP,Ret_size);
UE_rrc_inst[Mod_idP].SL_Discovery[eNB_index].Tx_buffer.payload_size = 0;
return(Ret_size);
}
>>>>>>> main/develop:openair2/RRC/LTE/L2_interface_ue.c
#endif
LOG_D(RRC,"[UE %d] Frame %d Filling CCCH SRB_ID %d\n",Mod_idP,frameP,Srb_idP);
......@@ -93,7 +74,7 @@ mac_rrc_data_req_ue(
AssertFatal(Srb_idP==MIBCH || Srb_idP==CCCH || Srb_idP==SL_DISCOVERY,"SRB_id %d is not possible should be (MIBCH %d or CCCH %d or SL_DISCOVERY %d)\n",
Srb_idP,MIBCH,CCCH,SL_DISCOVERY);
#ifdef Rel14
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
LOG_D(RRC,"[UE %d] Frame %d Filling SL DISCOVERY SRB_ID %d\n",Mod_idP,frameP,Srb_idP);
LOG_D(RRC,"[UE %d] Frame %d buffer_pP status %d,\n",Mod_idP,frameP, UE_rrc_inst[Mod_idP].SL_Discovery[eNB_indexP].Tx_buffer.payload_size);
......@@ -153,7 +134,7 @@ mac_rrc_data_req_ue(
return(Ret_size);
}
#ifdef Rel14
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
//TTN (for D2D)
else if (Srb_idP == SL_DISCOVERY && UE_rrc_inst[Mod_idP].SL_Discovery[eNB_indexP].Tx_buffer.payload_size > 0){
......@@ -404,11 +385,7 @@ rrc_data_req_ue(
sdu_sizeP,
buffer_pP,
modeP
<<<<<<< HEAD:openair2/RRC/LITE/L2_interface_ue.c
#ifdef Rel14
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
>>>>>>> main/develop:openair2/RRC/LTE/L2_interface_ue.c
,NULL, NULL
#endif
);
......
......@@ -69,15 +69,9 @@
#include "LTE_SIB-Type.h"
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
#include "BCCH-DL-SCH-Message.h"
#include "SBCCH-SL-BCH-MessageType.h"
#include "SBCCH-SL-BCH-Message.h"
=======
#include "LTE_BCCH-DL-SCH-Message.h"
#include "LTE_SBCCH-SL-BCH-MessageType.h"
#include "LTE_SBCCH-SL-BCH-Message.h"
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
//#include "PHY/defs.h"
......@@ -322,7 +316,6 @@ uint8_t do_MIB_SL(const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
return((enc_rval.encoded+7)/8);
}
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
//TTN for D2D
// 3GPP 36.331 (Section 5.10.7.4)
uint8_t do_MIB_SL(const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, int absSF, uint8_t in_coverage)
......@@ -394,9 +387,6 @@ uint8_t do_MIB_SL(const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
return((enc_rval.encoded+7)/8);
}
=======
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
int Mod_id,int CC_id
#if defined(ENABLE_ITTI)
......@@ -615,18 +605,6 @@ uint8_t do_SIB23(uint8_t Mod_id,
#endif
)
{
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib2_part,*sib3_part;
#if defined(Rel14)
//TTN - for D2D
struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib18_part, *sib19_part, *sib21_part;
SL_CommRxPoolList_r12_t *SL_CommRxPoolList; //for SIB18
struct SL_CommResourcePool_r12 *SL_CommResourcePool; //for SIB18
SL_DiscRxPoolList_r12_t *SL_DiscRxPoolList; //for SIB19 (discRxPool)
struct SL_DiscResourcePool_r12 *SL_DiscResourcePool; //for SIB19 (discRxPool)
=======
struct LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib2_part,*sib3_part;
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
......@@ -636,25 +614,16 @@ uint8_t do_SIB23(uint8_t Mod_id,
struct LTE_SL_CommResourcePool_r12 *SL_CommResourcePool; //for SIB18
LTE_SL_DiscRxPoolList_r12_t *SL_DiscRxPoolList; //for SIB19 (discRxPool)
struct LTE_SL_DiscResourcePool_r12 *SL_DiscResourcePool; //for SIB19 (discRxPool)
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
//SL_DiscRxPoolList_r12_t *SL_DiscRxPoolPSList; //for SIB19 (discRxPoolPS)
//struct SL_DiscResourcePool_r12 *SL_DiscResourcePoolPS; //for SIB19 (discRxPoolPS)
//struct SL_V2X_ConfigCommon_r14 *SL_V2X_ConfigCommon;
#endif
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
#if defined(Rel10) || defined(Rel14)
struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib13_part;
MBSFN_SubframeConfigList_t *MBSFNSubframeConfigList;
MBSFN_AreaInfoList_r9_t *MBSFNArea_list;
struct MBSFN_AreaInfo_r9 *MBSFN_Area1, *MBSFN_Area2;
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
struct LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib13_part;
LTE_MBSFN_SubframeConfigList_t *MBSFNSubframeConfigList;
LTE_MBSFN_AreaInfoList_r9_t *MBSFNArea_list;
struct LTE_MBSFN_AreaInfo_r9 *MBSFN_Area1, *MBSFN_Area2;
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
#endif
asn_enc_rval_t enc_rval;
......@@ -667,19 +636,11 @@ uint8_t do_SIB23(uint8_t Mod_id,
uint8_t MBMS_flag = RC.rrc[Mod_id]->carrier[CC_id].MBMS_flag;
#endif
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
#if defined(Rel10) || defined(Rel14)
//TTN - for D2D
SystemInformationBlockType18_r12_t **sib18 = &RC.rrc[Mod_id]->carrier[CC_id].sib18;
SystemInformationBlockType19_r12_t **sib19 = &RC.rrc[Mod_id]->carrier[CC_id].sib19;
SystemInformationBlockType21_r14_t **sib21 = &RC.rrc[Mod_id]->carrier[CC_id].sib21;
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
//TTN - for D2D
LTE_SystemInformationBlockType18_r12_t **sib18 = &RC.rrc[Mod_id]->carrier[CC_id].sib18;
LTE_SystemInformationBlockType19_r12_t **sib19 = &RC.rrc[Mod_id]->carrier[CC_id].sib19;
LTE_SystemInformationBlockType21_r14_t **sib21 = &RC.rrc[Mod_id]->carrier[CC_id].sib21;
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
#endif
if (bcch_message) {
......@@ -726,21 +687,6 @@ uint8_t do_SIB23(uint8_t Mod_id,
#endif
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
#if defined(Rel10) || defined(Rel14)
//TTN - for D2D
sib18_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
sib19_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
sib21_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
memset(sib18_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
memset(sib19_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
memset(sib21_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
sib18_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib18_v1250;
sib19_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib19_v1250;
sib21_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib21_v1430;
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
//TTN - for D2D
sib18_part = CALLOC(1,sizeof(struct LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
......@@ -753,15 +699,10 @@ uint8_t do_SIB23(uint8_t Mod_id,
sib18_part->present = LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib18_v1250;
sib19_part->present = LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib19_v1250;
sib21_part->present = LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib21_v1430;
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
*sib18 = &sib18_part->choice.sib18_v1250;
*sib19 = &sib19_part->choice.sib19_v1250;
*sib21 = &sib21_part->choice.sib21_v1430;
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
=======
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
#endif
......@@ -1148,11 +1089,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
#endif
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
#if defined(Rel10) || defined(Rel14)
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
//TTN - for D2D
// SIB18
//commRxPool_r12
......@@ -1172,78 +1109,44 @@ uint8_t do_SIB23(uint8_t Mod_id,
SL_CommResourcePool->sc_TF_ResourceConfig_r12.prb_End_r12 = configuration->rxPool_ResourceConfig_prb_End[CC_id];
SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present = configuration->rxPool_ResourceConfig_offsetIndicator_present[CC_id];
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_small_r12 ) {
SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = configuration->rxPool_ResourceConfig_offsetIndicator_choice[CC_id] ;
} else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_large_r12 ){
=======
if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present == LTE_SL_OffsetIndicator_r12_PR_small_r12 ) {
SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = configuration->rxPool_ResourceConfig_offsetIndicator_choice[CC_id] ;
} else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present == LTE_SL_OffsetIndicator_r12_PR_large_r12 ){
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.choice.large_r12 = configuration->rxPool_ResourceConfig_offsetIndicator_choice[CC_id] ;
}
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present = configuration->rxPool_ResourceConfig_subframeBitmap_present[CC_id];
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs4_r12){
=======
if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == LTE_SubframeBitmapSL_r12_PR_bs4_r12){
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
//for BS4
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id];
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];;
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id];
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
} else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs8_r12){
=======
} else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == LTE_SubframeBitmapSL_r12_PR_bs8_r12){
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
//for BS8
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id];
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];;
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id];
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
} else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs12_r12){
=======
} else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == LTE_SubframeBitmapSL_r12_PR_bs12_r12){
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
//for BS12
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id];
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];;
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id];
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
}else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs16_r12){
=======
}else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == LTE_SubframeBitmapSL_r12_PR_bs16_r12){
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
//for BS16
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id];
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];;
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id];
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
}else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs30_r12){
=======
}else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == LTE_SubframeBitmapSL_r12_PR_bs30_r12){
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
//for BS30
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id];
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];;
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id];
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
}else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs40_r12){
=======
}else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == LTE_SubframeBitmapSL_r12_PR_bs40_r12){
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
//for BS40
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id];
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];;
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id];
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
}else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs42_r12){
=======
}else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == LTE_SubframeBitmapSL_r12_PR_bs42_r12){
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
//for BS42
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id];
SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];;
......@@ -1252,11 +1155,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
//dataHoppingConfig_r12
SL_CommResourcePool->dataHoppingConfig_r12.hoppingParameter_r12 = 0;
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
SL_CommResourcePool->dataHoppingConfig_r12.numSubbands_r12 = SL_HoppingConfigComm_r12__numSubbands_r12_ns1;
=======
SL_CommResourcePool->dataHoppingConfig_r12.numSubbands_r12 = LTE_SL_HoppingConfigComm_r12__numSubbands_r12_ns1;
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
SL_CommResourcePool->dataHoppingConfig_r12.rb_Offset_r12 = 0;
//ue_SelectedResourceConfig_r12
......@@ -1264,15 +1163,9 @@ uint8_t do_SIB23(uint8_t Mod_id,
SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.prb_Num_r12 = 20;
SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.prb_Start_r12 = 5;
SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.prb_End_r12 = 44;
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.offsetIndicator_r12.present = SL_OffsetIndicator_r12_PR_small_r12;
SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = 0 ;
SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.present = SubframeBitmapSL_r12_PR_bs40_r12;
=======
SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.offsetIndicator_r12.present = LTE_SL_OffsetIndicator_r12_PR_small_r12;
SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = 0 ;
SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.present = LTE_SubframeBitmapSL_r12_PR_bs40_r12;
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.size = 5;
SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf = CALLOC(1,5);
SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.bits_unused = 0;
......@@ -1290,11 +1183,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
SL_CommResourcePool->rxParametersNCell_r12->syncConfigIndex_r12 = 0;
//txParameters_r12
SL_CommResourcePool->txParameters_r12 = CALLOC (1, sizeof (*SL_CommResourcePool->txParameters_r12));
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
SL_CommResourcePool->txParameters_r12->sc_TxParameters_r12.alpha_r12 = Alpha_r12_al0;
=======
SL_CommResourcePool->txParameters_r12->sc_TxParameters_r12.alpha_r12 = LTE_Alpha_r12_al0;
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
SL_CommResourcePool->txParameters_r12->sc_TxParameters_r12.p0_r12 = 0;
SL_CommResourcePool->ext1 = NULL ;
......@@ -1330,15 +1219,6 @@ uint8_t do_SIB23(uint8_t Mod_id,
SL_DiscResourcePool->tf_ResourceConfig_r12.prb_Start_r12 = configuration->discRxPool_ResourceConfig_prb_Start[CC_id];
SL_DiscResourcePool->tf_ResourceConfig_r12.prb_End_r12 = configuration->discRxPool_ResourceConfig_prb_End[CC_id];
SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.present = configuration->discRxPool_ResourceConfig_offsetIndicator_present[CC_id];
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
if (SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_small_r12 ) {
SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = configuration->discRxPool_ResourceConfig_offsetIndicator_choice[CC_id] ;
} else if (SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_large_r12 ){
SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.choice.large_r12 = configuration->discRxPool_ResourceConfig_offsetIndicator_choice[CC_id] ;
}
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present = configuration->discRxPool_ResourceConfig_subframeBitmap_present[CC_id];
if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs4_r12){
=======
if (SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.present == LTE_SL_OffsetIndicator_r12_PR_small_r12 ) {
SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = configuration->discRxPool_ResourceConfig_offsetIndicator_choice[CC_id] ;
} else if (SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.present == LTE_SL_OffsetIndicator_r12_PR_large_r12 ){
......@@ -1346,61 +1226,36 @@ uint8_t do_SIB23(uint8_t Mod_id,
}
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present = configuration->discRxPool_ResourceConfig_subframeBitmap_present[CC_id];
if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == LTE_SubframeBitmapSL_r12_PR_bs4_r12){
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
//for BS4
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id];
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];;
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id];
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
} else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs8_r12){
=======
} else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == LTE_SubframeBitmapSL_r12_PR_bs8_r12){
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
//for BS8
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id];
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];;
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id];
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
} else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs12_r12){
=======
} else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == LTE_SubframeBitmapSL_r12_PR_bs12_r12){
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
//for BS12
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id];
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];;
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id];
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
}else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs16_r12){
=======
}else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == LTE_SubframeBitmapSL_r12_PR_bs16_r12){
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
//for BS16
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id];
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];;
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id];
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
}else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs30_r12){
=======
}else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == LTE_SubframeBitmapSL_r12_PR_bs30_r12){
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
//for BS30
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id];
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];;
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id];
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
}else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs40_r12){
=======
}else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == LTE_SubframeBitmapSL_r12_PR_bs40_r12){
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
//for BS40
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id];
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];;
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id];
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
}else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs42_r12){
=======
}else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == LTE_SubframeBitmapSL_r12_PR_bs42_r12){
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
//for BS42
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id];
SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];;
......@@ -1487,13 +1342,8 @@ uint8_t do_SIB23(uint8_t Mod_id,
//SL_V2X_ConfigCommon= (*sib21)->sl_V2X_ConfigCommon_r14;
memset((*sib21)->sl_V2X_ConfigCommon_r14,0,sizeof(*(*sib21)->sl_V2X_ConfigCommon_r14));
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
struct SL_CommRxPoolListV2X_r14 *SL_CommRxPoolListV2X;
struct SL_CommResourcePoolV2X_r14 *SL_CommResourcePoolV2X;
=======
struct LTE_SL_CommRxPoolListV2X_r14 *SL_CommRxPoolListV2X;
struct LTE_SL_CommResourcePoolV2X_r14 *SL_CommResourcePoolV2X;
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
(*sib21)->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14 = CALLOC(1, sizeof(*(*sib21)->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14));
SL_CommRxPoolListV2X = (*sib21)->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14;
......@@ -1501,15 +1351,9 @@ uint8_t do_SIB23(uint8_t Mod_id,
memset(SL_CommResourcePoolV2X,0,sizeof(*SL_CommResourcePoolV2X));
SL_CommResourcePoolV2X->sl_OffsetIndicator_r14 = CALLOC(1, sizeof(*SL_CommResourcePoolV2X->sl_OffsetIndicator_r14));
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
SL_CommResourcePoolV2X->sl_OffsetIndicator_r14->present = SL_OffsetIndicator_r12_PR_small_r12;
SL_CommResourcePoolV2X->sl_OffsetIndicator_r14->choice.small_r12 = 0;
SL_CommResourcePoolV2X->sl_Subframe_r14.present = SubframeBitmapSL_r14_PR_bs40_r14;
=======
SL_CommResourcePoolV2X->sl_OffsetIndicator_r14->present = LTE_SL_OffsetIndicator_r12_PR_small_r12;
SL_CommResourcePoolV2X->sl_OffsetIndicator_r14->choice.small_r12 = 0;
SL_CommResourcePoolV2X->sl_Subframe_r14.present = LTE_SubframeBitmapSL_r14_PR_bs40_r14;
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.size = 5;
SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf = CALLOC(1,5);
SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.bits_unused = 0;
......@@ -1535,24 +1379,14 @@ uint8_t do_SIB23(uint8_t Mod_id,
//end SIB21
#endif
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
bcch_message->message.present = BCCH_DL_SCH_MessageType_PR_c1;
bcch_message->message.choice.c1.present = BCCH_DL_SCH_MessageType__c1_PR_systemInformation;
=======
bcch_message->message.present = LTE_BCCH_DL_SCH_MessageType_PR_c1;
bcch_message->message.choice.c1.present = LTE_BCCH_DL_SCH_MessageType__c1_PR_systemInformation;
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
/* memcpy((void*)&bcch_message.message.choice.c1.choice.systemInformation,
(void*)systemInformation,
sizeof(SystemInformation_t));*/
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.present = SystemInformation__criticalExtensions_PR_systemInformation_r8;
=======
bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.present = LTE_SystemInformation__criticalExtensions_PR_systemInformation_r8;
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count=0;
// asn_set_empty(&systemInformation->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list);//.size=0;
......@@ -1566,15 +1400,13 @@ uint8_t do_SIB23(uint8_t Mod_id,
if (MBMS_flag > 0) {
ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list,sib13_part);
}
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
//for D2D
// Panos: following lines were removed in the develop branch. Now brought back in but we have to examine whether we should keep
// them in the new merge with sidelink. Probably we have to create a new message for SIB18/19/21 and not include these
// elements in the SIB2/3 message.
ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, sib18_part);
ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, sib19_part);
ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, sib21_part);
=======
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
#endif
if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
......@@ -1810,157 +1642,7 @@ uint8_t do_SidelinkUEInformation(uint8_t Mod_id, uint8_t *buffer, LTE_SL_Destin
AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n",
enc_rval.failed_type->name, enc_rval.encoded);
LOG_D(RRC,"SidelinkUEInformation Encoded %d bits (%d bytes)\n",(uint32_t)enc_rval.encoded,(uint32_t)((enc_rval.encoded+7)/8));
return((enc_rval.encoded+7)/8);
}
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
//TTN for D2D - 3GPP TS 36.331 (Section 5.10.2.3)
uint8_t do_SidelinkUEInformation(uint8_t Mod_id, uint8_t *buffer, SL_DestinationInfoList_r12_t *destinationInfoList, long *discTxResourceReq, SL_TRIGGER_t mode)
{
asn_enc_rval_t enc_rval;
UL_DCCH_Message_t ul_dcch_msg;
SidelinkUEInformation_r12_t *sidelinkUEInformation;
ARFCN_ValueEUTRA_r9_t carrierFreq = 25655;//sidelink communication frequency (hardcoded - should come from SIB2)
memset((void *)&ul_dcch_msg,0,sizeof(UL_DCCH_Message_t));
ul_dcch_msg.message.present = UL_DCCH_MessageType_PR_messageClassExtension;
ul_dcch_msg.message.choice.messageClassExtension.present = UL_DCCH_MessageType__messageClassExtension_PR_c2;
ul_dcch_msg.message.choice.messageClassExtension.choice.c2.present = UL_DCCH_MessageType__messageClassExtension__c2_PR_sidelinkUEInformation_r12;
sidelinkUEInformation = &ul_dcch_msg.message.choice.messageClassExtension.choice.c2.choice.sidelinkUEInformation_r12;
//3GPP TS 36.331 (Section 5.10.2.3)
sidelinkUEInformation->criticalExtensions.present = SidelinkUEInformation_r12__criticalExtensions_PR_c1;
sidelinkUEInformation->criticalExtensions.choice.c1.present = SidelinkUEInformation_r12__criticalExtensions__c1_PR_sidelinkUEInformation_r12;
switch(mode) {
//if SIB18 is available
case SL_RECEIVE_COMMUNICATION: // to receive sidelink communication
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commRxInterestedFreq_r12 = CALLOC(1,
sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commRxInterestedFreq_r12));
memcpy((void*)sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commRxInterestedFreq_r12, (void*)&carrierFreq,
sizeof(ARFCN_ValueEUTRA_r9_t));
break;
case SL_TRANSMIT_NON_RELAY_ONE_TO_MANY: //to transmit non-relay related one-to-many sidelink communication
//commTxResourceReq
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12 = CALLOC(1,
sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12));
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12->carrierFreq_r12 = CALLOC(1,
sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12->carrierFreq_r12));
memcpy((void*)sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12->carrierFreq_r12, (void*)&carrierFreq,
sizeof(ARFCN_ValueEUTRA_r9_t));
memcpy(&sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12->destinationInfoList_r12,
destinationInfoList,
sizeof(SL_DestinationInfoList_r12_t));
break;
case SL_TRANSMIT_NON_RELAY_ONE_TO_ONE://transmit non-relay related one-to-one sidelink communication
//if commTxResourceUC-ReqAllowed is included in SIB18
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension = CALLOC(1,
sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension));
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceReqUC_r13 = CALLOC(1,
sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceReqUC_r13));
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceReqUC_r13->carrierFreq_r12 = CALLOC(1,
sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceReqUC_r13->carrierFreq_r12));
memcpy((void*)sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceReqUC_r13->carrierFreq_r12, (void*)&carrierFreq,
sizeof (ARFCN_ValueEUTRA_r9_t));
memcpy(&sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceReqUC_r13->destinationInfoList_r12,
destinationInfoList,
sizeof(SL_DestinationInfoList_r12_t));
break;
case SL_TRANSMIT_RELAY_ONE_TO_ONE: //transmit relay related one-to-one sidelink communication
//if SIB19 includes discConfigRelay and UE acts a relay or UE has a selected relay
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension = CALLOC(1,
sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension));
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13= CALLOC(1,
sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13));
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelayUC_r13 = CALLOC(1,
sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelayUC_r13));
memcpy(&sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelayUC_r13->destinationInfoList_r12,
destinationInfoList,
sizeof(*destinationInfoList));
//set ue-type to relayUE or remoteUE
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->ue_Type_r13 =SidelinkUEInformation_v1310_IEs__commTxResourceInfoReqRelay_r13__ue_Type_r13_relayUE;
//sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12->nonCriticalExtension->commTxResourceInfoReqRelay_r13->ue_Type_r13 =SidelinkUEInformation_v1310_IEs__commTxResourceInfoReqRelay_r13__ue_Type_r13_remoteUE;
break;
case SL_TRANSMIT_RELAY_ONE_TO_MANY: //transmit relay related one-to-many sidelink communication
//if SIB19 includes discConfigRelay and UE acts a relay
//set ue-type to relayUE
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension = CALLOC(1,
sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension));
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13= CALLOC(1,
sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13));
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelay_r13 = CALLOC(1,
sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelay_r13));
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->ue_Type_r13 =SidelinkUEInformation_v1310_IEs__commTxResourceInfoReqRelay_r13__ue_Type_r13_relayUE;
memcpy(&sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelay_r13->destinationInfoList_r12,
destinationInfoList,
sizeof(*destinationInfoList));
break;
//if SIB19 is available
//we consider only one frequency - a serving frequency
case SL_RECEIVE_DISCOVERY: //receive sidelink discovery announcements
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.discRxInterest_r12 = CALLOC(1,
sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.discRxInterest_r12));
*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.discRxInterest_r12 = SidelinkUEInformation_r12_IEs__discRxInterest_r12_true;
break;
case SL_TRANSMIT_NON_PS_DISCOVERY://to transmit non-PS related sidelink discovery announcements
//for the first frequency
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.discTxResourceReq_r12 = CALLOC(1,
sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.discTxResourceReq_r12));
memcpy((void*)sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.discTxResourceReq_r12,
(void*)discTxResourceReq,
sizeof(long));
//for additional frequency
break;
case SL_TRANSMIT_PS_DISCOVERY://to transmit PS related sidelink discovery announcements
//if to transmit non-relay PS related discovery announcements and SIB19 includes discConfigPS
//if UE is acting as relay UE and SIB includes discConfigRelay (relay threshold condition)
//if relay UE/has a selected relay UE and if SIB19 includes discConfigRelay
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension = CALLOC(1,
sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension));
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->discTxResourceReqPS_r13 = CALLOC(1,
sizeof(*sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->discTxResourceReqPS_r13));
sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->discTxResourceReqPS_r13->discTxResourceReq_r13 = *discTxResourceReq;
break;
//SIB21
case SL_RECEIVE_V2X:
//TODO
break;
case SL_TRANSMIT_V2X:
//TODO
break;
//TODO: request sidelink discovery transmission/reception gaps
//TODO: report the system information parameters related to sidelink discovery of carriers other than the primary
default:
break;
}
#ifdef XER_PRINT
xer_fprint(stdout, &asn_DEF_UL_DCCH_Message, (void*)&ul_dcch_msg);
#endif
enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message,
(void*)&ul_dcch_msg,
buffer,
100);
AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n",
enc_rval.failed_type->name, enc_rval.encoded);
//Panos: Lines 1646-1663 were in the sidelink branch version. Not sure if they should be in the merged with develop version.
#if defined(ENABLE_ITTI)
# if !defined(DISABLE_XER_SPRINT)
{
......@@ -1980,17 +1662,14 @@ uint8_t do_SidelinkUEInformation(uint8_t Mod_id, uint8_t *buffer, SL_Destinatio
# endif
#endif
#ifdef USER_MODE
LOG_D(RRC,"SidelinkUEInformation Encoded %d bits (%d bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8);
#endif
LOG_D(RRC,"SidelinkUEInformation Encoded %d bits (%d bytes)\n",(uint32_t)enc_rval.encoded,(uint32_t)((enc_rval.encoded+7)/8));
return((enc_rval.encoded+7)/8);
}
=======
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
uint8_t do_RRCConnectionSetupComplete(uint8_t Mod_id, uint8_t *buffer, const uint8_t Transaction_id, const int dedicatedInfoNASLength, const char *dedicatedInfoNAS)
{
......@@ -2631,31 +2310,6 @@ do_RRCConnectionReconfiguration(
const protocol_ctxt_t* const ctxt_pP,
uint8_t *buffer,
uint8_t Transaction_id,
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
SRB_ToAddModList_t *SRB_list,
DRB_ToAddModList_t *DRB_list,
DRB_ToReleaseList_t *DRB_list2,
struct SPS_Config *sps_Config,
struct PhysicalConfigDedicated *physicalConfigDedicated,
MeasObjectToAddModList_t *MeasObj_list,
ReportConfigToAddModList_t *ReportConfig_list,
QuantityConfig_t *quantityConfig,
MeasIdToAddModList_t *MeasId_list,
MAC_MainConfig_t *mac_MainConfig,
MeasGapConfig_t *measGapConfig,
MobilityControlInfo_t *mobilityInfo,
struct MeasConfig__speedStatePars *speedStatePars,
RSRP_Range_t *rsrp,
C_RNTI_t *cba_rnti,
struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList
*dedicatedInfoNASList,
#ifdef Rel14
SL_CommConfig_r12_t *sl_CommConfig,
SL_DiscConfig_r12_t *sl_DiscConfig
#endif
#if defined(Rel10) || defined(Rel14)
, SCellToAddMod_r10_t *SCell_config
=======
LTE_SRB_ToAddModList_t *SRB_list,
LTE_DRB_ToAddModList_t *DRB_list,
LTE_DRB_ToReleaseList_t *DRB_list2,
......@@ -2677,7 +2331,6 @@ do_RRCConnectionReconfiguration(
LTE_SL_DiscConfig_r12_t *sl_DiscConfig
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
, LTE_SCellToAddMod_r10_t *SCell_config
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
#endif
)
......@@ -2788,11 +2441,7 @@ do_RRCConnectionReconfiguration(
rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12 = CALLOC(1,
sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12));
memcpy((void*)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12, (void*)sl_CommConfig,
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
sizeof(SL_CommConfig_r12_t));
=======
sizeof(LTE_SL_CommConfig_r12_t));
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
}
//allocate dedicated resource pools for SL discovery (sl_DiscConfig)
......@@ -2811,18 +2460,11 @@ do_RRCConnectionReconfiguration(
rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_DiscConfig_r12 = CALLOC(1,
sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_DiscConfig_r12));
memcpy((void*)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_DiscConfig_r12, (void*)sl_DiscConfig,
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.c
sizeof(SL_DiscConfig_r12_t));
}
enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message,
=======
sizeof(LTE_SL_DiscConfig_r12_t));
}
enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_DL_DCCH_Message,
NULL,
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.c
(void*)&dl_dcch_msg,
buffer,
RRC_BUF_SIZE);
......
......@@ -38,14 +38,8 @@
#include <asn_application.h>
#include <asn_internal.h> /* for _ASN_DEFAULT_STACK_MAX */
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.h
#include "RRC/LITE/defs.h"
#include "SL-DestinationInfoList-r12.h"
=======
#include "RRC/LTE/rrc_defs.h"
#include "LTE_SL-DestinationInfoList-r12.h"
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.h
/*
* The variant of the above function which dumps the BASIC-XER (XER_F_BASIC)
......@@ -115,11 +109,7 @@ uint8_t do_RRCConnectionRequest(uint8_t Mod_id, uint8_t *buffer,uint8_t *rv);
@param discTxResourceReq Pointer to number of discovery messages for discovery announcements for which UE requests E-UTRAN to assign dedicated resources
@param mode Indicates different requests from upper layers
@returns Size of encoded bit stream in bytes*/
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.h
uint8_t do_SidelinkUEInformation(uint8_t Mod_id, uint8_t *buffer, SL_DestinationInfoList_r12_t *destinationInfoList, long *discTxResourceReq, SL_TRIGGER_t mode);
=======
uint8_t do_SidelinkUEInformation(uint8_t Mod_id, uint8_t *buffer, LTE_SL_DestinationInfoList_r12_t *destinationInfoList, long *discTxResourceReq, SL_TRIGGER_t mode);
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.h
/** \brief Generate an RRCConnectionSetupComplete UL-DCCH-Message (UE)
@param buffer Pointer to PER-encoded ASN.1 description of UL-DCCH-Message PDU
......@@ -189,28 +179,6 @@ do_RRCConnectionReconfiguration(
const protocol_ctxt_t* const ctxt_pP,
uint8_t *buffer,
uint8_t Transaction_id,
<<<<<<< HEAD:openair2/RRC/LITE/MESSAGES/asn1_msg.h
SRB_ToAddModList_t *SRB_list,
DRB_ToAddModList_t *DRB_list,
DRB_ToReleaseList_t *DRB_list2,
struct SPS_Config *sps_Config,
struct PhysicalConfigDedicated *physicalConfigDedicated,
MeasObjectToAddModList_t *MeasObj_list,
ReportConfigToAddModList_t *ReportConfig_list,
QuantityConfig_t *quantityConfig,
MeasIdToAddModList_t *MeasId_list,
MAC_MainConfig_t *mac_MainConfig,
MeasGapConfig_t *measGapConfig,
MobilityControlInfo_t *mobilityInfo,
struct MeasConfig__speedStatePars *speedStatePars,
RSRP_Range_t *rsrp,
C_RNTI_t *cba_rnti,
struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList* dedicatedInfoNASList,
SL_CommConfig_r12_t *sl_CommConfig,
SL_DiscConfig_r12_t *sl_DiscConfig
#if defined(Rel10) || defined(Rel14)
, SCellToAddMod_r10_t *SCell_config
=======
LTE_SRB_ToAddModList_t *SRB_list,
LTE_DRB_ToAddModList_t *DRB_list,
LTE_DRB_ToReleaseList_t *DRB_list2,
......@@ -231,7 +199,6 @@ do_RRCConnectionReconfiguration(
LTE_SL_DiscConfig_r12_t *sl_DiscConfig
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
, LTE_SCellToAddMod_r10_t *SCell_config
>>>>>>> main/develop:openair2/RRC/LTE/MESSAGES/asn1_msg.h
#endif
);
/**
......
......@@ -31,11 +31,10 @@
#define RRC_UE
#define RRC_UE_C
#define _GNU_SOURCE
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
#include <pthread.h>
=======
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
// Panos: Not sure if pthread.h is needed here
//#include <pthread.h>
#include "assertions.h"
#include "hashtable.h"
#include "asn1_conversions.h"
......@@ -86,8 +85,6 @@
#endif
#include "SIMULATION/TOOLS/sim.h" // for taus
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
#ifdef Rel14
#include "SL-Preconfiguration-r12.h"
......@@ -99,18 +96,13 @@ int slrb_id;
int send_ue_information = 0;
SL_UE_STATE_t On_Off_Net = UE_STATE_OFF_NETWORK;
#endif
=======
#include "openair2/LAYER2/MAC/mac_extern.h"
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
#include "LTE_SL-Preconfiguration-r12.h"
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
extern uint8_t nfapi_mode;
//#define XER_PRINT
=======
//for D2D
int ctrl_sock_fd;
#define BUFSIZE 1024
......@@ -118,7 +110,6 @@ struct sockaddr_in prose_app_addr;
int slrb_id;
int send_ue_information = 0;
#endif
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
// for malloc_clear
#include "PHY/defs_UE.h"
......@@ -168,11 +159,7 @@ static uint8_t check_trigger_meas_event(
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
static void decode_MBSFNAreaConfiguration(module_id_t module_idP, uint8_t eNB_index, frame_t frameP,uint8_t mbsfn_sync_area);
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
uint8_t rrc_ue_generate_SidelinkUEInformation( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,SL_DestinationInfoList_r12_t *destinationInfoList, long *discTxResourceReq, SL_TRIGGER_t mode);
=======
uint8_t rrc_ue_generate_SidelinkUEInformation( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,LTE_SL_DestinationInfoList_r12_t *destinationInfoList, long *discTxResourceReq, SL_TRIGGER_t mode);
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
#endif
......@@ -294,25 +281,6 @@ static void init_SI_UE( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_
UE_rrc_inst[ctxt_pP->module_id].sizeof_SIB1[eNB_index] = 0;
UE_rrc_inst[ctxt_pP->module_id].sizeof_SI[eNB_index] = 0;
UE_rrc_inst[ctxt_pP->module_id].SIB1[eNB_index] = (uint8_t*)malloc16_clear( 32 );
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType1_t) );
UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType2_t) );
UE_rrc_inst[ctxt_pP->module_id].sib3[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType3_t) );
UE_rrc_inst[ctxt_pP->module_id].sib4[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType4_t) );
UE_rrc_inst[ctxt_pP->module_id].sib5[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType5_t) );
UE_rrc_inst[ctxt_pP->module_id].sib6[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType6_t) );
UE_rrc_inst[ctxt_pP->module_id].sib7[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType7_t) );
UE_rrc_inst[ctxt_pP->module_id].sib8[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType8_t) );
UE_rrc_inst[ctxt_pP->module_id].sib9[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType9_t) );
UE_rrc_inst[ctxt_pP->module_id].sib10[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType10_t) );
UE_rrc_inst[ctxt_pP->module_id].sib11[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType11_t) );
#if defined(Rel10) || defined(Rel14)
UE_rrc_inst[ctxt_pP->module_id].sib12[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType12_r9_t) );
UE_rrc_inst[ctxt_pP->module_id].sib13[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType13_r9_t) );
UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType18_r12_t) );
UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType19_r12_t) );
UE_rrc_inst[ctxt_pP->module_id].sib21[eNB_index] = malloc16_clear( sizeof(SystemInformationBlockType21_r14_t) );
=======
UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index] = malloc16_clear( sizeof(LTE_SystemInformationBlockType1_t) );
UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index] = malloc16_clear( sizeof(LTE_SystemInformationBlockType2_t) );
UE_rrc_inst[ctxt_pP->module_id].sib3[eNB_index] = malloc16_clear( sizeof(LTE_SystemInformationBlockType3_t) );
......@@ -330,8 +298,6 @@ static void init_SI_UE( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_
UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index] = malloc16_clear( sizeof(LTE_SystemInformationBlockType18_r12_t) );
UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index] = malloc16_clear( sizeof(LTE_SystemInformationBlockType19_r12_t) );
UE_rrc_inst[ctxt_pP->module_id].sib21[eNB_index] = malloc16_clear( sizeof(LTE_SystemInformationBlockType21_r14_t) );
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
#endif
UE_rrc_inst[ctxt_pP->module_id].SI[eNB_index] = (uint8_t*)malloc16_clear( 64 );
......@@ -341,280 +307,96 @@ static void init_SI_UE( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_
UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIcnt = 0;
}
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
#ifdef Rel14
void init_SL_preconfig(UE_RRC_INST *UE, const uint8_t eNB_index )
{
LOG_I(RRC,"Initializing Sidelink Pre-configuration for UE\n");
// General
UE->SL_Preconfiguration[eNB_index] = malloc16_clear( sizeof(struct SL_Preconfiguration_r12) );
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.rohc_Profiles_r12.profile0x0001_r12 = true;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.carrierFreq_r12 = 3350;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.maxTxPower_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.additionalSpectrumEmission_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.sl_bandwidth_r12 = SL_PreconfigGeneral_r12__sl_bandwidth_r12_n50;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.tdd_ConfigSL_r12.subframeAssignmentSL_r12 = TDD_ConfigSL_r12__subframeAssignmentSL_r12_none;
// SYNC
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncCP_Len_r12 = SL_CP_Len_r12_normal;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncOffsetIndicator1_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncOffsetIndicator2_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncTxParameters_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncTxThreshOoC_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.filterCoefficient_r12 = FilterCoefficient_fc0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncRefMinHyst_r12 = SL_PreconfigSync_r12__syncRefMinHyst_r12_dB0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncRefDiffHyst_r12 = SL_PreconfigSync_r12__syncRefDiffHyst_r12_dB0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.ext1 = malloc16_clear(sizeof(struct SL_PreconfigSync_r12__ext1));
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.ext1->syncTxPeriodic_r13 = NULL;
// SL Control portion
struct SL_PreconfigCommPool_r12 *preconfigpool = malloc16_clear(sizeof(struct SL_PreconfigCommPool_r12));
preconfigpool->sc_CP_Len_r12 = SL_CP_Len_r12_normal;
preconfigpool->sc_Period_r12 = SL_PeriodComm_r12_sf320;
// 4 PRBs for SL-SC communications
preconfigpool->sc_TF_ResourceConfig_r12.prb_Num_r12 = 4;
preconfigpool->sc_TF_ResourceConfig_r12.prb_Start_r12 = 5;
preconfigpool->sc_TF_ResourceConfig_r12.prb_End_r12 = 44;
// Offset set to 0 subframes
preconfigpool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present = SL_OffsetIndicator_r12_PR_small_r12;
preconfigpool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = 0;
// 4 ms SL Period
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present = SubframeBitmapSL_r12_PR_bs4_r12;
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf = CALLOC(1,1);
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.size = 1;
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.bits_unused = 4;
// 1st 4 subframes for PSCCH
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[0] = 0x0F;
preconfigpool->sc_TxParameters_r12 = 0;
//SL Data portion
// 20 PRBs for SL communications
preconfigpool->data_TF_ResourceConfig_r12.prb_Num_r12 = 20;
preconfigpool->data_TF_ResourceConfig_r12.prb_Start_r12 = 5;
preconfigpool->data_TF_ResourceConfig_r12.prb_End_r12 = 44;
preconfigpool->data_CP_Len_r12 = SL_CP_Len_r12_normal;
preconfigpool->dataHoppingConfig_r12.hoppingParameter_r12 = 0;
preconfigpool->dataHoppingConfig_r12.numSubbands_r12 = SL_HoppingConfigComm_r12__numSubbands_r12_ns1;
preconfigpool->dataHoppingConfig_r12.rb_Offset_r12 = 0;
preconfigpool->dataTxParameters_r12 = 0;
ASN_SEQUENCE_ADD(&UE->SL_Preconfiguration[eNB_index]->preconfigComm_r12.list,preconfigpool);
// Discovery (Use Rel13 fields)
// Rel13 extensions
struct SL_Preconfiguration_r12__ext1 *ext1 = malloc16_clear(sizeof(struct SL_Preconfiguration_r12__ext1));
ext1->preconfigComm_v1310=NULL;
ext1->preconfigRelay_r13=NULL;
ext1->preconfigDisc_r13 = malloc16_clear(sizeof(struct SL_Preconfiguration_r12__ext1__preconfigDisc_r13));
SL_PreconfigDiscPool_r13_t *discrxpool = malloc16_clear(sizeof(struct SL_PreconfigDiscPool_r13));
UE->SL_Preconfiguration[eNB_index]->ext1=ext1;
discrxpool->cp_Len_r13 = SL_CP_Len_r12_normal;
discrxpool->discPeriod_r13 = SL_PreconfigDiscPool_r13__discPeriod_r13_rf128;
discrxpool->numRetx_r13 = 3;
discrxpool->numRepetition_r13 = 1;
discrxpool->tf_ResourceConfig_r13.prb_Num_r12 = 8;
discrxpool->tf_ResourceConfig_r13.prb_Start_r12 = 15;
discrxpool->tf_ResourceConfig_r13.prb_End_r12 = 34;
discrxpool->tf_ResourceConfig_r13.offsetIndicator_r12.present = SL_OffsetIndicator_r12_PR_small_r12;
discrxpool->tf_ResourceConfig_r13.offsetIndicator_r12.choice.small_r12 = 1;
discrxpool->tf_ResourceConfig_r13.subframeBitmap_r12.present = SubframeBitmapSL_r12_PR_bs16_r12;
discrxpool->tf_ResourceConfig_r13.subframeBitmap_r12.choice.bs16_r12.buf = CALLOC(1,2);
discrxpool->tf_ResourceConfig_r13.subframeBitmap_r12.choice.bs16_r12.buf[0] = 0xFF;
discrxpool->tf_ResourceConfig_r13.subframeBitmap_r12.choice.bs16_r12.buf[1] = 0xFF;
discrxpool->txParameters_r13 = malloc16_clear(sizeof(struct SL_PreconfigDiscPool_r13__txParameters_r13));
discrxpool->txParameters_r13->txParametersGeneral_r13 = 0;
discrxpool->txParameters_r13->txProbability_r13 = SL_PreconfigDiscPool_r13__txParameters_r13__txProbability_r13_p100;
ASN_SEQUENCE_ADD(&ext1->preconfigDisc_r13->discRxPoolList_r13.list,discrxpool);
UE->SL_Preconfiguration[eNB_index]->ext1 = ext1;
}
#endif
#if defined(Rel10) || defined(Rel14)
//-----------------------------------------------------------------------------
#if 0
void init_MCCH_UE(module_id_t ue_mod_idP, uint8_t eNB_index)
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
void init_SL_preconfig(UE_RRC_INST *UE, const uint8_t eNB_index )
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
{
LOG_I(RRC,"Initializing Sidelink Pre-configuration for UE\n");
UE->SL_Preconfiguration[eNB_index] = malloc16_clear( sizeof(struct LTE_SL_Preconfiguration_r12) );
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.rohc_Profiles_r12.profile0x0001_r12 = true;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.carrierFreq_r12 = 3350;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.maxTxPower_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.additionalSpectrumEmission_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.sl_bandwidth_r12 = LTE_SL_PreconfigGeneral_r12__sl_bandwidth_r12_n50;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.tdd_ConfigSL_r12.subframeAssignmentSL_r12 = LTE_TDD_ConfigSL_r12__subframeAssignmentSL_r12_none;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncCP_Len_r12 = LTE_SL_CP_Len_r12_normal;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncOffsetIndicator1_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncOffsetIndicator2_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncTxParameters_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncTxThreshOoC_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.filterCoefficient_r12 = LTE_FilterCoefficient_fc0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncRefMinHyst_r12 = LTE_SL_PreconfigSync_r12__syncRefMinHyst_r12_dB0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncRefDiffHyst_r12 = LTE_SL_PreconfigSync_r12__syncRefDiffHyst_r12_dB0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.ext1 = malloc16_clear(sizeof(struct LTE_SL_PreconfigSync_r12__ext1));
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.ext1->syncTxPeriodic_r13 = NULL;
struct LTE_SL_PreconfigCommPool_r12 *preconfigpool = malloc16_clear(sizeof(struct LTE_SL_PreconfigCommPool_r12));
preconfigpool->sc_CP_Len_r12 = LTE_SL_CP_Len_r12_normal;
preconfigpool->sc_Period_r12 = LTE_SL_PeriodComm_r12_sf40;
// 20 PRBs for SL communications
preconfigpool->sc_TF_ResourceConfig_r12.prb_Num_r12 = 20;
preconfigpool->sc_TF_ResourceConfig_r12.prb_Start_r12 = 5;
preconfigpool->sc_TF_ResourceConfig_r12.prb_End_r12 = 44;
// Offset set to 0 subframes
preconfigpool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present = LTE_SL_OffsetIndicator_r12_PR_small_r12;
preconfigpool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = 0;
// 40 ms SL Period
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present = LTE_SubframeBitmapSL_r12_PR_bs40_r12;
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf = CALLOC(1,5);
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.size = 5;
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.bits_unused = 0;
// 1st 4 subframes for PSCCH
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[0] = 0xF;
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[1] = 0;
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[2] = 0;
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[3] = 0;
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[4] = 0;
preconfigpool->sc_TxParameters_r12 = 0;
preconfigpool->data_CP_Len_r12 = LTE_SL_CP_Len_r12_normal;
// 20 PRBs for SL communications
preconfigpool->data_TF_ResourceConfig_r12.prb_Num_r12 = 20;
preconfigpool->data_TF_ResourceConfig_r12.prb_Start_r12 = 5;
preconfigpool->data_TF_ResourceConfig_r12.prb_End_r12 = 44;
// Offset set to 0 subframes
preconfigpool->data_TF_ResourceConfig_r12.offsetIndicator_r12.present = LTE_SL_OffsetIndicator_r12_PR_small_r12;
preconfigpool->data_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = 0;
// 40 ms SL Period
preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.present = LTE_SubframeBitmapSL_r12_PR_bs40_r12;
preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf = CALLOC(1,5);
preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.size = 5;
preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.bits_unused = 0;
// last 36 subframes for PSCCH
preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[0] = 0xF0;
preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[1] = 0xFF;
preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[2] = 0xFF;
preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[3] = 0xFF;
preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[5] = 0xFF;
preconfigpool->dataHoppingConfig_r12.hoppingParameter_r12 = 0;
preconfigpool->dataHoppingConfig_r12.numSubbands_r12 = LTE_SL_HoppingConfigComm_r12__numSubbands_r12_ns1;
preconfigpool->dataHoppingConfig_r12.rb_Offset_r12 = 0;
preconfigpool->dataTxParameters_r12 = 0;
ASN_SEQUENCE_ADD(&UE->SL_Preconfiguration[eNB_index]->preconfigComm_r12.list,preconfigpool);
// Rel13 extensions
UE->SL_Preconfiguration[eNB_index]->ext1 = NULL;
/*
// Establish a SLRB (using DRB 3 for now)
protocol_ctxt_t ctxt;
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, 0, ENB_FLAG_NO, 0x1234, 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 = 3;
UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long));
// allowed value 5..15, value : x+4
*(UE->DRB_config[0][0]->eps_BearerIdentity) = 3;
UE->DRB_config[0][0]->logicalChannelIdentity = CALLOC(1, sizeof(long));
*(UE->DRB_config[0][0]->logicalChannelIdentity) = UE->DRB_config[0][0]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2
// TTN - Establish a new SLRB for PC5-S (using DRB 10 for now)
UE->DRB_config[0][1] = CALLOC(1,sizeof(struct DRB_ToAddMod));
UE->DRB_config[0][1]->eps_BearerIdentity = CALLOC(1, sizeof(long));
UE->DRB_config[0][1]->drb_Identity = 10;
UE->DRB_config[0][1]->eps_BearerIdentity = CALLOC(1, sizeof(long));
// allowed value 5..15, value : x+4
*(UE->DRB_config[0][1]->eps_BearerIdentity) = 10;
UE->DRB_config[0][1]->logicalChannelIdentity = CALLOC(1, sizeof(long));
*(UE->DRB_config[0][1]->logicalChannelIdentity) = UE->DRB_config[0][1]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2
struct RLC_Config *DRB_rlc_config = CALLOC(1,sizeof(struct RLC_Config));
struct PDCP_Config *DRB_pdcp_config = CALLOC(1,sizeof(struct PDCP_Config));
struct PDCP_Config__rlc_UM *PDCP_rlc_UM = CALLOC(1,sizeof(struct PDCP_Config__rlc_UM));
struct LogicalChannelConfig *DRB_lchan_config = CALLOC(1,sizeof(struct LogicalChannelConfig));
struct LogicalChannelConfig__ul_SpecificParameters
*DRB_ul_SpecificParameters = CALLOC(1, sizeof(struct LogicalChannelConfig__ul_SpecificParameters));
long *logicalchannelgroup_drb = CALLOC(1, sizeof(long));
DRB_rlc_config->present = RLC_Config_PR_um_Bi_Directional;
DRB_rlc_config->choice.um_Bi_Directional.ul_UM_RLC.sn_FieldLength = SN_FieldLength_size10;
DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.sn_FieldLength = SN_FieldLength_size10;
DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = T_Reordering_ms35;
UE->DRB_config[0][0]->rlc_Config = DRB_rlc_config;
UE->DRB_config[0][1]->rlc_Config = DRB_rlc_config;
DRB_pdcp_config = CALLOC(1, sizeof(*DRB_pdcp_config));
UE->DRB_config[0][0]->pdcp_Config = DRB_pdcp_config;
UE->DRB_config[0][1]->pdcp_Config = DRB_pdcp_config;
DRB_pdcp_config->discardTimer = CALLOC(1, sizeof(long));
*DRB_pdcp_config->discardTimer = PDCP_Config__discardTimer_infinity;
DRB_pdcp_config->rlc_AM = NULL;
DRB_pdcp_config->rlc_UM = NULL;
// avoid gcc warnings
(void)PDCP_rlc_UM;
DRB_pdcp_config->rlc_UM = PDCP_rlc_UM;
PDCP_rlc_UM->pdcp_SN_Size = PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits;
DRB_pdcp_config->headerCompression.present = PDCP_Config__headerCompression_PR_notUsed;
UE->DRB_config[0][0]->logicalChannelConfig = DRB_lchan_config;
UE->DRB_config[0][1]->logicalChannelConfig = DRB_lchan_config;
DRB_ul_SpecificParameters = CALLOC(1, sizeof(*DRB_ul_SpecificParameters));
DRB_lchan_config->ul_SpecificParameters = DRB_ul_SpecificParameters;
DRB_ul_SpecificParameters->priority = 12; // lower priority than srb1, srb2 and other dedicated bearer
DRB_ul_SpecificParameters->prioritisedBitRate =LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8 ;
//LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity;
DRB_ul_SpecificParameters->bucketSizeDuration =
LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50;
// LCG for DTCH can take the value from 1 to 3 as defined in 36331: normally controlled by upper layers (like RRM)
*logicalchannelgroup_drb = 1;
DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb;
UE->DRB_configList = CALLOC(1,sizeof(DRB_ToAddModList_t));
ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][0]);
ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][1]);
rrc_pdcp_config_asn1_req(&ctxt,
(SRB_ToAddModList_t *) NULL,
UE->DRB_configList,
(DRB_ToReleaseList_t*) NULL,
0xff, NULL, NULL, NULL
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
, (LTE_PMCH_InfoList_r9_t *) NULL
#endif
,NULL);
rrc_rlc_config_asn1_req(&ctxt,
(SRB_ToAddModList_t*)NULL,
UE->DRB_configList,
(DRB_ToReleaseList_t*)NULL
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
,(LTE_PMCH_InfoList_r9_t *)NULL
#endif
);
*/
LOG_I(RRC,"Initializing Sidelink Pre-configuration for UE\n");
//General
UE->SL_Preconfiguration[eNB_index] = malloc16_clear( sizeof(struct LTE_SL_Preconfiguration_r12) );
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.rohc_Profiles_r12.profile0x0001_r12 = true;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.carrierFreq_r12 = 3350;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.maxTxPower_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.additionalSpectrumEmission_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.sl_bandwidth_r12 = LTE_SL_PreconfigGeneral_r12__sl_bandwidth_r12_n50;
UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.tdd_ConfigSL_r12.subframeAssignmentSL_r12 = LTE_TDD_ConfigSL_r12__subframeAssignmentSL_r12_none;
//SYNC
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncCP_Len_r12 = LTE_SL_CP_Len_r12_normal;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncOffsetIndicator1_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncOffsetIndicator2_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncTxParameters_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncTxThreshOoC_r12 = 0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.filterCoefficient_r12 = LTE_FilterCoefficient_fc0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncRefMinHyst_r12 = LTE_SL_PreconfigSync_r12__syncRefMinHyst_r12_dB0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncRefDiffHyst_r12 = LTE_SL_PreconfigSync_r12__syncRefDiffHyst_r12_dB0;
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.ext1 = malloc16_clear(sizeof(struct LTE_SL_PreconfigSync_r12__ext1));
UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.ext1->syncTxPeriodic_r13 = NULL;
struct LTE_SL_PreconfigCommPool_r12 *preconfigpool = malloc16_clear(sizeof(struct LTE_SL_PreconfigCommPool_r12));
preconfigpool->sc_CP_Len_r12 = LTE_SL_CP_Len_r12_normal;
preconfigpool->sc_Period_r12 = LTE_SL_PeriodComm_r12_sf40;
// 4 PRBs for SL communications
preconfigpool->sc_TF_ResourceConfig_r12.prb_Num_r12 = 4;
preconfigpool->sc_TF_ResourceConfig_r12.prb_Start_r12 = 5;
preconfigpool->sc_TF_ResourceConfig_r12.prb_End_r12 = 44;
// Offset set to 0 subframes
preconfigpool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present = LTE_SL_OffsetIndicator_r12_PR_small_r12;
preconfigpool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = 0;
// 4 ms SL Period
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present = LTE_SubframeBitmapSL_r12_PR_bs4_r12;
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf = CALLOC(1,1);
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.size = 1;
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.bits_unused = 4;
// 1st 4 subframes for PSCCH
preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[0] = 0x0F;
preconfigpool->sc_TxParameters_r12 = 0;
//SL Data portion
// 20 PRBs for SL communications
preconfigpool->data_TF_ResourceConfig_r12.prb_Num_r12 = 20;
preconfigpool->data_TF_ResourceConfig_r12.prb_Start_r12 = 5;
preconfigpool->data_TF_ResourceConfig_r12.prb_End_r12 = 44;
preconfigpool->data_CP_Len_r12 = LTE_SL_CP_Len_r12_normal;
preconfigpool->dataHoppingConfig_r12.hoppingParameter_r12 = 0;
preconfigpool->dataHoppingConfig_r12.numSubbands_r12 = LTE_SL_HoppingConfigComm_r12__numSubbands_r12_ns1;
preconfigpool->dataHoppingConfig_r12.rb_Offset_r12 = 0;
preconfigpool->dataTxParameters_r12 = 0;
ASN_SEQUENCE_ADD(&UE->SL_Preconfiguration[eNB_index]->preconfigComm_r12.list,preconfigpool);
// Discovery (Use Rel13 fields)
// Rel13 extensions
struct SL_Preconfiguration_r12__ext1 *ext1 = malloc16_clear(sizeof(struct SL_Preconfiguration_r12__ext1));
ext1->preconfigComm_v1310=NULL;
ext1->preconfigRelay_r13=NULL;
ext1->preconfigDisc_r13 = malloc16_clear(sizeof(struct SL_Preconfiguration_r12__ext1__preconfigDisc_r13));
SL_PreconfigDiscPool_r13_t *discrxpool = malloc16_clear(sizeof(struct SL_PreconfigDiscPool_r13));
UE->SL_Preconfiguration[eNB_index]->ext1=ext1;
discrxpool->cp_Len_r13 = SL_CP_Len_r12_normal;
discrxpool->discPeriod_r13 = SL_PreconfigDiscPool_r13__discPeriod_r13_rf128;
discrxpool->numRetx_r13 = 3;
discrxpool->numRepetition_r13 = 1;
discrxpool->tf_ResourceConfig_r13.prb_Num_r12 = 8;
discrxpool->tf_ResourceConfig_r13.prb_Start_r12 = 15;
discrxpool->tf_ResourceConfig_r13.prb_End_r12 = 34;
discrxpool->tf_ResourceConfig_r13.offsetIndicator_r12.present = SL_OffsetIndicator_r12_PR_small_r12;
discrxpool->tf_ResourceConfig_r13.offsetIndicator_r12.choice.small_r12 = 1;
discrxpool->tf_ResourceConfig_r13.subframeBitmap_r12.present = SubframeBitmapSL_r12_PR_bs16_r12;
discrxpool->tf_ResourceConfig_r13.subframeBitmap_r12.choice.bs16_r12.buf = CALLOC(1,2);
discrxpool->tf_ResourceConfig_r13.subframeBitmap_r12.choice.bs16_r12.buf[0] = 0xFF;
discrxpool->tf_ResourceConfig_r13.subframeBitmap_r12.choice.bs16_r12.buf[1] = 0xFF;
discrxpool->txParameters_r13 = malloc16_clear(sizeof(struct SL_PreconfigDiscPool_r13__txParameters_r13));
discrxpool->txParameters_r13->txParametersGeneral_r13 = 0;
discrxpool->txParameters_r13->txProbability_r13 = SL_PreconfigDiscPool_r13__txParameters_r13__txProbability_r13_p100;
ASN_SEQUENCE_ADD(&ext1->preconfigDisc_r13->discRxPoolList_r13.list,discrxpool);
UE->SL_Preconfiguration[eNB_index]->ext1 = ext1;
}
#endif
......@@ -909,12 +691,7 @@ int rrc_ue_decode_ccch( const protocol_ctxt_t* const ctxt_pP, const SRB_INFO* co
char message_string[10000];
size_t message_string_size;
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
//LOG_I(RRC, "Panos-D: rrc_ue_decode_ccch, Before xer_sprint() \n");
if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_DL_CCCH_Message, (void *)dl_ccch_msg)) > 0) {
=======
if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_LTE_DL_CCCH_Message, (void *)dl_ccch_msg)) > 0) {
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
MessageDef *msg_p;
msg_p = itti_alloc_new_message_sized (TASK_RRC_UE, RRC_DL_CCCH, message_string_size + sizeof (IttiMsgText));
......@@ -1219,9 +996,8 @@ rrc_ue_process_measConfig(
0,
0
#endif
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
#if defined(Rel14)
,
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0,
NULL,
NULL,
......@@ -1230,13 +1006,6 @@ rrc_ue_process_measConfig(
1025, // indicates that there is no update in the frame number
11, // /indicates that there isno update in the subframe number
NULL
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0,
NULL,
NULL
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
#endif
);
}
......@@ -1680,17 +1449,10 @@ rrc_ue_process_radioResourceConfigDedicated(
// Refresh SRBs
rrc_rlc_config_asn1_req(ctxt_pP,
radioResourceConfigDedicated->srb_ToAddModList,
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
(DRB_ToAddModList_t*)NULL,
(DRB_ToReleaseList_t*)NULL
#if defined(Rel10) || defined(Rel14)
,(PMCH_InfoList_r9_t *)NULL
=======
(LTE_DRB_ToAddModList_t*)NULL,
(LTE_DRB_ToReleaseList_t*)NULL
#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
,(LTE_PMCH_InfoList_r9_t *)NULL
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
, 0, 0
#endif
);
......@@ -1758,9 +1520,8 @@ rrc_ue_process_radioResourceConfigDedicated(
0,
0
#endif
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
#if defined(Rel14)
,
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0,
NULL,
NULL,
......@@ -1769,13 +1530,6 @@ rrc_ue_process_radioResourceConfigDedicated(
1025, // indicates that there is no update in the frame number
11, // /indicates that there isno update in the subframe number
NULL
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0,
NULL,
NULL
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
#endif
);
}
......@@ -1836,8 +1590,7 @@ rrc_ue_process_radioResourceConfigDedicated(
0,
0
#endif
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
#if defined(Rel14)
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0,
NULL,
......@@ -1847,13 +1600,6 @@ rrc_ue_process_radioResourceConfigDedicated(
1025, // indicates that there is no update in the frame number
11, // /indicates that there isno update in the subframe number
NULL
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0,
NULL,
NULL
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
#endif
);
}
......@@ -1909,15 +1655,9 @@ rrc_ue_process_radioResourceConfigDedicated(
rrc_rlc_config_asn1_req(ctxt_pP,
(LTE_SRB_ToAddModList_t*)NULL,
radioResourceConfigDedicated->drb_ToAddModList,
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
(DRB_ToReleaseList_t*)NULL
#if defined(Rel10) || defined(Rel14)
,(PMCH_InfoList_r9_t *)NULL
=======
(LTE_DRB_ToReleaseList_t*)NULL
#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
,(LTE_PMCH_InfoList_r9_t *)NULL
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
, 0, 0
#endif
);
......@@ -1969,8 +1709,7 @@ rrc_ue_process_radioResourceConfigDedicated(
UE_rrc_inst[ue_mod_idP].num_active_cba_groups, //
UE_rrc_inst[ue_mod_idP].cba_rnti[0]
#endif
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
#if defined(Rel14)
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0,
NULL,
......@@ -1980,13 +1719,6 @@ rrc_ue_process_radioResourceConfigDedicated(
1025, // indicates that there is no update in the frame number
11, // /indicates that there isno update in the subframe number
NULL
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0,
NULL,
NULL
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
#endif
);
......@@ -2075,17 +1807,10 @@ rrc_ue_process_securityModeCommand(
if (securityMode >= NO_SECURITY_MODE) {
LOG_I(RRC, "rrc_ue_process_securityModeCommand, security mode complete case \n");
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
ul_dcch_msg.message.choice.c1.present = UL_DCCH_MessageType__c1_PR_securityModeComplete;
} else {
LOG_I(RRC, "rrc_ue_process_securityModeCommand, security mode failure case \n");
ul_dcch_msg.message.choice.c1.present = UL_DCCH_MessageType__c1_PR_securityModeFailure;
=======
ul_dcch_msg.message.choice.c1.present = LTE_UL_DCCH_MessageType__c1_PR_securityModeComplete;
} else {
LOG_I(RRC, "rrc_ue_process_securityModeCommand, security mode failure case \n");
ul_dcch_msg.message.choice.c1.present = LTE_UL_DCCH_MessageType__c1_PR_securityModeFailure;
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
}
......@@ -2174,13 +1899,7 @@ rrc_ue_process_securityModeCommand(
{
char message_string[20000];
size_t message_string_size;
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
//LOG_I(RRC, "Panos-D: rrc_ue_process_securityModeCommand, Before xer_sprint() \n");
if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_UL_DCCH_Message, (void *) &ul_dcch_msg)) > 0) {
=======
if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_LTE_UL_DCCH_Message, (void *) &ul_dcch_msg)) > 0) {
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
MessageDef *msg_p;
msg_p = itti_alloc_new_message_sized (TASK_RRC_UE, RRC_UL_DCCH, message_string_size + sizeof (IttiMsgText));
......@@ -2259,11 +1978,7 @@ rrc_ue_process_ueCapabilityEnquiry(
"UECapabilityEnquiry->criticalExtensions.present (%d) != UECapabilityEnquiry__criticalExtensions_PR_c1 (%d)\n",
UECapabilityEnquiry->criticalExtensions.present,LTE_UECapabilityEnquiry__criticalExtensions_PR_c1);
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
if (UECapabilityEnquiry->criticalExtensions.choice.c1.present != UECapabilityEnquiry__criticalExtensions__c1_PR_ueCapabilityEnquiry_r8)
=======
if (UECapabilityEnquiry->criticalExtensions.choice.c1.present != LTE_UECapabilityEnquiry__criticalExtensions__c1_PR_ueCapabilityEnquiry_r8)
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
LOG_I(RRC,"UECapabilityEnquiry->criticalExtensions.choice.c1.present (%d) != UECapabilityEnquiry__criticalExtensions__c1_PR_ueCapabilityEnquiry_r8)\n",
UECapabilityEnquiry->criticalExtensions.choice.c1.present);
......@@ -2294,13 +2009,7 @@ rrc_ue_process_ueCapabilityEnquiry(
{
char message_string[20000];
size_t message_string_size;
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
//LOG_I(RRC, "Panos-D: rrc_ue_process_ueCapabilityEnquiry, Before xer_sprint() \n");
if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_UL_DCCH_Message, (void *) &ul_dcch_msg)) > 0) {
=======
if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_LTE_UL_DCCH_Message, (void *) &ul_dcch_msg)) > 0) {
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
MessageDef *msg_p;
msg_p = itti_alloc_new_message_sized (TASK_RRC_UE, RRC_UL_DCCH, message_string_size + sizeof (IttiMsgText));
......@@ -2386,26 +2095,15 @@ rrc_ue_process_rrcConnectionReconfiguration(
!= NULL)
&& (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12
!= NULL)) {
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
if (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12->commTxResources_r12->present != SL_CommConfig_r12__commTxResources_r12_PR_NOTHING){
On_Off_Net = UE_STATE_ON_NETWORK;
LOG_I(RRC,"sl-CommConfig is present, UE state: %d \n", On_Off_Net);
//process sl-CommConfig
rrc_ue_process_sidelink_radioResourceConfig(ctxt_pP->module_id,eNB_index,
(SystemInformationBlockType18_r12_t *)NULL,
(SystemInformationBlockType19_r12_t *)NULL,
rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12,
(SL_DiscConfig_r12_t *)NULL
=======
if (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12->commTxResources_r12->present != LTE_SL_CommConfig_r12__commTxResources_r12_PR_NOTHING){
LOG_I(RRC,"sl-CommConfig is present\n");
//process sl-CommConfig
rrc_ue_process_sidelink_radioResourceConfig(ctxt_pP->module_id,eNB_index,
(LTE_SystemInformationBlockType18_r12_t *)NULL,
(LTE_SystemInformationBlockType19_r12_t *)NULL,
rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12,
(LTE_SL_DiscConfig_r12_t *)NULL
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
if (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12->commTxResources_r12->present != LTE_SL_CommConfig_r12__commTxResources_r12_PR_NOTHING){
On_Off_Net = UE_STATE_ON_NETWORK;
LOG_I(RRC,"sl-CommConfig is present, UE state: %d \n", On_Off_Net);
//process sl-CommConfig
rrc_ue_process_sidelink_radioResourceConfig(ctxt_pP->module_id,eNB_index,
(LTE_SystemInformationBlockType18_r12_t *)NULL,
(LTE_SystemInformationBlockType19_r12_t *)NULL,
rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12,
(LTE_SL_DiscConfig_r12_t *)NULL
);
}
}
......@@ -2530,7 +2228,6 @@ rrc_ue_process_mobilityControlInfo(
}
*/
//Removing SRB1 and SRB2 and DRB0
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
LOG_N(RRC,"[UE %d] : Update needed for rrc_pdcp_config_req (deprecated) and rrc_rlc_config_req commands(deprecated)\n", ctxt_pP->module_id);
rrc_pdcp_config_req (ctxt_pP, SRB_FLAG_YES, CONFIG_ACTION_REMOVE, DCCH,UNDEF_SECURITY_MODE
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
......@@ -2568,15 +2265,6 @@ rrc_ue_process_mobilityControlInfo(
,0
#endif
);
=======
LOG_I(RRC,"[UE %d] : Update needed for rrc_pdcp_config_req (deprecated) and rrc_rlc_config_req commands(deprecated)\n", ctxt_pP->module_id);
rrc_pdcp_config_req (ctxt_pP, SRB_FLAG_YES, CONFIG_ACTION_REMOVE, DCCH,UNDEF_SECURITY_MODE);
rrc_rlc_config_req(ctxt_pP, SRB_FLAG_YES, MBMS_FLAG_NO, CONFIG_ACTION_REMOVE,ctxt_pP->module_id+DCCH,Rlc_info_am_config);
rrc_pdcp_config_req (ctxt_pP, SRB_FLAG_YES, CONFIG_ACTION_REMOVE, DCCH1,UNDEF_SECURITY_MODE);
rrc_rlc_config_req(ctxt_pP, SRB_FLAG_YES,CONFIG_ACTION_REMOVE, MBMS_FLAG_NO,ctxt_pP->module_id+DCCH1,Rlc_info_am_config);
rrc_pdcp_config_req (ctxt_pP, SRB_FLAG_NO, CONFIG_ACTION_REMOVE, DTCH,UNDEF_SECURITY_MODE);
rrc_rlc_config_req(ctxt_pP, SRB_FLAG_NO,CONFIG_ACTION_REMOVE, MBMS_FLAG_NO,ctxt_pP->module_id+DTCH,Rlc_info_um);
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
/*
rrc_pdcp_config_asn1_req(NB_eNB_INST+ue_mod_idP,frameP, 0,eNB_index,
NULL, // SRB_ToAddModList
......@@ -2656,8 +2344,7 @@ rrc_ue_process_mobilityControlInfo(
,0,
0
#endif
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
#if defined(Rel14)
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0,
NULL,
......@@ -2667,13 +2354,6 @@ rrc_ue_process_mobilityControlInfo(
1025, // indicates that there is no update in the frame number
11, // /indicates that there isno update in the subframe number
NULL
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0,
NULL,
NULL
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
#endif
);
......@@ -2759,12 +2439,7 @@ rrc_ue_decode_dcch(
char message_string[30000];
size_t message_string_size;
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
//LOG_I(RRC, "Panos-D: rrc_ue_decode_dcch, Before xer_sprint() \n");
if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_DL_DCCH_Message, (void *)dl_dcch_msg)) > 0) {
=======
if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_LTE_DL_DCCH_Message, (void *)dl_dcch_msg)) > 0) {
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
msg_p = itti_alloc_new_message_sized (TASK_RRC_UE, RRC_DL_DCCH, message_string_size + sizeof (IttiMsgText));
msg_p->ittiMsg.rrc_dl_dcch.size = message_string_size;
memcpy(&msg_p->ittiMsg.rrc_dl_dcch.text, message_string, message_string_size);
......@@ -2983,13 +2658,8 @@ rrc_ue_decode_dcch(
if (send_ue_information == 0) {
LOG_I(RRC, "TEST SidelinkUEInformation [UE %d] Received (eNB %d)\n",
ctxt_pP->module_id, eNB_indexP);
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
SL_DestinationInfoList_r12_t *destinationInfoList = CALLOC(1, sizeof(SL_DestinationInfoList_r12_t));
SL_DestinationIdentity_r12_t *sl_destination_identity = CALLOC(1, sizeof(SL_DestinationIdentity_r12_t));
=======
LTE_SL_DestinationInfoList_r12_t *destinationInfoList = CALLOC(1, sizeof(LTE_SL_DestinationInfoList_r12_t));
LTE_SL_DestinationIdentity_r12_t *sl_destination_identity = CALLOC(1, sizeof(LTE_SL_DestinationIdentity_r12_t));
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
sl_destination_identity->size = 3;
sl_destination_identity->buf = CALLOC(1,3);
sl_destination_identity->buf[0] = 0x00;
......@@ -3309,12 +2979,7 @@ int decode_BCCH_DLSCH_Message(
char message_string[15000];
size_t message_string_size;
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
//LOG_I(RRC, "Panos-D: decode_BCCH_DLSCH_Message, Before xer_sprint() \n");
if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_BCCH_DL_SCH_Message, (void *)bcch_message)) > 0) {
=======
if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_LTE_BCCH_DL_SCH_Message, (void *)bcch_message)) > 0) {
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
MessageDef *msg_p;
msg_p = itti_alloc_new_message_sized (TASK_RRC_UE, RRC_DL_BCCH, message_string_size + sizeof (IttiMsgText));
......@@ -3338,12 +3003,6 @@ int decode_BCCH_DLSCH_Message(
(void*)&bcch_message->message.choice.c1.choice.systemInformationBlockType1,
sizeof(LTE_SystemInformationBlockType1_t) );
LOG_D( RRC, "[UE %"PRIu8"] Decoding First SIB1\n", ctxt_pP->module_id );
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
//LOG_I( RRC, "Panos-D: decode_BCCH_DLSCH_Message1 BEFORE decode_SIB1");
//printf("Panos-D: decode_BCCH_DLSCH_Message1 BEFORE decode_SIB1");
=======
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
decode_SIB1( ctxt_pP, eNB_index, rsrq, rsrp );
}
}
......@@ -3362,11 +3021,6 @@ int decode_BCCH_DLSCH_Message(
LOG_I( RRC, "[UE %"PRIu8"] Decoding SI for frameP %"PRIu32"\n",
ctxt_pP->module_id,
ctxt_pP->frame );
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
//LOG_I( RRC, "Panos-D: decode_BCCH_DLSCH_Message1 BEFORE OTHER decode_SI");
//printf("Panos-D: decode_BCCH_DLSCH_Message1 BEFORE OTHER decode_SI");
=======
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
decode_SI( ctxt_pP, eNB_index );
//if (nfapi_mode == 3)
UE_mac_inst[ctxt_pP->module_id].SI_Decoded = 1;
......@@ -3575,8 +3229,7 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
0,
0
#endif
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
#if defined(Rel14)
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0,
NULL,
......@@ -3589,17 +3242,7 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
#endif
);
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0,
NULL,
NULL
#endif
);
LOG_I(RRC,"Setting SIStatus bit 0 to 1\n");
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus = 1;
UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIB1systemInfoValueTag = sib1->systemInfoValueTag;
......@@ -3677,11 +3320,7 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
//-----------------------------------------------------------------------------
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
void dump_sib2( SystemInformationBlockType2_t *sib2 )
=======
void dump_sib2( LTE_SystemInformationBlockType2_t *sib2 )
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
{
// ac_BarringInfo
if (sib2->ac_BarringInfo) {
......@@ -3925,11 +3564,7 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
}
//-----------------------------------------------------------------------------
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
void dump_sib3( SystemInformationBlockType3_t *sib3 )
=======
void dump_sib3( LTE_SystemInformationBlockType3_t *sib3 )
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
{
LOG_I( RRC, "Dumping SIB3 (see TS36.331 V8.21.0)\n" );
......@@ -4076,11 +3711,7 @@ uint64_t arfcn_to_freq(long arfcn) {
exit(1);
}
}
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
void dump_sib5( SystemInformationBlockType5_t *sib5 )
=======
void dump_sib5( LTE_SystemInformationBlockType5_t *sib5 )
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
{
LTE_InterFreqCarrierFreqList_t interFreqCarrierFreqList = sib5->interFreqCarrierFreqList;
int i,j;
......@@ -4172,13 +3803,8 @@ uint64_t arfcn_to_freq(long arfcn) {
}
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
#if defined(Rel10) || defined(Rel14)
void dump_sib13( SystemInformationBlockType13_r9_t *sib13 )
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
void dump_sib13( LTE_SystemInformationBlockType13_r9_t *sib13 )
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
{
LOG_I( RRC, "[UE] Dumping SIB13\n" );
LOG_I( RRC, "[UE] dumping sib13 second time\n" );
......@@ -4190,18 +3816,6 @@ uint64_t arfcn_to_freq(long arfcn) {
//TTN - SIB18
//-----------------------------------------------------------------------------
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
void dump_sib18(SystemInformationBlockType18_r12_t *sib18){
LOG_I( RRC, "[UE] Dumping SIB18\n" );
for (int i = 0; i < sib18->commConfig_r12->commRxPool_r12.list.count; i++) {
LOG_I(RRC, " Contents of SIB18 %d/%d \n", i+1, (int)sib18->commConfig_r12->commRxPool_r12.list.count);
LOG_I(RRC, " SIB18 rxPool_sc_CP_Len: %d \n", (int)sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_CP_Len_r12);
LOG_I(RRC, " SIB18 sc_Period_r12: %d \n", (int)sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_Period_r12);
LOG_I(RRC, " SIB18 data_CP_Len_r12: %d \n", (int)sib18->commConfig_r12->commRxPool_r12.list.array[i]->data_CP_Len_r12);
LOG_I(RRC, " SIB18 prb_Num_r12: %d \n", (int)sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_TF_ResourceConfig_r12.prb_Num_r12);
LOG_I(RRC, " SIB18 prb_Start_r12: %d \n", (int)sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_TF_ResourceConfig_r12.prb_Start_r12);
LOG_I(RRC, " SIB18 prb_End_r12: %d \n", (int)sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_TF_ResourceConfig_r12.prb_End_r12);
=======
void dump_sib18(LTE_SystemInformationBlockType18_r12_t *sib18){
LOG_I( RRC, "[UE] Dumping SIB18\n" );
for (int i = 0; i < sib18->commConfig_r12->commRxPool_r12.list.count; i++) {
......@@ -4212,45 +3826,12 @@ uint64_t arfcn_to_freq(long arfcn) {
LOG_I(RRC, " SIB18 prb_Num_r12: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_TF_ResourceConfig_r12.prb_Num_r12);
LOG_I(RRC, " SIB18 prb_Start_r12: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_TF_ResourceConfig_r12.prb_Start_r12);
LOG_I(RRC, " SIB18 prb_End_r12: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_TF_ResourceConfig_r12.prb_End_r12);
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
//to add more log
}
}
//TTN - SIB19
//-----------------------------------------------------------------------------
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
void dump_sib19(SystemInformationBlockType19_r12_t *sib19){
LOG_I( RRC, "[UE] Dumping SIB19\n" );
for (int i = 0; i < sib19->discConfig_r12->discRxPool_r12.list.count; i++) {
LOG_I(RRC, " Contents of SIB18 %d/%d \n", i+1, (int)sib19->discConfig_r12->discRxPool_r12.list.count);
LOG_I(RRC, " SIB19 cp_Len_r12: %d \n", (int)sib19->discConfig_r12->discRxPool_r12.list.array[i]->cp_Len_r12);
LOG_I(RRC, " SIB19 discPeriod_r12: %d \n", (int)sib19->discConfig_r12->discRxPool_r12.list.array[i]->discPeriod_r12);
LOG_I(RRC, " SIB19 numRetx_r12: %d \n", (int)sib19->discConfig_r12->discRxPool_r12.list.array[i]->numRetx_r12);
LOG_I(RRC, " SIB19 numRepetition_r12: %d \n", (int)sib19->discConfig_r12->discRxPool_r12.list.array[i]->numRepetition_r12);
LOG_I(RRC, " SIB19 prb_Num_r12: %d \n", (int)sib19->discConfig_r12->discRxPool_r12.list.array[i]->tf_ResourceConfig_r12.prb_Num_r12);
LOG_I(RRC, " SIB19 prb_Start_r12: %d \n", (int)sib19->discConfig_r12->discRxPool_r12.list.array[i]->tf_ResourceConfig_r12.prb_Start_r12);
LOG_I(RRC, " SIB19 prb_End_r12: %d \n", (int)sib19->discConfig_r12->discRxPool_r12.list.array[i]->tf_ResourceConfig_r12.prb_End_r12);
//to add more log
}
}
void dump_sib21(SystemInformationBlockType21_r14_t *sib21){
if ((sib21->sl_V2X_ConfigCommon_r14 != NULL) && (sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14 !=NULL) ){
for (int i = 0; i < sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.count; i++) {
LOG_I(RRC, " Contents of SIB21 %d/%d \n", i+1, sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.count);
LOG_I(RRC, " SIB21 sl_Subframe_r14: %d \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->sl_Subframe_r14.present);
LOG_I(RRC, " SIB21 adjacencyPSCCH_PSSCH_r14: %d \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->adjacencyPSCCH_PSSCH_r14);
LOG_I(RRC, " SIB21 sizeSubchannel_r14: %ld \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->sizeSubchannel_r14);
LOG_I(RRC, " SIB21 numSubchannel_r14: %ld \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->numSubchannel_r14);
LOG_I(RRC, " SIB21 startRB_Subchannel_r14: %ld \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->startRB_Subchannel_r14);
//to add more log
}
}
}
=======
void dump_sib19(LTE_SystemInformationBlockType19_r12_t *sib19){
LOG_I( RRC, "[UE] Dumping SIB19\n" );
for (int i = 0; i < sib19->discConfig_r12->discRxPool_r12.list.count; i++) {
......@@ -4280,61 +3861,36 @@ uint64_t arfcn_to_freq(long arfcn) {
}
}
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
#endif
//-----------------------------------------------------------------------------
int decode_SI( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index )
{
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
//LOG_D( RRC, "Panos-D: decode_SI 1 \n");
SystemInformation_t** si = &UE_rrc_inst[ctxt_pP->module_id].si[eNB_index];
=======
LTE_SystemInformation_t** si = &UE_rrc_inst[ctxt_pP->module_id].si[eNB_index];
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
int new_sib = 0;
LTE_SystemInformationBlockType1_t* sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index];
//LOG_D( RRC, "Panos-D: decode_SI 2 \n");
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_UE_DECODE_SI, VCD_FUNCTION_IN );
// Dump contents
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
if ((*si)->criticalExtensions.present == SystemInformation__criticalExtensions_PR_systemInformation_r8 ||
(*si)->criticalExtensions.present == SystemInformation__criticalExtensions_PR_criticalExtensionsFuture) {
=======
if ((*si)->criticalExtensions.present == LTE_SystemInformation__criticalExtensions_PR_systemInformation_r8 ||
#if (LTE_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
(*si)->criticalExtensions.present == LTE_SystemInformation__criticalExtensions_PR_criticalExtensionsFuture_r15) {
#else
(*si)->criticalExtensions.present == LTE_SystemInformation__criticalExtensions_PR_criticalExtensionsFuture) {
#endif
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
LOG_D( RRC, "[UE] (*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count %d\n",
(*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count );
} else {
//LOG_D( RRC, "Panos-D: decode_SI 2.3 \n");
LOG_D( RRC, "[UE] Unknown criticalExtension version (not Rel8)\n" );
return -1;
}
LOG_D( RRC, "Panos-D: decode_SI 3 \n");
for (int i=0; i<(*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count; i++) {
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
//LOG_I( RRC, "Panos-D: SI count %d\n", i );
struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *typeandinfo;
typeandinfo = (*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.array[i];
switch(typeandinfo->present) {
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2:
//LOG_D( RRC, "Panos-D: decode_SI 4 \n");
=======
struct LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member *typeandinfo;
typeandinfo = (*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.array[i];
switch(typeandinfo->present) {
case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2:
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&2) == 0) {
UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=2;
new_sib=1;
......@@ -4373,8 +3929,7 @@ uint64_t arfcn_to_freq(long arfcn) {
,0,
0
#endif
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
#if defined(Rel14)
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0,
NULL,
......@@ -4384,13 +3939,6 @@ uint64_t arfcn_to_freq(long arfcn) {
1025, // indicates that there is no update in the frame number
11, // /indicates that there isno update in the subframe number
NULL
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0,
NULL,
NULL
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
#endif
);
// After SI is received, prepare RRCConnectionRequest
......@@ -4436,12 +3984,7 @@ uint64_t arfcn_to_freq(long arfcn) {
}
break; // case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3:
//LOG_D( RRC, "Panos-D: decode_SI 5 \n");
=======
case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3:
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&4) == 0) {
UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=4;
new_sib=1;
......@@ -4466,12 +4009,7 @@ uint64_t arfcn_to_freq(long arfcn) {
if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&16) == 0) {
UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=16;
new_sib=1;
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
memcpy( UE_rrc_inst[ctxt_pP->module_id].sib5[eNB_index], &typeandinfo->choice.sib5, sizeof(SystemInformationBlockType5_t) );
=======
memcpy( UE_rrc_inst[ctxt_pP->module_id].sib5[eNB_index], &typeandinfo->choice.sib5, sizeof(LTE_SystemInformationBlockType5_t) );
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB5 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index );
dump_sib5(UE_rrc_inst[ctxt_pP->module_id].sib5[eNB_index]);
}
......@@ -4482,11 +4020,7 @@ uint64_t arfcn_to_freq(long arfcn) {
UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=32;
new_sib=1;
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
memcpy( UE_rrc_inst[ctxt_pP->module_id].sib6[eNB_index], &typeandinfo->choice.sib6, sizeof(SystemInformationBlockType6_t) );
=======
memcpy( UE_rrc_inst[ctxt_pP->module_id].sib6[eNB_index], &typeandinfo->choice.sib6, sizeof(LTE_SystemInformationBlockType6_t) );
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB6 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index );
}
break;
......@@ -4513,12 +4047,7 @@ uint64_t arfcn_to_freq(long arfcn) {
if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&256) == 0) {
UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=256;
new_sib=1;
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
memcpy( UE_rrc_inst[ctxt_pP->module_id].sib9[eNB_index], &typeandinfo->choice.sib9, sizeof(SystemInformationBlockType9_t) );
=======
memcpy( UE_rrc_inst[ctxt_pP->module_id].sib9[eNB_index], &typeandinfo->choice.sib9, sizeof(LTE_SystemInformationBlockType9_t) );
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB9 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index );
}
break;
......@@ -4553,20 +4082,12 @@ uint64_t arfcn_to_freq(long arfcn) {
}
break;
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920:
=======
case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920:
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&4096) == 0) {
UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=4096;
new_sib=1;
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
memcpy( UE_rrc_inst[ctxt_pP->module_id].sib13[eNB_index], &typeandinfo->choice.sib13_v920, sizeof(SystemInformationBlockType13_r9_t) );
=======
memcpy( UE_rrc_inst[ctxt_pP->module_id].sib13[eNB_index], &typeandinfo->choice.sib13_v920, sizeof(LTE_SystemInformationBlockType13_r9_t) );
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB13 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index );
dump_sib13( UE_rrc_inst[ctxt_pP->module_id].sib13[eNB_index] );
// adding here function to store necessary parameters for using in decode_MCCH_Message + maybe transfer to PHY layer
......@@ -4596,8 +4117,7 @@ uint64_t arfcn_to_freq(long arfcn) {
,0,
0
#endif
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
#if defined(Rel14)
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0,
NULL,
......@@ -4607,37 +4127,20 @@ uint64_t arfcn_to_freq(long arfcn) {
1025, // indicates that there is no update in the frame number
11, // /indicates that there isno update in the subframe number
NULL
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0,
NULL,
NULL
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
#endif
);
break;
}
#endif
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
#if defined(Rel10) || defined(Rel14)
//SIB18
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib18_v1250:
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
//SIB18
case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib18_v1250:
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&8192) == 0) {
UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=8192;
new_sib=1;
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
memcpy( UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index], &typeandinfo->choice.sib18_v1250, sizeof(SystemInformationBlockType18_r12_t) );
=======
memcpy( UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index], &typeandinfo->choice.sib18_v1250, sizeof(LTE_SystemInformationBlockType18_r12_t) );
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB18 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index );
dump_sib18( UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index] );
// adding here function to store necessary parameters to transfer to PHY layer
......@@ -4647,35 +4150,20 @@ uint64_t arfcn_to_freq(long arfcn) {
//process SIB18 to transfer SL-related parameters to PHY
rrc_ue_process_sidelink_radioResourceConfig(ctxt_pP->module_id,eNB_index,
UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index],
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
(SystemInformationBlockType19_r12_t *)NULL,
(SL_CommConfig_r12_t *)NULL,
(SL_DiscConfig_r12_t *)NULL
=======
(LTE_SystemInformationBlockType19_r12_t *)NULL,
(LTE_SL_CommConfig_r12_t *)NULL,
(LTE_SL_DiscConfig_r12_t *)NULL
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
);
}
break;
//SIB19
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib19_v1250:
=======
case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib19_v1250:
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&16384) == 0) {
UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=16384;
new_sib=1;
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
memcpy( UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index], &typeandinfo->choice.sib19_v1250, sizeof(SystemInformationBlockType19_r12_t) );
=======
memcpy( UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index], &typeandinfo->choice.sib19_v1250, sizeof(LTE_SystemInformationBlockType19_r12_t) );
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB19 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index );
dump_sib19( UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index] );
// adding here function to store necessary parameters to transfer to PHY layer
......@@ -4683,37 +4171,22 @@ uint64_t arfcn_to_freq(long arfcn) {
ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id);
//process SIB19 to transfer SL-related parameters to PHY
rrc_ue_process_sidelink_radioResourceConfig(ctxt_pP->module_id,eNB_index,
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
(SystemInformationBlockType18_r12_t *)NULL,
UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index],
(SL_CommConfig_r12_t *)NULL,
(SL_DiscConfig_r12_t *)NULL
=======
(LTE_SystemInformationBlockType18_r12_t *)NULL,
UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index],
(LTE_SL_CommConfig_r12_t *)NULL,
(LTE_SL_DiscConfig_r12_t *)NULL
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
);
}
break;
//SIB21
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib21_v1430:
=======
case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib21_v1430:
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&32768) == 0) {
UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=32768;
new_sib=1;
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
memcpy( UE_rrc_inst[ctxt_pP->module_id].sib21[eNB_index], &typeandinfo->choice.sib21_v1430, sizeof(SystemInformationBlockType21_r14_t) );
=======
memcpy( UE_rrc_inst[ctxt_pP->module_id].sib21[eNB_index], &typeandinfo->choice.sib21_v1430, sizeof(LTE_SystemInformationBlockType21_r14_t) );
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB21 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index );
dump_sib21( UE_rrc_inst[ctxt_pP->module_id].sib21[eNB_index] );
// adding here function to store necessary parameters to transfer to PHY layer
......@@ -4878,11 +4351,7 @@ void ue_meas_filtering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_
LOG_I(RRC, "[UE %d] Frame %d : Generating Measurement Report for eNB %d\n",
ctxt_pP->module_id, ctxt_pP->frame, eNB_index);
result = pdcp_data_req(ctxt_pP, SRB_FLAG_YES, DCCH, rrc_mui++, 0, size, buffer, PDCP_TRANSMISSION_MODE_DATA
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
#ifdef Rel14
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
,NULL, NULL
#endif
);
......@@ -5197,8 +4666,7 @@ int decode_MCCH_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB
0,
0
#endif
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
#if defined(Rel14)
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0,
NULL,
......@@ -5208,13 +4676,6 @@ int decode_MCCH_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB
1025, // indicates that there is no update in the frame number
11, // /indicates that there isno update in the subframe number
NULL
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
0,
NULL,
NULL
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
#endif
);
......@@ -5296,24 +4757,14 @@ void *rrc_ue_task( void *args_p )
break;
case RRC_MAC_OUT_OF_SYNC_IND:
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
//LOG_I(RRC, "In rrc_ue_task() received RRC_MAC_OUT_OF_SYNC_IND message through ITTI, UE RRC state: %d \n", rrc_get_state(ue_mod_id));
LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, msg_name,
=======
LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p),
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
RRC_MAC_OUT_OF_SYNC_IND (msg_p).frame, RRC_MAC_OUT_OF_SYNC_IND (msg_p).enb_index);
UE_rrc_inst[ue_mod_id].Info[RRC_MAC_OUT_OF_SYNC_IND (msg_p).enb_index].N310_cnt ++;
break;
case RRC_MAC_BCCH_DATA_IND:
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
//LOG_I(RRC, "In rrc_ue_task() received RRC_MAC_BCCH_DATA_IND message through ITTI, UE RRC state: %d \n", rrc_get_state(ue_mod_id));
LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, msg_name,
=======
LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p),
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
RRC_MAC_BCCH_DATA_IND (msg_p).frame, RRC_MAC_BCCH_DATA_IND (msg_p).enb_index);
// PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, NOT_A_RNTI, RRC_MAC_BCCH_DATA_IND (msg_p).frame, 0);
......@@ -5372,11 +4823,7 @@ void *rrc_ue_task( void *args_p )
/* //TTN (for D2D)
case RRC_MAC_SL_DISCOVERY_DATA_IND:
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, msg_name,
=======
LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p),
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).frame, RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).enb_index);
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, M_RNTI, RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).frame, 0,RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).enb_index);
//send to ProSeApp
......@@ -5438,11 +4885,7 @@ void *rrc_ue_task( void *args_p )
/* NAS messages */
case NAS_CELL_SELECTION_REQ:
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
LOG_I(RRC, "[UE %d] Received %s: state %d, plmnID (%d%d%d.%d%d%d), rat %x\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id),
=======
LOG_D(RRC, "[UE %d] Received %s: state %d, plmnID (%d%d%d.%d%d%d), rat %x\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id),
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit1,
NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit2,
NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit3,
......@@ -5795,27 +5238,15 @@ openair_rrc_top_init_ue(
UE_rrc_inst[module_id].UECap = UECap;
UE_rrc_inst[module_id].UECapability = UECap->sdu;
UE_rrc_inst[module_id].UECapability_size = UECap->sdu_size;
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
#if defined(Rel10) || defined(Rel14)
LOG_I(RRC,"[UE] eMBMS active state is %d \n", eMBMS_active);
=======
}
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
LOG_I(RRC,"[UE] eMBMS active state is %d \n", eMBMS_active);
for (module_id=0; module_id<NB_UE_INST; module_id++) {
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
UE_rrc_inst[module_id].MBMS_flag = (uint8_t)eMBMS_active;
#endif
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
#ifdef Rel14
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
init_SL_preconfig(&UE_rrc_inst[module_id],0);
rrc_mac_config_req_ue(module_id,
......@@ -5857,20 +5288,11 @@ openair_rrc_top_init_ue(
11, // /indicates that there isno update in the subframe number
NULL
#endif
#endif
);
#endif
}
=======
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
/* TODO: this is disabled for the moment because the standard UE
* crashes when calling this function.
*/
//init_SL_preconfig(&UE_rrc_inst[module_id],0);
#endif
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
} else {
UE_rrc_inst = NULL;
}
......@@ -5886,12 +5308,6 @@ rrc_top_cleanup_ue(
{
if (NB_UE_INST > 0) free (UE_rrc_inst);
<<<<<<< HEAD:openair2/RRC/LITE/rrc_UE.c
=======
>>>>>>> main/develop:openair2/RRC/LTE/rrc_UE.c
}
......
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