Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-AMF
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
1
Issues
1
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
OpenXG-AMF
Commits
2e6fbced
Commit
2e6fbced
authored
Aug 19, 2021
by
Tien-Thinh Nguyen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Polish the code
parent
3aa1f3c6
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
95 additions
and
108 deletions
+95
-108
src/amf-app/amf_n11.cpp
src/amf-app/amf_n11.cpp
+1
-1
src/amf-app/amf_n2.cpp
src/amf-app/amf_n2.cpp
+48
-73
src/contexts/ue_ngap_context.hpp
src/contexts/ue_ngap_context.hpp
+2
-2
src/ngap/ngapMsgs/HandoverCommandMsg.cpp
src/ngap/ngapMsgs/HandoverCommandMsg.cpp
+14
-13
src/ngap/ngapMsgs/HandoverNotifyMsg.cpp
src/ngap/ngapMsgs/HandoverNotifyMsg.cpp
+2
-1
src/ngap/ngapMsgs/HandoverPreparationFailure.cpp
src/ngap/ngapMsgs/HandoverPreparationFailure.cpp
+4
-2
src/ngap/ngapMsgs/HandoverRequest.cpp
src/ngap/ngapMsgs/HandoverRequest.cpp
+3
-2
src/ngap/ngapMsgs/HandoverRequestAck.cpp
src/ngap/ngapMsgs/HandoverRequestAck.cpp
+2
-1
src/ngap/ngapMsgs/HandoverRequiredMsg.cpp
src/ngap/ngapMsgs/HandoverRequiredMsg.cpp
+2
-1
src/ngap/ngapMsgs/InitialContextSetupFailure.cpp
src/ngap/ngapMsgs/InitialContextSetupFailure.cpp
+17
-11
src/ngap/ngapMsgs/InitialContextSetupFailure.hpp
src/ngap/ngapMsgs/InitialContextSetupFailure.hpp
+0
-1
No files found.
src/amf-app/amf_n11.cpp
View file @
2e6fbced
...
...
@@ -234,7 +234,7 @@ void amf_n11::handle_itti_message(
remote_uri
,
json_part
,
""
,
n2SmMsg
,
supi
,
itti_msg
.
pdu_session_id
,
itti_msg
.
promise_id
);
stacs
.
display
();
//
stacs.display();
}
//------------------------------------------------------------------------------
...
...
src/amf-app/amf_n2.cpp
View file @
2e6fbced
...
...
@@ -1131,7 +1131,7 @@ bool amf_n2::handle_itti_message(itti_handover_required& itti_msg) {
gc
=
assoc_id_2_gnb_context
(
itti_msg
.
assoc_id
);
Logger
::
amf_n2
().
debug
(
"Handover Required, gNB info (gNB Name
: %s, globalRanNodeId %ld
)"
,
"Handover Required, gNB info (gNB Name
%s, globalRanNodeId 0x%x
)"
,
gc
.
get
()
->
gnb_name
.
c_str
(),
gc
.
get
()
->
globalRanNodeId
);
std
::
shared_ptr
<
ue_ngap_context
>
unc
=
{};
...
...
@@ -1144,7 +1144,7 @@ bool amf_n2::handle_itti_message(itti_handover_required& itti_msg) {
if
(
unc
.
get
()
->
amf_ue_ngap_id
!=
amf_ue_ngap_id
)
{
Logger
::
amf_n2
().
error
(
"The requested UE (amf_ue_ngap_id
:
0x%x) is not valid, existed UE "
"The requested UE (amf_ue_ngap_id
0x%x) is not valid, existed UE "
"with amf_ue_ngap_id (0x%x)"
,
amf_ue_ngap_id
,
unc
.
get
()
->
amf_ue_ngap_id
);
return
false
;
...
...
@@ -1156,7 +1156,7 @@ bool amf_n2::handle_itti_message(itti_handover_required& itti_msg) {
}
Logger
::
amf_n2
().
debug
(
"
Cause
, Choice of Cause %d, Cause %ld"
,
"
Handover Required
, Choice of Cause %d, Cause %ld"
,
(
int
)
itti_msg
.
handoverReq
->
getChoiceOfCause
(),
itti_msg
.
handoverReq
->
getCauseValue
());
...
...
@@ -1182,7 +1182,7 @@ bool amf_n2::handle_itti_message(itti_handover_required& itti_msg) {
*/
Logger
::
amf_n2
().
debug
(
"DirectForwardingPathAvailability %d"
,
"
Handover Required,
DirectForwardingPathAvailability %d"
,
itti_msg
.
handoverReq
->
getDirectForwardingPathAvailability
());
unc
.
get
()
->
gnb_assoc_id
=
itti_msg
.
assoc_id
;
...
...
@@ -1200,8 +1200,8 @@ bool amf_n2::handle_itti_message(itti_handover_required& itti_msg) {
plmn
->
getMnc
(
mnc
);
Logger
::
amf_n2
().
debug
(
"Handover Required
: Target ID GlobalRanNodeID PLmn (mcc: %s, mnc:
%s, "
"g
nbid: %ld
)"
,
"Handover Required
, Target ID GlobalRanNodeID PLmn (MCC %s, MNC
%s, "
"g
NBId 0x%x
)"
,
mcc
.
c_str
(),
mnc
.
c_str
(),
gnbid
->
getValue
());
TAI
*
tai
=
new
TAI
();
...
...
@@ -1214,7 +1214,7 @@ bool amf_n2::handle_itti_message(itti_handover_required& itti_msg) {
plmn
->
getMcc
(
mccOfselectTAI
);
plmn
->
getMnc
(
mncOfselectTAI
);
Logger
::
amf_n2
().
debug
(
"Handover Required: Target ID selected TAI PLMN (
mcc %s, mnc %s, tac
%x)"
,
"Handover Required: Target ID selected TAI PLMN (
MCC %s, MNC %s, TAC
%x)"
,
mccOfselectTAI
.
c_str
(),
mncOfselectTAI
.
c_str
(),
tac
->
getTac
());
OCTET_STRING_t
sourceTotarget
;
...
...
@@ -1282,7 +1282,8 @@ bool amf_n2::handle_itti_message(itti_handover_required& itti_msg) {
uint8_t
*
kamf
=
nc
.
get
()
->
kamf
[
secu
->
vector_pointer
];
uint8_t
kgnb
[
32
];
uint32_t
ulcount
=
secu
->
ul_count
.
seq_num
|
(
secu
->
ul_count
.
overflow
<<
8
);
Logger
::
amf_n2
().
debug
(
"Uplink count (%d)"
,
secu
->
ul_count
.
seq_num
);
Logger
::
amf_n2
().
debug
(
"Handover Required, Uplink count (%d)"
,
secu
->
ul_count
.
seq_num
);
uint8_t
knh
[
32
];
Authentication_5gaka
::
handover_ncc_derive_knh
(
ulcount
,
0x01
,
kamf
,
kgnb
,
knh
,
unc
.
get
()
->
ncc
);
...
...
@@ -1414,7 +1415,6 @@ bool amf_n2::handle_itti_message(itti_handover_required& itti_msg) {
//------------------------------------------------------------------------------
void
amf_n2
::
handle_itti_message
(
itti_handover_request_Ack
&
itti_msg
)
{
// TODO: Experimental procedure, to be tested
Logger
::
amf_n2
().
debug
(
"Handling Handover Request Ack ..."
);
unsigned
long
amf_ue_ngap_id
=
itti_msg
.
handoverrequestAck
->
getAmfUeNgapId
();
uint32_t
ran_ue_ngap_id
=
itti_msg
.
handoverrequestAck
->
getRanUeNgapId
();
...
...
@@ -1429,6 +1429,9 @@ void amf_n2::handle_itti_message(itti_handover_request_Ack& itti_msg) {
return
;
}
gc
=
assoc_id_2_gnb_context
(
itti_msg
.
assoc_id
);
Logger
::
amf_n2
().
debug
(
"Handover Request Ack, gNB info (gNB Name %s, globalRanNodeId 0x%x)"
,
gc
.
get
()
->
gnb_name
.
c_str
(),
gc
.
get
()
->
globalRanNodeId
);
std
::
shared_ptr
<
ue_ngap_context
>
unc
=
{};
if
(
!
is_amf_ue_id_2_ue_ngap_context
(
amf_ue_ngap_id
))
{
...
...
@@ -1446,41 +1449,43 @@ void amf_n2::handle_itti_message(itti_handover_request_Ack& itti_msg) {
return
;
}
OCTET_STRING_t
targetTosource
;
targetTosource
=
OCTET_STRING_t
targetTosource
=
itti_msg
.
handoverrequestAck
->
getTargetToSource_TransparentContainer
();
/*
PDUSessionResourceHandoverRequestAckTransfer* PDUHandoverRequestAckTransfer
= new PDUSessionResourceHandoverRequestAckTransfer(); uint8_t
buf[BUFFER_SIZE_1024];
memcpy(
buf, list[0].handoverRequestAcknowledgeTransfer.buf,
list[0].handoverRequestAcknowledgeTransfer.size);
if (!PDUHandoverRequestAckTransfer->decodefromHandoverRequestAckTransfer(
buf, list[0].handoverRequestAcknowledgeTransfer.size)) {
Logger::ngap().error("Decode Handover Request Acknowledge Transfer
error"); return;
}
PDUSessionResourceHandoverRequestAckTransfer
*
PDUHandoverRequestAckTransfer
=
new
PDUSessionResourceHandoverRequestAckTransfer
();
uint8_t
buf
[
BUFFER_SIZE_1024
];
memcpy
(
buf
,
list
[
0
].
handoverRequestAcknowledgeTransfer
.
buf
,
list
[
0
].
handoverRequestAcknowledgeTransfer
.
size
);
if
(
!
PDUHandoverRequestAckTransfer
->
decodefromHandoverRequestAckTransfer
(
buf
,
list
[
0
].
handoverRequestAcknowledgeTransfer
.
size
))
{
Logger
::
ngap
().
error
(
"Decode Handover Request Acknowledge Transfer error"
);
return
;
}
GtpTunnel_t
*
gtptunnel
=
new
GtpTunnel_t
();
if
(
!
PDUHandoverRequestAckTransfer
->
getUpTransportLayerInformation2
(
gtptunnel
))
{
Logger
::
ngap
().
error
(
"Decode GTPTunnel error"
);
return
;
}
GtpTunnel_t* gtpTunnel = new GtpTunnel_t();
if (!PDUHandoverRequestAckTransfer->getUpTransportLayerInformation2(
gtpTunnel)) {
Logger::ngap().error("Decode GTPTunnel error");
return;
}
string
n3_ip_address
=
{};
uint32_t
teid
=
0
;
n3_ip_address
=
gtptunnel
->
ip_address
;
teid
=
gtptunnel
->
gtp_teid
;
std
::
vector
<
QosFlowLItemWithDataForwarding_t
>
QosFlowWithDataForwardinglist
;
PDUHandoverRequestAckTransfer
->
getqosFlowSetupResponseList
(
QosFlowWithDataForwardinglist
);
long
qosflowidentifiervalue
=
0
;
qosflowidentifiervalue
=
(
long
)
QosFlowWithDataForwardinglist
[
0
].
qosFlowIdentifier
;
Logger
::
ngap
().
debug
(
"QFI %lu"
,
qosflowidentifiervalue
);
string n3_ip_address = {};
uint32_t teid = 0;
n3_ip_address = gtpTunnel->ip_address;
teid = gtpTunnel->gtp_teid;
std::vector<QosFlowLItemWithDataForwarding_t> QosFlowWithDataForwardinglist;
PDUHandoverRequestAckTransfer->getqosFlowSetupResponseList(
QosFlowWithDataForwardinglist);
long qosflowidentifiervalue = 0;
//TODO: process QosFlowWithDataForwardinglist
qosflowidentifiervalue =
(long) QosFlowWithDataForwardinglist[0].qosFlowIdentifier;
Logger::ngap().debug("Handover Req Ack, QoS Flow Setup Response List, QFI
%lu", qosflowidentifiervalue);
*/
std
::
shared_ptr
<
nas_context
>
nc
=
amf_n1_inst
->
amf_ue_id_2_nas_context
(
amf_ue_ngap_id
);
...
...
@@ -1528,7 +1533,7 @@ void amf_n2::handle_itti_message(itti_handover_request_Ack& itti_msg) {
}
}
// send HandoverCommandMsg to Source g
nb
// send HandoverCommandMsg to Source g
NB
std
::
unique_ptr
<
HandoverCommandMsg
>
handovercommand
=
std
::
make_unique
<
HandoverCommandMsg
>
();
handovercommand
->
setMessageType
();
...
...
@@ -1580,35 +1585,6 @@ void amf_n2::handle_itti_message(itti_handover_request_Ack& itti_msg) {
}
curl_responses
.
erase
(
curl_responses
.
begin
());
}
/*
item.pduSessionId = list[0].pduSessionId;
// qosFLowtobeforwardedlist
std::vector<QosFlowToBeForwardedItem_t> forward_list;
QosFlowToBeForwardedItem_t forward_item;
forward_item.QFI = qosflowidentifiervalue;
forward_list.push_back(forward_item);
// set dlforwardingup_tnlinformation
// TransportLayerAddress *transportlayeraddress = new
TransportLayerAddress();
// transportlayeraddress->setTransportLayerAddress(n3_ip_address);
// GtpTeid *gtpTeid = new GtpTeid();
// gtpTeid->setGtpTeid(teid);
PDUSessionResourceHandoverCommandTransfer* handovercommandtransfer =
new PDUSessionResourceHandoverCommandTransfer();
handovercommandtransfer->setQosFlowToBeForwardedList(forward_list);
GtpTunnel_t uptlinfo = {};
uptlinfo.gtp_teid = teid;
uptlinfo.ip_address = n3_ip_address;
handovercommandtransfer->setUPTransportLayerInformation(uptlinfo);
uint8_t buffer_ho_cmd_transfer[BUFFER_SIZE_512];
int encoded_size =
handovercommandtransfer->encodePDUSessionResourceHandoverCommandTransfer(
buffer_ho_cmd_transfer, BUFFER_SIZE_512);
item.HandoverCommandTransfer.buf = buffer_ho_cmd_transfer;
item.HandoverCommandTransfer.size = encoded_size;
handover_list.push_back(item);
*/
handovercommand
->
setPduSessionResourceHandoverList
(
handover_list
);
handovercommand
->
setTargetToSource_TransparentContainer
(
targetTosource
);
...
...
@@ -1622,7 +1598,6 @@ void amf_n2::handle_itti_message(itti_handover_request_Ack& itti_msg) {
//------------------------------------------------------------------------------
void
amf_n2
::
handle_itti_message
(
itti_handover_notify
&
itti_msg
)
{
// TODO: Experimental procedure, to be tested
Logger
::
amf_n2
().
info
(
"Handle Handover Notify ..."
);
unsigned
long
amf_ue_ngap_id
=
itti_msg
.
handovernotify
->
getAmfUeNgapId
();
uint32_t
ran_ue_ngap_id
=
itti_msg
.
handovernotify
->
getRanUeNgapId
();
...
...
@@ -1638,7 +1613,7 @@ void amf_n2::handle_itti_message(itti_handover_notify& itti_msg) {
}
gc
=
assoc_id_2_gnb_context
(
itti_msg
.
assoc_id
);
Logger
::
amf_n2
().
debug
(
"Handover Notify, gNB info (gNB Name: %s, globalRanNodeId
%ld
)"
,
"Handover Notify, gNB info (gNB Name: %s, globalRanNodeId
0x%x
)"
,
gc
.
get
()
->
gnb_name
.
c_str
(),
gc
.
get
()
->
globalRanNodeId
);
std
::
shared_ptr
<
ue_ngap_context
>
unc
=
{};
...
...
src/contexts/ue_ngap_context.hpp
View file @
2e6fbced
...
...
@@ -53,8 +53,8 @@ class ue_ngap_context {
sctp_stream_id_t
sctp_stream_recv
;
// used to decide which ue in gNB
sctp_stream_id_t
sctp_stream_send
;
// used to decide which ue in gNB
sctp_assoc_id_t
gnb_assoc_id
;
// to find which gnb this UE belongs to
sctp_assoc_id_t
target_gnb_assoc_id
;
sctp_assoc_id_t
gnb_assoc_id
;
// to find which gnb this UE belongs to
sctp_assoc_id_t
target_gnb_assoc_id
;
// for HO
bool
ueContextRequest
;
uint32_t
s_tmsi_5g
;
...
...
src/ngap/ngapMsgs/HandoverCommandMsg.cpp
View file @
2e6fbced
...
...
@@ -89,11 +89,11 @@ bool HandoverCommandMsg::decodefrompdu(Ngap_NGAP_PDU_t* ngap_msg_pdu) {
handoverCommandIEs
=
&
handoverCommandPdu
->
choice
.
successfulOutcome
->
value
.
choice
.
HandoverCommand
;
}
else
{
Logger
::
ngap
().
error
(
"Check HandoverCommand message error"
);
Logger
::
ngap
().
error
(
"Check Handover
Command message error"
);
return
false
;
}
}
else
{
Logger
::
ngap
().
error
(
"Handover
Require
d MessageType error"
);
Logger
::
ngap
().
error
(
"Handover
Comman
d MessageType error"
);
return
false
;
}
for
(
int
i
=
0
;
i
<
handoverCommandIEs
->
protocolIEs
.
list
.
count
;
i
++
)
{
...
...
@@ -107,11 +107,11 @@ bool HandoverCommandMsg::decodefrompdu(Ngap_NGAP_PDU_t* ngap_msg_pdu) {
if
(
!
amfUeNgapId
->
decodefromAMF_UE_NGAP_ID
(
handoverCommandIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
choice
.
AMF_UE_NGAP_ID
))
{
Logger
::
ngap
().
error
(
"Decoded
ngap
AMF_UE_NGAP_ID IE error"
);
Logger
::
ngap
().
error
(
"Decoded
NGAP
AMF_UE_NGAP_ID IE error"
);
return
false
;
}
}
else
{
Logger
::
ngap
().
error
(
"Decoded
ngap
AMF_UE_NGAP_ID IE error"
);
Logger
::
ngap
().
error
(
"Decoded
NGAP
AMF_UE_NGAP_ID IE error"
);
return
false
;
}
}
break
;
...
...
@@ -124,11 +124,11 @@ bool HandoverCommandMsg::decodefrompdu(Ngap_NGAP_PDU_t* ngap_msg_pdu) {
if
(
!
ranUeNgapId
->
decodefromRAN_UE_NGAP_ID
(
handoverCommandIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
choice
.
RAN_UE_NGAP_ID
))
{
Logger
::
ngap
().
error
(
"Decoded
ngap
RAN_UE_NGAP_ID IE error"
);
Logger
::
ngap
().
error
(
"Decoded
NGAP
RAN_UE_NGAP_ID IE error"
);
return
false
;
}
}
else
{
Logger
::
ngap
().
error
(
"Decoded
ngap
RAN_UE_NGAP_ID IE error"
);
Logger
::
ngap
().
error
(
"Decoded
NGAP
RAN_UE_NGAP_ID IE error"
);
return
false
;
}
}
break
;
...
...
@@ -141,7 +141,7 @@ bool HandoverCommandMsg::decodefrompdu(Ngap_NGAP_PDU_t* ngap_msg_pdu) {
*
ngap_handovertype
=
handoverCommandIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
choice
.
HandoverType
;
}
else
{
Logger
::
ngap
().
error
(
"Decoded
ngap
Handover Type IE error"
);
Logger
::
ngap
().
error
(
"Decoded
NGAP
Handover Type IE error"
);
return
false
;
}
}
break
;
...
...
@@ -152,7 +152,7 @@ bool HandoverCommandMsg::decodefrompdu(Ngap_NGAP_PDU_t* ngap_msg_pdu) {
Ngap_HandoverCommandIEs__value_PR_PDUSessionResourceHandoverList
)
{
}
else
{
Logger
::
ngap
().
error
(
"Decoded
ngap
PDUSessionResourceHandoverList IE error"
);
"Decoded
NGAP
PDUSessionResourceHandoverList IE error"
);
return
false
;
}
}
break
;
...
...
@@ -163,7 +163,7 @@ bool HandoverCommandMsg::decodefrompdu(Ngap_NGAP_PDU_t* ngap_msg_pdu) {
Ngap_HandoverCommandIEs__value_PR_PDUSessionResourceToReleaseListHOCmd
)
{
}
else
{
Logger
::
ngap
().
error
(
"Decoded
ngap
PDUSessionResourceToReleaseListHOCmd IE error"
);
"Decoded
NGAP
PDUSessionResourceToReleaseListHOCmd IE error"
);
return
false
;
}
}
break
;
...
...
@@ -174,7 +174,7 @@ bool HandoverCommandMsg::decodefrompdu(Ngap_NGAP_PDU_t* ngap_msg_pdu) {
Ngap_HandoverCommandIEs__value_PR_TargetToSource_TransparentContainer
)
{
}
else
{
Logger
::
ngap
().
error
(
"Decoded
ngap
TargetToSource_TransparentContainer IE error"
);
"Decoded
NGAP
TargetToSource_TransparentContainer IE error"
);
return
false
;
}
}
break
;
...
...
@@ -184,7 +184,7 @@ bool HandoverCommandMsg::decodefrompdu(Ngap_NGAP_PDU_t* ngap_msg_pdu) {
handoverCommandIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
present
==
Ngap_HandoverCommandIEs__value_PR_CriticalityDiagnostics
)
{
}
else
{
Logger
::
ngap
().
error
(
"Decoded
ngap
CriticalityDiagnostics IE error"
);
Logger
::
ngap
().
error
(
"Decoded
NGAP
CriticalityDiagnostics IE error"
);
return
false
;
}
}
break
;
...
...
@@ -203,7 +203,8 @@ int HandoverCommandMsg::encode2buffer(uint8_t* buf, int buf_size) {
asn_fprint
(
stderr
,
&
asn_DEF_Ngap_NGAP_PDU
,
handoverCommandPdu
);
asn_enc_rval_t
er
=
aper_encode_to_buffer
(
&
asn_DEF_Ngap_NGAP_PDU
,
NULL
,
handoverCommandPdu
,
buf
,
buf_size
);
Logger
::
ngap
().
debug
(
"er.encoded( %d )"
,
er
.
encoded
);
Logger
::
ngap
().
debug
(
"Encode Handover Command to buffer, er.encoded( %d )"
,
er
.
encoded
);
return
er
.
encoded
;
}
...
...
@@ -230,7 +231,7 @@ void HandoverCommandMsg::setMessageType() {
.
choice
.
HandoverCommand
);
}
else
{
Logger
::
ngap
().
warn
(
"This information doesn't refer to HandoverCommand message"
);
"This information doesn't refer to Handover
Command message"
);
}
}
...
...
src/ngap/ngapMsgs/HandoverNotifyMsg.cpp
View file @
2e6fbced
...
...
@@ -74,7 +74,8 @@ int HandoverNotifyMsg::encode2buffer(uint8_t* buf, int buf_size) {
asn_fprint
(
stderr
,
&
asn_DEF_Ngap_NGAP_PDU
,
handoverNotifyPdu
);
asn_enc_rval_t
er
=
aper_encode_to_buffer
(
&
asn_DEF_Ngap_NGAP_PDU
,
NULL
,
handoverNotifyPdu
,
buf
,
buf_size
);
Logger
::
ngap
().
debug
(
"er.encoded( %d )"
,
er
.
encoded
);
Logger
::
ngap
().
debug
(
"Encode Handover Notify to buffer, er.encoded( %d )"
,
er
.
encoded
);
return
er
.
encoded
;
}
...
...
src/ngap/ngapMsgs/HandoverPreparationFailure.cpp
View file @
2e6fbced
...
...
@@ -172,7 +172,9 @@ int HandoverPreparationFailure::encode2buffer(uint8_t* buf, int buf_size) {
asn_fprint
(
stderr
,
&
asn_DEF_Ngap_NGAP_PDU
,
hoPreparationFailurePdu
);
asn_enc_rval_t
er
=
aper_encode_to_buffer
(
&
asn_DEF_Ngap_NGAP_PDU
,
NULL
,
hoPreparationFailurePdu
,
buf
,
buf_size
);
Logger
::
ngap
().
debug
(
"er.encoded( %d )"
,
er
.
encoded
);
Logger
::
ngap
().
debug
(
"Encode Handover Preparation Failure to buffer, er.encoded( %d )"
,
er
.
encoded
);
return
er
.
encoded
;
}
...
...
@@ -260,7 +262,7 @@ void HandoverPreparationFailure::setRanUeNgapId(uint32_t ran_ue_ngap_id) {
void
HandoverPreparationFailure
::
setCause
(
Ngap_Cause_PR
m_causePresent
,
long
value
)
//
{
if
(
!
cause
)
cause
=
new
Cause
;
if
(
!
cause
)
cause
=
new
Cause
()
;
Ngap_HandoverPreparationFailureIEs_t
*
ie
=
(
Ngap_HandoverPreparationFailureIEs_t
*
)
calloc
(
1
,
sizeof
(
Ngap_HandoverPreparationFailureIEs_t
));
...
...
src/ngap/ngapMsgs/HandoverRequest.cpp
View file @
2e6fbced
...
...
@@ -229,7 +229,8 @@ int HandoverRequest::encode2buffer(uint8_t* buf, int buf_size) {
asn_fprint
(
stderr
,
&
asn_DEF_Ngap_NGAP_PDU
,
handoverRequestPdu
);
asn_enc_rval_t
er
=
aper_encode_to_buffer
(
&
asn_DEF_Ngap_NGAP_PDU
,
NULL
,
handoverRequestPdu
,
buf
,
buf_size
);
Logger
::
ngap
().
debug
(
"er.encoded( %d )"
,
er
.
encoded
);
Logger
::
ngap
().
debug
(
"Encode Handover Request to buffer, er.encoded( %d)"
,
er
.
encoded
);
return
er
.
encoded
;
}
...
...
@@ -302,7 +303,7 @@ void HandoverRequest::setHandoverType(long type) // 0--intra5gs
//------------------------------------------------------------------------------
void
HandoverRequest
::
setCause
(
Ngap_Cause_PR
m_causePresent
,
long
value
)
//
{
if
(
!
cause
)
cause
=
new
Cause
;
if
(
!
cause
)
cause
=
new
Cause
()
;
Ngap_HandoverRequestIEs_t
*
ie
=
(
Ngap_HandoverRequestIEs_t
*
)
calloc
(
1
,
sizeof
(
Ngap_HandoverRequestIEs_t
));
ie
->
id
=
Ngap_ProtocolIE_ID_id_Cause
;
...
...
src/ngap/ngapMsgs/HandoverRequestAck.cpp
View file @
2e6fbced
...
...
@@ -242,7 +242,8 @@ int HandoverRequestAck::encode2buffer(uint8_t* buf, int buf_size) {
asn_fprint
(
stderr
,
&
asn_DEF_Ngap_NGAP_PDU
,
handoverRequestAckPdu
);
asn_enc_rval_t
er
=
aper_encode_to_buffer
(
&
asn_DEF_Ngap_NGAP_PDU
,
NULL
,
handoverRequestAckPdu
,
buf
,
buf_size
);
Logger
::
ngap
().
debug
(
"er.encoded( %d )"
,
er
.
encoded
);
Logger
::
ngap
().
debug
(
"Encode Handover Request Ack to buffer, er.encoded( %d )"
,
er
.
encoded
);
return
er
.
encoded
;
}
...
...
src/ngap/ngapMsgs/HandoverRequiredMsg.cpp
View file @
2e6fbced
...
...
@@ -326,7 +326,8 @@ int HandoverRequiredMsg::encode2buffer(uint8_t* buf, int buf_size) {
asn_fprint
(
stderr
,
&
asn_DEF_Ngap_NGAP_PDU
,
handoverRequiredPdu
);
asn_enc_rval_t
er
=
aper_encode_to_buffer
(
&
asn_DEF_Ngap_NGAP_PDU
,
NULL
,
handoverRequiredPdu
,
buf
,
buf_size
);
Logger
::
ngap
().
debug
(
"er.encoded( %d )"
,
er
.
encoded
);
Logger
::
ngap
().
debug
(
"Encode Handover Required to buffer, er.encoded( %d)"
,
er
.
encoded
);
return
er
.
encoded
;
}
...
...
src/ngap/ngapMsgs/InitialContextSetupFailure.cpp
View file @
2e6fbced
...
...
@@ -30,30 +30,37 @@
#include "logger.hpp"
extern
"C"
{
#include "asn_codecs.h"
#include "constr_TYPE.h"
#include "constraints.h"
//
#include "asn_codecs.h"
//
#include "constr_TYPE.h"
//
#include "constraints.h"
#include "dynamic_memory_check.h"
#include "per_decoder.h"
#include "per_encoder.h"
}
#include <iostream>
using
namespace
std
;
//
using namespace std;
namespace
ngap
{
//------------------------------------------------------------------------------
InitialContextSetupFailureMsg
::
InitialContextSetupFailureMsg
()
{
initialContextSetupFailurePdu
=
NULL
;
initialContextSetupFailureIEs
=
NULL
;
amfUeNgapId
=
NULL
;
ranUeNgapId
=
NULL
;
pduSessionResourceFailedToSetupFailureList
=
NULL
;
initialContextSetupFailurePdu
=
nullptr
;
initialContextSetupFailureIEs
=
nullptr
;
amfUeNgapId
=
nullptr
;
ranUeNgapId
=
nullptr
;
pduSessionResourceFailedToSetupFailureList
=
nullptr
;
}
//------------------------------------------------------------------------------
InitialContextSetupFailureMsg
::~
InitialContextSetupFailureMsg
()
{}
InitialContextSetupFailureMsg
::~
InitialContextSetupFailureMsg
()
{
if
(
initialContextSetupFailurePdu
)
free
(
initialContextSetupFailurePdu
);
if
(
initialContextSetupFailureIEs
)
free
(
initialContextSetupFailureIEs
);
if
(
amfUeNgapId
)
free
(
amfUeNgapId
);
if
(
ranUeNgapId
)
free
(
ranUeNgapId
);
if
(
pduSessionResourceFailedToSetupFailureList
)
free
(
pduSessionResourceFailedToSetupFailureList
);
}
//------------------------------------------------------------------------------
void
InitialContextSetupFailureMsg
::
setMessageType
()
{
...
...
@@ -199,7 +206,6 @@ int InitialContextSetupFailureMsg::encode2buffer(uint8_t* buf, int buf_size) {
}
//------------------------------------------------------------------------------
// Decapsulation
bool
InitialContextSetupFailureMsg
::
decodefrompdu
(
Ngap_NGAP_PDU_t
*
ngap_msg_pdu
)
{
initialContextSetupFailurePdu
=
ngap_msg_pdu
;
...
...
src/ngap/ngapMsgs/InitialContextSetupFailure.hpp
View file @
2e6fbced
...
...
@@ -55,7 +55,6 @@ class InitialContextSetupFailureMsg {
std
::
vector
<
PDUSessionResourceFailedToSetupItem_t
>
list
);
int
encode2buffer
(
uint8_t
*
buf
,
int
buf_size
);
// Decapsulation
bool
decodefrompdu
(
Ngap_NGAP_PDU_t
*
ngap_msg_pdu
);
unsigned
long
getAmfUeNgapId
();
uint32_t
getRanUeNgapId
();
...
...
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