Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
oai
cn5g
oai-cn5g-smf
Commits
c37fd673
Commit
c37fd673
authored
Oct 09, 2019
by
Tien-Thinh Nguyen
Browse files
remove unnecessary files
parent
7efeaece
Changes
35
Expand all
Hide whitespace changes
Inline
Side-by-side
build/smf/CMakeLists.txt
View file @
c37fd673
...
...
@@ -31,5 +31,4 @@ set (SRC_TOP_DIR $ENV{OPENAIRCN_DIR}/src)
include
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/oai_smf/CMakeLists.txt
)
ADD_SUBDIRECTORY
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/sgwc
${
CMAKE_CURRENT_BINARY_DIR
}
/sgwc
)
ADD_SUBDIRECTORY
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/pgwc
${
CMAKE_CURRENT_BINARY_DIR
}
/pgwc
)
src/common/logger.cpp
View file @
c37fd673
...
...
@@ -59,18 +59,8 @@ void Logger::_init( const char *app, const bool log_stdout, bool const log_rot_f
m_itti
=
new
_Logger
(
"itti "
,
m_sinks
,
ss
.
str
().
c_str
()
);
m_mme_s11
=
new
_Logger
(
"mme_s11 "
,
m_sinks
,
ss
.
str
().
c_str
()
);
m_pgwc_app
=
new
_Logger
(
"pgwc_app "
,
m_sinks
,
ss
.
str
().
c_str
()
);
//m_pgwu_app = new _Logger( "pgwu_app", m_sinks, ss.str().c_str() );
m_pgwc_s5s8
=
new
_Logger
(
"pgwc_s5 "
,
m_sinks
,
ss
.
str
().
c_str
()
);
m_pgwc_sx
=
new
_Logger
(
"pgwc_sx "
,
m_sinks
,
ss
.
str
().
c_str
()
);
//m_pgwu_sx = new _Logger( "pgwu_sx ", m_sinks, ss.str().c_str() );
//m_pgw_udp = new _Logger( "pgw_udp ", m_sinks, ss.str().c_str() );
m_sgwc_app
=
new
_Logger
(
"sgwc_app "
,
m_sinks
,
ss
.
str
().
c_str
()
);
//m_sgwu_app = new _Logger( "sgwu_app", m_sinks, ss.str().c_str() );
//m_sgwu_sx = new _Logger( "sgwu_sx ", m_sinks, ss.str().c_str() );
m_sgwc_s11
=
new
_Logger
(
"sgwc_s11 "
,
m_sinks
,
ss
.
str
().
c_str
()
);
m_sgwc_s5s8
=
new
_Logger
(
"sgwc_s5 "
,
m_sinks
,
ss
.
str
().
c_str
()
);
m_sgwc_sx
=
new
_Logger
(
"sgwc_sx "
,
m_sinks
,
ss
.
str
().
c_str
()
);
//m_sgw_udp = new _Logger( "sgw_udp ", m_sinks, ss.str().c_str() );
m_spgwu_app
=
new
_Logger
(
"spgwu_app"
,
m_sinks
,
ss
.
str
().
c_str
()
);
m_spgwu_s1u
=
new
_Logger
(
"spgwu_s1u"
,
m_sinks
,
ss
.
str
().
c_str
()
);
m_spgwu_sx
=
new
_Logger
(
"spgwu_sx "
,
m_sinks
,
ss
.
str
().
c_str
()
);
...
...
src/common/logger.hpp
View file @
c37fd673
...
...
@@ -85,8 +85,6 @@ public:
static
_Logger
&
itti
()
{
return
*
singleton
().
m_itti
;
}
static
_Logger
&
mme_s11
()
{
return
*
singleton
().
m_mme_s11
;
}
static
_Logger
&
pgwc_app
()
{
return
*
singleton
().
m_pgwc_app
;
}
//static _Logger &pgwu_app() { return *singleton().m_pgwu_app; }
static
_Logger
&
pgwc_s5s8
()
{
return
*
singleton
().
m_pgwc_s5s8
;
}
static
_Logger
&
pgwc_sx
()
{
return
*
singleton
().
m_pgwc_sx
;
}
//static _Logger &pgwu_sx() { return *singleton().m_pgwu_sx; }
//static _Logger &pgw_udp() { return *singleton().m_pgw_udp; }
...
...
@@ -94,7 +92,6 @@ public:
//static _Logger &sgwu_app() { return *singleton().m_sgwu_app; }
//static _Logger &sgwu_sx() { return *singleton().m_sgwu_sx; }
static
_Logger
&
sgwc_s11
()
{
return
*
singleton
().
m_sgwc_s11
;
}
static
_Logger
&
sgwc_s5s8
()
{
return
*
singleton
().
m_sgwc_s5s8
;
}
static
_Logger
&
sgwc_sx
()
{
return
*
singleton
().
m_sgwc_sx
;
}
//static _Logger &sgw_udp() { return *singleton().m_sgw_udp; }
static
_Logger
&
spgwu_app
()
{
return
*
singleton
().
m_spgwu_app
;
}
...
...
@@ -129,18 +126,10 @@ private:
_Logger
*
m_itti
;
_Logger
*
m_mme_s11
;
_Logger
*
m_pgwc_app
;
//_Logger *m_pgwu_app;
_Logger
*
m_pgwc_s5s8
;
_Logger
*
m_pgwc_sx
;
//_Logger *m_pgwu_sx;
//_Logger *m_pgw_udp;
_Logger
*
m_sgwc_app
;
//_Logger *m_sgwu_app;
//_Logger *m_sgwu_sx;
_Logger
*
m_sgwc_s11
;
_Logger
*
m_sgwc_s5s8
;
_Logger
*
m_sgwc_sx
;
//_Logger *m_sgw_udp;
_Logger
*
m_spgwu_app
;
_Logger
*
m_spgwu_s1u
;
_Logger
*
m_spgwu_sx
;
...
...
src/common/msg/itti_msg_n11.hpp
View file @
c37fd673
...
...
@@ -80,4 +80,4 @@ public:
};
#endif
/* ITTI_MSG_
S5S8
_HPP_INCLUDED_ */
#endif
/* ITTI_MSG_
N11
_HPP_INCLUDED_ */
src/common/msg/itti_msg_s1u.hpp
deleted
100644 → 0
View file @
7efeaece
/*
* 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
*/
/*
* 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>
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
)
{}
itti_s1u_msg
&
operator
=
(
itti_s1u_msg
other
)
{
this
->
itti_msg
::
operator
=
(
other
);
return
*
this
;
}
itti_s1u_msg
(
const
itti_s1u_msg
&
i
)
:
itti_msg
(
i
)
{}
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
;
}
};
//------------------------------------------------------------------------------
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
)
{
}
explicit
itti_s1u_echo_request
(
const
itti_s1u_echo_request
&
i
)
:
itti_s1u_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s1u_echo_request
&
operator
=
(
itti_s1u_echo_request
other
)
{
this
->
itti_s1u_msg
::
operator
=
(
other
);
std
::
swap
(
gtp_ies
,
other
.
gtp_ies
);
return
*
this
;
}
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
"S1U_ECHO_REQUEST"
;};
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
)
{
}
explicit
itti_s1u_echo_response
(
const
itti_s1u_echo_response
&
i
)
:
itti_s1u_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s1u_echo_response
&
operator
=
(
itti_s1u_echo_response
other
)
{
this
->
itti_s1u_msg
::
operator
=
(
other
);
std
::
swap
(
gtp_ies
,
other
.
gtp_ies
);
return
*
this
;
}
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
"S1U_ECHO_RESPONSE"
;};
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
)
{
}
explicit
itti_s1u_error_indication
(
const
itti_s1u_error_indication
&
i
)
:
itti_s1u_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s1u_error_indication
&
operator
=
(
itti_s1u_error_indication
other
)
{
this
->
itti_s1u_msg
::
operator
=
(
other
);
std
::
swap
(
gtp_ies
,
other
.
gtp_ies
);
return
*
this
;
}
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
"S1U_ERROR_INDICATION"
;};
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
)
{
}
explicit
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
&
operator
=
(
itti_s1u_supported_extension_headers_notification
other
)
{
this
->
itti_s1u_msg
::
operator
=
(
other
);
std
::
swap
(
gtp_ies
,
other
.
gtp_ies
);
return
*
this
;
}
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
"S1U_SUPPORTED_EXTENSION_HEADERS_NOTIFICATION"
;};
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
)
{
}
explicit
itti_s1u_end_marker
(
const
itti_s1u_end_marker
&
i
)
:
itti_s1u_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s1u_end_marker
&
operator
=
(
itti_s1u_end_marker
other
)
{
this
->
itti_s1u_msg
::
operator
=
(
other
);
std
::
swap
(
gtp_ies
,
other
.
gtp_ies
);
return
*
this
;
}
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
"S1U_END_MARKER"
;};
gtpv1u
::
gtpv1u_end_marker
gtp_ies
;
};
#endif
/* ITTI_MSG_S1U_HPP_INCLUDED_ */
src/common/msg/itti_msg_s5s8.hpp
deleted
100644 → 0
View file @
7efeaece
/*
* 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
*/
/*
* 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 "endpoint.hpp"
#include "itti_msg.hpp"
#include "msg_gtpv2c.hpp"
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
;
l_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
),
l_teid
(
i
.
l_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
;
}
endpoint
l_endpoint
;
endpoint
r_endpoint
;
teid_t
teid
;
// remote teid
teid_t
l_teid
;
// local teid
uint64_t
gtpc_tx_id
;
};
class
itti_s5s8_remote_peer_not_responding
:
public
itti_s5s8_msg
{
public:
itti_s5s8_remote_peer_not_responding
(
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
S5S8_REMOTE_PEER_NOT_RESPONDING
,
orig
,
dest
)
{}
itti_s5s8_remote_peer_not_responding
(
const
itti_s5s8_remote_peer_not_responding
&
i
)
:
itti_s5s8_msg
(
i
)
{}
itti_s5s8_remote_peer_not_responding
(
const
itti_s5s8_remote_peer_not_responding
&
i
,
const
task_id_t
orig
,
const
task_id_t
dest
)
:
itti_s5s8_msg
(
i
,
orig
,
dest
)
{}
const
char
*
get_msg_name
()
{
return
"S5S8_REMOTE_PEER_NOT_RESPONDING"
;};
};
//-----------------------------------------------------------------------------
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
"S5S8_CREATE_SESSION_REQUEST"
;};
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
"S5S8_CREATE_SESSION_RESPONSE"
;};
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
"S5S8_CREATE_BEARER_REQUEST"
;};
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
"S5S8_CREATE_BEARER_RESPONSE"
;};
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
();};
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
"S5S8_MODIFY_BEARER_RESPONSE"
;};
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
"S5S8_DELETE_SESSION_REQUEST"
;};
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
"S5S8_DELETE_SESSION_RESPONSE"
;};
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
"S5S8_RELEASE_ACCESS_BEARERS_REQUEST"
;};
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
"S5S8_RELEASE_ACCESS_BEARERS_RESPONSE"
;};
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
"S5S8_DELETE_BEARER_COMMAND"
;};
gtpv2c
::
gtpv2c_delete_bearer_command
gtp_ies
;
}
;
//-----------------------------------------------------------------------------
/** @class itti_s5s8_downlink_data_notification
* @brief Downlink Data Notification, not in spec but necessary due to SGWU and PGWU tied together.
*
* The Downlink Data Notification message is sent on the S5S8 interface by the SGW to the MME as part of the S1 paging procedure.
*/
class
itti_s5s8_downlink_data_notification
:
public
itti_s5s8_msg
{
public:
itti_s5s8_downlink_data_notification
(
const
task_id_t
origin
,
const
task_id_t
destination
)
:
itti_s5s8_msg
(
S5S8_DOWNLINK_DATA_NOTIFICATION
,
origin
,
destination
)
{
}
itti_s5s8_downlink_data_notification
(
const
itti_s5s8_downlink_data_notification
&
i
)
:
itti_s5s8_msg
(
i
)
{
gtp_ies
=
i
.
gtp_ies
;
}
itti_s5s8_downlink_data_notification
(
const
itti_s5s8_downlink_data_notification
&
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_downlink_data_notification
).
name
();};