Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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
lizhongxiao
OpenXG UE
Commits
1fdd2374
Commit
1fdd2374
authored
Nov 19, 2018
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
testing after integration of eMTC
parent
6a072390
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 @
1fdd2374
...
...
@@ -727,55 +727,54 @@ config_dedicated_scell(int Mod_idP,
}
int
rrc_mac_config_req_eNB
(
module_id_t
Mod_idP
,
int
CC_idP
,
int
physCellId
,
int
p_eNB
,
int
Ncp
,
int
eutra_band
,
uint32_t
dl_CarrierFreq
,
int
rrc_mac_config_req_eNB
(
module_id_t
Mod_idP
,
int
CC_idP
,
int
physCellId
,
int
p_eNB
,
int
Ncp
,
int
eutra_band
,
uint32_t
dl_CarrierFreq
,
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
int
pbch_repetition
,
int
pbch_repetition
,
#endif
rnti_t
rntiP
,
LTE_BCCH_BCH_Message_t
*
mib
,
LTE_RadioResourceConfigCommonSIB_t
*
radioResourceConfigCommon
,
rnti_t
rntiP
,
LTE_BCCH_BCH_Message_t
*
mib
,
LTE_RadioResourceConfigCommonSIB_t
*
radioResourceConfigCommon
,
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
LTE_RadioResourceConfigCommonSIB_t
*
radioResourceConfigCommon_BR
,
LTE_RadioResourceConfigCommonSIB_t
*
radioResourceConfigCommon_BR
,
#endif
struct
LTE_PhysicalConfigDedicated
*
physicalConfigDedicated
,
struct
LTE_PhysicalConfigDedicated
*
physicalConfigDedicated
,
#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0))
LTE_SCellToAddMod_r10_t
*
sCellToAddMod_r10
,
//struct LTE_PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10,
LTE_SCellToAddMod_r10_t
*
sCellToAddMod_r10
,
//struct LTE_PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10,
#endif
LTE_MeasObjectToAddMod_t
**
measObj
,
LTE_MAC_MainConfig_t
*
mac_MainConfig
,
long
logicalChannelIdentity
,
LTE_LogicalChannelConfig_t
*
logicalChannelConfig
,
LTE_MeasGapConfig_t
*
measGapConfig
,
LTE_TDD_Config_t
*
tdd_Config
,
LTE_MobilityControlInfo_t
*
mobilityControlInfo
,
LTE_SchedulingInfoList_t
*
schedulingInfoList
,
uint32_t
ul_CarrierFreq
,
long
*
ul_Bandwidth
,
LTE_AdditionalSpectrumEmission_t
*
additionalSpectrumEmission
,
struct
LTE_MBSFN_SubframeConfigList
*
mbsfn_SubframeConfigList
LTE_MeasObjectToAddMod_t
**
measObj
,
LTE_MAC_MainConfig_t
*
mac_MainConfig
,
long
logicalChannelIdentity
,
LTE_LogicalChannelConfig_t
*
logicalChannelConfig
,
LTE_MeasGapConfig_t
*
measGapConfig
,
LTE_TDD_Config_t
*
tdd_Config
,
LTE_MobilityControlInfo_t
*
mobilityControlInfo
,
LTE_SchedulingInfoList_t
*
schedulingInfoList
,
uint32_t
ul_CarrierFreq
,
long
*
ul_Bandwidth
,
LTE_AdditionalSpectrumEmission_t
*
additionalSpectrumEmission
,
struct
LTE_MBSFN_SubframeConfigList
*
mbsfn_SubframeConfigList
#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
,
uint8_t
MBMS_Flag
,
LTE_MBSFN_AreaInfoList_r9_t
*
mbsfn_AreaInfoList
,
LTE_PMCH_InfoList_r9_t
*
pmch_InfoList
,
uint8_t
MBMS_Flag
,
LTE_MBSFN_AreaInfoList_r9_t
*
mbsfn_AreaInfoList
,
LTE_PMCH_InfoList_r9_t
*
pmch_InfoList
#endif
#if (LTE_RRC_VERSION >= MAKE_VERSION(13, 0, 0))
,
LTE_SystemInformationBlockType1_v1310_IEs_t
*
sib1_v13ext
,
LTE_SystemInformationBlockType1_v1310_IEs_t
*
sib1_v13ext
#endif
)
{
)
{
int
i
;
int
UE_id
=
-
1
;
...
...
@@ -897,36 +896,18 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP,
if
(
logicalChannelConfig
!=
NULL
)
{
// check for eMTC specific things
UE_id
=
find_UE_id
(
Mod_idP
,
rntiP
);
if
(
UE_id
==
-
1
)
{
LOG_E
(
MAC
,
"%s:%d:%s: ERROR, UE_id == -1
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
}
else
{
if
(
logicalChannelConfig
)
{
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
;
}
AssertFatal
(
UE_id
>=
0
,
"Configuration received for unknown UE (%x), shouldn't happen
\n
"
,
rntiP
);
if
(
logicalChannelConfig
)
{
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
)
{
UE_id
=
find_UE_id
(
Mod_idP
,
rntiP
);
if
(
UE_id
==
-
1
)
LOG_E
(
MAC
,
"%s:%d:%s: ERROR, UE_id == -1
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
else
UE_list
->
UE_template
[
CC_idP
][
UE_id
].
physicalConfigDedicated
=
physicalConfigDedicated
;
AssertFatal
(
UE_id
>=
0
,
"Configuration received for unknown UE (%x), shouldn't happen
\n
"
,
rntiP
);
UE_list
->
UE_template
[
CC_idP
][
UE_id
].
physicalConfigDedicated
=
physicalConfigDedicated
;
LOG_I
(
MAC
,
"Added physicalConfigDedicated %p for %d.%d
\n
"
,
physicalConfigDedicated
,
CC_idP
,
UE_id
);
}
...
...
@@ -934,27 +915,19 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP,
if
(
sCellToAddMod_r10
!=
NULL
)
{
UE_id
=
find_UE_id
(
Mod_idP
,
rntiP
);
if
(
UE_id
==
-
1
)
LOG_E
(
MAC
,
"%s:%d:%s: ERROR, UE_id == -1
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
else
config_dedicated_scell
(
Mod_idP
,
rntiP
,
sCellToAddMod_r10
);
AssertFatal
(
UE_id
>=
0
,
"Configuration received for unknown UE (%x), shouldn't happen
\n
"
,
rntiP
);
config_dedicated_scell
(
Mod_idP
,
rntiP
,
sCellToAddMod_r10
);
}
#endif
if
(
mbsfn_SubframeConfigList
!=
NULL
)
{
LOG_I
(
MAC
,
"[eNB %d][CONFIG] Received %d subframe allocation pattern for MBSFN
\n
"
,
Mod_idP
,
mbsfn_SubframeConfigList
->
list
.
count
);
RC
.
mac
[
Mod_idP
]
->
common_channels
[
0
].
num_sf_allocation_pattern
=
mbsfn_SubframeConfigList
->
list
.
count
;
RC
.
mac
[
Mod_idP
]
->
common_channels
[
0
].
num_sf_allocation_pattern
=
mbsfn_SubframeConfigList
->
list
.
count
;
for
(
i
=
0
;
i
<
mbsfn_SubframeConfigList
->
list
.
count
;
i
++
)
{
RC
.
mac
[
Mod_idP
]
->
common_channels
[
0
].
mbsfn_SubframeConfig
[
i
]
=
mbsfn_SubframeConfigList
->
list
.
array
[
i
];
RC
.
mac
[
Mod_idP
]
->
common_channels
[
0
].
mbsfn_SubframeConfig
[
i
]
=
mbsfn_SubframeConfigList
->
list
.
array
[
i
];
LOG_I
(
MAC
,
"[eNB %d][CONFIG] MBSFN_SubframeConfig[%d] pattern is %x
\n
"
,
Mod_idP
,
i
,
...
...
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
View file @
1fdd2374
...
...
@@ -1704,7 +1704,7 @@ schedule_ue_spec(module_id_t module_idP, int slice_idxP,
format2A
);
break
;
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
;
}
}
...
...
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
View file @
1fdd2374
...
...
@@ -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
];
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
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)
return
(
cc
->
p_eNB
);
}
else
{
AssertFatal
(
physicalConfigDedicated
->
antennaInfo
!=
NULL
,
"antennaInfo
is null for CCId %d, UEid %d
\n
"
,
CC_idP
,
UE_idP
);
"antennaInfo
(mod_id %d) is null for CCId %d, UEid %d, physicalConfigDedicated %p
\n
"
,
module_idP
,
CC_idP
,
UE_idP
,
physicalConfigDedicated
);
AssertFatal
(
physicalConfigDedicated
->
antennaInfo
->
present
!=
LTE_PhysicalConfigDedicated__antennaInfo_PR_NOTHING
,
...
...
@@ -2290,7 +2290,7 @@ uint8_t get_tmode(module_id_t module_idP, int CC_idP, int UE_idP)
if
(
physicalConfigDedicated
->
antennaInfo
->
present
==
LTE_PhysicalConfigDedicated__antennaInfo_PR_explicitValue
)
{
return
(
physicalConfigDedicated
->
antennaInfo
->
return
(
1
+
physicalConfigDedicated
->
antennaInfo
->
choice
.
explicitValue
.
transmissionMode
);
}
else
if
(
physicalConfigDedicated
->
antennaInfo
->
present
==
LTE_PhysicalConfigDedicated__antennaInfo_PR_defaultValue
)
{
...
...
openair2/LAYER2/MAC/mac.h
View file @
1fdd2374
...
...
@@ -1070,44 +1070,40 @@ typedef struct {
}
SBMAP_CONF
;
/*! \brief UE list used by eNB to order UEs/CC for scheduling*/
typedef
struct
{
/// Dedicated information for UEs
struct
PhysicalConfigDedicated
*
physicalConfigDedicated
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
/// DLSCH pdu
DLSCH_PDU
DLSCH_pdu
[
NFAPI_CC_MAX
][
2
][
MAX_MOBILES_PER_ENB
];
/// DCI template and MAC connection parameters for UEs
UE_TEMPLATE
UE_template
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
/// DCI template and MAC connection for RA processes
int
pCC_id
[
MAX_MOBILES_PER_ENB
];
/// sorted downlink component carrier for the scheduler
int
ordered_CCids
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
/// number of downlink active component carrier
int
numactiveCCs
[
MAX_MOBILES_PER_ENB
];
/// sorted uplink component carrier for the scheduler
int
ordered_ULCCids
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
/// number of uplink active component carrier
int
numactiveULCCs
[
MAX_MOBILES_PER_ENB
];
/// number of downlink active component carrier
uint8_t
dl_CC_bitmap
[
MAX_MOBILES_PER_ENB
];
/// eNB to UE statistics
eNB_UE_STATS
eNB_UE_stats
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
/// scheduling control info
UE_sched_ctrl
UE_sched_ctrl
[
MAX_MOBILES_PER_ENB
];
int
next
[
MAX_MOBILES_PER_ENB
];
int
head
;
int
next_ul
[
MAX_MOBILES_PER_ENB
];
int
head_ul
;
int
avail
;
int
num_UEs
;
boolean_t
active
[
MAX_MOBILES_PER_ENB
];
/// Sorting criteria for the UE list in the MAC preprocessor
uint16_t
sorting_criteria
[
MAX_NUM_SLICES
][
CR_NUM
];
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
];
DLSCH_PDU
DLSCH_pdu
[
NFAPI_CC_MAX
][
2
][
MAX_MOBILES_PER_ENB
];
/// DCI template and MAC connection parameters for UEs
UE_TEMPLATE
UE_template
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
/// DCI template and MAC connection for RA processes
int
pCC_id
[
MAX_MOBILES_PER_ENB
];
/// sorted downlink component carrier for the scheduler
int
ordered_CCids
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
/// number of downlink active component carrier
int
numactiveCCs
[
MAX_MOBILES_PER_ENB
];
/// sorted uplink component carrier for the scheduler
int
ordered_ULCCids
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
/// number of uplink active component carrier
int
numactiveULCCs
[
MAX_MOBILES_PER_ENB
];
/// number of downlink active component carrier
uint8_t
dl_CC_bitmap
[
MAX_MOBILES_PER_ENB
];
/// eNB to UE statistics
eNB_UE_STATS
eNB_UE_stats
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
/// scheduling control info
UE_sched_ctrl
UE_sched_ctrl
[
MAX_MOBILES_PER_ENB
];
int
next
[
MAX_MOBILES_PER_ENB
];
int
head
;
int
next_ul
[
MAX_MOBILES_PER_ENB
];
int
head_ul
;
int
avail
;
int
num_UEs
;
boolean_t
active
[
MAX_MOBILES_PER_ENB
];
/// Sorting criteria for the UE list in the MAC preprocessor
uint16_t
sorting_criteria
[
MAX_NUM_SLICES
][
CR_NUM
];
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
;
/*! \brief deleting control information*/
...
...
openair2/RRC/LTE/MESSAGES/asn1_msg.c
View file @
1fdd2374
...
...
@@ -2855,6 +2855,8 @@ do_RRCConnectionSetup(
//assign_enum(&physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode,
// AntennaInfoDedicated__transmissionMode_tm2);
LOG_D
(
RRC
,
"physicalConfigDedicated2 %p, physicalConfigDedicated2->antennaInfo %p => %d
\n
"
,
physicalConfigDedicated2
,
physicalConfigDedicated2
->
antennaInfo
,
transmission_mode
);
switch
(
transmission_mode
)
{
default:
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