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
alex037yang
OpenXG-RAN
Commits
4ff44813
Commit
4ff44813
authored
Sep 17, 2018
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
switch/case for handling DL_RRC_MESSAGE in DU
parent
b1313aaf
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
68 additions
and
9 deletions
+68
-9
openair2/F1AP/f1ap_du_rrc_message_transfer.c
openair2/F1AP/f1ap_du_rrc_message_transfer.c
+68
-9
No files found.
openair2/F1AP/f1ap_du_rrc_message_transfer.c
View file @
4ff44813
...
@@ -34,11 +34,17 @@
...
@@ -34,11 +34,17 @@
#include "f1ap_encoder.h"
#include "f1ap_encoder.h"
#include "f1ap_decoder.h"
#include "f1ap_decoder.h"
#include "f1ap_itti_messaging.h"
#include "f1ap_itti_messaging.h"
#include "f1ap_du_rrc_message_transfer.h"
#include "f1ap_du_rrc_message_transfer.h"
#include "DL-CCCH-Message.h"
#include "DL-DCCH-Message.h"
// undefine C_RNTI from
// undefine C_RNTI from
// openair1/PHY/LTE_TRANSPORT/transport_common.h which
// openair1/PHY/LTE_TRANSPORT/transport_common.h which
// replaces in ie->value.choice.C_RNTI, causing
// replaces in ie->value.choice.C_RNTI, causing
// a compile error
// a compile error
#undef C_RNTI
#undef C_RNTI
extern
f1ap_setup_req_t
*
f1ap_du_data
;
extern
f1ap_setup_req_t
*
f1ap_du_data
;
...
@@ -62,7 +68,7 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -62,7 +68,7 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
uint64_t
du_ue_f1ap_id
;
uint64_t
du_ue_f1ap_id
;
uint64_t
srb_id
;
uint64_t
srb_id
;
int
executeDuplication
;
int
executeDuplication
;
sdu_size_t
ccch
_sdu_len
;
sdu_size_t
rrc_dl
_sdu_len
;
uint64_t
subscriberProfileIDforRFP
;
uint64_t
subscriberProfileIDforRFP
;
uint64_t
rAT_FrequencySelectionPriority
;
uint64_t
rAT_FrequencySelectionPriority
;
...
@@ -122,14 +128,14 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -122,14 +128,14 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
F1AP_ProtocolIE_ID_id_RRCContainer
,
true
);
F1AP_ProtocolIE_ID_id_RRCContainer
,
true
);
// BK: need check
// BK: need check
// create an ITTI message and copy SDU
// create an ITTI message and copy SDU
message_p
=
itti_alloc_new_message
(
TASK_CU_F1
,
RRC_MAC_CCCH_DATA_IND
);
//
message_p = itti_alloc_new_message (TASK_CU_F1, RRC_MAC_CCCH_DATA_IND);
memset
(
RRC_MAC_CCCH_DATA_IND
(
message_p
).
sdu
,
0
,
CCCH_SDU_SIZE
);
//
memset (RRC_MAC_CCCH_DATA_IND (message_p).sdu, 0, CCCH_SDU_SIZE);
ccch
_sdu_len
=
ie
->
value
.
choice
.
RRCContainer
.
size
;
rrc_dl
_sdu_len
=
ie
->
value
.
choice
.
RRCContainer
.
size
;
memcpy
(
RRC_MAC_CCCH_DATA_IND
(
message_p
).
sdu
,
ie
->
value
.
choice
.
RRCContainer
.
buf
,
//
memcpy(RRC_MAC_CCCH_DATA_IND (message_p).sdu, ie->value.choice.RRCContainer.buf,
ccch_sdu_len
);
//
ccch_sdu_len);
printf
(
"RRCContainer
(CCCH)
:"
);
printf
(
"RRCContainer :"
);
for
(
int
i
=
0
;
i
<
ie
->
value
.
choice
.
RRCContainer
.
size
;
i
++
)
printf
(
"%2x "
,
RRC_MAC_CCCH_DATA_IND
(
message_p
).
sdu
[
i
]);
for
(
int
i
=
0
;
i
<
ie
->
value
.
choice
.
RRCContainer
.
size
;
i
++
)
printf
(
"%2x "
,
ie
->
value
.
choice
.
RRCContainer
.
buf
[
i
]);
printf
(
"
\n
"
);
/* optional */
/* optional */
/* RAT_FrequencyPriorityInformation */
/* RAT_FrequencyPriorityInformation */
...
@@ -147,6 +153,59 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -147,6 +153,59 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
}
}
}
}
// decode RRC Container and act on the message type
AssertFatal
(
srb_id
<
3
,
"illegal srb_id
\n
"
);
if
(
srb_id
==
0
)
{
DL_CCCH_Message_t
*
dl_ccch_msg
=
NULL
;
asn_dec_rval_t
dec_rval
;
dec_rval
=
uper_decode
(
NULL
,
&
asn_DEF_DL_CCCH_Message
,
(
void
**
)
&
dl_ccch_msg
,
ie
->
value
.
choice
.
RRCContainer
.
buf
,
ie
->
value
.
choice
.
RRCContainer
.
size
,
0
,
0
);
switch
(
dl_ccch_msg
->
message
.
choice
.
c1
.
present
)
{
case
DL_CCCH_MessageType__c1_PR_NOTHING
:
LOG_I
(
RRC
,
"Received PR_NOTHING on DL-CCCH-Message
\n
"
);
break
;
case
DL_CCCH_MessageType__c1_PR_rrcConnectionReestablishment
:
LOG_I
(
RRC
,
"Logical Channel DL-CCCH (SRB0), Received RRCConnectionReestablishment
\n
"
);
break
;
case
DL_CCCH_MessageType__c1_PR_rrcConnectionReestablishmentReject
:
LOG_I
(
RRC
,
"Logical Channel DL-CCCH (SRB0), Received RRCConnectionReestablishmentReject
\n
"
);
break
;
case
DL_CCCH_MessageType__c1_PR_rrcConnectionReject
:
LOG_I
(
RRC
,
"Logical Channel DL-CCCH (SRB0), Received RRCConnectionReject
\n
"
);
break
;
case
DL_CCCH_MessageType__c1_PR_rrcConnectionSetup
:
LOG_I
(
RRC
,
"Logical Channel DL-CCCH (SRB0), Received RRCConnectionSetup RNTI %x
\n
"
);
// Get configuration
break
;
default:
AssertFatal
(
1
==
0
,
"Unknown message
\n
"
);
break
;
}
}
else
if
(
srb_id
==
1
){
}
else
if
(
srb_id
==
2
){
}
return
0
;
return
0
;
}
}
...
...
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