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
littleBu
OpenXG-RAN
Commits
c4d7e11c
Commit
c4d7e11c
authored
May 05, 2021
by
Melissa Elkadi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Working on do_nrMeasurementReport
parent
cee317b7
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
158 additions
and
57 deletions
+158
-57
openair2/RRC/LTE/MESSAGES/asn1_msg.c
openair2/RRC/LTE/MESSAGES/asn1_msg.c
+94
-0
openair2/RRC/LTE/MESSAGES/asn1_msg.h
openair2/RRC/LTE/MESSAGES/asn1_msg.h
+2
-0
openair2/RRC/LTE/rrc_UE.c
openair2/RRC/LTE/rrc_UE.c
+62
-57
No files found.
openair2/RRC/LTE/MESSAGES/asn1_msg.c
View file @
c4d7e11c
...
...
@@ -4216,6 +4216,100 @@ uint8_t do_MeasurementReport(uint8_t Mod_id, uint8_t *buffer,int measid,int phy_
return((enc_rval.encoded+7)/8);
}
ssize_t do_nrMeasurementReport(uint8_t Mod_id, uint8_t *buffer,int measid,int phy_id,long rsrp_s,long rsrq_s,long rsrp_t,long rsrq_t) {
asn_enc_rval_t enc_rval;
LTE_UL_DCCH_Message_t ul_dcch_msg;
LTE_MeasurementReport_t *measurementReport;
ul_dcch_msg.message.present = LTE_UL_DCCH_MessageType_PR_c1;
ul_dcch_msg.message.choice.c1.present = LTE_UL_DCCH_MessageType__c1_PR_measurementReport;
measurementReport = &ul_dcch_msg.message.choice.c1.choice.measurementReport;
measurementReport->criticalExtensions.present=LTE_MeasurementReport__criticalExtensions_PR_c1;
measurementReport->criticalExtensions.choice.c1.present=LTE_MeasurementReport__criticalExtensions__c1_PR_measurementReport_r8;
measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.nonCriticalExtension=CALLOC(1,
sizeof(*measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.nonCriticalExtension));
measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measId=measid;
measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measResultPCell.rsrpResult=rsrp_s;
measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measResultPCell.rsrqResult=rsrq_s;
measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measResultNeighCells=CALLOC(1,
sizeof(*measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measResultNeighCells));
measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measResultNeighCells->present=LTE_MeasResults__measResultNeighCells_PR_measResultNeighCellListNR_r15;
LTE_MeasResultCellListNR_r15_t *measResultListNR_r15;
measResultListNR_r15 = CALLOC(1,sizeof(*measResultListNR_r15));
struct LTE_MeasResultCellNR_r15 *measResultNR_r15;
measResultNR_r15 = CALLOC(1,sizeof(*measResultNR_r15));
measResultNR_r15->pci_r15;
struct LTE_CGI_InfoNR_r15 *measresult_nr_cgi2;
measresult_nr_cgi2 = CALLOC(1,sizeof(*measresult_nr_cgi2));
int count = measresult_nr_cgi2->plmn_IdentityInfoList_r15->list.count;
for (int i = 0; i < count; i++)
{
AssertFatal(i < count, "%d >= measresult_nr_cgi2->plmn_IdentityInfoList_r15->list.count", i);
//LTE_PLMN_IdentityInfoNR_r15_t *plmn_info_list = measResultNR_r15->ext1->cgi_Info_r15->plmn_IdentityInfoList_r15->list.array[i]->cellIdentity_r15.
LTE_PLMN_IdentityInfoNR_r15_t *plmn_info_list = measresult_nr_cgi2->plmn_IdentityInfoList_r15->list.array[i];
memset(&plmn_info_list,0,sizeof(plmn_info_list));
LTE_PLMN_Identity_t *plmn_id = plmn_info_list->plmn_IdentityList_r15.list.array[i];
memset(&plmn_id, 0, sizeof(plmn_id));
plmn_id->mcc = CALLOC(1, sizeof(plmn_id->mcc));
asn_set_empty(plmn_id->mcc->list);
LTE_MCC_MNC_Digit_t dummy;
dummy=2;
ASN_SEQUENCE_ADD(plmn_id->mcc->list, &dummy);
dummy=6;
ASN_SEQUENCE_ADD(plmn_id->mcc->list, &dummy);
dummy=2;
ASN_SEQUENCE_ADD(plmn_id->mcc->list, &dummy);
plmn_id->mnc.list.size=0;
plmn_id->mnc.list.count=0;
dummy=8;
ASN_SEQUENCE_ADD(&plmn_id->mnc.list, &dummy);
dummy=0;
ASN_SEQUENCE_ADD(&plmn_id->mnc.list, &dummy);
plmn_info_list->cellIdentity_r15.buf = MALLOC(8);
plmn_info_list->cellIdentity_r15.buf[0] = 0x01;
plmn_info_list->cellIdentity_r15.buf[1] = 0x48;
plmn_info_list->cellIdentity_r15.buf[2] = 0x0f;
plmn_info_list->cellIdentity_r15.buf[3] = 0x03;
plmn_info_list->cellIdentity_r15.size = 4;
plmn_info_list->cellIdentity_r15.bits_unused = 4;
plmn_info_list->trackingAreaCode_r15->buf = MALLOC(2);
plmn_info_list->trackingAreaCode_r15->buf[0]=0x00;
plmn_info_list->trackingAreaCode_r15->buf[1]=0x10;
plmn_info_list->trackingAreaCode_r15->size=2;
plmn_info_list->trackingAreaCode_r15->bits_unused=0;
}
measResultNR_r15->ext1->cgi_Info_r15 = measResultNR_r15;
struct LTE_MeasResultNR_r15_t meas2;
meas2.rsrpResult_r15 = &(rsrp_t);
meas2.rsrqResult_r15 = &(rsrq_t);
measResultNR_r15->measResultCell_r15 = meas2;
ASN_SEQUENCE_ADD(&measResultListNR_r15->list, measResultListNR_r15);
measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measResultNeighCells->choice.measResultNeighCellListNR_r15 = *(measResultListNR_r15);
enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_UL_DCCH_Message,
NULL,
(void *)&ul_dcch_msg,
buffer,
RRC_BUF_SIZE);
if(enc_rval.encoded == -1) {
LOG_I(RRC, "[eNB AssertFatal]ASN1 message encoding failed (%s, %lu)!\n",
enc_rval.failed_type->name, enc_rval.encoded);
free(measResultListNR_r15);
measResultListNR_r15 = NULL;
return -1;
}
free(measResultListNR_r15);
measResultListNR_r15 = NULL;
return((enc_rval.encoded+7)/8);
}
uint8_t do_DLInformationTransfer(uint8_t Mod_id, uint8_t **buffer, uint8_t transaction_id, uint32_t pdu_length, uint8_t *pdu_buffer) {
ssize_t encoded;
LTE_DL_DCCH_Message_t dl_dcch_msg;
...
...
openair2/RRC/LTE/MESSAGES/asn1_msg.h
View file @
c4d7e11c
...
...
@@ -343,6 +343,8 @@ uint8_t do_MBSFNAreaConfig(uint8_t Mod_id,
uint8_t
do_MeasurementReport
(
uint8_t
Mod_id
,
uint8_t
*
buffer
,
int
measid
,
int
phy_id
,
long
rsrp_s
,
long
rsrq_s
,
long
rsrp_t
,
long
rsrq_t
);
uint8_t
do_nrMeasurementReport
(
uint8_t
Mod_id
,
uint8_t
*
buffer
,
int
measid
,
int
phy_id
,
long
rsrp_s
,
long
rsrq_s
,
long
rsrp_t
,
long
rsrq_t
);
uint8_t
do_DLInformationTransfer
(
uint8_t
Mod_id
,
uint8_t
**
buffer
,
uint8_t
transaction_id
,
uint32_t
pdu_length
,
uint8_t
*
pdu_buffer
);
uint8_t
do_Paging
(
uint8_t
Mod_id
,
uint8_t
*
buffer
,
ue_paging_identity_t
ue_paging_identity
,
cn_domain_t
cn_domain
);
...
...
openair2/RRC/LTE/rrc_UE.c
View file @
c4d7e11c
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