Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
openairinterface5G
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Merge Requests
16
Merge Requests
16
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
oai
openairinterface5G
Commits
fc5c876a
Commit
fc5c876a
authored
Mar 24, 2017
by
Cedric Roux
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/feature-228-rrc-rel14' into develop_integration_w12
parents
75aff99b
4fcb6272
Changes
47
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
47 changed files
with
12415 additions
and
294 deletions
+12415
-294
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+3
-1
cmake_targets/build_oai
cmake_targets/build_oai
+3
-2
cmake_targets/tools/fix_asn1
cmake_targets/tools/fix_asn1
+8
-0
cmake_targets/tools/fix_asn1.data/RRC.rel14/SystemInformation-r8-IEs.h.diff
...s/fix_asn1.data/RRC.rel14/SystemInformation-r8-IEs.h.diff
+23
-0
openair1/PHY/INIT/defs.h
openair1/PHY/INIT/defs.h
+2
-2
openair1/PHY/INIT/lte_init.c
openair1/PHY/INIT/lte_init.c
+1
-1
openair1/PHY/LTE_TRANSPORT/print_stats.c
openair1/PHY/LTE_TRANSPORT/print_stats.c
+1
-1
openair1/SCHED/defs.h
openair1/SCHED/defs.h
+1
-1
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+3
-3
openair1/SCHED/phy_procedures_lte_ue.c
openair1/SCHED/phy_procedures_lte_ue.c
+6
-6
openair2/COMMON/mac_rrc_primitives.h
openair2/COMMON/mac_rrc_primitives.h
+2
-2
openair2/COMMON/platform_constants.h
openair2/COMMON/platform_constants.h
+1
-1
openair2/COMMON/rrc_messages_types.h
openair2/COMMON/rrc_messages_types.h
+1
-1
openair2/ENB_APP/enb_app.c
openair2/ENB_APP/enb_app.c
+1
-1
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+25
-25
openair2/ENB_APP/enb_config.h
openair2/ENB_APP/enb_config.h
+1
-1
openair2/LAYER2/MAC/config.c
openair2/LAYER2/MAC/config.c
+9
-9
openair2/LAYER2/MAC/defs.h
openair2/LAYER2/MAC/defs.h
+7
-7
openair2/LAYER2/MAC/eNB_scheduler.c
openair2/LAYER2/MAC/eNB_scheduler.c
+3
-3
openair2/LAYER2/MAC/eNB_scheduler_mch.c
openair2/LAYER2/MAC/eNB_scheduler_mch.c
+3
-3
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
+1
-1
openair2/LAYER2/MAC/main.c
openair2/LAYER2/MAC/main.c
+4
-4
openair2/LAYER2/MAC/proto.h
openair2/LAYER2/MAC/proto.h
+3
-3
openair2/LAYER2/MAC/ra_procedures.c
openair2/LAYER2/MAC/ra_procedures.c
+11
-11
openair2/LAYER2/MAC/ue_procedures.c
openair2/LAYER2/MAC/ue_procedures.c
+26
-26
openair2/LAYER2/MAC/vars.h
openair2/LAYER2/MAC/vars.h
+1
-1
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
+7
-7
openair2/LAYER2/PDCP_v10.1.0/pdcp.h
openair2/LAYER2/PDCP_v10.1.0/pdcp.h
+4
-4
openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
+1
-1
openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c
openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c
+12
-0
openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c
openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c
+9
-1
openair2/LAYER2/RLC/rlc.c
openair2/LAYER2/RLC/rlc.c
+8
-8
openair2/LAYER2/RLC/rlc.h
openair2/LAYER2/RLC/rlc.h
+3
-3
openair2/LAYER2/RLC/rlc_rrc.c
openair2/LAYER2/RLC/rlc_rrc.c
+9
-9
openair2/PHY_INTERFACE/defs.h
openair2/PHY_INTERFACE/defs.h
+4
-4
openair2/RRC/LITE/L2_interface.c
openair2/RRC/LITE/L2_interface.c
+4
-4
openair2/RRC/LITE/MESSAGES/asn1_msg.c
openair2/RRC/LITE/MESSAGES/asn1_msg.c
+16
-16
openair2/RRC/LITE/MESSAGES/asn1_msg.h
openair2/RRC/LITE/MESSAGES/asn1_msg.h
+3
-3
openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/RRC-e10.asn
openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/RRC-e10.asn
+12010
-0
openair2/RRC/LITE/defs.h
openair2/RRC/LITE/defs.h
+60
-9
openair2/RRC/LITE/rrc_UE.c
openair2/RRC/LITE/rrc_UE.c
+50
-48
openair2/RRC/LITE/rrc_common.c
openair2/RRC/LITE/rrc_common.c
+2
-2
openair2/RRC/LITE/rrc_eNB.c
openair2/RRC/LITE/rrc_eNB.c
+49
-45
openair2/RRC/LITE/rrc_eNB_S1AP.c
openair2/RRC/LITE/rrc_eNB_S1AP.c
+7
-7
openair2/RRC/LITE/vars.h
openair2/RRC/LITE/vars.h
+3
-3
targets/SIMU/USER/oaisim.c
targets/SIMU/USER/oaisim.c
+1
-1
targets/SIMU/USER/oaisim_functions.c
targets/SIMU/USER/oaisim_functions.c
+3
-3
No files found.
cmake_targets/CMakeLists.txt
View file @
fc5c876a
...
...
@@ -283,8 +283,10 @@ if (${RRC_ASN1_VERSION} STREQUAL "Rel8")
set
(
RRC_GRAMMAR
${
OPENAIR2_DIR
}
/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn
)
elseif
(
${
RRC_ASN1_VERSION
}
STREQUAL
"CBA"
)
set
(
RRC_GRAMMAR
${
OPENAIR2_DIR
}
/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20-lola.asn
)
else
(
)
else
if
(
${
RRC_ASN1_VERSION
}
STREQUAL
"Rel10"
)
set
(
RRC_GRAMMAR
${
OPENAIR2_DIR
}
/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn
)
else
()
set
(
RRC_GRAMMAR
${
OPENAIR2_DIR
}
/RRC/LITE/MESSAGES/asn1c/ASN1_files/RRC-e10.asn
)
endif
(
${
RRC_ASN1_VERSION
}
STREQUAL
"Rel8"
)
set
(
RRC_FULL_DIR
${
asn1_generated_dir
}
/
${
RRC_ASN1_VERSION
}
)
...
...
cmake_targets/build_oai
View file @
fc5c876a
...
...
@@ -41,7 +41,7 @@ VCD_TIMING="False"
DEADLINE_SCHEDULER_FLAG_USER
=
"False"
FORCE_DEADLINE_SCHEDULER_FLAG_USER
=
""
CPU_AFFINITY_FLAG_USER
=
"False"
#Only valid when lowlatecy flag is set to False
REL
=
"Rel1
0
"
REL
=
"Rel1
4
"
HW
=
"None"
TP
=
"None"
NOS1
=
0
...
...
@@ -95,8 +95,9 @@ Options
-a | --agent
Enables agent for software-defined control of the eNB
-r | --3gpp-release
default is Rel1
0
,
default is Rel1
4
,
Rel8 limits the implementation to 3GPP Release 8 version
Rel10 limits the implementation to 3GPP Release 10 version
-w | --hardware
EXMIMO, USRP, BLADERF, ETHERNET, LMSSDR, None (Default)
Adds this RF board support (in external packages installation and in compilation)
...
...
cmake_targets/tools/fix_asn1
View file @
fc5c876a
...
...
@@ -3,6 +3,10 @@
# in those arrays, each line is:
# <file> <sha1sum of file (without line 4 which changes depending on the location of the files)> <patch to apply to file>
RRC_Rel14
=(
"SystemInformation-r8-IEs.h"
562e3c3aeb7c6d76d722f31bf24488a26e627f33
"fix_asn1.data/RRC.rel14/SystemInformation-r8-IEs.h.diff"
)
RRC_Rel10
=(
"SystemInformation-r8-IEs.h"
603cd6615cff36ec7020692d72c0d6de7c4859cb
"fix_asn1.data/RRC.rel10/SystemInformation-r8-IEs.h.diff"
)
...
...
@@ -87,6 +91,10 @@ function patch_rrc()
local
version
=
"
$2
"
case
"
$version
"
in
Rel14
)
echo
"patching RRC files release 14"
apply_patches
"
$directory
"
RRC_Rel14
${#
RRC_Rel14
[*]
}
;;
Rel10
)
echo
"patching RRC files release 10"
apply_patches
"
$directory
"
RRC_Rel10
${#
RRC_Rel10
[*]
}
...
...
cmake_targets/tools/fix_asn1.data/RRC.rel14/SystemInformation-r8-IEs.h.diff
0 → 100644
View file @
fc5c876a
73,77d72
< /* SystemInformation-r8-IEs */
< typedef struct SystemInformation_r8_IEs {
< struct SystemInformation_r8_IEs__sib_TypeAndInfo {
< A_SEQUENCE_OF(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member {
< SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR present;
103c98,102
< } choice;
---
> };
>
> struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member {
> SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR present;
> union SystemInformation_r8_IEs__sib_TypeAndInfo__Member_u choice;
107c106,111
< } ) list;
---
> };
>
> /* SystemInformation-r8-IEs */
> typedef struct SystemInformation_r8_IEs {
> struct SystemInformation_r8_IEs__sib_TypeAndInfo {
> A_SEQUENCE_OF(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member) list;
openair1/PHY/INIT/defs.h
View file @
fc5c876a
...
...
@@ -31,7 +31,7 @@
#include "TDD-Config.h"
#include "MBSFN-SubframeConfigList.h"
#include "MobilityControlInfo.h"
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
#include "SCellToAddMod-r10.h"
#endif
/** @addtogroup _PHY_STRUCTURES_
...
...
@@ -317,7 +317,7 @@ void lte_param_init(unsigned char N_tx_port_eNB,
uint8_t
osf
,
uint32_t
perfect_ce
);
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
void
phy_config_dedicated_scell_ue
(
uint8_t
Mod_id
,
uint8_t
eNB_index
,
SCellToAddMod_r10_t
*
sCellToAddMod_r10
,
...
...
openair1/PHY/INIT/lte_init.c
View file @
fc5c876a
...
...
@@ -707,7 +707,7 @@ void phy_config_dedicated_eNB(uint8_t Mod_id,
}
}
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
void
phy_config_dedicated_scell_ue
(
uint8_t
Mod_id
,
uint8_t
eNB_index
,
SCellToAddMod_r10_t
*
sCellToAddMod_r10
,
...
...
openair1/PHY/LTE_TRANSPORT/print_stats.c
View file @
fc5c876a
...
...
@@ -507,7 +507,7 @@ int dump_ue_stats(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc,char* buffer, int length
len
+=
sprintf
(
&
buffer
[
len
],
"[UE PROC] DLSCH Total %d, Error %d, FER %d
\n
"
,
ue
->
dlsch_received
[
0
],
ue
->
dlsch_errors
[
0
],
ue
->
dlsch_fer
[
0
]);
len
+=
sprintf
(
&
buffer
[
len
],
"[UE PROC] DLSCH (SI) Total %d, Error %d
\n
"
,
ue
->
dlsch_SI_received
[
0
],
ue
->
dlsch_SI_errors
[
0
]);
len
+=
sprintf
(
&
buffer
[
len
],
"[UE PROC] DLSCH (RA) Total %d, Error %d
\n
"
,
ue
->
dlsch_ra_received
[
0
],
ue
->
dlsch_ra_errors
[
0
]);
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
int
i
=
0
;
//len += sprintf(&buffer[len], "[UE PROC] MCH Total %d\n", ue->dlsch_mch_received[0]);
...
...
openair1/SCHED/defs.h
View file @
fc5c876a
...
...
@@ -104,7 +104,7 @@ void phy_procedures_eNB_lte(uint8_t subframe,PHY_VARS_eNB **phy_vars_eNB,uint8_t
*/
void
phy_procedures_UE_lte
(
PHY_VARS_UE
*
phy_vars_ue
,
UE_rxtx_proc_t
*
proc
,
uint8_t
eNB_id
,
uint8_t
abstraction_flag
,
runmode_t
mode
,
relaying_type_t
r_type
,
PHY_VARS_RN
*
phy_vars_rn
);
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
/*! \brief Top-level entry routine for relay node procedures when acting as eNB. This proc will make us of the existing eNB procs.
@param last_slot Index of last slot (0-19)
@param next_slot Index of next_slot (0-19)
...
...
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
fc5c876a
...
...
@@ -407,7 +407,7 @@ DCI_PDU DCI_pdu_tmp;
void
pmch_procedures
(
PHY_VARS_eNB
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
PHY_VARS_RN
*
rn
,
relaying_type_t
r_type
)
{
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
MCH_PDU
*
mch_pduP
;
MCH_PDU
mch_pdu
;
// uint8_t sync_area=255;
...
...
@@ -423,7 +423,7 @@ void pmch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,PHY_VARS_RN *rn,rel
subframe
<<
1
,
1
);
}
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
// if mcch is active, send regardless of the node type: eNB or RN
// when mcch is active, MAC sched does not allow MCCH and MTCH multiplexing
mch_pduP
=
mac_xface
->
get_mch_sdu
(
eNB
->
Mod_id
,
...
...
@@ -3499,7 +3499,7 @@ void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,const
#undef DEBUG_PHY_PROC
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
int
phy_procedures_RN_eNB_TX
(
unsigned
char
last_slot
,
unsigned
char
next_slot
,
relaying_type_t
r_type
)
{
...
...
openair1/SCHED/phy_procedures_lte_ue.c
View file @
fc5c876a
...
...
@@ -3010,7 +3010,7 @@ void ue_pmch_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc,int eNB_id,int abs
LOG_D
(
PHY
,
"[UE %d] Frame %d, subframe %d: Querying for PMCH demodulation
\n
"
,
ue
->
Mod_id
,(
subframe_rx
==
9
?-
1
:
0
)
+
frame_rx
,
subframe_rx
);
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
pmch_mcs
=
mac_xface
->
ue_query_mch
(
ue
->
Mod_id
,
CC_id
,
frame_rx
,
...
...
@@ -3108,7 +3108,7 @@ void ue_pmch_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc,int eNB_id,int abs
if
(
subframe_rx
==
9
)
mac_xface
->
macphy_exit
(
"Why are we exiting here?"
);
}
else
{
// decoding successful
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
if
(
mcch_active
==
1
)
{
mac_xface
->
ue_send_mch_sdu
(
ue
->
Mod_id
,
...
...
@@ -3130,7 +3130,7 @@ void ue_pmch_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc,int eNB_id,int abs
}
#endif // Rel10
#endif // Rel10
|| Rel14
}
// decoding sucessful
}
// pmch_mcs>=0
}
// is_pmch_subframe=true
...
...
@@ -4032,7 +4032,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
return
(
0
);
}
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
int
phy_procedures_RN_UE_RX
(
uint8_t
slot_rx
,
uint8_t
next_slot
,
relaying_type_t
r_type
)
{
...
...
@@ -4128,7 +4128,7 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u
if
((
subframe_select
(
&
ue
->
frame_parms
,
subframe_rx
)
==
SF_DL
)
||
(
ue
->
frame_parms
.
frame_type
==
FDD
))
{
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
if
(
phy_procedures_RN_UE_RX
(
subframe_rx
,
subframe_tx
,
r_type
)
!=
0
)
#endif
...
...
@@ -4142,7 +4142,7 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u
if
((
subframe_select
(
&
ue
->
frame_parms
,
subframe_rx
)
==
SF_S
)
&&
(
slot
==
0
))
{
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
if
(
phy_procedures_RN_UE_RX
(
subframe_rx
,
subframe_tx
,
r_type
)
!=
0
)
#endif
...
...
openair2/COMMON/mac_rrc_primitives.h
View file @
fc5c876a
...
...
@@ -33,7 +33,7 @@
#include "RadioResourceConfigCommonSIB.h"
#include "RadioResourceConfigDedicated.h"
#include "MeasGapConfig.h"
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
#include "MBSFN-AreaInfoList-r9.h"
#include "MBSFN-SubframeConfigList.h"
#endif
...
...
@@ -380,7 +380,7 @@ typedef struct {
TDD_Config_t
*
tdd_Config
,
uint8_t
*
SIwindowsize
,
uint16_t
*
SIperiod
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
,
MBMS_flag_t
MBMS_Flag
,
struct
MBSFN_SubframeConfigList
*
mbsfn_SubframeConfigList
,
...
...
openair2/COMMON/platform_constants.h
View file @
fc5c876a
...
...
@@ -86,7 +86,7 @@
#define DEFAULT_RAB_ID 1
#define NB_RB_MAX (maxDRB + 3)
/* was 11, now 14, maxDRB comes from asn1_constants.h, + 3 because of 3 SRB, one invisible id 0, then id 1 and 2 */
#if defined(Rel10)
#if defined(Rel10)
|| defined(Rel14)
#define NB_RB_MBMS_MAX (maxSessionPerPMCH*maxServiceCount)
#else
// Do not allocate unused memory
...
...
openair2/COMMON/rrc_messages_types.h
View file @
fc5c876a
...
...
@@ -122,7 +122,7 @@ typedef struct RrcConfigurationReq_s {
long
pucch_delta_shift
[
MAX_NUM_CCs
];
long
pucch_nRB_CQI
[
MAX_NUM_CCs
];
long
pucch_nCS_AN
[
MAX_NUM_CCs
];
#if
ndef Rel10
#if
!defined(Rel10) && !defined(Rel14)
long
pucch_n1_AN
[
MAX_NUM_CCs
];
#endif
long
pdsch_referenceSignalPower
[
MAX_NUM_CCs
];
...
...
openair2/ENB_APP/enb_app.c
View file @
fc5c876a
...
...
@@ -151,7 +151,7 @@ static void configure_rrc(uint32_t enb_id, const Enb_properties_array_t *enb_pro
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_delta_shift
[
CC_id
]
=
enb_properties
->
properties
[
enb_id
]
->
pucch_delta_shift
[
CC_id
];
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_nRB_CQI
[
CC_id
]
=
enb_properties
->
properties
[
enb_id
]
->
pucch_nRB_CQI
[
CC_id
];
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_nCS_AN
[
CC_id
]
=
enb_properties
->
properties
[
enb_id
]
->
pucch_nCS_AN
[
CC_id
];
#if
ndef Rel10
#if
!defined(Rel10) && !defined(Rel14)
RRC_CONFIGURATION_REQ
(
msg_p
).
pucch_n1_AN
[
CC_id
]
=
enb_properties
->
properties
[
enb_id
]
->
pucch_n1_AN
[
CC_id
];
#endif
...
...
openair2/ENB_APP/enb_config.c
View file @
fc5c876a
...
...
@@ -115,7 +115,7 @@
#define ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT "pucch_delta_shift"
#define ENB_CONFIG_STRING_PUCCH_NRB_CQI "pucch_nRB_CQI"
#define ENB_CONFIG_STRING_PUCCH_NCS_AN "pucch_nCS_AN"
#if
ndef Rel10
#if
!defined(Rel10) && !defined(Rel14)
#define ENB_CONFIG_STRING_PUCCH_N1_AN "pucch_n1_AN"
#endif
#define ENB_CONFIG_STRING_PDSCH_RS_EPRE "pdsch_referenceSignalPower"
...
...
@@ -418,7 +418,7 @@ void enb_config_display(void)
printf
(
"
\t
pucch_delta_shift for CC %d:
\t
%ld:
\n
"
,
j
,
enb_properties
.
properties
[
i
]
->
pucch_delta_shift
[
j
]);
printf
(
"
\t
pucch_nRB_CQI for CC %d:
\t
%ld:
\n
"
,
j
,
enb_properties
.
properties
[
i
]
->
pucch_nRB_CQI
[
j
]);
printf
(
"
\t
pucch_nCS_AN for CC %d:
\t
%ld:
\n
"
,
j
,
enb_properties
.
properties
[
i
]
->
pucch_nCS_AN
[
j
]);
#if
ndef Rel10
#if
!defined(Rel10) && !defined(Rel14)
printf
(
"
\t
pucch_n1_AN for CC %d:
\t
%ld:
\n
"
,
j
,
enb_properties
.
properties
[
i
]
->
pucch_n1_AN
[
j
]);
#endif
...
...
@@ -589,7 +589,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
libconfig_int
pucch_delta_shift
=
0
;
libconfig_int
pucch_nRB_CQI
=
0
;
libconfig_int
pucch_nCS_AN
=
0
;
#if
ndef Rel10
#if
!defined(Rel10) && !defined(Rel14)
libconfig_int
pucch_n1_AN
=
0
;
#endif
libconfig_int
pdsch_referenceSignalPower
=
0
;
...
...
@@ -868,7 +868,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
&&
config_setting_lookup_int
(
component_carrier
,
ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT
,
&
pucch_delta_shift
)
&&
config_setting_lookup_int
(
component_carrier
,
ENB_CONFIG_STRING_PUCCH_NRB_CQI
,
&
pucch_nRB_CQI
)
&&
config_setting_lookup_int
(
component_carrier
,
ENB_CONFIG_STRING_PUCCH_NCS_AN
,
&
pucch_nCS_AN
)
#if
ndef Rel10
#if
!defined(Rel10) && !defined(Rel14)
&&
config_setting_lookup_int
(
component_carrier
,
ENB_CONFIG_STRING_PUCCH_N1_AN
,
&
pucch_n1_AN
)
#endif
&&
config_setting_lookup_int
(
component_carrier
,
ENB_CONFIG_STRING_PDSCH_RS_EPRE
,
&
pdsch_referenceSignalPower
)
...
...
@@ -913,7 +913,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
&&
config_setting_lookup_int
(
component_carrier
,
ENB_CONFIG_STRING_UETIMERS_N311
,
&
ue_TimersAndConstants_n311
)
&&
config_setting_lookup_int
(
component_carrier
,
ENB_CONFIG_STRING_UE_TRANSMISSION_MODE
,
&
ue_TransmissionMode
)
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
#endif
))
{
...
...
@@ -1162,7 +1162,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pucch_nCS_AN choice: 0..7!
\n
"
,
lib_config_file_name_pP
,
i
,
pucch_nCS_AN
);
#if
ndef Rel10
#if
!defined(Rel10) && !defined(Rel14)
enb_properties
.
properties
[
enb_properties_index
]
->
pucch_n1_AN
[
j
]
=
pucch_n1_AN
;
if
((
pucch_n1_AN
<
0
)
||
(
pucch_n1_AN
>
2047
))
...
...
@@ -1347,21 +1347,21 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
lib_config_file_name_pP
,
i
,
pusch_p0_Nominal
);
if
(
strcmp
(
pusch_alpha
,
"AL0"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_alpha
[
j
]
=
UplinkPowerControlCommon__alpha
_al0
;
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_alpha
[
j
]
=
Alpha_r12
_al0
;
}
else
if
(
strcmp
(
pusch_alpha
,
"AL04"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_alpha
[
j
]
=
UplinkPowerControlCommon__alpha
_al04
;
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_alpha
[
j
]
=
Alpha_r12
_al04
;
}
else
if
(
strcmp
(
pusch_alpha
,
"AL05"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_alpha
[
j
]
=
UplinkPowerControlCommon__alpha
_al05
;
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_alpha
[
j
]
=
Alpha_r12
_al05
;
}
else
if
(
strcmp
(
pusch_alpha
,
"AL06"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_alpha
[
j
]
=
UplinkPowerControlCommon__alpha
_al06
;
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_alpha
[
j
]
=
Alpha_r12
_al06
;
}
else
if
(
strcmp
(
pusch_alpha
,
"AL07"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_alpha
[
j
]
=
UplinkPowerControlCommon__alpha
_al07
;
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_alpha
[
j
]
=
Alpha_r12
_al07
;
}
else
if
(
strcmp
(
pusch_alpha
,
"AL08"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_alpha
[
j
]
=
UplinkPowerControlCommon__alpha
_al08
;
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_alpha
[
j
]
=
Alpha_r12
_al08
;
}
else
if
(
strcmp
(
pusch_alpha
,
"AL09"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_alpha
[
j
]
=
UplinkPowerControlCommon__alpha_al09
;
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_alpha
[
j
]
=
Alpha_r12_al08
;
}
else
if
(
strcmp
(
pusch_alpha
,
"AL1"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_alpha
[
j
]
=
UplinkPowerControlCommon__alpha
_al1
;
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_alpha
[
j
]
=
Alpha_r12
_al1
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!
\n
"
,
...
...
@@ -1553,47 +1553,47 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
switch
(
rach_preambleTransMax
)
{
case
3
:
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
RACH_ConfigCommon__ra_SupervisionInfo__p
reambleTransMax_n3
;
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
P
reambleTransMax_n3
;
break
;
case
4
:
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
RACH_ConfigCommon__ra_SupervisionInfo__p
reambleTransMax_n4
;
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
P
reambleTransMax_n4
;
break
;
case
5
:
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
RACH_ConfigCommon__ra_SupervisionInfo__p
reambleTransMax_n5
;
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
P
reambleTransMax_n5
;
break
;
case
6
:
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
RACH_ConfigCommon__ra_SupervisionInfo__p
reambleTransMax_n6
;
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
P
reambleTransMax_n6
;
break
;
case
7
:
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
RACH_ConfigCommon__ra_SupervisionInfo__p
reambleTransMax_n7
;
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
P
reambleTransMax_n7
;
break
;
case
8
:
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
RACH_ConfigCommon__ra_SupervisionInfo__p
reambleTransMax_n8
;
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
P
reambleTransMax_n8
;
break
;
case
10
:
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
RACH_ConfigCommon__ra_SupervisionInfo__p
reambleTransMax_n10
;
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
P
reambleTransMax_n10
;
break
;
case
20
:
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
RACH_ConfigCommon__ra_SupervisionInfo__p
reambleTransMax_n20
;
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
P
reambleTransMax_n20
;
break
;
case
50
:
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
RACH_ConfigCommon__ra_SupervisionInfo__p
reambleTransMax_n50
;
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
P
reambleTransMax_n50
;
break
;
case
100
:
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
RACH_ConfigCommon__ra_SupervisionInfo__p
reambleTransMax_n100
;
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
P
reambleTransMax_n100
;
break
;
case
200
:
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
RACH_ConfigCommon__ra_SupervisionInfo__p
reambleTransMax_n200
;
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleTransMax
[
j
]
=
P
reambleTransMax_n200
;
break
;
default:
...
...
openair2/ENB_APP/enb_config.h
View file @
fc5c876a
...
...
@@ -154,7 +154,7 @@ typedef struct Enb_properties_s {
long
pucch_delta_shift
[
1
+
MAX_NUM_CCs
];
long
pucch_nRB_CQI
[
1
+
MAX_NUM_CCs
];
long
pucch_nCS_AN
[
1
+
MAX_NUM_CCs
];
#if
ndef Rel10
#if
!defined(Rel10) && !defined(Rel14)
long
pucch_n1_AN
[
1
+
MAX_NUM_CCs
];
#endif
long
pdsch_referenceSignalPower
[
1
+
MAX_NUM_CCs
];
...
...
openair2/LAYER2/MAC/config.c
View file @
fc5c876a
...
...
@@ -42,7 +42,7 @@
#include "extern.h"
#include "UTIL/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h"
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
#include "MBSFN-AreaInfoList-r9.h"
#include "MBSFN-AreaInfo-r9.h"
#include "MBSFN-SubframeConfigList.h"
...
...
@@ -93,7 +93,7 @@ rrc_mac_config_req(
uint8_t
eNB_index
,
RadioResourceConfigCommonSIB_t
*
radioResourceConfigCommon
,
struct
PhysicalConfigDedicated
*
physicalConfigDedicated
,
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
SCellToAddMod_r10_t
*
sCellToAddMod_r10
,
//struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10,
#endif
...
...
@@ -110,7 +110,7 @@ rrc_mac_config_req(
long
*
ul_Bandwidth
,
AdditionalSpectrumEmission_t
*
additionalSpectrumEmission
,
struct
MBSFN_SubframeConfigList
*
mbsfn_SubframeConfigList
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
,
uint8_t
MBMS_Flag
,
MBSFN_AreaInfoList_r9_t
*
mbsfn_AreaInfoList
,
PMCH_InfoList_r9_t
*
pmch_InfoList
...
...
@@ -217,7 +217,7 @@ rrc_mac_config_req(
if
(
mac_MainConfig
->
ul_SCH_Config
->
periodicBSR_Timer
)
{
UE_mac_inst
[
Mod_idP
].
scheduling_info
.
periodicBSR_Timer
=
(
uint16_t
)
*
mac_MainConfig
->
ul_SCH_Config
->
periodicBSR_Timer
;
}
else
{
UE_mac_inst
[
Mod_idP
].
scheduling_info
.
periodicBSR_Timer
=
(
uint16_t
)
MAC_MainConfig__ul_SCH_Config__periodicBSR_Timer
_infinity
;
UE_mac_inst
[
Mod_idP
].
scheduling_info
.
periodicBSR_Timer
=
(
uint16_t
)
PeriodicBSR_Timer_r12
_infinity
;
}
if
(
mac_MainConfig
->
ul_SCH_Config
->
maxHARQ_Tx
)
{
...
...
@@ -230,11 +230,11 @@ rrc_mac_config_req(
if
(
mac_MainConfig
->
ul_SCH_Config
->
retxBSR_Timer
)
{
UE_mac_inst
[
Mod_idP
].
scheduling_info
.
retxBSR_Timer
=
(
uint16_t
)
mac_MainConfig
->
ul_SCH_Config
->
retxBSR_Timer
;
}
else
{
UE_mac_inst
[
Mod_idP
].
scheduling_info
.
retxBSR_Timer
=
(
uint16_t
)
MAC_MainConfig__ul_SCH_Config__retxBSR_Timer
_sf2560
;
UE_mac_inst
[
Mod_idP
].
scheduling_info
.
retxBSR_Timer
=
(
uint16_t
)
RetxBSR_Timer_r12
_sf2560
;
}
}
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
if
(
mac_MainConfig
->
ext1
&&
mac_MainConfig
->
ext1
->
sr_ProhibitTimer_r9
)
{
UE_mac_inst
[
Mod_idP
].
scheduling_info
.
sr_ProhibitTimer
=
(
uint16_t
)
*
mac_MainConfig
->
ext1
->
sr_ProhibitTimer_r9
;
...
...
@@ -310,7 +310,7 @@ rrc_mac_config_req(
}
}
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
if
(
sCellToAddMod_r10
!=
NULL
)
{
...
...
@@ -449,7 +449,7 @@ rrc_mac_config_req(
eNB_mac_inst
[
Mod_idP
].
common_channels
[
0
].
mbsfn_SubframeConfig
[
i
]
->
subframeAllocation
.
choice
.
oneFrame
.
buf
[
0
]);
}
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
eNB_mac_inst
[
Mod_idP
].
common_channels
[
0
].
MBMS_flag
=
MBMS_Flag
;
#endif
}
else
{
// UE
...
...
@@ -465,7 +465,7 @@ rrc_mac_config_req(
}
}
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
if
(
mbsfn_AreaInfoList
!=
NULL
)
{
if
(
eNB_flagP
==
1
)
{
...
...
openair2/LAYER2/MAC/defs.h
View file @
fc5c876a
...
...
@@ -57,7 +57,7 @@
#include "RACH-ConfigCommon.h"
#include "MeasObjectToAddModList.h"
#include "MobilityControlInfo.h"
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
#include "MBSFN-AreaInfoList-r9.h"
#include "MBSFN-SubframeConfigList.h"
#include "PMCH-InfoList-r9.h"
...
...
@@ -80,7 +80,7 @@
#define SCH_PAYLOAD_SIZE_MAX 4096
/// Logical channel ids from 36-311 (Note BCCH is not specified in 36-311, uses the same as first DRB)
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
// Mask for identifying subframe for MBMS
#define MBSFN_TDD_SF3 0x80// for TDD
...
...
@@ -276,7 +276,7 @@ typedef struct {
uint8_t
payload
[
PCCH_PAYLOAD_SIZE_MAX
]
;
}
__attribute__
((
__packed__
))
PCCH_PDU
;
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
/*! \brief MCCH payload */
typedef
struct
{
uint8_t
payload
[
MCCH_PAYLOAD_SIZE_MAX
]
;
...
...
@@ -327,7 +327,7 @@ typedef struct {
/*!\brief LCID of padding LCID for DLSCH */
#define SHORT_PADDING 31
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
// MCH LCHAN IDs (table6.2.1-4 TS36.321)
/*!\brief LCID of MCCH for DL */
#define MCCH_LCHANID 0
...
...
@@ -889,7 +889,7 @@ typedef struct {
struct
MBSFN_SubframeConfig
*
mbsfn_SubframeConfig
[
8
];
/// number of subframe allocation pattern available for MBSFN sync area
uint8_t
num_sf_allocation_pattern
;
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
/// MBMS Flag
uint8_t
MBMS_flag
;
/// Outgoing MCCH pdu for PHY
...
...
@@ -1058,7 +1058,7 @@ typedef struct {
struct
RACH_ConfigDedicated
*
rach_ConfigDedicated
;
/// pointer to RRC PHY configuration
struct
PhysicalConfigDedicated
*
physicalConfigDedicated
;
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
/// pointer to RRC PHY configuration SCEll
struct
PhysicalConfigDedicatedSCell_r10
*
physicalConfigDedicatedSCell_r10
;
#endif
...
...
@@ -1132,7 +1132,7 @@ typedef struct {
struct
MBSFN_SubframeConfig
*
mbsfn_SubframeConfig
[
8
];
// FIXME replace 8 by MAX_MBSFN_AREA?
/// number of subframe allocation pattern available for MBSFN sync area
uint8_t
num_sf_allocation_pattern
;
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
/// number of active MBSFN area
uint8_t
num_active_mbsfn_area
;
/// MBSFN Area Info
...
...
openair2/LAYER2/MAC/eNB_scheduler.c
View file @
fc5c876a
...
...
@@ -127,7 +127,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
DCI_pdu
[
CC_id
]
->
Num_common_dci
=
0
;
DCI_pdu
[
CC_id
]
->
Num_ue_spec_dci
=
0
;
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
eNB_mac_inst
[
module_idP
].
common_channels
[
CC_id
].
mcch_active
=
0
;
#endif
eNB_mac_inst
[
module_idP
].
frame
=
frameP
;
...
...
@@ -305,7 +305,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
// TODO process CCCH data req.
break
;
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
case
RRC_MAC_MCCH_DATA_REQ
:
LOG_D
(
MAC
,
"Received %s from %s: instance %d, frameP %d, eNB_index %d, mbsfn_sync_area %d
\n
"
,
...
...
@@ -346,7 +346,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
0
,
// eNB index, unused in eNB
CC_id
);
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
if
(
eNB_mac_inst
[
module_idP
].
common_channels
[
CC_id
].
MBMS_flag
>
0
)
{
...
...
openair2/LAYER2/MAC/eNB_scheduler_mch.c
View file @
fc5c876a
...
...
@@ -61,7 +61,7 @@
#define DEBUG_eNB_SCHEDULER 1
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
int8_t
get_mbsfn_sf_alloction
(
module_id_t
module_idP
,
uint8_t
CC_id
,
uint8_t
mbsfn_sync_area
)
{
// currently there is one-to-one mapping between sf allocation pattern and sync area
...
...
@@ -466,7 +466,7 @@ int schedule_MBMS(module_id_t module_idP, uint8_t CC_id, frame_t frameP, sub_fra
}
TBS
=
mac_xface
->
get_TBS_DL
(
eNB_mac_inst
[
module_idP
].
common_channels
[
CC_id
].
MCH_pdu
.
mcs
,
mac_xface
->
frame_parms
->
N_RB_DL
);
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
// do not let mcch and mtch multiplexing when relaying is active
// for sync area 1, so not transmit data
//if ((i == 0) && ((eNB_mac_inst[module_idP].MBMS_flag != multicast_relay) || (eNB_mac_inst[module_idP].mcch_active==0))) {
...
...
@@ -538,7 +538,7 @@ int schedule_MBMS(module_id_t module_idP, uint8_t CC_id, frame_t frameP, sub_fra
}
}
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
// }
#endif
...
...
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
View file @
fc5c876a
...
...
@@ -525,7 +525,7 @@ void swap_UEs(UE_list_t *listP,int nodeiP, int nodejP, int ul_flag)
/*
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
unsigned char generate_mch_header( unsigned char *mac_header,
unsigned char num_sdus,
unsigned short *sdu_lengths,
...
...
openair2/LAYER2/MAC/main.c
View file @
fc5c876a
...
...
@@ -181,7 +181,7 @@ int mac_top_init(int eMBMS_active, char *uecap_xer, uint8_t cba_group_active, ui
#ifdef PHY_EMUL
Mac_rlc_xface
->
Is_cluster_head
[
Mod_id
]
=
2
;
//0: MR, 1: CH, 2: not CH neither MR
#endif
/*#if
def Rel10
/*#if
defined(Rel10) || defined(Rel14)
int n;
for (n=0;n<4096;n++)
eNB_mac_inst[Mod_id].MCH_pdu.payload[n] = taus();
...
...
@@ -479,7 +479,7 @@ int l2_init(LTE_DL_FRAME_PARMS *frame_parms,int eMBMS_active, char *uecap_xer,ui
mac_xface
->
ue_decode_si
=
ue_decode_si
;
mac_xface
->
ue_decode_p
=
ue_decode_p
;
mac_xface
->
ue_send_sdu
=
ue_send_sdu
;
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
mac_xface
->
ue_send_mch_sdu
=
ue_send_mch_sdu
;
mac_xface
->
ue_query_mch
=
ue_query_mch
;
#endif
...
...
@@ -517,7 +517,7 @@ int l2_init(LTE_DL_FRAME_PARMS *frame_parms,int eMBMS_active, char *uecap_xer,ui
mac_xface
->
phy_config_sib2_eNB
=
phy_config_sib2_eNB
;
mac_xface
->
phy_config_sib2_ue
=
phy_config_sib2_ue
;
mac_xface
->
phy_config_afterHO_ue
=
phy_config_afterHO_ue
;
#if
def Rel10
#if
defined(Rel10) || defined(Rel14)
mac_xface
->
phy_config_sib13_eNB
=
phy_config_sib13_eNB
;
mac_xface
->
phy_config_sib13_ue
=
phy_config_sib13_ue
;
#endif
...
...
@@ -542,7 +542,7 @@ int l2_init(LTE_DL_FRAME_PARMS *frame_parms,int eMBMS_active, char *uecap_xer,ui
mac_xface
->
get_prach_prb_offset
=
get_prach_prb_offset
;
mac_xface
->
is_prach_subframe
=
is_prach_subframe
;
#if
def Rel10