Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-SMF-Simple
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
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
CommunityXG
OpenXG-SMF-Simple
Commits
e8bb5f3b
Commit
e8bb5f3b
authored
Mar 22, 2019
by
gauthier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
itti_msg_sxyz messages
parent
4ae9210a
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
1045 additions
and
0 deletions
+1045
-0
src/common/msg/itti_async_shell_cmd.hpp
src/common/msg/itti_async_shell_cmd.hpp
+50
-0
src/common/msg/itti_msg_s11.hpp
src/common/msg/itti_msg_s11.hpp
+448
-0
src/common/msg/itti_msg_s1u.hpp
src/common/msg/itti_msg_s1u.hpp
+161
-0
src/common/msg/itti_msg_s5s8.hpp
src/common/msg/itti_msg_s5s8.hpp
+386
-0
No files found.
src/common/msg/itti_async_shell_cmd.hpp
0 → 100644
View file @
e8bb5f3b
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file itti_async_shell_cmd.hpp
\brief
\author Lionel Gauthier
\company Eurecom
\email: lionel.gauthier@eurecom.fr
*/
#ifndef FILE_ITTI_ASYNC_SHELL_CMD_SEEN
#define FILE_ITTI_ASYNC_SHELL_CMD_SEEN
#include "itti_msg.hpp"
namespace
oai
::
cn
::
core
::
itti
{
class
itti_async_shell_cmd
:
public
itti_msg
{
public:
itti_async_shell_cmd
(
const
task_id_t
origin
,
const
task_id_t
destination
,
const
std
::
string
&
system_cmd
,
bool
is_abort_on_error
,
const
char
*
src_file
,
const
int
src_line
)
:
itti_msg
(
ASYNC_SHELL_CMD
,
origin
,
destination
),
system_command
(
system_cmd
),
is_abort_on_error
(
is_abort_on_error
),
src_file
(
src_file
),
src_line
(
src_line
)
{}
itti_async_shell_cmd
(
const
itti_async_shell_cmd
&
i
)
:
itti_msg
(
i
),
system_command
(
i
.
system_command
),
is_abort_on_error
(
i
.
is_abort_on_error
),
src_file
(
i
.
src_file
),
src_line
(
i
.
src_line
)
{}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_msg_ping
).
name
();};
std
::
string
system_command
;
bool
is_abort_on_error
;
// debug
std
::
string
src_file
;
int
src_line
;
}
;
}
#endif
/* FILE_ITTI_ASYNC_SHELL_CMD_SEEN */
src/common/msg/itti_msg_s11.hpp
0 → 100644
View file @
e8bb5f3b
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the Apache License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*
* itti_msg_s11.hpp
*
* Created on: Oct 6, 2018
* Author: lionel.gauthier@eurecom.fr
*/
#ifndef ITTI_MSG_S11_HPP_INCLUDED_
#define ITTI_MSG_S11_HPP_INCLUDED_
#include "3gpp_29.274.hpp"
#include "itti_msg.hpp"
#include "msg_gtpv2c.hpp"
#include <boost/asio.hpp>
namespace
oai
::
cn
::
core
::
itti
{
class
itti_s11_msg
:
public
itti_msg
{
public:
itti_s11_msg
(
const
itti_msg_type_t
msg_type
,
const
task_id_t
origin
,
const
task_id_t
destination
)
:
itti_msg
(
msg_type
,
origin
,
destination
)
{
l_endpoint
=
{};
r_endpoint
=
{};
teid
=
UNASSIGNED_TEID
;
gtpc_tx_id
=
0
;
}
itti_s11_msg
(
const
itti_s11_msg
&
i
)
:
itti_msg
(
i
)
{
l_endpoint
=
i
.
l_endpoint
;
r_endpoint
=
i
.
r_endpoint
;
teid
=
i
.
teid
;
gtpc_tx_id
=
i
.
gtpc_tx_id
;
}
itti_s11_msg
(
const
itti_s11_msg
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s11_msg
(
i
)
{
origin
=
orig
;
destination
=
dest
;
}
boost
::
asio
::
ip
::
udp
::
endpoint
l_endpoint
;
boost
::
asio
::
ip
::
udp
::
endpoint
r_endpoint
;
teid_t
teid
;
uint64_t
gtpc_tx_id
;
};
class
itti_s11_create_session_request
:
public
itti_s11_msg
{
public:
itti_s11_create_session_request
(
const
task_id_t
origin
,
const
task_id_t
destination
)
:
itti_s11_msg
(
S11_CREATE_SESSION_REQUEST
,
origin
,
destination
)
{
}
itti_s11_create_session_request
(
const
itti_s11_create_session_request
&
i
)
:
itti_s11_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s11_create_session_request
(
const
itti_s11_create_session_request
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s11_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s11_create_session_request
).
name
();};
proto
::
gtpv2c
::
gtpv2c_create_session_request
gtp_ies
;
};
//-----------------------------------------------------------------------------
/** @class itti_s11_create_session_response_t
* @brief Create Session Response
*
* The Create Session Response will be sent on S11 interface as
* part of these procedures:
* - E-UTRAN Initial Attach
* - UE requested PDN connectivity
* - Tracking Area Update procedure with SGW change
* - S1/X2-based handover with SGW change
*/
class
itti_s11_create_session_response
:
public
itti_s11_msg
{
public:
itti_s11_create_session_response
(
const
task_id_t
origin
,
const
task_id_t
destination
)
:
itti_s11_msg
(
S11_CREATE_SESSION_RESPONSE
,
origin
,
destination
)
{
}
itti_s11_create_session_response
(
const
itti_s11_create_session_response
&
i
)
:
itti_s11_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s11_create_session_response
(
const
itti_s11_create_session_response
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s11_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s11_create_session_response
).
name
();};
proto
::
gtpv2c
::
gtpv2c_create_session_response
gtp_ies
;
};
//-----------------------------------------------------------------------------
/** @class itti_s11_create_bearer_request
* @brief Create Bearer Request
*
* The direction of this message shall be from PGW to SGW and from SGW to MME/S4-SGSN, and from PGW to ePDG
* The Create Bearer Request message shall be sent on the S5/S8 interface by the PGW to the SGW and on the S11
* interface by the SGW to the MME as part of the Dedicated Bearer Activation procedure.
* The message shall also be sent on the S5/S8 interface by the PGW to the SGW and on the S4 interface by the SGW to
* the SGSN as part of the Secondary PDP Context Activation procedure or the Network Requested Secondary PDP
* Context Activation procedure.
* The message shall also be sent on the S2b interface by the PGW to the ePDG as part of the Dedicated S2b bearer
* activation with GTP on S2b.
*/
class
itti_s11_create_bearer_request
:
public
itti_s11_msg
{
public:
itti_s11_create_bearer_request
(
const
task_id_t
origin
,
const
task_id_t
destination
)
:
itti_s11_msg
(
S11_CREATE_BEARER_REQUEST
,
origin
,
destination
)
{
}
itti_s11_create_bearer_request
(
const
itti_s11_create_bearer_request
&
i
)
:
itti_s11_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s11_create_bearer_request
(
const
itti_s11_create_bearer_request
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s11_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s11_create_session_request
).
name
();};
proto
::
gtpv2c
::
gtpv2c_create_bearer_request
gtp_ies
;
}
;
//-----------------------------------------------------------------------------
/** @class itti_s11_create_bearer_response
* @brief Create Bearer Response
*
* The Create Bearer Response message shall be sent on the S5/S8 interface by the SGW to the PGW, and on the S11
* interface by the MME to the SGW as part of the Dedicated Bearer Activation procedure.
* The message shall also be sent on the S5/S8 interface by the SGW to the PGW and on the S4 interface by the SGSN to
* the SGW as part of Secondary PDP Context Activation procedure or the Network Requested Secondary PDP Context
* Activation procedure.
* The message shall also be sent on the S2b interface by the ePDG to the PGW as part of the Dedicated S2b bearer
* activation with GTP on S2b.
* Possible Cause values are specified in Table 8.4-1. Message specific cause values are:
* - "Request accepted".
* - "Request accepted partially".
* - "Context not found".
* - "Semantic error in the TFT operation".
* - "Syntactic error in the TFT operation".
* - "Semantic errors in packet filter(s)".
* - "Syntactic errors in packet filter(s)".
* - "Service not supported".
* - "Unable to page UE".
* - "UE not responding".
* - "Unable to page UE due to Suspension".
* - "UE refuses".
* - "Denied in RAT".
* - "UE context without TFT already activated".
*/
class
itti_s11_create_bearer_response
:
public
itti_s11_msg
{
public:
itti_s11_create_bearer_response
(
const
task_id_t
origin
,
const
task_id_t
destination
)
:
itti_s11_msg
(
S11_CREATE_BEARER_RESPONSE
,
origin
,
destination
)
{
}
itti_s11_create_bearer_response
(
const
itti_s11_create_bearer_response
&
i
)
:
itti_s11_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s11_create_bearer_response
(
const
itti_s11_create_bearer_response
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s11_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s11_create_bearer_response
).
name
();};
proto
::
gtpv2c
::
gtpv2c_create_bearer_response
gtp_ies
;
};
//-----------------------------------------------------------------------------
/** @class itti_s11_modify_bearer_request
* @brief Modify Bearer Request
*
* The Modify Bearer Request will be sent on S11 interface as
* part of these procedures:
* - E-UTRAN Tracking Area Update without SGW Change
* - UE triggered Service Request
* - S1-based Handover
* - E-UTRAN Initial Attach
* - UE requested PDN connectivity
* - X2-based handover without SGWrelocation
*/
class
itti_s11_modify_bearer_request
:
public
itti_s11_msg
{
public:
itti_s11_modify_bearer_request
(
const
task_id_t
origin
,
const
task_id_t
destination
)
:
itti_s11_msg
(
S11_MODIFY_BEARER_REQUEST
,
origin
,
destination
)
{
}
itti_s11_modify_bearer_request
(
const
itti_s11_modify_bearer_request
&
i
)
:
itti_s11_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s11_modify_bearer_request
(
const
itti_s11_modify_bearer_request
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s11_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s11_modify_bearer_request
).
name
();};
proto
::
gtpv2c
::
gtpv2c_modify_bearer_request
gtp_ies
;
}
;
//-----------------------------------------------------------------------------
/** @class itti_s11_modify_bearer_response
* @brief Modify Bearer Response
*
* The Modify Bearer Response will be sent on S11 interface as
* part of these procedures:
* - E-UTRAN Tracking Area Update without SGW Change
* - UE triggered Service Request
* - S1-based Handover
* - E-UTRAN Initial Attach
* - UE requested PDN connectivity
* - X2-based handover without SGWrelocation
*/
class
itti_s11_modify_bearer_response
:
public
itti_s11_msg
{
public:
itti_s11_modify_bearer_response
(
const
task_id_t
origin
,
const
task_id_t
destination
)
:
itti_s11_msg
(
S11_MODIFY_BEARER_RESPONSE
,
origin
,
destination
)
{
}
itti_s11_modify_bearer_response
(
const
itti_s11_modify_bearer_response
&
i
)
:
itti_s11_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s11_modify_bearer_response
(
const
itti_s11_modify_bearer_response
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s11_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s11_modify_bearer_response
).
name
();};
proto
::
gtpv2c
::
gtpv2c_modify_bearer_response
gtp_ies
;
}
;
//-----------------------------------------------------------------------------
class
itti_s11_delete_session_request
:
public
itti_s11_msg
{
public:
itti_s11_delete_session_request
(
const
task_id_t
origin
,
const
task_id_t
destination
)
:
itti_s11_msg
(
S11_DELETE_SESSION_REQUEST
,
origin
,
destination
)
{
}
itti_s11_delete_session_request
(
const
itti_s11_delete_session_request
&
i
)
:
itti_s11_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s11_delete_session_request
(
const
itti_s11_delete_session_request
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s11_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s11_delete_session_request
).
name
();};
proto
::
gtpv2c
::
gtpv2c_delete_session_request
gtp_ies
;
}
;
//-----------------------------------------------------------------------------
/** @class itti_s11_delete_session_response
* @brief Delete Session Response
*
* The Delete Session Response will be sent on S11 interface as
* part of these procedures:
* - EUTRAN Initial Attach
* - UE, HSS or MME Initiated Detach
* - UE or MME Requested PDN Disconnection
* - Tracking Area Update with SGW Change
* - S1 Based Handover with SGW Change
* - X2 Based Handover with SGW Relocation
* - S1 Based handover cancel with SGW change
*/
class
itti_s11_delete_session_response
:
public
itti_s11_msg
{
public:
itti_s11_delete_session_response
(
const
task_id_t
origin
,
const
task_id_t
destination
)
:
itti_s11_msg
(
S11_DELETE_SESSION_RESPONSE
,
origin
,
destination
)
{
}
itti_s11_delete_session_response
(
const
itti_s11_delete_session_response
&
i
)
:
itti_s11_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s11_delete_session_response
(
const
itti_s11_delete_session_response
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s11_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s11_delete_session_response
).
name
();};
proto
::
gtpv2c
::
gtpv2c_delete_session_response
gtp_ies
;
}
;
//-----------------------------------------------------------------------------
/** @class itti_s11_release_access_bearers_request
* @brief Release AccessBearers Request
*
* The Release Access Bearers Request message shall sent on the S11 interface by
* the MME to the SGW as part of the S1 release procedure.
* The message shall also be sent on the S4 interface by the SGSN to the SGW as
* part of the procedures:
* - RAB release using S4
* - Iu Release using S4
* - READY to STANDBY transition within the network
*/
class
itti_s11_release_access_bearers_request
:
public
itti_s11_msg
{
public:
itti_s11_release_access_bearers_request
(
const
task_id_t
origin
,
const
task_id_t
destination
)
:
itti_s11_msg
(
S11_RELEASE_ACCESS_BEARERS_REQUEST
,
origin
,
destination
)
{
}
itti_s11_release_access_bearers_request
(
const
itti_s11_release_access_bearers_request
&
i
)
:
itti_s11_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s11_release_access_bearers_request
(
const
itti_s11_release_access_bearers_request
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s11_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s11_release_access_bearers_request
).
name
();};
proto
::
gtpv2c
::
gtpv2c_release_access_bearers_request
gtp_ies
;
}
;
//-----------------------------------------------------------------------------
/** @class itti_s11_release_access_bearers_response
* @brief Release AccessBearers Response
*
* The Release Access Bearers Response message is sent on the S11 interface by the SGW to the MME as part of the S1
* release procedure.
* The message shall also be sent on the S4 interface by the SGW to the SGSN as part of the procedures:
* - RAB release using S4
* - Iu Release using S4
* - READY to STANDBY transition within the network
* Possible Cause values are specified in Table 8.4-1. Message specific cause values are:
* - "Request accepted".
* - "Request accepted partially".
* - "Context not found
*/
class
itti_s11_release_access_bearers_response
:
public
itti_s11_msg
{
public:
itti_s11_release_access_bearers_response
(
const
task_id_t
origin
,
const
task_id_t
destination
)
:
itti_s11_msg
(
S11_RELEASE_ACCESS_BEARERS_RESPONSE
,
origin
,
destination
)
{
}
itti_s11_release_access_bearers_response
(
const
itti_s11_release_access_bearers_response
&
i
)
:
itti_s11_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s11_release_access_bearers_response
(
const
itti_s11_release_access_bearers_response
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s11_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s11_release_access_bearers_response
).
name
();};
proto
::
gtpv2c
::
gtpv2c_release_access_bearers_response
gtp_ies
;
};
//-----------------------------------------------------------------------------
/** @class itti_s11_delete_bearer_command_t
* @brief Initiate Delete Bearer procedure
*
* A Delete Bearer Command message shall be sent on the S11 interface by the MME to the SGW and on the S5/S8
* interface by the SGW to the PGW as a part of the eNodeB requested bearer release or MME-Initiated Dedicated Bearer
* Deactivation procedure.
* The message shall also be sent on the S4 interface by the SGSN to the SGW and on the S5/S8 interface by the SGW to
* the PGW as part of the MS and SGSN Initiated Bearer Deactivation procedure using S4.
*/
class
itti_s11_delete_bearer_command
:
public
itti_s11_msg
{
public:
itti_s11_delete_bearer_command
(
const
task_id_t
origin
,
const
task_id_t
destination
)
:
itti_s11_msg
(
S11_DELETE_BEARER_COMMAND
,
origin
,
destination
)
{
}
itti_s11_delete_bearer_command
(
const
itti_s11_delete_bearer_command
&
i
)
:
itti_s11_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s11_delete_bearer_command
(
const
itti_s11_delete_bearer_command
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s11_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s11_delete_bearer_command
).
name
();};
proto
::
gtpv2c
::
gtpv2c_delete_bearer_command
gtp_ies
;
}
;
//-----------------------------------------------------------------------------
/** @class itti_s11_downlink_data_notification
* @brief Downlink Data Notification
*
* The Downlink Data Notification message is sent on the S11 interface by the SGW to the MME as part of the S1 paging procedure.
*/
class
itti_s11_downlink_data_notification
:
public
itti_s11_msg
{
public:
itti_s11_downlink_data_notification
(
const
task_id_t
origin
,
const
task_id_t
destination
)
:
itti_s11_msg
(
S11_DOWNLINK_DATA_NOTIFICATION
,
origin
,
destination
)
{
}
itti_s11_downlink_data_notification
(
const
itti_s11_downlink_data_notification
&
i
)
:
itti_s11_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s11_downlink_data_notification
(
const
itti_s11_downlink_data_notification
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s11_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s11_downlink_data_notification
).
name
();};
proto
::
gtpv2c
::
gtpv2c_downlink_data_notification
gtp_ies
;
}
;
//-----------------------------------------------------------------------------
/** @class itti_s11_downlink_data_notification_acknowledge
* @brief Downlink Data Notification Acknowledge
*
* The Downlink Data Notification Acknowledge message is sent on the S11 interface by the MME to the SGW as part of the S1 paging procedure.
*/
class
itti_s11_downlink_data_notification_acknowledge
:
public
itti_s11_msg
{
public:
itti_s11_downlink_data_notification_acknowledge
(
const
task_id_t
origin
,
const
task_id_t
destination
)
:
itti_s11_msg
(
S11_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE
,
origin
,
destination
)
{
}
itti_s11_downlink_data_notification_acknowledge
(
const
itti_s11_downlink_data_notification_acknowledge
&
i
)
:
itti_s11_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s11_downlink_data_notification_acknowledge
(
const
itti_s11_downlink_data_notification_acknowledge
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s11_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s11_downlink_data_notification_acknowledge
).
name
();};
proto
::
gtpv2c
::
gtpv2c_downlink_data_notification_acknowledge
gtp_ies
;
}
;
//-----------------------------------------------------------------------------
/** @class itti_s11_downlink_data_notification_failure_indication
* @brief Downlink Data Notification Failure Indication
*
*/
class
itti_s11_downlink_data_notification_failure_indication
:
public
itti_s11_msg
{
public:
itti_s11_downlink_data_notification_failure_indication
(
const
task_id_t
origin
,
const
task_id_t
destination
)
:
itti_s11_msg
(
S11_DOWNLINK_DATA_NOTIFICATION_FAILURE_INDICATION
,
origin
,
destination
)
{
}
itti_s11_downlink_data_notification_failure_indication
(
const
itti_s11_downlink_data_notification_failure_indication
&
i
)
:
itti_s11_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s11_downlink_data_notification_failure_indication
(
const
itti_s11_downlink_data_notification_failure_indication
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s11_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s11_downlink_data_notification_failure_indication
).
name
();};
proto
::
gtpv2c
::
gtpv2c_downlink_data_notification_failure_indication
gtp_ies
;
}
;
}
// namespace itti
#endif
/* ITTI_MSG_S11_HPP_INCLUDED_ */
src/common/msg/itti_msg_s1u.hpp
0 → 100644
View file @
e8bb5f3b
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the Apache License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*
* itti_msg_s1u.hpp
*
* Created on: Feb 05, 2019
* Author: lionel.gauthier@eurecom.fr
*/
#ifndef ITTI_MSG_S1U_HPP_INCLUDED_
#define ITTI_MSG_S1U_HPP_INCLUDED_
#include "itti_msg.hpp"
#include "3gpp_29.281.hpp"
#include "msg_gtpv1u.hpp"
#include <sys/socket.h>
namespace
oai
::
cn
::
core
::
itti
{
class
itti_s1u_msg
:
public
itti_msg
{
public:
itti_s1u_msg
(
const
itti_msg_type_t
msg_type
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_msg
(
msg_type
,
orig
,
dest
)
{
l_endpoint
=
{};
l_endpoint_addr_len
=
sizeof
(
l_endpoint
);
r_endpoint
=
{};
l_endpoint_addr_len
=
sizeof
(
r_endpoint
);
teid
=
UNASSIGNED_TEID
;
gtpu_tx_id
=
0
;
}
itti_s1u_msg
(
const
itti_s1u_msg
&
i
)
:
itti_msg
(
i
)
{
l_endpoint
=
i
.
l_endpoint
;
l_endpoint_addr_len
=
i
.
l_endpoint_addr_len
;
r_endpoint
=
i
.
r_endpoint
;
r_endpoint_addr_len
=
i
.
r_endpoint_addr_len
;
teid
=
i
.
teid
;
gtpu_tx_id
=
i
.
gtpu_tx_id
;
}
itti_s1u_msg
(
const
itti_s1u_msg
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s1u_msg
(
i
)
{
origin
=
orig
;
destination
=
dest
;
}
struct
sockaddr_storage
l_endpoint
;
socklen_t
l_endpoint_addr_len
;
struct
sockaddr_storage
r_endpoint
;
socklen_t
r_endpoint_addr_len
;
teid_t
teid
;
uint64_t
gtpu_tx_id
;
};
//------------------------------------------------------------------------------
class
itti_s1u_echo_request
:
public
itti_s1u_msg
{
public:
itti_s1u_echo_request
(
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s1u_msg
(
S1U_ECHO_REQUEST
,
orig
,
dest
)
{
}
itti_s1u_echo_request
(
const
itti_s1u_echo_request
&
i
)
:
itti_s1u_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s1u_echo_request
(
const
itti_s1u_echo_request
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s1u_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s1u_echo_request
).
name
();};
proto
::
gtpv1u
::
gtpv1u_echo_request
gtp_ies
;
};
//------------------------------------------------------------------------------
class
itti_s1u_echo_response
:
public
itti_s1u_msg
{
public:
itti_s1u_echo_response
(
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s1u_msg
(
S1U_ECHO_RESPONSE
,
orig
,
dest
)
{
}
itti_s1u_echo_response
(
const
itti_s1u_echo_response
&
i
)
:
itti_s1u_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s1u_echo_response
(
const
itti_s1u_echo_response
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s1u_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s1u_echo_response
).
name
();};
proto
::
gtpv1u
::
gtpv1u_echo_response
gtp_ies
;
};
//------------------------------------------------------------------------------
class
itti_s1u_error_indication
:
public
itti_s1u_msg
{
public:
itti_s1u_error_indication
(
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s1u_msg
(
S1U_ERROR_INDICATION
,
orig
,
dest
)
{
}
itti_s1u_error_indication
(
const
itti_s1u_error_indication
&
i
)
:
itti_s1u_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s1u_error_indication
(
const
itti_s1u_error_indication
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s1u_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s1u_error_indication
).
name
();};
proto
::
gtpv1u
::
gtpv1u_error_indication
gtp_ies
;
};
//------------------------------------------------------------------------------
class
itti_s1u_supported_extension_headers_notification
:
public
itti_s1u_msg
{
public:
itti_s1u_supported_extension_headers_notification
(
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s1u_msg
(
S1U_SUPPORTED_EXTENSION_HEADERS_NOTIFICATION
,
orig
,
dest
)
{
}
itti_s1u_supported_extension_headers_notification
(
const
itti_s1u_supported_extension_headers_notification
&
i
)
:
itti_s1u_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s1u_supported_extension_headers_notification
(
const
itti_s1u_supported_extension_headers_notification
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s1u_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s1u_supported_extension_headers_notification
).
name
();};
proto
::
gtpv1u
::
gtpv1u_supported_extension_headers_notification
gtp_ies
;
};
//------------------------------------------------------------------------------
class
itti_s1u_end_marker
:
public
itti_s1u_msg
{
public:
itti_s1u_end_marker
(
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s1u_msg
(
S1U_END_MARKER
,
orig
,
dest
)
{
}
itti_s1u_end_marker
(
const
itti_s1u_end_marker
&
i
)
:
itti_s1u_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s1u_end_marker
(
const
itti_s1u_end_marker
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s1u_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s1u_end_marker
).
name
();};
proto
::
gtpv1u
::
gtpv1u_end_marker
gtp_ies
;
};
}
// namespace itti
#endif
/* ITTI_MSG_S1U_HPP_INCLUDED_ */
src/common/msg/itti_msg_s5s8.hpp
0 → 100644
View file @
e8bb5f3b
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the Apache License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*
* itti_msg_s5s8.hpp
*
* Created on: Oct 26, 2018
* Author: lionel.gauthier@eurecom.fr
*/
#ifndef ITTI_MSG_S5S8_HPP_INCLUDED_
#define ITTI_MSG_S5S8_HPP_INCLUDED_
#include "3gpp_29.274.hpp"
#include "itti_msg.hpp"
#include "msg_gtpv2c.hpp"
#include <boost/asio.hpp>
namespace
oai
::
cn
::
core
::
itti
{
class
itti_s5s8_msg
:
public
itti_msg
{
public:
itti_s5s8_msg
(
const
itti_msg_type_t
msg_type
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_msg
(
msg_type
,
orig
,
dest
)
{
l_endpoint
=
{};
r_endpoint
=
{};
teid
=
UNASSIGNED_TEID
;
gtpc_tx_id
=
0
;
}
itti_s5s8_msg
(
const
itti_s5s8_msg
&
i
)
:
itti_msg
(
i
)
{
l_endpoint
=
i
.
l_endpoint
;
r_endpoint
=
i
.
r_endpoint
;
teid
=
i
.
teid
;
gtpc_tx_id
=
i
.
gtpc_tx_id
;
}
itti_s5s8_msg
(
const
itti_s5s8_msg
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
i
)
{
origin
=
orig
;
destination
=
dest
;
}
boost
::
asio
::
ip
::
udp
::
endpoint
l_endpoint
;
boost
::
asio
::
ip
::
udp
::
endpoint
r_endpoint
;
teid_t
teid
;
uint64_t
gtpc_tx_id
;
};
class
itti_s5s8_create_session_request
:
public
itti_s5s8_msg
{
public:
itti_s5s8_create_session_request
(
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
S5S8_CREATE_SESSION_REQUEST
,
orig
,
dest
)
{
}
itti_s5s8_create_session_request
(
const
itti_s5s8_create_session_request
&
i
)
:
itti_s5s8_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s5s8_create_session_request
(
const
itti_s5s8_create_session_request
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s5s8_create_session_request
).
name
();};
proto
::
gtpv2c
::
gtpv2c_create_session_request
gtp_ies
;
};
//-----------------------------------------------------------------------------
/** @class itti_s5s8_create_session_response_t
* @brief Create Session Response
*
* The Create Session Response will be sent on S5S8 interface as
* part of these procedures:
* - E-UTRAN Initial Attach
* - UE requested PDN connectivity
* - Tracking Area Update procedure with SGW change
* - S1/X2-based handover with SGW change
*/
class
itti_s5s8_create_session_response
:
public
itti_s5s8_msg
{
public:
itti_s5s8_create_session_response
(
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
S5S8_CREATE_SESSION_RESPONSE
,
orig
,
dest
)
{
}
itti_s5s8_create_session_response
(
const
itti_s5s8_create_session_response
&
i
)
:
itti_s5s8_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s5s8_create_session_response
(
const
itti_s5s8_create_session_response
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s5s8_create_session_response
).
name
();};
proto
::
gtpv2c
::
gtpv2c_create_session_response
gtp_ies
;
};
//-----------------------------------------------------------------------------
/** @class itti_s5s8_create_bearer_request
* @brief Create Bearer Request
*
* The direction of this message shall be from PGW to SGW and from SGW to MME/S4-SGSN, and from PGW to ePDG
* The Create Bearer Request message shall be sent on the S5/S8 interface by the PGW to the SGW and on the S5S8
* interface by the SGW to the MME as part of the Dedicated Bearer Activation procedure.
* The message shall also be sent on the S5/S8 interface by the PGW to the SGW and on the S4 interface by the SGW to
* the SGSN as part of the Secondary PDP Context Activation procedure or the Network Requested Secondary PDP
* Context Activation procedure.
* The message shall also be sent on the S2b interface by the PGW to the ePDG as part of the Dedicated S2b bearer
* activation with GTP on S2b.
*/
class
itti_s5s8_create_bearer_request
:
public
itti_s5s8_msg
{
public:
itti_s5s8_create_bearer_request
(
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
S5S8_CREATE_BEARER_REQUEST
,
orig
,
dest
)
{
}
itti_s5s8_create_bearer_request
(
const
itti_s5s8_create_bearer_request
&
i
)
:
itti_s5s8_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s5s8_create_bearer_request
(
const
itti_s5s8_create_bearer_request
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s5s8_create_session_request
).
name
();};
proto
::
gtpv2c
::
gtpv2c_create_bearer_request
gtp_ies
;
}
;
//-----------------------------------------------------------------------------
/** @class itti_s5s8_create_bearer_response
* @brief Create Bearer Response
*
* The Create Bearer Response message shall be sent on the S5/S8 interface by the SGW to the PGW, and on the S5S8
* interface by the MME to the SGW as part of the Dedicated Bearer Activation procedure.
* The message shall also be sent on the S5/S8 interface by the SGW to the PGW and on the S4 interface by the SGSN to
* the SGW as part of Secondary PDP Context Activation procedure or the Network Requested Secondary PDP Context
* Activation procedure.
* The message shall also be sent on the S2b interface by the ePDG to the PGW as part of the Dedicated S2b bearer
* activation with GTP on S2b.
* Possible Cause values are specified in Table 8.4-1. Message specific cause values are:
* - "Request accepted".
* - "Request accepted partially".
* - "Context not found".
* - "Semantic error in the TFT operation".
* - "Syntactic error in the TFT operation".
* - "Semantic errors in packet filter(s)".
* - "Syntactic errors in packet filter(s)".
* - "Service not supported".
* - "Unable to page UE".
* - "UE not responding".
* - "Unable to page UE due to Suspension".
* - "UE refuses".
* - "Denied in RAT".
* - "UE context without TFT already activated".
*/
class
itti_s5s8_create_bearer_response
:
public
itti_s5s8_msg
{
public:
itti_s5s8_create_bearer_response
(
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
S5S8_CREATE_BEARER_RESPONSE
,
orig
,
dest
)
{
}
itti_s5s8_create_bearer_response
(
const
itti_s5s8_create_bearer_response
&
i
)
:
itti_s5s8_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s5s8_create_bearer_response
(
const
itti_s5s8_create_bearer_response
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s5s8_create_bearer_response
).
name
();};
proto
::
gtpv2c
::
gtpv2c_create_bearer_response
gtp_ies
;
};
//-----------------------------------------------------------------------------
/** @class itti_s5s8_modify_bearer_request
* @brief Modify Bearer Request
*
* The Modify Bearer Request will be sent on S5S8 interface as
* part of these procedures:
* - E-UTRAN Tracking Area Update without SGW Change
* - UE triggered Service Request
* - S1-based Handover
* - E-UTRAN Initial Attach
* - UE requested PDN connectivity
* - X2-based handover without SGWrelocation
*/
class
itti_s5s8_modify_bearer_request
:
public
itti_s5s8_msg
{
public:
itti_s5s8_modify_bearer_request
(
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
S5S8_MODIFY_BEARER_REQUEST
,
orig
,
dest
)
{
}
itti_s5s8_modify_bearer_request
(
const
itti_s5s8_modify_bearer_request
&
i
)
:
itti_s5s8_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s5s8_modify_bearer_request
(
const
itti_s5s8_modify_bearer_request
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s5s8_modify_bearer_request
).
name
();};
proto
::
gtpv2c
::
gtpv2c_modify_bearer_request
gtp_ies
;
}
;
//-----------------------------------------------------------------------------
/** @class itti_s5s8_modify_bearer_response
* @brief Modify Bearer Response
*
* The Modify Bearer Response will be sent on S5S8 interface as
* part of these procedures:
* - E-UTRAN Tracking Area Update without SGW Change
* - UE triggered Service Request
* - S1-based Handover
* - E-UTRAN Initial Attach
* - UE requested PDN connectivity
* - X2-based handover without SGWrelocation
*/
class
itti_s5s8_modify_bearer_response
:
public
itti_s5s8_msg
{
public:
itti_s5s8_modify_bearer_response
(
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
S5S8_MODIFY_BEARER_RESPONSE
,
orig
,
dest
)
{
}
itti_s5s8_modify_bearer_response
(
const
itti_s5s8_modify_bearer_response
&
i
)
:
itti_s5s8_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s5s8_modify_bearer_response
(
const
itti_s5s8_modify_bearer_response
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s5s8_modify_bearer_response
).
name
();};
proto
::
gtpv2c
::
gtpv2c_modify_bearer_response
gtp_ies
;
}
;
//-----------------------------------------------------------------------------
class
itti_s5s8_delete_session_request
:
public
itti_s5s8_msg
{
public:
itti_s5s8_delete_session_request
(
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
S5S8_DELETE_SESSION_REQUEST
,
orig
,
dest
)
{
noDelete
=
false
;
}
itti_s5s8_delete_session_request
(
const
itti_s5s8_delete_session_request
&
i
)
:
itti_s5s8_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
noDelete
=
i
.
noDelete
;
}
itti_s5s8_delete_session_request
(
const
itti_s5s8_delete_session_request
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
noDelete
=
i
.
noDelete
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s5s8_delete_session_request
).
name
();};
proto
::
gtpv2c
::
gtpv2c_delete_session_request
gtp_ies
;
bool
noDelete
;
}
;
//-----------------------------------------------------------------------------
/** @class itti_s5s8_delete_session_response
* @brief Delete Session Response
*
* The Delete Session Response will be sent on S5S8 interface as
* part of these procedures:
* - EUTRAN Initial Attach
* - UE, HSS or MME Initiated Detach
* - UE or MME Requested PDN Disconnection
* - Tracking Area Update with SGW Change
* - S1 Based Handover with SGW Change
* - X2 Based Handover with SGW Relocation
* - S1 Based handover cancel with SGW change
*/
class
itti_s5s8_delete_session_response
:
public
itti_s5s8_msg
{
public:
itti_s5s8_delete_session_response
(
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
S5S8_DELETE_SESSION_RESPONSE
,
orig
,
dest
)
{
}
itti_s5s8_delete_session_response
(
const
itti_s5s8_delete_session_response
&
i
)
:
itti_s5s8_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s5s8_delete_session_response
(
const
itti_s5s8_delete_session_response
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s5s8_delete_session_response
).
name
();};
proto
::
gtpv2c
::
gtpv2c_delete_session_response
gtp_ies
;
}
;
//-----------------------------------------------------------------------------
/** @class itti_s5s8_release_access_bearers_request
* @brief Release AccessBearers Request
*
* The Release Access Bearers Request message shall sent on the S5S8 interface by
* the MME to the SGW as part of the S1 release procedure.
* The message shall also be sent on the S4 interface by the SGSN to the SGW as
* part of the procedures:
* - RAB release using S4
* - Iu Release using S4
* - READY to STANDBY transition within the network
*/
class
itti_s5s8_release_access_bearers_request
:
public
itti_s5s8_msg
{
public:
itti_s5s8_release_access_bearers_request
(
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
S5S8_RELEASE_ACCESS_BEARERS_REQUEST
,
orig
,
dest
)
{
}
itti_s5s8_release_access_bearers_request
(
const
itti_s5s8_release_access_bearers_request
&
i
)
:
itti_s5s8_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s5s8_release_access_bearers_request
(
const
itti_s5s8_release_access_bearers_request
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s5s8_release_access_bearers_request
).
name
();};
proto
::
gtpv2c
::
gtpv2c_release_access_bearers_request
gtp_ies
;
}
;
//-----------------------------------------------------------------------------
/** @class itti_s5s8_release_access_bearers_response
* @brief Release AccessBearers Response
*
* The Release Access Bearers Response message is sent on the S5S8 interface by the SGW to the MME as part of the S1
* release procedure.
* The message shall also be sent on the S4 interface by the SGW to the SGSN as part of the procedures:
* - RAB release using S4
* - Iu Release using S4
* - READY to STANDBY transition within the network
* Possible Cause values are specified in Table 8.4-1. Message specific cause values are:
* - "Request accepted".
* - "Request accepted partially".
* - "Context not found
*/
class
itti_s5s8_release_access_bearers_response
:
public
itti_s5s8_msg
{
public:
itti_s5s8_release_access_bearers_response
(
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
S5S8_RELEASE_ACCESS_BEARERS_RESPONSE
,
orig
,
dest
)
{
}
itti_s5s8_release_access_bearers_response
(
const
itti_s5s8_release_access_bearers_response
&
i
)
:
itti_s5s8_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s5s8_release_access_bearers_response
(
const
itti_s5s8_release_access_bearers_response
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s5s8_release_access_bearers_response
).
name
();};
proto
::
gtpv2c
::
gtpv2c_release_access_bearers_response
gtp_ies
;
};
//-----------------------------------------------------------------------------
/** @class itti_s5s8_delete_bearer_command_t
* @brief Initiate Delete Bearer procedure
*
* A Delete Bearer Command message shall be sent on the S5S8 interface by the MME to the SGW and on the S5/S8
* interface by the SGW to the PGW as a part of the eNodeB requested bearer release or MME-Initiated Dedicated Bearer
* Deactivation procedure.
* The message shall also be sent on the S4 interface by the SGSN to the SGW and on the S5/S8 interface by the SGW to
* the PGW as part of the MS and SGSN Initiated Bearer Deactivation procedure using S4.
*/
class
itti_s5s8_delete_bearer_command
:
public
itti_s5s8_msg
{
public:
itti_s5s8_delete_bearer_command
(
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
S5S8_DELETE_BEARER_COMMAND
,
orig
,
dest
)
{
}
itti_s5s8_delete_bearer_command
(
const
itti_s5s8_delete_bearer_command
&
i
)
:
itti_s5s8_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s5s8_delete_bearer_command
(
const
itti_s5s8_delete_bearer_command
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
i
,
orig
,
dest
)
{
gtp_ies
=
i
.
gtp_ies
;
}
const
char
*
get_msg_name
()
{
return
typeid
(
itti_s5s8_delete_bearer_command
).
name
();};
proto
::
gtpv2c
::
gtpv2c_delete_bearer_command
gtp_ies
;
}
;
}
// namespace itti
#endif
/* ITTI_MSG_S5S8_HPP_INCLUDED_ */
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