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
lizhongxiao
OpenXG-RAN
Commits
fa3d392f
Commit
fa3d392f
authored
Nov 08, 2019
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remote UE Report updated EBI
parent
96f969df
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
188 additions
and
50 deletions
+188
-50
openair3/NAS/COMMON/IES/PKMFAddress.c
openair3/NAS/COMMON/IES/PKMFAddress.c
+1
-1
openair3/NAS/COMMON/IES/RemoteUEContext.h
openair3/NAS/COMMON/IES/RemoteUEContext.h
+1
-1
openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c
openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c
+1
-1
openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c
openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c
+1
-1
openair3/NAS/UE/ESM/PdnConnectivity.c
openair3/NAS/UE/ESM/PdnConnectivity.c
+18
-9
openair3/NAS/UE/ESM/RemoteUeReport.c
openair3/NAS/UE/ESM/RemoteUeReport.c
+67
-21
openair3/NAS/UE/ESM/SAP/esm_recv.c
openair3/NAS/UE/ESM/SAP/esm_recv.c
+68
-0
openair3/NAS/UE/ESM/SAP/esm_recv.h
openair3/NAS/UE/ESM/SAP/esm_recv.h
+7
-0
openair3/NAS/UE/ESM/SAP/esm_sap.c
openair3/NAS/UE/ESM/SAP/esm_sap.c
+14
-11
openair3/NAS/UE/ESM/SAP/esm_sapDef.h
openair3/NAS/UE/ESM/SAP/esm_sapDef.h
+2
-1
openair3/NAS/UE/ESM/SAP/esm_send.c
openair3/NAS/UE/ESM/SAP/esm_send.c
+2
-2
openair3/NAS/UE/ESM/SAP/esm_send.h
openair3/NAS/UE/ESM/SAP/esm_send.h
+1
-1
openair3/NAS/UE/ESM/esm_proc.h
openair3/NAS/UE/ESM/esm_proc.h
+4
-1
openair3/NAS/UE/nas_proc.c
openair3/NAS/UE/nas_proc.c
+1
-0
No files found.
openair3/NAS/COMMON/IES/PKMFAddress.c
View file @
fa3d392f
...
...
@@ -52,7 +52,7 @@ int decode_pkmf_address(
if
((
ielen
+
2
)
!=
decoded
)
{
decoded
=
ielen
+
1
+
(
iei
>
0
?
1
:
0
)
/* Size of header for this IE */
;
//OAILOG_TRACE (LOG_NAS_EMM, "PKMFAddress then decoded=%u\n", decoded);
}
return
decoded
;
}
...
...
openair3/NAS/COMMON/IES/RemoteUEContext.h
View file @
fa3d392f
openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c
View file @
fa3d392f
...
...
@@ -168,7 +168,7 @@ int esm_proc_dedicated_eps_bearer_context_request(nas_user_t *user, int ebi, int
default_ebi
=
esm_ebr_context_create
(
esm_data
,
user
->
ueid
,
pid
,
ebi
,
FALSE
,
qos
,
tft
);
if
(
default_ebi
!=
ESM_EBI_UNASSIGNED
)
{
/* Dedicated EPS bearer context
x
successfully created */
/* Dedicated EPS bearer context successfully created */
rc
=
RETURNok
;
}
else
{
/* No resource available */
...
...
openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c
View file @
fa3d392f
...
...
@@ -130,7 +130,7 @@ int esm_proc_default_eps_bearer_context_request(nas_user_t *user, int pid, int e
ebi
=
esm_ebr_context_create
(
esm_data
,
user
->
ueid
,
pid
,
ebi
,
TRUE
,
qos
,
NULL
);
if
(
ebi
!=
ESM_EBI_UNASSIGNED
)
{
/* Default EPS bearer context
x
successfully created */
/* Default EPS bearer context successfully created */
default_eps_bearer_context_data
->
ebi
=
ebi
;
rc
=
RETURNok
;
}
else
{
...
...
openair3/NAS/UE/ESM/PdnConnectivity.c
View file @
fa3d392f
...
...
@@ -148,10 +148,11 @@ int esm_proc_pdn_connectivity(nas_user_t *user, int cid, int is_to_define,
if
(
!
is_to_define
)
{
LOG_TRACE
(
INFO
,
"ESM-PROC - Undefine PDN connection (cid=%d)"
,
cid
);
/* Delete the PDN connection entry */
int
pti
=
_pdn_connectivity_delete
(
esm_data
,
pid
);
if
(
pti
!=
ESM_PT_UNASSIGNED
)
{
/* Release the procedure transaction data */
rc
=
esm_pt_release
(
esm_pt_data
,
pti
);
}
...
...
@@ -159,6 +160,7 @@ int esm_proc_pdn_connectivity(nas_user_t *user, int cid, int is_to_define,
LOG_FUNC_RETURN
(
rc
);
}
else
if
(
pti
!=
NULL
)
{
LOG_TRACE
(
INFO
,
"ESM-PROC - Assign new procedure transaction identity ""(cid=%d)"
,
cid
);
/* Assign new procedure transaction identity */
*
pti
=
esm_pt_assign
(
esm_pt_data
);
...
...
@@ -923,14 +925,21 @@ static int _pdn_connectivity_delete(esm_data_t *esm_data, int pid)
}
else
if
(
esm_data
->
pdn
[
pid
].
data
==
NULL
)
{
LOG_TRACE
(
ERROR
,
"ESM-PROC - PDN connection has not been allocated"
);
}
else
if
(
esm_data
->
pdn
[
pid
].
is_active
)
{
LOG_TRACE
(
ERROR
,
"ESM-PROC - PDN connection is active"
);
}
else
{
}
//else if (esm_data->pdn[pid].is_active) {
// LOG_TRACE(ERROR, "ESM-PROC - PDN connection is active");
//}
/* Update the identity of the procedure transaction assigned to
* the PDN connection */
else
if
(
esm_data
->
pdn
[
pid
].
is_active
)
{
LOG_TRACE
(
ERROR
,
"ESM-PROC - PDN connection is active"
);
}
esm_data
->
pdn
[
pid
].
data
->
pti
=
pti
;
return
(
RETURNok
);
}
}
return
(
RETURNerror
);
...
...
openair3/NAS/UE/ESM/RemoteUeReport.c
View file @
fa3d392f
...
...
@@ -43,7 +43,7 @@ Description
#include "esm_proc.h"
#include "commonDef.h"
#include "nas_log.h"
#include "esm_ebr.h"
#include "esmData.h"
#include "esm_cause.h"
#include "esm_pt.h"
...
...
@@ -68,38 +68,41 @@ Description
* Internal data handled by the PDN connectivity procedure in the UE
* --------------------------------------------------------------------------
*/
//int _pdn_connectivity_delete(esm_data_t *esm_data, int pid);
/****************************************************************************/
/****************** E X P O R T E D F U N C T I O N S ******************/
/****************************************************************************/
//int _pdn_connectivity_set_pti(esm_data_t *esm_data, int pid, int pti);
int
esm_proc_remote_ue_report
(
nas_user_t
*
user
,
int
cid
,
unsigned
int
*
pti
)
int
esm_proc_remote_ue_report
(
nas_user_t
*
user
,
int
cid
,
int
ebi
,
unsigned
int
*
pti
)
{
LOG_FUNC_IN
;
int
rc
=
RETURNerror
;
int
pid
;
//int pid = cid - 1;
//int pid ;
int
pid
=
cid
-
1
;
esm_data_t
*
esm_data
=
user
->
esm_data
;
esm_pt_data_t
*
esm_pt_data
=
user
->
esm_pt_data
;
if
(
pti
!=
NULL
)
{
if
(
pti
!=
NULL
)
{
LOG_TRACE
(
INFO
,
"ESM-PROC - Assign new procedure transaction identity ""(cid=%d)"
,
cid
);
/* Assign new procedure transaction identity */
*
pti
=
esm_pt_assign
(
esm_pt_data
);
if
(
*
pti
==
ESM_PT_UNASSIGNED
)
{
LOG_TRACE
(
WARNING
,
"ESM-PROC - Failed to assign new procedure transaction identity"
);
LOG_FUNC_RETURN
(
RETURNerror
);
}
//static int _pdn_connectivity_set_pti(esm_data_t *esm_data, int pid, int pti);
/* Update the PDN connection data */
/* Update the PDN connection data */
rc
=
_pdn_connectivity_set_pti
(
esm_data
,
pid
,
*
pti
);
//ebi = esm_ebr_assign(user->esm_ebr_data, ebi, pid+1, FALSE);
if
(
rc
!=
RETURNok
)
{
LOG_TRACE
(
WARNING
,
"ESM-PROC - Failed to update PDN connection"
);
}
...
...
@@ -107,9 +110,6 @@ int esm_proc_remote_ue_report(nas_user_t *user,int cid, unsigned int *pti)
LOG_FUNC_RETURN
(
rc
);
}
/****************************************************************************
** **
** Name: esm_proc_remote_ue_report_low_layer **
...
...
@@ -159,3 +159,49 @@ int esm_proc_remote_ue_report_low_layer(nas_user_t *user, int is_standalone, int
}
LOG_FUNC_RETURN
(
rc
);
}
/****************************************************************************
** **
** Name: esm_proc_remote_ue_report_response **
** **
** Description: Initiates Remote UE Report response procedure **
** **
** **
** 3GPP TS 24.301, section 6.5.1.2 **
** Network send this message to UE indicating the completion of
** remote ue report procedure. **
** **
** **
** Inputs: is_standalone: Indicates whether the Remote UE Report **
** procedure is initiated as part of the at- **
** tach procedure **
** pti: Procedure transaction identity **
** msg: Encoded Remote UE Report response message **
** to be sent **
** sent_by_ue: Not used - Always TRUE **
** Others: None **
** **
** Outputs: None **
** Return: RETURNok, RETURNerror **
** Others: None **
** **
***************************************************************************/
int
esm_proc_remote_ue_report_response
(
nas_user_t
*
user
,
int
pti
)
{
LOG_FUNC_IN
;
esm_pt_data_t
*
esm_pt_data
=
user
->
esm_pt_data
;
int
rc
=
RETURNerror
;
LOG_TRACE
(
INFO
,
"ESM-PROC - Remote UE report response"
);
/* Get the procedure transaction identity assigned to the PDN connection
* entry which is still pending in the inactive state */
rc
=
esm_pt_set_status
(
esm_pt_data
,
pti
,
ESM_PT_INACTIVE
);
if
(
pti
!=
ESM_PT_UNASSIGNED
)
{
/* Release the procedure transaction identity */
rc
=
esm_pt_release
(
esm_pt_data
,
pti
);
}
LOG_FUNC_RETURN
(
rc
);
}
openair3/NAS/UE/ESM/SAP/esm_recv.c
View file @
fa3d392f
...
...
@@ -685,6 +685,74 @@ int esm_recv_deactivate_eps_bearer_context_request(nas_user_t *user, int pti, in
}
/****************************************************************************
** **
** Name: esm_recv_remote_ue_report_response() **
** **
** Description: Processes Remote UE Report Response message **
** **
** Inputs: pti: Procedure transaction identity **
** ebi: EPS bearer identity **
** msg: The received ESM message **
** Others: None **
** **
** Outputs: None **
** Return: ESM cause code whenever the processing of **
** the ESM message fails **
** Others: None **
** **
***************************************************************************/
int
esm_recv_remote_ue_report_response
(
nas_user_t
*
user
,
int
pti
,
int
ebi
,
const
remote_ue_report_response_msg
*
msg
)
{
LOG_FUNC_IN
;
int
esm_cause
;
int
rc
=
RETURNok
;
LOG_TRACE
(
INFO
,
"ESM-SAP - Received Remote UE report response message "
"(pti=%d, ebi=%d, cause=%d)"
,
pti
,
ebi
);
/*
* Procedure transaction identity checking
*/
if
(
(
pti
==
ESM_PT_UNASSIGNED
)
||
esm_pt_is_reserved
(
pti
)
)
{
/* 3GPP TS 24.301, section 7.3.1, case a
* Reserved or unassigned PTI value
*/
LOG_TRACE
(
WARNING
,
"ESM-SAP - Invalid PTI value (pti=%d)"
,
pti
);
LOG_FUNC_RETURN
(
ESM_CAUSE_INVALID_PTI_VALUE
);
}
else
if
(
esm_pt_is_not_in_use
(
user
->
esm_pt_data
,
pti
)
)
{
/* 3GPP TS 24.301, section 7.3.1, case a
* Assigned value that does not match any PTI in use
*/
LOG_TRACE
(
WARNING
,
"ESM-SAP - PTI mismatch (pti=%d)"
,
pti
);
LOG_FUNC_RETURN
(
ESM_CAUSE_PTI_MISMATCH
);
}
/*
* EPS bearer identity checking
*/
else
if
(
(
ebi
!=
ESM_EBI_UNASSIGNED
)
||
esm_ebr_is_reserved
(
user
->
esm_ebr_data
,
ebi
)
)
{
/* 3GPP TS 24.301, section 7.3.2, case a
* Assigned or reserved EPS bearer identity value */
LOG_TRACE
(
WARNING
,
"ESM-SAP - Invalid EPS bearer identity (ebi=%d)"
,
ebi
);
LOG_FUNC_RETURN
(
ESM_CAUSE_INVALID_EPS_BEARER_IDENTITY
);
}
/*
* Message processing
*/
/* Get the ESM cause */
//esm_cause = msg->esmcause;
if
(
rc
!=
RETURNerror
)
{
/* Execute the EPS bearer context deactivation procedure */
rc
=
esm_proc_remote_ue_report_response
(
user
,
pti
);
}
}
/****************************************************************************/
/********************* L O C A L F U N C T I O N S *********************/
...
...
openair3/NAS/UE/ESM/SAP/esm_recv.h
View file @
fa3d392f
...
...
@@ -53,6 +53,7 @@ Description Defines functions executed at the ESM Service Access
#include "ActivateDedicatedEpsBearerContextRequest.h"
#include "ModifyEpsBearerContextRequest.h"
#include "DeactivateEpsBearerContextRequest.h"
#include "RemoteUEReportResponse.h"
#include "EsmInformationRequest.h"
...
...
@@ -108,5 +109,11 @@ int esm_recv_activate_dedicated_eps_bearer_context_request(nas_user_t *user, int
int
esm_recv_deactivate_eps_bearer_context_request
(
nas_user_t
*
user
,
int
pti
,
int
ebi
,
const
deactivate_eps_bearer_context_request_msg
*
msg
);
/*
* Messages related to Remote UE Report procedure
* ---------------------------------------
*/
int
esm_recv_remote_ue_report_response
(
nas_user_t
*
user
,
int
pti
,
int
ebi
,
const
remote_ue_report_response_msg
*
msg
);
#endif
/* __ESM_RECV_H__*/
openair3/NAS/UE/ESM/SAP/esm_sap.c
View file @
fa3d392f
...
...
@@ -160,22 +160,23 @@ int esm_sap_send(nas_user_t *user, esm_sap_t *msg)
esm_sap_primitive2str
(
primitive
-
ESM_START
-
1
),
primitive
);
switch
(
primitive
)
{
case
ESM_REMOTE_UE_REPORT_REQ
:
//case ESM_REMOTE_UE_REPORT:
{
esm_remote_ue_report_t
*
remote_ue_report
=
&
msg
->
data
.
remote_ue_report
;
unsigned
int
pti
;
int
cid
;
/* Assign new procedure transaction identity */
rc
=
esm_proc_remote_ue_report
(
user
,
cid
,
&
pti
);
unsigned
int
pti
;
#warning "TODO hardcoded EBI value 5, to read in esm_ebr_data if works"
int
ebi
=
5
;
/* Assign new procedure transaction identity */
rc
=
esm_proc_remote_ue_report
(
user
,
remote_ue_report
->
cid
,
ebi
,
&
pti
);
rc
=
_esm_sap_send
(
user
,
REMOTE_UE_REPORT
,
msg
->
is_standalone
,
pti
,
EPS_BEARER_IDENTITY_UNASSIGNED
,
pti
,
ebi
,
&
msg
->
data
,
&
msg
->
send
);
}
}
break
;
case
ESM_PDN_CONNECTIVITY_REQ
:
...
...
@@ -224,6 +225,7 @@ int esm_sap_send(nas_user_t *user, esm_sap_t *msg)
esm_pdn_connectivity_t
*
pdn_connect
=
&
msg
->
data
.
pdn_connect
;
if
(
msg
->
is_standalone
&&
pdn_connect
->
is_defined
)
{
/* Undefine the specified PDN context */
rc
=
esm_proc_pdn_connectivity
(
user
,
pdn_connect
->
cid
,
FALSE
,
pdn_connect
->
pdn_type
,
NULL
,
...
...
@@ -783,7 +785,8 @@ static int _esm_sap_send(nas_user_t *user, int msg_type, int is_standalone,
*/
const
esm_remote_ue_report_t
*
msg
=
&
data
->
remote_ue_report
;
// test message
//esm_msg.header.message_type = REMOTE_UE_REPORT;
rc
=
esm_send_remote_ue_report
(
ebi
,
&
esm_msg
.
remote_ue_report
);
rc
=
esm_send_remote_ue_report
(
pti
,
ebi
,
&
esm_msg
.
remote_ue_report
);
/* Setup callback function used to send Remote UE Report
* message onto the network */
esm_procedure
=
esm_proc_remote_ue_report_low_layer
;
...
...
openair3/NAS/UE/ESM/SAP/esm_sapDef.h
View file @
fa3d392f
...
...
@@ -144,7 +144,8 @@ typedef struct esm_eps_bearer_context_deactivate_s {
*/
typedef
struct
esm_remote_ue_report_s
{
int
pkmfaddress
;
}
esm_remote_ue_report_t
;
int
cid
;
}
esm_remote_ue_report_t
;
/*
* ------------------------------
...
...
openair3/NAS/UE/ESM/SAP/esm_send.c
View file @
fa3d392f
...
...
@@ -474,7 +474,7 @@ int esm_send_deactivate_eps_bearer_context_accept(int ebi,
** Others: None **
** **
***************************************************************************/
int
esm_send_remote_ue_report
(
int
ebi
,
int
esm_send_remote_ue_report
(
int
pti
,
int
ebi
,
remote_ue_report_msg
*
msg
)
{
LOG_FUNC_IN
;
...
...
@@ -483,7 +483,7 @@ int esm_send_remote_ue_report(int ebi,
msg
->
protocoldiscriminator
=
EPS_SESSION_MANAGEMENT_MESSAGE
;
msg
->
epsbeareridentity
=
ebi
;
msg
->
messagetype
=
REMOTE_UE_REPORT
;
msg
->
proceduretransactionidentity
=
PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED
;
msg
->
proceduretransactionidentity
=
pti
;
/* Optional IEs */
//msg->pkmfaddress ;
//{
...
...
openair3/NAS/UE/ESM/SAP/esm_send.h
View file @
fa3d392f
...
...
@@ -116,7 +116,7 @@ int esm_send_activate_dedicated_eps_bearer_context_reject(int ebi,
int
esm_send_deactivate_eps_bearer_context_accept
(
int
ebi
,
deactivate_eps_bearer_context_accept_msg
*
msg
);
int
esm_send_remote_ue_report
(
int
ebi
,
int
esm_send_remote_ue_report
(
int
pti
,
int
ebi
,
remote_ue_report_msg
*
msg
);
...
...
openair3/NAS/UE/ESM/esm_proc.h
View file @
fa3d392f
...
...
@@ -122,9 +122,12 @@ int esm_proc_status(nas_user_t *user, int is_standalone, int pti, OctetString *m
* REMOTE UE REPORT procedure
* --------------------------------------------------------------------------
*/
int
esm_proc_remote_ue_report
(
nas_user_t
*
user
,
int
cid
,
unsigned
int
*
pti
);
int
esm_proc_remote_ue_report
(
nas_user_t
*
user
,
int
cid
,
int
ebi
,
unsigned
int
*
pti
);
int
esm_proc_remote_ue_report_low_layer
(
nas_user_t
*
user
,
int
is_standalone
,
int
pti
,
OctetString
*
msg
);
int
esm_proc_remote_ue_report_response
(
nas_user_t
*
user
,
int
pti
);
/*
* --------------------------------------------------------------------------
* PDN connectivity procedure
...
...
openair3/NAS/UE/nas_proc.c
View file @
fa3d392f
...
...
@@ -1419,6 +1419,7 @@ int _nas_proc_remote_ue_report(nas_user_t *user, int cid)
//esm_sap.primitive = ESM_REMOTE_UE_REPORT;
esm_sap
.
is_standalone
=
TRUE
;
esm_sap
.
data
.
remote_ue_report
.
pkmfaddress
=
0
;
esm_sap
.
data
.
remote_ue_report
.
cid
=
cid
;
rc
=
esm_sap_send
(
user
,
&
esm_sap
);
LOG_FUNC_RETURN
(
rc
);
...
...
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