Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
spbro
OpenXG-RAN
Commits
7900864f
Commit
7900864f
authored
Nov 19, 2018
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
testing after integration of eMTC
parent
55ed97eb
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
92 additions
and
121 deletions
+92
-121
openair2/LAYER2/MAC/config.c
openair2/LAYER2/MAC/config.c
+51
-78
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+1
-1
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
+4
-4
openair2/LAYER2/MAC/mac.h
openair2/LAYER2/MAC/mac.h
+34
-38
openair2/RRC/LTE/MESSAGES/asn1_msg.c
openair2/RRC/LTE/MESSAGES/asn1_msg.c
+2
-0
No files found.
openair2/LAYER2/MAC/config.c
View file @
7900864f
...
@@ -727,55 +727,54 @@ config_dedicated_scell(int Mod_idP,
...
@@ -727,55 +727,54 @@ config_dedicated_scell(int Mod_idP,
}
}
int
int
rrc_mac_config_req_eNB
(
module_id_t
Mod_idP
,
rrc_mac_config_req_eNB
(
module_id_t
Mod_idP
,
int
CC_idP
,
int
CC_idP
,
int
physCellId
,
int
physCellId
,
int
p_eNB
,
int
p_eNB
,
int
Ncp
,
int
eutra_band
,
uint32_t
dl_CarrierFreq
,
int
Ncp
,
int
eutra_band
,
uint32_t
dl_CarrierFreq
,
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
int
pbch_repetition
,
int
pbch_repetition
,
#endif
#endif
rnti_t
rntiP
,
rnti_t
rntiP
,
LTE_BCCH_BCH_Message_t
*
mib
,
LTE_BCCH_BCH_Message_t
*
mib
,
LTE_RadioResourceConfigCommonSIB_t
*
LTE_RadioResourceConfigCommonSIB_t
*
radioResourceConfigCommon
,
radioResourceConfigCommon
,
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
LTE_RadioResourceConfigCommonSIB_t
*
LTE_RadioResourceConfigCommonSIB_t
*
radioResourceConfigCommon_BR
,
radioResourceConfigCommon_BR
,
#endif
#endif
struct
LTE_PhysicalConfigDedicated
struct
LTE_PhysicalConfigDedicated
*
physicalConfigDedicated
,
*
physicalConfigDedicated
,
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
LTE_SCellToAddMod_r10_t
*
sCellToAddMod_r10
,
LTE_SCellToAddMod_r10_t
*
sCellToAddMod_r10
,
//struct LTE_PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10,
//struct LTE_PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10,
#endif
#endif
LTE_MeasObjectToAddMod_t
**
measObj
,
LTE_MeasObjectToAddMod_t
**
measObj
,
LTE_MAC_MainConfig_t
*
mac_MainConfig
,
LTE_MAC_MainConfig_t
*
mac_MainConfig
,
long
logicalChannelIdentity
,
long
logicalChannelIdentity
,
LTE_LogicalChannelConfig_t
*
logicalChannelConfig
,
LTE_LogicalChannelConfig_t
*
logicalChannelConfig
,
LTE_MeasGapConfig_t
*
measGapConfig
,
LTE_MeasGapConfig_t
*
measGapConfig
,
LTE_TDD_Config_t
*
tdd_Config
,
LTE_TDD_Config_t
*
tdd_Config
,
LTE_MobilityControlInfo_t
*
mobilityControlInfo
,
LTE_MobilityControlInfo_t
*
mobilityControlInfo
,
LTE_SchedulingInfoList_t
*
schedulingInfoList
,
LTE_SchedulingInfoList_t
*
schedulingInfoList
,
uint32_t
ul_CarrierFreq
,
uint32_t
ul_CarrierFreq
,
long
*
ul_Bandwidth
,
long
*
ul_Bandwidth
,
LTE_AdditionalSpectrumEmission_t
*
LTE_AdditionalSpectrumEmission_t
*
additionalSpectrumEmission
,
additionalSpectrumEmission
,
struct
LTE_MBSFN_SubframeConfigList
struct
LTE_MBSFN_SubframeConfigList
*
mbsfn_SubframeConfigList
*
mbsfn_SubframeConfigList
#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
,
uint8_t
MBMS_Flag
,
,
uint8_t
MBMS_Flag
,
LTE_MBSFN_AreaInfoList_r9_t
*
mbsfn_AreaInfoList
,
LTE_MBSFN_AreaInfoList_r9_t
*
mbsfn_AreaInfoList
,
LTE_PMCH_InfoList_r9_t
*
pmch_InfoList
LTE_PMCH_InfoList_r9_t
*
pmch_InfoList
#endif
#endif
#if (LTE_RRC_VERSION >= MAKE_VERSION(13, 0, 0))
#if (LTE_RRC_VERSION >= MAKE_VERSION(13, 0, 0))
,
,
LTE_SystemInformationBlockType1_v1310_IEs_t
*
LTE_SystemInformationBlockType1_v1310_IEs_t
*
sib1_v13ext
sib1_v13ext
#endif
#endif
)
{
)
{
int
i
;
int
i
;
int
UE_id
=
-
1
;
int
UE_id
=
-
1
;
...
@@ -897,36 +896,18 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP,
...
@@ -897,36 +896,18 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP,
if
(
logicalChannelConfig
!=
NULL
)
{
// check for eMTC specific things
if
(
logicalChannelConfig
!=
NULL
)
{
// check for eMTC specific things
UE_id
=
find_UE_id
(
Mod_idP
,
rntiP
);
UE_id
=
find_UE_id
(
Mod_idP
,
rntiP
);
if
(
UE_id
==
-
1
)
{
AssertFatal
(
UE_id
>=
0
,
"Configuration received for unknown UE (%x), shouldn't happen
\n
"
,
rntiP
);
LOG_E
(
MAC
,
"%s:%d:%s: ERROR, UE_id == -1
\n
"
,
__FILE__
,
if
(
logicalChannelConfig
)
{
__LINE__
,
__FUNCTION__
);
UE_list
->
UE_template
[
CC_idP
][
UE_id
].
lcgidmap
[
logicalChannelIdentity
]
=
*
logicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelGroup
;
}
else
{
UE_list
->
UE_template
[
CC_idP
][
UE_id
].
lcgidpriority
[
logicalChannelIdentity
]
=
logicalChannelConfig
->
ul_SpecificParameters
->
priority
;
if
(
logicalChannelConfig
)
{
}
else
UE_list
->
UE_template
[
CC_idP
][
UE_id
].
lcgidmap
[
logicalChannelIdentity
]
=
0
;
UE_list
->
UE_template
[
CC_idP
][
UE_id
].
lcgidmap
[
logicalChannelIdentity
]
=
*
logicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelGroup
;
UE_list
->
UE_template
[
CC_idP
][
UE_id
].
lcgidpriority
[
logicalChannelIdentity
]
=
logicalChannelConfig
->
ul_SpecificParameters
->
priority
;
}
else
UE_list
->
UE_template
[
CC_idP
][
UE_id
].
lcgidmap
[
logicalChannelIdentity
]
=
0
;
}
}
}
if
(
physicalConfigDedicated
!=
NULL
)
{
if
(
physicalConfigDedicated
!=
NULL
)
{
UE_id
=
find_UE_id
(
Mod_idP
,
rntiP
);
UE_id
=
find_UE_id
(
Mod_idP
,
rntiP
);
AssertFatal
(
UE_id
>=
0
,
"Configuration received for unknown UE (%x), shouldn't happen
\n
"
,
rntiP
);
if
(
UE_id
==
-
1
)
UE_list
->
UE_template
[
CC_idP
][
UE_id
].
physicalConfigDedicated
=
physicalConfigDedicated
;
LOG_E
(
MAC
,
"%s:%d:%s: ERROR, UE_id == -1
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
LOG_I
(
MAC
,
"Added physicalConfigDedicated %p for %d.%d
\n
"
,
physicalConfigDedicated
,
CC_idP
,
UE_id
);
else
UE_list
->
UE_template
[
CC_idP
][
UE_id
].
physicalConfigDedicated
=
physicalConfigDedicated
;
}
}
...
@@ -934,27 +915,19 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP,
...
@@ -934,27 +915,19 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP,
if
(
sCellToAddMod_r10
!=
NULL
)
{
if
(
sCellToAddMod_r10
!=
NULL
)
{
UE_id
=
find_UE_id
(
Mod_idP
,
rntiP
);
UE_id
=
find_UE_id
(
Mod_idP
,
rntiP
);
if
(
UE_id
==
-
1
)
AssertFatal
(
UE_id
>=
0
,
"Configuration received for unknown UE (%x), shouldn't happen
\n
"
,
rntiP
);
LOG_E
(
MAC
,
"%s:%d:%s: ERROR, UE_id == -1
\n
"
,
__FILE__
,
config_dedicated_scell
(
Mod_idP
,
rntiP
,
sCellToAddMod_r10
);
__LINE__
,
__FUNCTION__
);
else
config_dedicated_scell
(
Mod_idP
,
rntiP
,
sCellToAddMod_r10
);
}
}
#endif
#endif
if
(
mbsfn_SubframeConfigList
!=
NULL
)
{
if
(
mbsfn_SubframeConfigList
!=
NULL
)
{
LOG_I
(
MAC
,
LOG_I
(
MAC
,
"[eNB %d][CONFIG] Received %d subframe allocation pattern for MBSFN
\n
"
,
"[eNB %d][CONFIG] Received %d subframe allocation pattern for MBSFN
\n
"
,
Mod_idP
,
mbsfn_SubframeConfigList
->
list
.
count
);
Mod_idP
,
mbsfn_SubframeConfigList
->
list
.
count
);
RC
.
mac
[
Mod_idP
]
->
common_channels
[
0
].
num_sf_allocation_pattern
=
RC
.
mac
[
Mod_idP
]
->
common_channels
[
0
].
num_sf_allocation_pattern
=
mbsfn_SubframeConfigList
->
list
.
count
;
mbsfn_SubframeConfigList
->
list
.
count
;
for
(
i
=
0
;
i
<
mbsfn_SubframeConfigList
->
list
.
count
;
i
++
)
{
for
(
i
=
0
;
i
<
mbsfn_SubframeConfigList
->
list
.
count
;
i
++
)
{
RC
.
mac
[
Mod_idP
]
->
common_channels
[
0
].
mbsfn_SubframeConfig
[
i
]
=
RC
.
mac
[
Mod_idP
]
->
common_channels
[
0
].
mbsfn_SubframeConfig
[
i
]
=
mbsfn_SubframeConfigList
->
list
.
array
[
i
];
mbsfn_SubframeConfigList
->
list
.
array
[
i
];
LOG_I
(
MAC
,
LOG_I
(
MAC
,
"[eNB %d][CONFIG] MBSFN_SubframeConfig[%d] pattern is %x
\n
"
,
"[eNB %d][CONFIG] MBSFN_SubframeConfig[%d] pattern is %x
\n
"
,
Mod_idP
,
i
,
Mod_idP
,
i
,
...
...
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
View file @
7900864f
...
@@ -1704,7 +1704,7 @@ schedule_ue_spec(module_id_t module_idP, int slice_idxP,
...
@@ -1704,7 +1704,7 @@ schedule_ue_spec(module_id_t module_idP, int slice_idxP,
format2A
);
format2A
);
break
;
break
;
default:
default:
LOG_W
(
MAC
,
"Unsupported transmission mode %d
\n
"
,
get_tmode
(
module_idP
,
CC_id
,
UE_id
));
AssertFatal
(
1
==
0
,
"Unsupported transmission mode %d
\n
"
,
get_tmode
(
module_idP
,
CC_id
,
UE_id
));
aggregation
=
2
;
aggregation
=
2
;
}
}
}
}
...
...
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
View file @
7900864f
...
@@ -2272,7 +2272,7 @@ uint8_t get_tmode(module_id_t module_idP, int CC_idP, int UE_idP)
...
@@ -2272,7 +2272,7 @@ uint8_t get_tmode(module_id_t module_idP, int CC_idP, int UE_idP)
eNB_MAC_INST
*
eNB
=
RC
.
mac
[
module_idP
];
eNB_MAC_INST
*
eNB
=
RC
.
mac
[
module_idP
];
COMMON_channels_t
*
cc
=
&
eNB
->
common_channels
[
CC_idP
];
COMMON_channels_t
*
cc
=
&
eNB
->
common_channels
[
CC_idP
];
struct
LTE_PhysicalConfigDedicated
*
physicalConfigDedicated
=
&
eNB
->
UE_list
.
physicalConfigDedicated
[
CC_idP
][
UE_idP
]
;
struct
LTE_PhysicalConfigDedicated
*
physicalConfigDedicated
=
eNB
->
UE_list
.
UE_template
[
CC_idP
][
UE_idP
].
physicalConfigDedicated
;
if
(
physicalConfigDedicated
==
NULL
)
{
// RRCConnectionSetup not received by UE yet
if
(
physicalConfigDedicated
==
NULL
)
{
// RRCConnectionSetup not received by UE yet
AssertFatal
(
cc
->
p_eNB
<=
2
,
"p_eNB is %d, should be <2
\n
"
,
AssertFatal
(
cc
->
p_eNB
<=
2
,
"p_eNB is %d, should be <2
\n
"
,
...
@@ -2280,8 +2280,8 @@ uint8_t get_tmode(module_id_t module_idP, int CC_idP, int UE_idP)
...
@@ -2280,8 +2280,8 @@ uint8_t get_tmode(module_id_t module_idP, int CC_idP, int UE_idP)
return
(
cc
->
p_eNB
);
return
(
cc
->
p_eNB
);
}
else
{
}
else
{
AssertFatal
(
physicalConfigDedicated
->
antennaInfo
!=
NULL
,
AssertFatal
(
physicalConfigDedicated
->
antennaInfo
!=
NULL
,
"antennaInfo
is null for CCId %d, UEid %d
\n
"
,
CC_idP
,
"antennaInfo
(mod_id %d) is null for CCId %d, UEid %d, physicalConfigDedicated %p
\n
"
,
module_idP
,
CC_idP
,
UE_idP
);
UE_idP
,
physicalConfigDedicated
);
AssertFatal
(
physicalConfigDedicated
->
antennaInfo
->
present
!=
AssertFatal
(
physicalConfigDedicated
->
antennaInfo
->
present
!=
LTE_PhysicalConfigDedicated__antennaInfo_PR_NOTHING
,
LTE_PhysicalConfigDedicated__antennaInfo_PR_NOTHING
,
...
@@ -2290,7 +2290,7 @@ uint8_t get_tmode(module_id_t module_idP, int CC_idP, int UE_idP)
...
@@ -2290,7 +2290,7 @@ uint8_t get_tmode(module_id_t module_idP, int CC_idP, int UE_idP)
if
(
physicalConfigDedicated
->
antennaInfo
->
present
==
if
(
physicalConfigDedicated
->
antennaInfo
->
present
==
LTE_PhysicalConfigDedicated__antennaInfo_PR_explicitValue
)
{
LTE_PhysicalConfigDedicated__antennaInfo_PR_explicitValue
)
{
return
(
physicalConfigDedicated
->
antennaInfo
->
return
(
1
+
physicalConfigDedicated
->
antennaInfo
->
choice
.
explicitValue
.
transmissionMode
);
choice
.
explicitValue
.
transmissionMode
);
}
else
if
(
physicalConfigDedicated
->
antennaInfo
->
present
==
}
else
if
(
physicalConfigDedicated
->
antennaInfo
->
present
==
LTE_PhysicalConfigDedicated__antennaInfo_PR_defaultValue
)
{
LTE_PhysicalConfigDedicated__antennaInfo_PR_defaultValue
)
{
...
...
openair2/LAYER2/MAC/mac.h
View file @
7900864f
...
@@ -1070,44 +1070,40 @@ typedef struct {
...
@@ -1070,44 +1070,40 @@ typedef struct {
}
SBMAP_CONF
;
}
SBMAP_CONF
;
/*! \brief UE list used by eNB to order UEs/CC for scheduling*/
/*! \brief UE list used by eNB to order UEs/CC for scheduling*/
typedef
struct
{
typedef
struct
{
/// Dedicated information for UEs
DLSCH_PDU
DLSCH_pdu
[
NFAPI_CC_MAX
][
2
][
MAX_MOBILES_PER_ENB
];
struct
PhysicalConfigDedicated
/// DCI template and MAC connection parameters for UEs
*
physicalConfigDedicated
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
UE_TEMPLATE
UE_template
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
/// DLSCH pdu
/// DCI template and MAC connection for RA processes
DLSCH_PDU
DLSCH_pdu
[
NFAPI_CC_MAX
][
2
][
MAX_MOBILES_PER_ENB
];
int
pCC_id
[
MAX_MOBILES_PER_ENB
];
/// DCI template and MAC connection parameters for UEs
/// sorted downlink component carrier for the scheduler
UE_TEMPLATE
UE_template
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
int
ordered_CCids
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
/// DCI template and MAC connection for RA processes
/// number of downlink active component carrier
int
pCC_id
[
MAX_MOBILES_PER_ENB
];
int
numactiveCCs
[
MAX_MOBILES_PER_ENB
];
/// sorted downlink component carrier for the scheduler
/// sorted uplink component carrier for the scheduler
int
ordered_CCids
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
int
ordered_ULCCids
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
/// number of downlink active component carrier
/// number of uplink active component carrier
int
numactiveCCs
[
MAX_MOBILES_PER_ENB
];
int
numactiveULCCs
[
MAX_MOBILES_PER_ENB
];
/// sorted uplink component carrier for the scheduler
/// number of downlink active component carrier
int
ordered_ULCCids
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
uint8_t
dl_CC_bitmap
[
MAX_MOBILES_PER_ENB
];
/// number of uplink active component carrier
/// eNB to UE statistics
int
numactiveULCCs
[
MAX_MOBILES_PER_ENB
];
eNB_UE_STATS
eNB_UE_stats
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
/// number of downlink active component carrier
/// scheduling control info
uint8_t
dl_CC_bitmap
[
MAX_MOBILES_PER_ENB
];
UE_sched_ctrl
UE_sched_ctrl
[
MAX_MOBILES_PER_ENB
];
/// eNB to UE statistics
int
next
[
MAX_MOBILES_PER_ENB
];
eNB_UE_STATS
eNB_UE_stats
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
int
head
;
/// scheduling control info
int
next_ul
[
MAX_MOBILES_PER_ENB
];
UE_sched_ctrl
UE_sched_ctrl
[
MAX_MOBILES_PER_ENB
];
int
head_ul
;
int
next
[
MAX_MOBILES_PER_ENB
];
int
avail
;
int
head
;
int
num_UEs
;
int
next_ul
[
MAX_MOBILES_PER_ENB
];
boolean_t
active
[
MAX_MOBILES_PER_ENB
];
int
head_ul
;
int
avail
;
/// Sorting criteria for the UE list in the MAC preprocessor
int
num_UEs
;
uint16_t
sorting_criteria
[
MAX_NUM_SLICES
][
CR_NUM
];
boolean_t
active
[
MAX_MOBILES_PER_ENB
];
uint16_t
first_rb_offset
[
NFAPI_CC_MAX
][
MAX_NUM_SLICES
];
/// Sorting criteria for the UE list in the MAC preprocessor
int
assoc_dl_slice_idx
[
MAX_MOBILES_PER_ENB
];
uint16_t
sorting_criteria
[
MAX_NUM_SLICES
][
CR_NUM
];
int
assoc_ul_slice_idx
[
MAX_MOBILES_PER_ENB
];
uint16_t
first_rb_offset
[
NFAPI_CC_MAX
][
MAX_NUM_SLICES
];
int
assoc_dl_slice_idx
[
MAX_MOBILES_PER_ENB
];
int
assoc_ul_slice_idx
[
MAX_MOBILES_PER_ENB
];
}
UE_list_t
;
}
UE_list_t
;
/*! \brief deleting control information*/
/*! \brief deleting control information*/
...
...
openair2/RRC/LTE/MESSAGES/asn1_msg.c
View file @
7900864f
...
@@ -2855,6 +2855,8 @@ do_RRCConnectionSetup(
...
@@ -2855,6 +2855,8 @@ do_RRCConnectionSetup(
//assign_enum(&physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode,
//assign_enum(&physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode,
// AntennaInfoDedicated__transmissionMode_tm2);
// AntennaInfoDedicated__transmissionMode_tm2);
LOG_D
(
RRC
,
"physicalConfigDedicated2 %p, physicalConfigDedicated2->antennaInfo %p => %d
\n
"
,
physicalConfigDedicated2
,
physicalConfigDedicated2
->
antennaInfo
,
transmission_mode
);
switch
(
transmission_mode
)
{
switch
(
transmission_mode
)
{
default:
default:
LOG_W
(
RRC
,
"At RRCConnectionSetup Transmission mode can only take values 1 or 2! Defaulting to 1!
\n
"
);
LOG_W
(
RRC
,
"At RRCConnectionSetup Transmission mode can only take values 1 or 2! Defaulting to 1!
\n
"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a 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