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
zzha zzha
OpenXG-RAN
Commits
a1403400
Commit
a1403400
authored
9 years ago
by
Florian Kaltenberger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
adding header files from old svn branch
parent
33325d46
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
1232 additions
and
0 deletions
+1232
-0
openair2/LAYER2/MAC/ff-mac-common.h
openair2/LAYER2/MAC/ff-mac-common.h
+569
-0
openair2/LAYER2/MAC/ff-mac-csched-sap.h
openair2/LAYER2/MAC/ff-mac-csched-sap.h
+389
-0
openair2/LAYER2/MAC/ff-mac-sched-sap.h
openair2/LAYER2/MAC/ff-mac-sched-sap.h
+274
-0
No files found.
openair2/LAYER2/MAC/ff-mac-common.h
0 → 100644
View file @
a1403400
/*******************************************************************************
OpenAirInterface
Copyright(c) 1999 - 2015 Eurecom
OpenAirInterface is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenAirInterface is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with OpenAirInterface.The full GNU General Public License is
included in this distribution in the file called "COPYING". If not,
see <http://www.gnu.org/licenses/>.
Contact Information
OpenAirInterface Admin: openair_admin@eurecom.fr
OpenAirInterface Tech : openair_tech@eurecom.fr
OpenAirInterface Dev : openair4g-devel@eurecom.fr
Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
*******************************************************************************/
/*! \file ff-mac-common.h
* \brief this is the implementation of the Femto Forum LTE MAC Scheduler Interface Specification v1.11
* \author Florian Kaltenberger
* \date March 2015
* \version 1.0
* \email: florian.kaltenberger@eurecom.fr
* @ingroup _mac
*/
#ifndef FF_MAC_COMMON_H
#define FF_MAC_COMMON_H
#include <stdint.h>
#include <stdbool.h>
/**
* Constants. See section 4.4
*/
#define MAX_SCHED_CFG_LIST 10
#define MAX_LC_LIST 10
#define MAX_RACH_LIST 30
#define MAX_DL_INFO_LIST 30
#define MAX_BUILD_DATA_LIST 30
#define MAX_BUILD_RAR_LIST 10
#define MAX_BUILD_BC_LIST 3
#define MAX_UL_INFO_LIST 30
#define MAX_DCI_LIST 30
#define MAX_PHICH_LIST 30
#define MAX_TB_LIST 2
#define MAX_RLC_PDU_LIST 30
#define MAX_NR_LCG 4
#define MAX_MBSFN_CONFIG 5
#define MAX_SI_MSG_LIST 32
#define MAX_SI_MSG_SIZE 65535
#define MAX_CQI_LIST 30
#define MAX_UE_SELECTED_SB 6
#define MAX_HL_SB 25
#define MAX_SINR_RB_LIST 100
#define MAX_SR_LIST 30
#define MAX_MAC_CE_LIST 30
#define MAX_NUM_CCs 2
enum
Result_e
{
ff_SUCCESS
,
ff_FAILURE
};
enum
SetupRelease_e
{
ff_setup
,
ff_release
};
enum
CeBitmap_e
{
ff_TA
=
1
<<
0
,
ff_DRX
=
1
<<
1
,
ff_CR
=
1
<<
2
,
/// activation/deactivation of CCs
ff_AD
=
1
<<
3
};
enum
NormalExtended_e
{
ff_normal
,
ff_extended
};
/**
* \brief See section 4.3.1 dlDciListElement
*/
struct
DlDciListElement_s
{
uint16_t
rnti
;
uint32_t
rbBitmap
;
uint8_t
rbShift
;
uint8_t
resAlloc
;
uint16_t
tbsSize
[
MAX_TB_LIST
];
uint8_t
mcs
[
MAX_TB_LIST
];
uint8_t
ndi
[
MAX_TB_LIST
];
uint8_t
rv
[
MAX_TB_LIST
];
uint8_t
cceIndex
;
uint8_t
aggrLevel
;
uint8_t
precodingInfo
;
enum
Format_e
{
ONE
,
ONE_A
,
ONE_B
,
ONE_C
,
ONE_D
,
TWO
,
TWO_A
,
TWO_B
}
format
;
uint8_t
tpc
;
uint8_t
harqProcess
;
uint8_t
dai
;
enum
VrbFormat_e
{
VRB_DISTRIBUTED
,
VRB_LOCALIZED
}
vrbFormat
;
bool
tbSwap
;
bool
spsRelease
;
bool
pdcchOrder
;
uint8_t
preambleIndex
;
uint8_t
prachMaskIndex
;
enum
Ngap_e
{
GAP1
,
GAP2
}
nGap
;
uint8_t
tbsIdx
;
uint8_t
dlPowerOffset
;
uint8_t
pdcchPowerOffset
;
/// this is the DCI field (for potential cross carrier scheduling)
bool
cifPresent
;
uint8_t
cif
;
};
/**
* \brief See section 4.3.2 ulDciListElement
*/
struct
UlDciListElement_s
{
uint16_t
rnti
;
uint8_t
rbStart
;
uint8_t
rbLen
;
uint16_t
tbSize
;
uint8_t
mcs
;
uint8_t
ndi
;
uint8_t
cceIndex
;
uint8_t
aggrLevel
;
uint8_t
ueTxAntennaSelection
;
bool
hopping
;
uint8_t
n2Dmrs
;
int8_t
tpc
;
bool
cqiRequest
;
uint8_t
ulIndex
;
uint8_t
dai
;
uint8_t
freqHopping
;
int8_t
pdcchPowerOffset
;
/// this is the DCI field (for potential cross carrier scheduling)
bool
cifPresent
;
uint8_t
cif
;
/// this is the carrier index where the DCI will be transmitted on
uint8_t
carrierIndex
;
};
/**
* \brief Base class for storing the values of vendor specific parameters
*/
struct
VendorSpecificValue
{
uint32_t
dummy
;
/*to be extended*/
};
/**
* \brief See section 4.3.3 vendorSpecifiListElement
*/
struct
VendorSpecificListElement_s
{
uint32_t
type
;
uint32_t
length
;
struct
VendorSpecificValue
*
value
;
};
/**
* \brief See section 4.3.4 logicalChannelConfigListElement
*/
struct
LogicalChannelConfigListElement_s
{
uint8_t
logicalChannelIdentity
;
uint8_t
logicalChannelGroup
;
enum
Direction_e
{
DIR_UL
,
DIR_DL
,
DIR_BOTH
}
direction
;
enum
QosBearerType_e
{
QBT_NON_GBR
,
QBT_GBR
}
qosBearerType
;
uint8_t
qci
;
uint64_t
eRabMaximulBitrateUl
;
uint64_t
eRabMaximulBitrateDl
;
uint64_t
eRabGuaranteedBitrateUl
;
uint64_t
eRabGuaranteedBitrateDl
;
};
/**
* \brief See section 4.3.6 rachListElement
*/
struct
RachListElement_s
{
uint16_t
rnti
;
uint16_t
estimatedSize
;
uint8_t
carrierIndex
;
};
/**
* \brief See section 4.3.7 phichListElement
*/
struct
PhichListElement_s
{
uint16_t
rnti
;
enum
Phich_e
{
ACK
,
NACK
}
phich
;
uint8_t
carrierIndex
;
};
/**
* \brief See section 4.3.9 rlcPDU_ListElement
*/
struct
RlcPduListElement_s
{
uint8_t
logicalChannelIdentity
;
uint16_t
size
;
};
/**
* \brief See section 4.3.8 builDataListElement
*/
struct
BuildDataListElement_s
{
uint16_t
rnti
;
struct
DlDciListElement_s
dci
;
/* This is an array of CeBitmap_e enum flags. If one wants for example to signal TA in 1st TB and DRX and AD in 2nd one should:
* ceBitmap[0] = ff_TA; ceBitmap[1] = ff_DRX | ff_AD; */
uint8_t
ceBitmap
[
MAX_TB_LIST
];
uint8_t
nr_rlcPDU_List
;
struct
RlcPduListElement_s
*
rlcPduList
[
MAX_TB_LIST
];
uint8_t
carrierIndex
;
/* Hex content of Activation/Deactivation MAC CE */
uint8_t
activationDeactivationCE
;
};
/**
* \brief See section 4.3.10 buildRARListElement
*/
struct
BuildRarListElement_s
{
uint16_t
rnti
;
uint32_t
grant
;
struct
DlDciListElement_s
dci
;
uint8_t
carrierIndex
;
};
/**
* \brief See section 4.3.11 buildBroadcastListElement
*/
struct
BuildBroadcastListElement_s
{
enum
BroadcastType_e
{
ff_BCCH
,
ff_PCCH
}
type
;
uint8_t
index
;
struct
DlDciListElement_s
dci
;
uint8_t
carrierIndex
;
};
/**
* \brief See section 4.3.12 ulInfoListElement
*/
struct
UlInfoListElement_s
{
uint16_t
rnti
;
uint16_t
ulReception
[
MAX_LC_LIST
+
1
];
enum
ReceptionStatus_e
{
Ok
,
NotOk
,
NotValid
}
receptionStatus
;
uint8_t
tpc
;
uint8_t
carrierIndex
;
};
/**
* \brief See section 4.3.13 srListElement
*/
struct
SrListElement_s
{
uint16_t
rnti
;
};
/**
* \brief See section 4.3.15 macCEValue
*/
struct
MacCeUlValue_u
{
uint8_t
phr
;
uint8_t
crnti
;
uint8_t
bufferStatus
[
MAX_NR_LCG
];
};
/**
* \brief See section 4.3.14 macCEListElement
*/
struct
MacCeUlListElement_s
{
uint16_t
rnti
;
enum
MacCeType_e
{
ff_BSR
,
ff_PHR
,
ff_CRNTI
}
macCeType
;
struct
MacCeUlValue_u
macCeValue
;
};
/**
* \brief macCEDLValue (new)
*/
struct
MacCeDlValue_u
{
// timing advance value is not included here as it is supposed to be filled in by the MAC (scheduler does not care)
// dtx CE does not have a value
// contention resolution value should also be filled in by the MAC and not by the scheduler
uint8_t
ActicationDeactivation
;
};
/**
* \brief macCEDLListElement (new)
*/
struct
MacCeDlListElement_s
{
uint16_t
rnti
;
enum
CeBitmap_e
macCeType
;
struct
MacCeDlValue_u
macCeValue
;
};
/**
* \brief See section 4.3.16 drxConfig
*/
struct
DrxConfig_s
{
uint8_t
onDurationTimer
;
uint16_t
drxInactivityTimer
;
uint16_t
drxRetransmissionTimer
;
uint16_t
longDrxCycle
;
uint16_t
longDrxCycleStartOffset
;
uint16_t
shortDrxCycle
;
uint8_t
drxShortCycleTimer
;
};
/**
* \brief See section 4.3.17 spsConfig
*/
struct
SpsConfig_s
{
uint16_t
semiPersistSchedIntervalUl
;
uint16_t
semiPersistSchedIntervalDl
;
uint8_t
numberOfConfSpsProcesses
;
uint8_t
n1PucchAnPersistentListSize
;
uint16_t
n1PucchAnPersistentList
[
4
];
uint8_t
implicitReleaseAfter
;
};
/**
* \brief See section 4.3.18 srConfig
*/
struct
SrConfig_s
{
enum
SetupRelease_e
action
;
uint8_t
schedInterval
;
uint8_t
dsrTransMax
;
};
/**
* \brief See section 4.3.19 cqiConfig
*/
struct
CqiConfig_s
{
enum
SetupRelease_e
action
;
uint16_t
cqiSchedInterval
;
uint8_t
riSchedInterval
;
};
/**
* \brief See section 4.3.20 ueCapabilities
*/
struct
UeCapabilities_s
{
bool
halfDuplex
;
bool
intraSfHopping
;
bool
type2Sb1
;
uint8_t
ueCategory
;
bool
resAllocType1
;
};
/**
* \brief See section 4.3.22 siMessageListElement
*/
struct
SiMessageListElement_s
{
uint16_t
periodicity
;
uint16_t
length
;
};
/**
* \brief See section 4.3.21 siConfiguration
*/
struct
SiConfiguration_s
{
uint16_t
sfn
;
uint16_t
sib1Length
;
uint8_t
siWindowLength
;
uint8_t
nrSI_Message_List
;
struct
SiMessageListElement_s
*
siMessageList
;
};
/**
* \brief See section 4.3.23 dlInfoListElement
*/
struct
DlInfoListElement_s
{
uint16_t
rnti
;
uint8_t
harqProcessId
;
enum
HarqStatus_e
{
ff_ACK
,
ff_NACK
,
ff_DTX
}
harqStatus
[
MAX_TB_LIST
];
uint8_t
carrierIndex
;
};
/**
* \brief See section 4.3.28 bwPart
*/
struct
BwPart_s
{
uint8_t
bwPartIndex
;
uint8_t
sb
;
uint8_t
cqi
;
};
/**
* \brief See section 4.3.27 higherLayerSelected
*/
struct
HigherLayerSelected_s
{
uint8_t
sbPmi
;
uint8_t
sbCqi
[
MAX_TB_LIST
];
};
/**
* \brief See section 4.3.26 ueSelected
*/
struct
UeSelected_s
{
uint8_t
sbList
[
MAX_UE_SELECTED_SB
];
uint8_t
sbPmi
;
uint8_t
sbCqi
[
MAX_TB_LIST
];
};
/**
* \brief See section 4.3.25 sbMeasResult
*/
struct
SbMeasResult_s
{
struct
UeSelected_s
ueSelected
;
struct
HigherLayerSelected_s
higherLayerSelected
[
MAX_HL_SB
];
struct
BwPart_s
bwPart
;
};
/**
* \brief See section 4.3.24 cqiListElement
*/
struct
CqiListElement_s
{
uint16_t
rnti
;
uint8_t
ri
;
enum
CqiType_e
{
P10
,
P11
,
P20
,
P21
,
A12
,
A22
,
A20
,
A30
,
A31
}
cqiType
;
uint8_t
wbCqi
[
MAX_TB_LIST
];
uint8_t
wbPmi
;
struct
SbMeasResult_s
sbMeasResult
;
uint8_t
carrierIndex
;
};
/**
* \brief See section 4.3.29 ulCQI
*/
struct
UlCqi_s
{
uint16_t
sinr
[
MAX_SINR_RB_LIST
];
enum
UlCqiType_e
{
ff_SRS
,
ff_PUSCH
,
ff_PUCCH_1
,
ff_PUCCH_2
,
ff_PRACH
}
type
;
uint8_t
carrierIndex
;
};
/**
* \brief See section 4.3.30 pagingInfoListElement
*/
struct
PagingInfoListElement_s
{
uint8_t
pagingIndex
;
uint16_t
pagingMessageSize
;
uint8_t
pagingSubframe
;
uint8_t
carrierIndex
;
};
/**
* \brief Describes the SCell configuration.
*/
struct
ScellConfig_s
{
/* Unique carrier identifier */
uint8_t
carrierIndex
;
/* Index of this SCell (RRC SCellIndex) */
uint8_t
scellIndex
;
/* Indicates if cross-carrier scheduling shall be used or not on the SCell */
bool
useCrossCarrierScheduling
;
/* Index of the cell responsible for delivering scheduling for this SCell */
uint8_t
schedulingCellIndex
;
/* Starting OFDM symbol of PDSCH data region for this SCell */
uint8_t
pdschStart
;
};
struct
PdcchOfdmSymbolCountListElement_s
{
/* Unique carrier identifier */
uint8_t
carrierIndex
;
/* Size of PDCCH in OFDM symbols */
uint8_t
pdcchOfdmSymbolCount
;
};
#endif
/* FF_MAC_COMMON_H */
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/ff-mac-csched-sap.h
0 → 100644
View file @
a1403400
/*******************************************************************************
OpenAirInterface
Copyright(c) 1999 - 2015 Eurecom
OpenAirInterface is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenAirInterface is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with OpenAirInterface.The full GNU General Public License is
included in this distribution in the file called "COPYING". If not,
see <http://www.gnu.org/licenses/>.
Contact Information
OpenAirInterface Admin: openair_admin@eurecom.fr
OpenAirInterface Tech : openair_tech@eurecom.fr
OpenAirInterface Dev : openair4g-devel@eurecom.fr
Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
*******************************************************************************/
/*! \file ff-mac-csched-sap.h
* \brief this is the implementation of the Femto Forum LTE MAC Scheduler Interface Specification v1.11
* \author Florian Kaltenberger
* \date March 2015
* \version 1.0
* \email: florian.kaltenberger@eurecom.fr
* @ingroup _mac
*/
#ifndef FF_MAC_CSCHED_SAP_H
#define FF_MAC_CSCHED_SAP_H
#include <stdint.h>
#include <stdbool.h>
#include "ff-mac-common.h"
/**
* Parameters of the API primitives
*/
/**
* Parameters of the CSCHED_CELL_CONFIG_REQ primitive.
* See section 4.1.1 for a detailed description of the parameters.
*/
struct
CschedCellConfigReqParameters
{
uint8_t
nr_carriers
;
struct
CschedCellConfigReqParametersListElement
*
ccConfigList
[
MAX_NUM_CCs
];
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
struct
CschedCellConfigReqParametersListElement
{
uint8_t
puschHoppingOffset
;
enum
HoppingMode_e
{
inter
,
interintra
}
hoppingMode
;
uint8_t
nSb
;
enum
PhichResource_e
{
PHICH_R_ONE_SIXTH
,
PHICH_R_HALF
,
PHICH_R_ONE
,
PHICH_R_TWO
}
phichResource
;
enum
NormalExtended_e
phichDuration
;
uint8_t
initialNrOfPdcchOfdmSymbols
;
struct
SiConfiguration_s
siConfiguration
;
uint8_t
ulBandwidth
;
uint8_t
dlBandwidth
;
enum
NormalExtended_e
ulCyclicPrefixLength
;
enum
NormalExtended_e
dlCyclicPrefixLength
;
uint8_t
antennaPortsCount
;
enum
DuplexMode_e
{
DTDD
,
DFDD
}
duplexMode
;
uint8_t
subframeAssignment
;
uint8_t
specialSubframePatterns
;
uint8_t
mbsfnSubframeConfigRfPeriod
[
MAX_MBSFN_CONFIG
];
uint8_t
mbsfnSubframeConfigRfOffset
[
MAX_MBSFN_CONFIG
];
uint8_t
mbsfnSubframeConfigSfAllocation
[
MAX_MBSFN_CONFIG
];
uint8_t
prachConfigurationIndex
;
uint8_t
prachFreqOffset
;
uint8_t
raResponseWindowSize
;
uint8_t
macContentionResolutionTimer
;
uint8_t
maxHarqMsg3Tx
;
uint16_t
n1PucchAn
;
uint8_t
deltaPucchShift
;
uint8_t
nrbCqi
;
uint8_t
ncsAn
;
uint8_t
srsSubframeConfiguration
;
uint8_t
srsSubframeOffset
;
uint8_t
srsBandwidthConfiguration
;
bool
srsMaxUpPts
;
enum
Enable64Qae
{
MOD_16QAM
,
MOD_64QAM
}
enable64Qam
;
uint8_t
carrierIndex
;
};
/**
* Parameters of the CSCHED_UE_CONFIG_REQ primitive.
* See section 4.1.3 for a detailed description of the parameters.
*/
struct
CschedUeConfigReqParameters
{
uint16_t
rnti
;
bool
reconfigureFlag
;
bool
drxConfigPresent
;
struct
DrxConfig_s
drxConfig
;
uint16_t
timeAlignmentTimer
;
enum
MeasGapConfigPattern_e
{
MGP_GP1
,
MGP_GP2
,
OFF
}
measGapConfigPattern
;
uint8_t
measGapConfigSubframeOffset
;
bool
spsConfigPresent
;
struct
SpsConfig_s
spsConfig
;
bool
srConfigPresent
;
struct
SrConfig_s
srConfig
;
bool
cqiConfigPresent
;
struct
CqiConfig_s
cqiConfig
;
uint8_t
transmissionMode
;
uint64_t
ueAggregatedMaximumBitrateUl
;
uint64_t
ueAggregatedMaximumBitrateDl
;
struct
UeCapabilities_s
ueCapabilities
;
enum
OpenClosedLoop_e
{
noneloop
,
openloop
,
closedloop
}
ueTransmitAntennaSelection
;
bool
ttiBundling
;
uint8_t
maxHarqTx
;
uint8_t
betaOffsetAckIndex
;
uint8_t
betaOffsetRiIndex
;
uint8_t
betaOffsetCqiIndex
;
bool
ackNackSrsSimultaneousTransmission
;
bool
simultaneousAckNackAndCqi
;
enum
RepMode_e
{
ff_rm12
,
ff_rm20
,
ff_rm22
,
ff_rm30
,
ff_rm31
,
ff_nonemode
}
aperiodicCqiRepMode
;
enum
FeedbackMode_e
{
ff_bundling
,
ff_multiplexing
}
tddAckNackFeedbackMode
;
uint8_t
ackNackRepetitionFactor
;
bool
caSupport
;
bool
crossCarrierSchedSupport
;
uint8_t
pcellCarrierIndex
;
uint8_t
nr_scells
;
struct
ScellConfig_s
*
scellConfigList
[
MAX_NUM_CCs
-
1
];
uint8_t
scellDeactivationTimer
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the CSCHED_LC_CONFIG_REQ primitive.
* See section 4.1.5 for a detailed description of the parameters.
*/
struct
CschedLcConfigReqParameters
{
uint16_t
rnti
;
bool
reconfigureFlag
;
uint8_t
nr_logicalChannelConfigList
;
struct
LogicalChannelConfigListElement_s
*
logicalChannelConfigList
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the CSCHED_LC_RELEASE_REQ primitive.
* See section 4.1.7 for a detailed description of the parameters.
*/
struct
CschedLcReleaseReqParameters
{
uint16_t
rnti
;
uint8_t
nr_logicalChannelIdendity
;
uint8_t
*
logicalChannelIdentity
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the CSCHED_UE_RELEASE_REQ primitive.
* See section 4.1.9 for a detailed description of the parameters.
*/
struct
CschedUeReleaseReqParameters
{
uint16_t
rnti
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
//
// CSCHED - MAC Scheduler Control SAP primitives
// (See 4.1 for description of the primitives)
//
/**
* \brief CSCHED_CELL_CONFIG_REQ
*/
void
CschedCellConfigReq
(
const
struct
CschedCellConfigReqParameters
*
params
);
void
CschedUeConfigReq
(
const
struct
CschedUeConfigReqParameters
*
params
);
void
CschedLcConfigReq
(
const
struct
CschedLcConfigReqParameters
*
params
);
void
CschedLcReleaseReq
(
const
struct
CschedLcReleaseReqParameters
*
params
);
void
CschedUeReleaseReq
(
const
struct
CschedUeReleaseReqParameters
*
params
);
/**
* Parameters of the API primitives
*/
/**
* Parameters of the CSCHED_CELL_CONFIG_CNF primitive.
* See section 4.1.2 for a detailed description of the parameters.
*/
struct
CschedCellConfigCnfParameters
{
enum
Result_e
result
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the CSCHED_UE_CONFIG_CNF primitive.
* See section 4.1.4 for a detailed description of the parameters.
*/
struct
CschedUeConfigCnfParameters
{
uint16_t
rnti
;
enum
Result_e
result
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the CSCHED_LC_CONFIG_CNF primitive.
* See section 4.1.6 for a detailed description of the parameters.
*/
struct
CschedLcConfigCnfParameters
{
uint16_t
rnti
;
enum
Result_e
result
;
uint8_t
nr_logicalChannelIdendity
;
uint8_t
*
logicalChannelIdentity
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the CSCHED_LC_RELEASE_CNF primitive.
* See section 4.1.8 for a detailed description of the parameters.
*/
struct
CschedLcReleaseCnfParameters
{
uint16_t
rnti
;
enum
Result_e
result
;
uint8_t
nr_logicalChannelIdendity
;
uint8_t
*
logicalChannelIdentity
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the CSCHED_UE_RELEASE_CNF primitive.
* See section 4.1.10 for a detailed description of the parameters.
*/
struct
CschedUeReleaseCnfParameters
{
uint16_t
rnti
;
enum
Result_e
result
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the CSCHED_UE_CONFIG_UPDATE_IND primitive.
* See section 4.1.11 for a detailed description of the parameters.
*/
struct
CschedUeConfigUpdateIndParameters
{
uint16_t
rnti
;
uint8_t
transmissionMode
;
bool
spsConfigPresent
;
struct
SpsConfig_s
spsConfig
;
bool
srConfigPresent
;
struct
SrConfig_s
srConfig
;
bool
cqiConfigPresent
;
struct
CqiConfig_s
cqiConfig
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the CSCHED_CELL_CONFIG_UPDATE_IND primitive.
* See section 4.1.12 for a detailed description of the parameters.
*/
struct
CschedCellConfigUpdateIndParameters
{
uint8_t
carrierIndex
;
uint8_t
prbUtilizationDl
;
uint8_t
prbUtilizationUl
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
//
// CSCHED - MAC Scheduler Control SAP primitives
// (See 4.1 for description of the primitives)
//
void
CschedCellConfigCnf
(
const
struct
CschedCellConfigCnfParameters
*
params
);
void
CschedUeConfigCnf
(
const
struct
CschedUeConfigCnfParameters
*
params
);
void
CschedLcConfigCnf
(
const
struct
CschedLcConfigCnfParameters
*
params
);
void
CschedLcReleaseCnf
(
const
struct
CschedLcReleaseCnfParameters
*
params
);
void
CschedUeReleaseCnf
(
const
struct
CschedUeReleaseCnfParameters
*
params
);
void
CschedUeConfigUpdateInd
(
const
struct
CschedUeConfigUpdateIndParameters
*
params
);
void
CschedCellConfigUpdateInd
(
const
struct
CschedCellConfigUpdateIndParameters
*
params
);
#endif
/* FF_MAC_CSCHED_SAP_H */
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/ff-mac-sched-sap.h
0 → 100644
View file @
a1403400
/*******************************************************************************
OpenAirInterface
Copyright(c) 1999 - 2015 Eurecom
OpenAirInterface is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenAirInterface is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with OpenAirInterface.The full GNU General Public License is
included in this distribution in the file called "COPYING". If not,
see <http://www.gnu.org/licenses/>.
Contact Information
OpenAirInterface Admin: openair_admin@eurecom.fr
OpenAirInterface Tech : openair_tech@eurecom.fr
OpenAirInterface Dev : openair4g-devel@eurecom.fr
Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
*******************************************************************************/
/*! \file ff-mac-sched-sap.h
* \brief this is the implementation of the Femto Forum LTE MAC Scheduler Interface Specification v1.11
* \author Florian Kaltenberger
* \date March 2015
* \version 1.0
* \email: florian.kaltenberger@eurecom.fr
* @ingroup _mac
*/
#ifndef FF_MAC_SCHED_SAP_H
#define FF_MAC_SCHED_SAP_H
#include <stdint.h>
#include <stdbool.h>
#include "ff-mac-common.h"
/**
* Parameters of the API primitives
*/
/**
* Parameters of the SCHED_DL_RLC_BUFFER_REQ primitive.
* See section 4.2.1 for a detailed description of the parameters.
*/
struct
SchedDlRlcBufferReqParameters
{
uint16_t
rnti
;
uint8_t
logicalChannelIdentity
;
uint32_t
rlcTransmissionQueueSize
;
uint16_t
rlcTransmissionQueueHolDelay
;
uint32_t
rlcRetransmissionQueueSize
;
uint16_t
rlcRetransmissionHolDelay
;
uint16_t
rlcStatusPduSize
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the SCHED_DL_PAGING_BUFFER_REQ primitive.
* See section 4.2.2 for a detailed description of the parameters.
*/
struct
SchedDlPagingBufferReqParameters
{
uint16_t
rnti
;
uint8_t
nr_pagingInfoList
;
struct
PagingInfoListElement_s
*
pagingInfoList
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the SCHED_DL_MAC_BUFFER_REQ primitive.
* See section 4.2.3 for a detailed description of the parameters.
*/
struct
SchedDlMacBufferReqParameters
{
uint16_t
rnti
;
uint8_t
nr_macCEDL_List
;
struct
MacCeDlListElement_s
*
macCeDlList
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the SCHED_DL_TRIGGER_REQ primitive.
* See section 4.2.4 for a detailed description of the parameters.
*/
struct
SchedDlTriggerReqParameters
{
uint16_t
sfnSf
;
uint8_t
nr_dlInfoList
;
struct
DlInfoListElement_s
*
dlInfoList
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the SCHED_DL_RACH_INFO_REQ primitive.
* See section 4.2.5 for a detailed description of the parameters.
*/
struct
SchedDlRachInfoReqParameters
{
uint16_t
sfnSf
;
uint8_t
nrrachList
;
struct
RachListElement_s
*
rachList
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the SCHED_DL_CQI_INFO_REQ primitive.
* See section 4.2.6 for a detailed description of the parameters.
*/
struct
SchedDlCqiInfoReqParameters
{
uint16_t
sfnSf
;
uint8_t
nrcqiList
;
struct
CqiListElement_s
*
cqiList
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the SCHED_UL_TRIGGER_REQ primitive.
* See section 4.2.8 for a detailed description of the parameters.
*/
struct
SchedUlTriggerReqParameters
{
uint16_t
sfnSf
;
uint8_t
nr_ulInfoList
;
struct
UlInfoListElement_s
*
ulInfoList
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the SCHED_UL_NOISE_INTERFERENCE_REQ primitive.
* See section 4.2.9 for a detailed description of the parameters.
*/
struct
SchedUlNoiseInterferenceReqParameters
{
uint8_t
carrierIndex
;
uint16_t
sfnSf
;
uint16_t
rip
;
uint16_t
tnp
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the SCHED_UL_SR_INFO_REQ primitive.
* See section 4.2.10 for a detailed description of the parameters.
*/
struct
SchedUlSrInfoReqParameters
{
uint16_t
sfnSf
;
uint8_t
nr_srList
;
struct
SrListElement_s
*
srList
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the SCHED_UL_MAC_CTRL_INFO_REQ primitive.
* See section 4.2.11 for a detailed description of the parameters.
*/
struct
SchedUlMacCtrlInfoReqParameters
{
uint16_t
sfnSf
;
uint8_t
nr_macCEUL_List
;
struct
MacCeUlListElement_s
macCeUlList
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the SCHED_UL_CQI_INFO_REQ primitive.
* See section 4.2.12 for a detailed description of the parameters.
*/
struct
SchedUlCqiInfoReqParameters
{
uint16_t
sfnSf
;
struct
UlCqi_s
ulCqi
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
//
// SCHED - MAC Scheduler SAP primitives
// (See 4.2 for description of the primitives)
//
void
SchedDlRlcBufferReq
(
const
struct
SchedDlRlcBufferReqParameters
*
params
);
void
SchedDlPagingBufferReq
(
const
struct
SchedDlPagingBufferReqParameters
*
params
);
void
SchedDlMacBufferReq
(
const
struct
SchedDlMacBufferReqParameters
*
params
);
void
SchedDlTriggerReq
(
const
struct
SchedDlTriggerReqParameters
*
params
);
void
SchedDlRachInfoReq
(
const
struct
SchedDlRachInfoReqParameters
*
params
);
void
SchedDlCqiInfoReq
(
const
struct
SchedDlCqiInfoReqParameters
*
params
);
void
SchedUlTriggerReq
(
const
struct
SchedUlTriggerReqParameters
*
params
);
void
SchedUlNoiseInterferenceReq
(
const
struct
SchedUlNoiseInterferenceReqParameters
*
params
);
void
SchedUlSrInfoReq
(
const
struct
SchedUlSrInfoReqParameters
*
params
);
void
SchedUlMacCtrlInfoReq
(
const
struct
SchedUlMacCtrlInfoReqParameters
*
params
);
void
SchedUlCqiInfoReq
(
const
struct
SchedUlCqiInfoReqParameters
*
params
);
/**
* Parameters of the API primitives
*/
/**
* Parameters of the SCHED_DL_CONFIG_IND primitive.
* See section 4.2.7 for a detailed description of the parameters.
*/
struct
SchedDlConfigIndParameters
{
uint8_t
nr_buildDataList
;
uint8_t
nr_buildRARList
;
uint8_t
nr_buildBroadcastList
;
struct
BuildDataListElement_s
*
buildDataList
;
struct
BuildRarListElement_s
*
buildRarList
;
struct
BuildBroadcastListElement_s
*
buildBroadcastList
;
/* mind: this is just number of elems in the next array (not actual number of PDCCH OFDM symbols) */
uint8_t
nr_ofdmSymbolsCount
;
struct
PdcchOfdmSymbolCountListElement_s
*
nrOfPdcchOfdmSymbols
[
MAX_NUM_CCs
];
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
/**
* Parameters of the SCHED_UL_CONFIG_IND primitive.
* See section 4.2.13 for a detailed description of the parameters.
*/
struct
SchedUlConfigIndParameters
{
uint8_t
nr_dciList
;
uint8_t
nr_phichList
;
struct
UlDciListElement_s
*
dciList
;
struct
PhichListElement_s
*
phichList
;
uint8_t
nr_vendorSpecificList
;
struct
VendorSpecificListElement_s
*
vendorSpecificList
;
};
//
// SCHED - MAC Scheduler SAP primitives
// (See 4.2 for description of the primitives)
//
void
SchedDlConfigInd
(
const
struct
SchedDlConfigIndParameters
*
params
);
void
SchedUlConfigInd
(
const
struct
SchedUlConfigIndParameters
*
params
);
#endif
/* FF_MAC_SCHED_SAP_H */
This diff is collapsed.
Click to expand it.
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