Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
oai
openairinterface5G
Commits
fc5c876a
Commit
fc5c876a
authored
Mar 24, 2017
by
Cédric Roux
Browse files
Merge remote-tracking branch 'origin/feature-228-rrc-rel14' into develop_integration_w12
parents
75aff99b
4fcb6272
Changes
47
Hide whitespace changes
Inline
Side-by-side
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"
#ifdef
Rel10
#if
def
ined(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
);
#ifdef
Rel10
#if
def
ined(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,
}
}
#ifdef
Rel10
#if
def
ined(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
]);
#ifdef
Rel10
#if
def
ined(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
);
#ifdef
Rel10
#if
def
ined(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
)
{
#ifdef
Rel10
#if
def
ined(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
);
}
#ifdef
Rel10
#if
def
ined(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
#ifdef
Rel10
#if
def
ined(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
);
#ifdef
Rel10
#if
def
ined(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
#ifdef
Rel10
#if
def
ined(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
);
}
#ifdef
Rel10
#if
def
ined(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
))
{
#ifdef
Rel10
#if
def
ined(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
))
{
#ifdef
Rel10
#if
def
ined(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"
#ifdef
Rel10
#if
def
ined(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
#ifdef
Rel10
#if
def
ined(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
Rel1
0
#if
!defined(Rel10) && !defined(
Rel1
4)
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
Rel1
0
#if
!defined(Rel10) && !defined(
Rel1
4)
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
Rel1
0
#if
!defined(Rel10) && !defined(
Rel1
4)
#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
Rel1
0
#if
!defined(Rel10) && !defined(
Rel1
4)
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
Rel1
0
#if
!defined(Rel10) && !defined(
Rel1
4)
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
Rel1
0
#if
!defined(Rel10) && !defined(
Rel1
4)
&&
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
)
#ifdef
Rel10
#if
def
ined(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
Rel1
0
#if
!defined(Rel10) && !defined(
Rel1
4)
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__a
lpha_al0
9
;
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_alpha
[
j
]
=
A
lpha_
r12_
al0
8
;
}
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
Rel1
0
#if
!defined(Rel10) && !defined(
Rel1
4)
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"
#ifdef
Rel10
#if
def
ined(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
,
#ifdef
Rel10
#if
def
ined(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
#ifdef
Rel10
#if
def
ined(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__p
eriodicBSR_Timer_infinity
;
UE_mac_inst
[
Mod_idP
].
scheduling_info
.
periodicBSR_Timer
=
(
uint16_t
)
P
eriodicBSR_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__r
etxBSR_Timer_sf2560
;
UE_mac_inst
[
Mod_idP
].
scheduling_info
.
retxBSR_Timer
=
(
uint16_t
)
R
etxBSR_Timer_
r12_
sf2560
;
}
}
#ifdef
Rel10
#if
def
ined(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(
}
}
#ifdef
Rel10
#if
def
ined(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
]);
}
#ifdef
Rel10
#if
def
ined(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(
}
}
#ifdef
Rel10
#if
def
ined(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"
#ifdef
Rel10
#if
def
ined(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)
#ifdef
Rel10
#if
def
ined(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
;
#ifdef
Rel10
#if
def
ined(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
#ifdef
Rel10
#if
def
ined(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
;
#ifdef
Rel10
#if
def
ined(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
;
#ifdef
Rel10
#if
def
ined(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
;
#ifdef
Rel10
#if
def
ined(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
;
#ifdef
Rel10
#if
def
ined(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
;
#ifdef
Rel10
#if
def
ined(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
);
#ifdef
Rel10
#if
def
ined(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
#ifdef
Rel10
#if
def
ined(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
);
#ifdef
Rel10
#if
def
ined(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
}
}
#ifdef
Rel10
#if
def
ined(Rel10) || defined(Rel14)
// }
#endif
...
...
Prev
1
2
3
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment