renamed openair-cn to openair3
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7886 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../openair2/COMMON/as_message.h
|
||||
@@ -0,0 +1,254 @@
|
||||
/*
|
||||
* Copyright (c) 2015, EURECOM (www.eurecom.fr)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those
|
||||
* of the authors and should not be interpreted as representing official policies,
|
||||
* either expressed or implied, of the FreeBSD Project.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "commonDef.h"
|
||||
|
||||
#include "security_types.h"
|
||||
|
||||
#include "queue.h"
|
||||
|
||||
#ifndef COMMON_TYPES_H_
|
||||
#define COMMON_TYPES_H_
|
||||
|
||||
#define MSISDN_LENGTH (15)
|
||||
#define IMSI_DIGITS_MAX (15)
|
||||
#define APN_MAX_LENGTH (100)
|
||||
#define PRIORITY_LEVEL_MAX (15)
|
||||
#define PRIORITY_LEVEL_MIN (1)
|
||||
#define BEARERS_PER_UE (11)
|
||||
#define MAX_APN_PER_UE (5)
|
||||
|
||||
typedef enum {
|
||||
RAT_WLAN = 0,
|
||||
RAT_VIRTUAL = 1,
|
||||
RAT_UTRAN = 1000,
|
||||
RAT_GERAN = 1001,
|
||||
RAT_GAN = 1002,
|
||||
RAT_HSPA_EVOLUTION = 1003,
|
||||
RAT_EUTRAN = 1004,
|
||||
RAT_CDMA2000_1X = 2000,
|
||||
RAT_HRPD = 2001,
|
||||
RAT_UMB = 2002,
|
||||
RAT_EHRPD = 2003,
|
||||
} rat_type_t;
|
||||
|
||||
#define NUMBER_OF_RAT_TYPE 11
|
||||
|
||||
typedef enum {
|
||||
SS_SERVICE_GRANTED = 0,
|
||||
SS_OPERATOR_DETERMINED_BARRING = 1,
|
||||
SS_MAX,
|
||||
} subscriber_status_t;
|
||||
|
||||
typedef enum {
|
||||
NAM_PACKET_AND_CIRCUIT = 0,
|
||||
NAM_RESERVED = 1,
|
||||
NAM_ONLY_PACKET = 2,
|
||||
NAM_MAX,
|
||||
} network_access_mode_t;
|
||||
|
||||
typedef uint64_t bitrate_t;
|
||||
|
||||
typedef uint8_t ebi_t;
|
||||
typedef char* APN_t;
|
||||
typedef uint8_t APNRestriction_t;
|
||||
typedef uint8_t DelayValue_t;
|
||||
typedef uint8_t priority_level_t;
|
||||
typedef uint32_t Teid_t;
|
||||
typedef uint32_t SequenceNumber_t;
|
||||
typedef uint32_t access_restriction_t;
|
||||
typedef uint32_t context_identifier_t;
|
||||
typedef uint32_t rau_tau_timer_t;
|
||||
//typedef uint32_t in_addr_t; is network byte order
|
||||
|
||||
typedef uint32_t ard_t;
|
||||
#define ARD_UTRAN_NOT_ALLOWED (1U)
|
||||
#define ARD_GERAN_NOT_ALLOWED (1U << 1)
|
||||
#define ARD_GAN_NOT_ALLOWED (1U << 2)
|
||||
#define ARD_I_HSDPA_EVO_NOT_ALLOWED (1U << 3)
|
||||
#define ARD_E_UTRAN_NOT_ALLOWED (1U << 4)
|
||||
#define ARD_HO_TO_NON_3GPP_NOT_ALLOWED (1U << 5)
|
||||
#define ARD_MAX (1U << 6)
|
||||
|
||||
typedef struct {
|
||||
plmn_t plmn;
|
||||
unsigned cell_identity:28;
|
||||
} cgi_t;
|
||||
|
||||
typedef union {
|
||||
struct {
|
||||
uint8_t imei[13];
|
||||
uint8_t sotfware_version[2];
|
||||
} id;
|
||||
uint8_t imeisv[15];
|
||||
} me_identity_t;
|
||||
|
||||
typedef struct {
|
||||
bitrate_t br_ul;
|
||||
bitrate_t br_dl;
|
||||
} ambr_t;
|
||||
|
||||
typedef enum {
|
||||
IPv4 = 0,
|
||||
IPv6 = 1,
|
||||
IPv4_AND_v6 = 2,
|
||||
IPv4_OR_v6 = 3,
|
||||
IP_MAX,
|
||||
} pdn_type_t;
|
||||
|
||||
typedef struct {
|
||||
pdn_type_t pdn_type;
|
||||
struct {
|
||||
uint8_t ipv4_address[4];
|
||||
uint8_t ipv6_address[16];
|
||||
} address;
|
||||
} ip_address_t;
|
||||
|
||||
typedef enum {
|
||||
QCI_1 = 1,
|
||||
QCI_2 = 2,
|
||||
QCI_3 = 3,
|
||||
QCI_4 = 4,
|
||||
QCI_5 = 5,
|
||||
QCI_6 = 6,
|
||||
QCI_7 = 7,
|
||||
QCI_8 = 8,
|
||||
QCI_9 = 9,
|
||||
/* Values from 128 to 254 are operator specific.
|
||||
* Other are reserved.
|
||||
*/
|
||||
QCI_MAX,
|
||||
} qci_t;
|
||||
|
||||
typedef enum {
|
||||
PRE_EMPTION_CAPABILITY_ENABLED = 0,
|
||||
PRE_EMPTION_CAPABILITY_DISABLED = 1,
|
||||
PRE_EMPTION_CAPABILITY_MAX,
|
||||
} pre_emp_capability_t;
|
||||
|
||||
typedef enum {
|
||||
PRE_EMPTION_VULNERABILITY_ENABLED = 0,
|
||||
PRE_EMPTION_VULNERABILITY_DISABLED = 1,
|
||||
PRE_EMPTION_VULNERABILITY_MAX,
|
||||
} pre_emp_vulnerability_t;
|
||||
|
||||
typedef struct {
|
||||
priority_level_t priority_level;
|
||||
pre_emp_vulnerability_t pre_emp_vulnerability;
|
||||
pre_emp_capability_t pre_emp_capability;
|
||||
} allocation_retention_priority_t;
|
||||
|
||||
typedef struct eps_subscribed_qos_profile_s {
|
||||
qci_t qci;
|
||||
allocation_retention_priority_t allocation_retention_priority;
|
||||
} eps_subscribed_qos_profile_t;
|
||||
|
||||
typedef struct apn_configuration_s {
|
||||
context_identifier_t context_identifier;
|
||||
|
||||
/* Each APN configuration can have 0, 1, or 2 ip address:
|
||||
* - 0 means subscribed is dynamically allocated by P-GW depending on the
|
||||
* pdn_type
|
||||
* - 1 Only one type of IP address is returned by HSS
|
||||
* - 2 IPv4 and IPv6 address are returned by HSS and are statically
|
||||
* allocated
|
||||
*/
|
||||
uint8_t nb_ip_address;
|
||||
ip_address_t ip_address[2];
|
||||
|
||||
pdn_type_t pdn_type;
|
||||
char service_selection[APN_MAX_LENGTH];
|
||||
int service_selection_length;
|
||||
eps_subscribed_qos_profile_t subscribed_qos;
|
||||
ambr_t ambr;
|
||||
} apn_configuration_t;
|
||||
|
||||
typedef enum {
|
||||
ALL_APN_CONFIGURATIONS_INCLUDED = 0,
|
||||
MODIFIED_ADDED_APN_CONFIGURATIONS_INCLUDED = 1,
|
||||
ALL_APN_MAX,
|
||||
} all_apn_conf_ind_t;
|
||||
|
||||
typedef struct {
|
||||
context_identifier_t context_identifier;
|
||||
all_apn_conf_ind_t all_apn_conf_ind;
|
||||
/* Number of APNs provided */
|
||||
uint8_t nb_apns;
|
||||
/* List of APNs configuration 1 to n elements */
|
||||
struct apn_configuration_s apn_configuration[MAX_APN_PER_UE];
|
||||
} apn_config_profile_t;
|
||||
|
||||
typedef struct {
|
||||
subscriber_status_t subscriber_status;
|
||||
char msisdn[MSISDN_LENGTH + 1];
|
||||
uint8_t msisdn_length;
|
||||
network_access_mode_t access_mode;
|
||||
access_restriction_t access_restriction;
|
||||
ambr_t subscribed_ambr;
|
||||
apn_config_profile_t apn_config_profile;
|
||||
rau_tau_timer_t rau_tau_timer;
|
||||
} subscription_data_t;
|
||||
|
||||
typedef struct authentication_info_s {
|
||||
uint8_t nb_of_vectors;
|
||||
eutran_vector_t eutran_vector;
|
||||
} authentication_info_t;
|
||||
|
||||
typedef enum {
|
||||
DIAMETER_AUTHENTICATION_DATA_UNAVAILABLE = 4181,
|
||||
DIAMETER_ERROR_USER_UNKNOWN = 5001,
|
||||
DIAMETER_ERROR_ROAMING_NOT_ALLOWED = 5004,
|
||||
DIAMETER_ERROR_UNKNOWN_EPS_SUBSCRIPTION = 5420,
|
||||
DIAMETER_ERROR_RAT_NOT_ALLOWED = 5421,
|
||||
DIAMETER_ERROR_EQUIPMENT_UNKNOWN = 5422,
|
||||
DIAMETER_ERROR_UNKOWN_SERVING_NODE = 5423,
|
||||
} s6a_experimental_result_t;
|
||||
|
||||
typedef enum {
|
||||
DIAMETER_SUCCESS = 2001,
|
||||
} s6a_base_result_t;
|
||||
|
||||
typedef struct {
|
||||
#define S6A_RESULT_BASE 0x0
|
||||
#define S6A_RESULT_EXPERIMENTAL 0x1
|
||||
unsigned present:1;
|
||||
|
||||
union {
|
||||
/* Experimental result as defined in 3GPP TS 29.272 */
|
||||
s6a_experimental_result_t experimental;
|
||||
/* Diameter basics results as defined in RFC 3588 */
|
||||
s6a_base_result_t base;
|
||||
} choice;
|
||||
} s6a_result_t;
|
||||
|
||||
#endif /* COMMON_TYPES_H_ */
|
||||
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* Copyright (c) 2015, EURECOM (www.eurecom.fr)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those
|
||||
* of the authors and should not be interpreted as representing official policies,
|
||||
* either expressed or implied, of the FreeBSD Project.
|
||||
*/
|
||||
|
||||
MESSAGE_DEF(GTPV1U_CREATE_TUNNEL_REQ, MESSAGE_PRIORITY_MED, Gtpv1uCreateTunnelReq, gtpv1uCreateTunnelReq)
|
||||
MESSAGE_DEF(GTPV1U_CREATE_TUNNEL_RESP, MESSAGE_PRIORITY_MED, Gtpv1uCreateTunnelResp, gtpv1uCreateTunnelResp)
|
||||
MESSAGE_DEF(GTPV1U_UPDATE_TUNNEL_REQ, MESSAGE_PRIORITY_MED, Gtpv1uUpdateTunnelReq, gtpv1uUpdateTunnelReq)
|
||||
MESSAGE_DEF(GTPV1U_UPDATE_TUNNEL_RESP, MESSAGE_PRIORITY_MED, Gtpv1uUpdateTunnelResp, gtpv1uUpdateTunnelResp)
|
||||
MESSAGE_DEF(GTPV1U_DELETE_TUNNEL_REQ, MESSAGE_PRIORITY_MED, Gtpv1uDeleteTunnelReq, gtpv1uDeleteTunnelReq)
|
||||
MESSAGE_DEF(GTPV1U_DELETE_TUNNEL_RESP, MESSAGE_PRIORITY_MED, Gtpv1uDeleteTunnelResp, gtpv1uDeleteTunnelResp)
|
||||
MESSAGE_DEF(GTPV1U_TUNNEL_DATA_IND, MESSAGE_PRIORITY_MED, Gtpv1uTunnelDataInd, gtpv1uTunnelDataInd)
|
||||
MESSAGE_DEF(GTPV1U_TUNNEL_DATA_REQ, MESSAGE_PRIORITY_MED, Gtpv1uTunnelDataReq, gtpv1uTunnelDataReq)
|
||||
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
* Copyright (c) 2015, EURECOM (www.eurecom.fr)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those
|
||||
* of the authors and should not be interpreted as representing official policies,
|
||||
* either expressed or implied, of the FreeBSD Project.
|
||||
*/
|
||||
|
||||
#ifndef GTPV1_U_MESSAGES_TYPES_H_
|
||||
#define GTPV1_U_MESSAGES_TYPES_H_
|
||||
|
||||
#include "../SGW-LITE/sgw_lite_ie_defs.h"
|
||||
|
||||
typedef struct {
|
||||
Teid_t context_teid; ///< Tunnel Endpoint Identifier
|
||||
ebi_t eps_bearer_id;
|
||||
} Gtpv1uCreateTunnelReq;
|
||||
|
||||
typedef struct {
|
||||
uint8_t status; ///< Status of S1U endpoint creation (Failed = 0xFF or Success = 0x0)
|
||||
Teid_t context_teid; ///< local SGW S11 Tunnel Endpoint Identifier
|
||||
Teid_t S1u_teid; ///< Tunnel Endpoint Identifier
|
||||
ebi_t eps_bearer_id;
|
||||
} Gtpv1uCreateTunnelResp;
|
||||
|
||||
typedef struct {
|
||||
Teid_t context_teid; ///< S11 Tunnel Endpoint Identifier
|
||||
Teid_t sgw_S1u_teid; ///< SGW S1U local Tunnel Endpoint Identifier
|
||||
Teid_t enb_S1u_teid; ///< eNB S1U Tunnel Endpoint Identifier
|
||||
ip_address_t enb_ip_address_for_S1u;
|
||||
ebi_t eps_bearer_id;
|
||||
} Gtpv1uUpdateTunnelReq;
|
||||
|
||||
typedef struct {
|
||||
uint8_t status; ///< Status (Failed = 0xFF or Success = 0x0)
|
||||
Teid_t context_teid; ///< S11 Tunnel Endpoint Identifier
|
||||
Teid_t sgw_S1u_teid; ///< SGW S1U local Tunnel Endpoint Identifier
|
||||
Teid_t enb_S1u_teid; ///< eNB S1U Tunnel Endpoint Identifier
|
||||
ebi_t eps_bearer_id;
|
||||
} Gtpv1uUpdateTunnelResp;
|
||||
|
||||
typedef struct {
|
||||
Teid_t context_teid; ///< local SGW S11 Tunnel Endpoint Identifier
|
||||
Teid_t S1u_teid; ///< local S1U Tunnel Endpoint Identifier to be deleted
|
||||
} Gtpv1uDeleteTunnelReq;
|
||||
|
||||
typedef struct {
|
||||
uint8_t status; ///< Status of S1U endpoint deleteion (Failed = 0xFF or Success = 0x0)
|
||||
Teid_t context_teid; ///< local SGW S11 Tunnel Endpoint Identifier
|
||||
Teid_t S1u_teid; ///< local S1U Tunnel Endpoint Identifier to be deleted
|
||||
} Gtpv1uDeleteTunnelResp;
|
||||
|
||||
typedef struct {
|
||||
uint8_t *buffer;
|
||||
uint32_t length;
|
||||
uint32_t offset; ///< start of message offset in buffer
|
||||
Teid_t local_S1u_teid; ///< Tunnel Endpoint Identifier
|
||||
} Gtpv1uTunnelDataInd;
|
||||
|
||||
typedef struct {
|
||||
uint8_t *buffer;
|
||||
uint32_t length;
|
||||
uint32_t offset; ///< start of message offset in buffer
|
||||
Teid_t local_S1u_teid; ///< Tunnel Endpoint Identifier
|
||||
Teid_t S1u_enb_teid; ///< Tunnel Endpoint Identifier
|
||||
} Gtpv1uTunnelDataReq;
|
||||
|
||||
#endif /* GTPV1_U_MESSAGES_TYPES_H_ */
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright (c) 2015, EURECOM (www.eurecom.fr)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those
|
||||
* of the authors and should not be interpreted as representing official policies,
|
||||
* either expressed or implied, of the FreeBSD Project.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* intertask_interface_conf.h
|
||||
*
|
||||
* Created on: Oct 21, 2013
|
||||
* Author: winckel
|
||||
*/
|
||||
|
||||
#ifndef INTERTASK_INTERFACE_CONF_H_
|
||||
#define INTERTASK_INTERFACE_CONF_H_
|
||||
|
||||
/*******************************************************************************
|
||||
* Intertask Interface Constants
|
||||
******************************************************************************/
|
||||
|
||||
#define ITTI_PORT (10007)
|
||||
|
||||
/* This is the queue size for signal dumper */
|
||||
#define ITTI_QUEUE_MAX_ELEMENTS (200 * 1024)
|
||||
#define ITTI_DUMP_MAX_CON (5) /* Max connections in parallel */
|
||||
|
||||
#endif /* INTERTASK_INTERFACE_CONF_H_ */
|
||||
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright (c) 2015, EURECOM (www.eurecom.fr)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those
|
||||
* of the authors and should not be interpreted as representing official policies,
|
||||
* either expressed or implied, of the FreeBSD Project.
|
||||
*/
|
||||
|
||||
// These messages files are mandatory and must always be placed in first position
|
||||
#include "intertask_messages_def.h"
|
||||
#include "timer_messages_def.h"
|
||||
|
||||
// Messages files used between tasks
|
||||
#include "gtpv1_u_messages_def.h"
|
||||
#include "ip_forward_messages_def.h"
|
||||
#include "nas_messages_def.h"
|
||||
#include "s11_messages_def.h"
|
||||
#include "s1ap_messages_def.h"
|
||||
#include "s6a_messages_def.h"
|
||||
#include "sctp_messages_def.h"
|
||||
#include "sgw_lite_def.h"
|
||||
#include "udp_messages_def.h"
|
||||
#include "mme_app_messages_def.h"
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (c) 2015, EURECOM (www.eurecom.fr)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those
|
||||
* of the authors and should not be interpreted as representing official policies,
|
||||
* either expressed or implied, of the FreeBSD Project.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef MESSAGES_TYPES_H_
|
||||
#define MESSAGES_TYPES_H_
|
||||
|
||||
#include "intertask_messages_types.h"
|
||||
#include "timer_messages_types.h"
|
||||
|
||||
#include "security_types.h"
|
||||
|
||||
#include "gtpv1_u_messages_types.h"
|
||||
#include "ip_forward_messages_types.h"
|
||||
#include "s11_messages_types.h"
|
||||
#include "s1ap_messages_types.h"
|
||||
#include "nas_messages_types.h"
|
||||
#include "s6a_messages_types.h"
|
||||
#include "sctp_messages_types.h"
|
||||
#include "sgw_lite_messages_types.h"
|
||||
#include "udp_messages_types.h"
|
||||
#include "mme_app_messages_types.h"
|
||||
|
||||
#endif /* MESSAGES_TYPES_H_ */
|
||||
@@ -0,0 +1,77 @@
|
||||
/*
|
||||
* Copyright (c) 2015, EURECOM (www.eurecom.fr)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those
|
||||
* of the authors and should not be interpreted as representing official policies,
|
||||
* either expressed or implied, of the FreeBSD Project.
|
||||
*/
|
||||
|
||||
//WARNING: Do not include this header directly. Use intertask_interface.h instead.
|
||||
|
||||
// Messages for NAS logging
|
||||
MESSAGE_DEF(NAS_DL_EMM_RAW_MSG, MESSAGE_PRIORITY_MED, nas_raw_msg_t, nas_dl_emm_raw_msg)
|
||||
MESSAGE_DEF(NAS_UL_EMM_RAW_MSG, MESSAGE_PRIORITY_MED, nas_raw_msg_t, nas_ul_emm_raw_msg)
|
||||
|
||||
MESSAGE_DEF(NAS_DL_EMM_PLAIN_MSG, MESSAGE_PRIORITY_MED, nas_emm_plain_msg_t, nas_dl_emm_plain_msg)
|
||||
MESSAGE_DEF(NAS_UL_EMM_PLAIN_MSG, MESSAGE_PRIORITY_MED, nas_emm_plain_msg_t, nas_ul_emm_plain_msg)
|
||||
MESSAGE_DEF(NAS_DL_EMM_PROTECTED_MSG, MESSAGE_PRIORITY_MED, nas_emm_protected_msg_t, nas_dl_emm_protected_msg)
|
||||
MESSAGE_DEF(NAS_UL_EMM_PROTECTED_MSG, MESSAGE_PRIORITY_MED, nas_emm_protected_msg_t, nas_ul_emm_protected_msg)
|
||||
|
||||
MESSAGE_DEF(NAS_DL_ESM_RAW_MSG, MESSAGE_PRIORITY_MED, nas_raw_msg_t, nas_dl_esm_raw_msg)
|
||||
MESSAGE_DEF(NAS_UL_ESM_RAW_MSG, MESSAGE_PRIORITY_MED, nas_raw_msg_t, nas_ul_esm_raw_msg)
|
||||
|
||||
MESSAGE_DEF(NAS_DL_ESM_PLAIN_MSG, MESSAGE_PRIORITY_MED, nas_esm_plain_msg_t, nas_dl_esm_plain_msg)
|
||||
MESSAGE_DEF(NAS_UL_ESM_PLAIN_MSG, MESSAGE_PRIORITY_MED, nas_esm_plain_msg_t, nas_ul_esm_plain_msg)
|
||||
MESSAGE_DEF(NAS_DL_ESM_PROTECTED_MSG, MESSAGE_PRIORITY_MED, nas_esm_protected_msg_t, nas_dl_esm_protected_msg)
|
||||
MESSAGE_DEF(NAS_UL_ESM_PROTECTED_MSG, MESSAGE_PRIORITY_MED, nas_esm_protected_msg_t, nas_ul_esm_protected_msg)
|
||||
|
||||
/* */
|
||||
MESSAGE_DEF(NAS_PAGING_IND, MESSAGE_PRIORITY_MED, nas_paging_ind_t, nas_paging_ind)
|
||||
MESSAGE_DEF(NAS_PDN_CONNECTIVITY_REQ, MESSAGE_PRIORITY_MED, nas_pdn_connectivity_req_t, nas_pdn_connectivity_req)
|
||||
MESSAGE_DEF(NAS_CONNECTION_ESTABLISHMENT_IND, MESSAGE_PRIORITY_MED, nas_conn_est_ind_t, nas_conn_est_ind)
|
||||
MESSAGE_DEF(NAS_CONNECTION_ESTABLISHMENT_CNF, MESSAGE_PRIORITY_MED, nas_conn_est_cnf_t, nas_conn_est_cnf)
|
||||
MESSAGE_DEF(NAS_CONNECTION_RELEASE_IND, MESSAGE_PRIORITY_MED, nas_conn_rel_ind_t, nas_conn_rel_ind)
|
||||
MESSAGE_DEF(NAS_UPLINK_DATA_IND, MESSAGE_PRIORITY_MED, nas_ul_data_ind_t, nas_ul_data_ind)
|
||||
MESSAGE_DEF(NAS_DOWNLINK_DATA_REQ, MESSAGE_PRIORITY_MED, nas_dl_data_req_t, nas_dl_data_req)
|
||||
MESSAGE_DEF(NAS_DOWNLINK_DATA_CNF, MESSAGE_PRIORITY_MED, nas_dl_data_cnf_t, nas_dl_data_cnf)
|
||||
MESSAGE_DEF(NAS_DOWNLINK_DATA_REJ, MESSAGE_PRIORITY_MED, nas_dl_data_rej_t, nas_dl_data_rej)
|
||||
MESSAGE_DEF(NAS_RAB_ESTABLISHMENT_REQ, MESSAGE_PRIORITY_MED, nas_rab_est_req_t, nas_rab_est_req)
|
||||
MESSAGE_DEF(NAS_RAB_ESTABLISHMENT_RESP, MESSAGE_PRIORITY_MED, nas_rab_est_rsp_t, nas_rab_est_rsp)
|
||||
MESSAGE_DEF(NAS_RAB_RELEASE_REQ, MESSAGE_PRIORITY_MED, nas_rab_rel_req_t, nas_rab_rel_req)
|
||||
|
||||
/* NAS layer -> MME app messages */
|
||||
MESSAGE_DEF(NAS_AUTHENTICATION_PARAM_REQ, MESSAGE_PRIORITY_MED, nas_auth_param_req_t, nas_auth_param_req)
|
||||
|
||||
/* MME app -> NAS layer messages */
|
||||
MESSAGE_DEF(NAS_PDN_CONNECTIVITY_RSP, MESSAGE_PRIORITY_MED, nas_pdn_connectivity_rsp_t, nas_pdn_connectivity_rsp)
|
||||
MESSAGE_DEF(NAS_PDN_CONNECTIVITY_FAIL, MESSAGE_PRIORITY_MED, nas_pdn_connectivity_fail_t, nas_pdn_connectivity_fail)
|
||||
MESSAGE_DEF(NAS_AUTHENTICATION_PARAM_RSP, MESSAGE_PRIORITY_MED, nas_auth_param_rsp_t, nas_auth_param_rsp)
|
||||
MESSAGE_DEF(NAS_AUTHENTICATION_PARAM_FAIL, MESSAGE_PRIORITY_MED, nas_auth_param_fail_t, nas_auth_param_fail)
|
||||
|
||||
#if defined(DISABLE_USE_NAS)
|
||||
MESSAGE_DEF(NAS_ATTACH_REQ, MESSAGE_PRIORITY_MED, nas_attach_req_t, nas_attach_req)
|
||||
MESSAGE_DEF(NAS_ATTACH_ACCEPT, MESSAGE_PRIORITY_MED, nas_attach_accept_t, nas_attach_accept)
|
||||
MESSAGE_DEF(NAS_AUTHENTICATION_RESP, MESSAGE_PRIORITY_MED, nas_auth_resp_t, nas_auth_resp)
|
||||
MESSAGE_DEF(NAS_AUTHENTICATION_REQ, MESSAGE_PRIORITY_MED, nas_auth_req_t, nas_auth_req)
|
||||
#endif
|
||||
@@ -0,0 +1,353 @@
|
||||
/*
|
||||
* Copyright (c) 2015, EURECOM (www.eurecom.fr)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those
|
||||
* of the authors and should not be interpreted as representing official policies,
|
||||
* either expressed or implied, of the FreeBSD Project.
|
||||
*/
|
||||
|
||||
#include "as_message.h"
|
||||
#include "nas_message.h"
|
||||
|
||||
#ifndef NAS_MESSAGES_TYPES_H_
|
||||
#define NAS_MESSAGES_TYPES_H_
|
||||
|
||||
#define NAS_DL_EMM_RAW_MSG(mSGpTR) (mSGpTR)->ittiMsg.nas_dl_emm_raw_msg
|
||||
#define NAS_UL_EMM_RAW_MSG(mSGpTR) (mSGpTR)->ittiMsg.nas_ul_emm_raw_msg
|
||||
|
||||
#define NAS_DL_EMM_PROTECTED_MSG(mSGpTR) (mSGpTR)->ittiMsg.nas_dl_emm_protected_msg
|
||||
#define NAS_UL_EMM_PROTECTED_MSG(mSGpTR) (mSGpTR)->ittiMsg.nas_ul_emm_protected_msg
|
||||
#define NAS_DL_EMM_PLAIN_MSG(mSGpTR) (mSGpTR)->ittiMsg.nas_dl_emm_plain_msg
|
||||
#define NAS_UL_EMM_PLAIN_MSG(mSGpTR) (mSGpTR)->ittiMsg.nas_ul_emm_plain_msg
|
||||
|
||||
#define NAS_DL_ESM_RAW_MSG(mSGpTR) (mSGpTR)->ittiMsg.nas_dl_esm_raw_msg
|
||||
#define NAS_UL_ESM_RAW_MSG(mSGpTR) (mSGpTR)->ittiMsg.nas_ul_esm_raw_msg
|
||||
|
||||
#define NAS_DL_ESM_PROTECTED_MSG(mSGpTR) (mSGpTR)->ittiMsg.nas_dl_esm_protected_msg
|
||||
#define NAS_UL_ESM_PROTECTED_MSG(mSGpTR) (mSGpTR)->ittiMsg.nas_ul_esm_protected_msg
|
||||
#define NAS_DL_ESM_PLAIN_MSG(mSGpTR) (mSGpTR)->ittiMsg.nas_dl_esm_plain_msg
|
||||
#define NAS_UL_ESM_PLAIN_MSG(mSGpTR) (mSGpTR)->ittiMsg.nas_ul_esm_plain_msg
|
||||
|
||||
#define NAS_UL_DATA_IND(mSGpTR) (mSGpTR)->ittiMsg.nas_ul_data_ind
|
||||
#define NAS_DL_DATA_REQ(mSGpTR) (mSGpTR)->ittiMsg.nas_dl_data_req
|
||||
#define NAS_DL_DATA_CNF(mSGpTR) (mSGpTR)->ittiMsg.nas_dl_data_cnf
|
||||
#define NAS_DL_DATA_REJ(mSGpTR) (mSGpTR)->ittiMsg.nas_dl_data_rej
|
||||
#define NAS_PDN_CONNECTIVITY_REQ(mSGpTR) (mSGpTR)->ittiMsg.nas_pdn_connectivity_req
|
||||
#define NAS_PDN_CONNECTIVITY_RSP(mSGpTR) (mSGpTR)->ittiMsg.nas_pdn_connectivity_rsp
|
||||
#define NAS_PDN_CONNECTIVITY_FAIL(mSGpTR) (mSGpTR)->ittiMsg.nas_pdn_connectivity_fail
|
||||
#define NAS_CONN_EST_IND(mSGpTR) (mSGpTR)->ittiMsg.nas_conn_est_ind
|
||||
#define NAS_CONNECTION_ESTABLISHMENT_CNF(mSGpTR) (mSGpTR)->ittiMsg.nas_conn_est_cnf
|
||||
#define NAS_BEARER_PARAM(mSGpTR) (mSGpTR)->ittiMsg.nas_bearer_param
|
||||
#define NAS_AUTHENTICATION_REQ(mSGpTR) (mSGpTR)->ittiMsg.nas_auth_req
|
||||
#define NAS_AUTHENTICATION_PARAM_REQ(mSGpTR) (mSGpTR)->ittiMsg.nas_auth_param_req
|
||||
#define NAS_AUTHENTICATION_PARAM_RSP(mSGpTR) (mSGpTR)->ittiMsg.nas_auth_param_rsp
|
||||
#define NAS_AUTHENTICATION_PARAM_FAIL(mSGpTR) (mSGpTR)->ittiMsg.nas_auth_param_fail
|
||||
|
||||
#define NAS_DATA_LENGHT_MAX 256
|
||||
|
||||
|
||||
|
||||
typedef enum {
|
||||
EMM_MSG_HEADER = 1,
|
||||
EMM_MSG_ATTACH_REQUEST,
|
||||
EMM_MSG_ATTACH_ACCEPT,
|
||||
EMM_MSG_ATTACH_COMPLETE,
|
||||
EMM_MSG_ATTACH_REJECT,
|
||||
EMM_MSG_DETACH_REQUEST,
|
||||
EMM_MSG_DETACH_ACCEPT,
|
||||
EMM_MSG_TRACKING_AREA_UPDATE_REQUEST,
|
||||
EMM_MSG_TRACKING_AREA_UPDATE_ACCEPT,
|
||||
EMM_MSG_TRACKING_AREA_UPDATE_COMPLETE,
|
||||
EMM_MSG_TRACKING_AREA_UPDATE_REJECT,
|
||||
EMM_MSG_EXTENDED_SERVICE_REQUEST,
|
||||
EMM_MSG_SERVICE_REQUEST,
|
||||
EMM_MSG_SERVICE_REJECT,
|
||||
EMM_MSG_GUTI_REALLOCATION_COMMAND,
|
||||
EMM_MSG_GUTI_REALLOCATION_COMPLETE,
|
||||
EMM_MSG_AUTHENTICATION_REQUEST,
|
||||
EMM_MSG_AUTHENTICATION_RESPONSE,
|
||||
EMM_MSG_AUTHENTICATION_REJECT,
|
||||
EMM_MSG_AUTHENTICATION_FAILURE,
|
||||
EMM_MSG_IDENTITY_REQUEST,
|
||||
EMM_MSG_IDENTITY_RESPONSE,
|
||||
EMM_MSG_SECURITY_MODE_COMMAND,
|
||||
EMM_MSG_SECURITY_MODE_COMPLETE,
|
||||
EMM_MSG_SECURITY_MODE_REJECT,
|
||||
EMM_MSG_EMM_STATUS,
|
||||
EMM_MSG_EMM_INFORMATION,
|
||||
EMM_MSG_DOWNLINK_NAS_TRANSPORT,
|
||||
EMM_MSG_UPLINK_NAS_TRANSPORT,
|
||||
EMM_MSG_CS_SERVICE_NOTIFICATION,
|
||||
} emm_message_ids_t;
|
||||
|
||||
|
||||
|
||||
typedef enum {
|
||||
ESM_MSG_HEADER = 1,
|
||||
ESM_MSG_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST,
|
||||
ESM_MSG_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT,
|
||||
ESM_MSG_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REJECT,
|
||||
ESM_MSG_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST,
|
||||
ESM_MSG_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT,
|
||||
ESM_MSG_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REJECT,
|
||||
ESM_MSG_MODIFY_EPS_BEARER_CONTEXT_REQUEST,
|
||||
ESM_MSG_MODIFY_EPS_BEARER_CONTEXT_ACCEPT,
|
||||
ESM_MSG_MODIFY_EPS_BEARER_CONTEXT_REJECT,
|
||||
ESM_MSG_DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST,
|
||||
ESM_MSG_DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT,
|
||||
ESM_MSG_PDN_CONNECTIVITY_REQUEST,
|
||||
ESM_MSG_PDN_CONNECTIVITY_REJECT,
|
||||
ESM_MSG_PDN_DISCONNECT_REQUEST,
|
||||
ESM_MSG_PDN_DISCONNECT_REJECT,
|
||||
ESM_MSG_BEARER_RESOURCE_ALLOCATION_REQUEST,
|
||||
ESM_MSG_BEARER_RESOURCE_ALLOCATION_REJECT,
|
||||
ESM_MSG_BEARER_RESOURCE_MODIFICATION_REQUEST,
|
||||
ESM_MSG_BEARER_RESOURCE_MODIFICATION_REJECT,
|
||||
ESM_MSG_ESM_INFORMATION_REQUEST,
|
||||
ESM_MSG_ESM_INFORMATION_RESPONSE,
|
||||
ESM_MSG_ESM_STATUS,
|
||||
} esm_message_ids_t;
|
||||
|
||||
|
||||
|
||||
typedef struct nas_raw_msg_s {
|
||||
uint32_t lenght;
|
||||
uint8_t data[NAS_DATA_LENGHT_MAX];
|
||||
} nas_raw_msg_t;
|
||||
|
||||
|
||||
|
||||
typedef struct nas_emm_plain_msg_s {
|
||||
emm_message_ids_t present;
|
||||
EMM_msg choice;
|
||||
|
||||
} nas_emm_plain_msg_t;
|
||||
|
||||
|
||||
|
||||
typedef struct nas_emm_protected_msg_s {
|
||||
nas_message_security_header_t header;
|
||||
emm_message_ids_t present;
|
||||
EMM_msg choice;
|
||||
} nas_emm_protected_msg_t;
|
||||
|
||||
|
||||
typedef struct nas_esm_plain_msg_s {
|
||||
esm_message_ids_t present;
|
||||
ESM_msg choice;
|
||||
|
||||
} nas_esm_plain_msg_t;
|
||||
|
||||
|
||||
typedef struct nas_esm_protected_msg_s {
|
||||
nas_message_security_header_t header;
|
||||
esm_message_ids_t present;
|
||||
ESM_msg choice;
|
||||
} nas_esm_protected_msg_t;
|
||||
|
||||
|
||||
typedef struct nas_paging_ind_s {
|
||||
|
||||
} nas_paging_ind_t;
|
||||
|
||||
|
||||
typedef struct nas_pdn_connectivity_req_s {
|
||||
int pti; // nas ref Identity of the procedure transaction executed to activate the PDN connection entry
|
||||
unsigned ue_id; // nas ref
|
||||
char imsi[16];
|
||||
uint8_t imsi_length;
|
||||
network_qos_t qos;
|
||||
pco_flat_t pco;
|
||||
OctetString apn;
|
||||
OctetString pdn_addr;
|
||||
int pdn_type;
|
||||
void *proc_data;
|
||||
int request_type;
|
||||
} nas_pdn_connectivity_req_t;
|
||||
|
||||
|
||||
typedef struct nas_pdn_connectivity_rsp_s {
|
||||
int pti; // nas ref Identity of the procedure transaction executed to activate the PDN connection entry
|
||||
unsigned ue_id; // nas ref
|
||||
network_qos_t qos;
|
||||
pco_flat_t pco;
|
||||
OctetString apn;
|
||||
OctetString pdn_addr;
|
||||
int pdn_type;
|
||||
void *proc_data;
|
||||
int request_type;
|
||||
|
||||
unsigned eNB_ue_s1ap_id:24;
|
||||
uint32_t mme_ue_s1ap_id;
|
||||
|
||||
/* Key eNB */
|
||||
//uint8_t keNB[32];
|
||||
|
||||
ambr_t ambr;
|
||||
ambr_t apn_ambr;
|
||||
|
||||
/* EPS bearer ID */
|
||||
unsigned ebi:4;
|
||||
|
||||
/* QoS */
|
||||
qci_t qci;
|
||||
priority_level_t prio_level;
|
||||
pre_emp_vulnerability_t pre_emp_vulnerability;
|
||||
pre_emp_capability_t pre_emp_capability;
|
||||
|
||||
/* S-GW TEID for user-plane */
|
||||
Teid_t sgw_s1u_teid;
|
||||
/* S-GW IP address for User-Plane */
|
||||
ip_address_t sgw_s1u_address;
|
||||
} nas_pdn_connectivity_rsp_t;
|
||||
|
||||
|
||||
typedef struct nas_pdn_connectivity_fail_s {
|
||||
unsigned ue_id; // nas ref
|
||||
} nas_pdn_connectivity_fail_t;
|
||||
|
||||
|
||||
typedef struct nas_conn_est_ind_s {
|
||||
nas_establish_ind_t nas;
|
||||
|
||||
/* Transparent message from s1ap to be forwarded to MME_APP or
|
||||
* to S1AP if connection establishment is rejected by NAS.
|
||||
*/
|
||||
s1ap_initial_ue_message_t transparent;
|
||||
} nas_conn_est_ind_t;
|
||||
|
||||
|
||||
typedef nas_establish_rsp_t nas_conn_est_rej_t;
|
||||
|
||||
|
||||
#if defined(DISABLE_USE_NAS)
|
||||
typedef struct nas_conn_est_cnf_s {
|
||||
uint32_t ue_id;
|
||||
|
||||
nas_establish_cnf_t nas_establish_cnf;
|
||||
/* Transparent message from MME_APP to S1AP */
|
||||
s1ap_initial_ctxt_setup_req_t transparent;
|
||||
} nas_conn_est_cnf_t;
|
||||
#else
|
||||
typedef nas_establish_cnf_t nas_conn_est_cnf_t;
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct nas_conn_rel_ind_s {
|
||||
|
||||
} nas_conn_rel_ind_t;
|
||||
|
||||
typedef ul_info_transfer_ind_t nas_ul_data_ind_t;
|
||||
typedef dl_info_transfer_req_t nas_dl_data_req_t;
|
||||
typedef dl_info_transfer_cnf_t nas_dl_data_cnf_t;
|
||||
|
||||
|
||||
typedef struct nas_dl_data_rej_s {
|
||||
uint32_t UEid; /* UE lower layer identifier */
|
||||
as_nas_info_t nasMsg; /* Uplink NAS message */
|
||||
} nas_dl_data_rej_t;
|
||||
|
||||
typedef struct nas_rab_est_req_s {
|
||||
|
||||
} nas_rab_est_req_t;
|
||||
|
||||
|
||||
typedef struct nas_rab_est_rsp_s {
|
||||
|
||||
} nas_rab_est_rsp_t;
|
||||
|
||||
|
||||
typedef struct nas_rab_rel_req_s {
|
||||
|
||||
} nas_rab_rel_req_t;
|
||||
|
||||
|
||||
typedef struct nas_attach_req_s {
|
||||
/* TODO: Set the correct size */
|
||||
char apn[100];
|
||||
char imsi[16];
|
||||
#define INITIAL_REQUEST (0x1)
|
||||
unsigned initial:1;
|
||||
s1ap_initial_ue_message_t transparent;
|
||||
} nas_attach_req_t;
|
||||
|
||||
|
||||
typedef struct nas_auth_req_s {
|
||||
/* UE imsi */
|
||||
char imsi[16];
|
||||
|
||||
#define NAS_FAILURE_OK 0x0
|
||||
#define NAS_FAILURE_IND 0x1
|
||||
unsigned failure:1;
|
||||
int cause;
|
||||
} nas_auth_req_t;
|
||||
|
||||
|
||||
typedef struct nas_auth_resp_s {
|
||||
char imsi[16];
|
||||
} nas_auth_resp_t;
|
||||
|
||||
typedef struct nas_auth_param_req_s {
|
||||
/* UE identifier */
|
||||
uint32_t ue_id;
|
||||
|
||||
/* Imsi of the UE (In case of initial request) */
|
||||
char imsi[16];
|
||||
uint8_t imsi_length;
|
||||
|
||||
/* Indicates whether the procedure corresponds to a new connection or not */
|
||||
uint8_t initial_req:1;
|
||||
|
||||
uint8_t re_synchronization:1;
|
||||
uint8_t auts[14];
|
||||
} nas_auth_param_req_t;
|
||||
|
||||
|
||||
typedef struct nas_auth_param_rsp_s {
|
||||
/* UE identifier */
|
||||
uint32_t ue_id;
|
||||
|
||||
/* For future use: nb of vectors provided */
|
||||
uint8_t nb_vectors;
|
||||
|
||||
/* Consider only one E-UTRAN vector for the moment... */
|
||||
eutran_vector_t vector;
|
||||
} nas_auth_param_rsp_t;
|
||||
|
||||
typedef struct nas_auth_param_fail_s {
|
||||
/* UE identifier */
|
||||
uint32_t ue_id;
|
||||
|
||||
/* S6A mapped to NAS cause */
|
||||
nas_cause_t cause;
|
||||
} nas_auth_param_fail_t;
|
||||
|
||||
|
||||
#if defined(DISABLE_USE_NAS)
|
||||
typedef struct nas_attach_accept_s {
|
||||
s1ap_initial_ctxt_setup_req_t transparent;
|
||||
} nas_attach_accept_t;
|
||||
#endif
|
||||
|
||||
#endif /* NAS_MESSAGES_TYPES_H_ */
|
||||
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Copyright (c) 2015, EURECOM (www.eurecom.fr)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those
|
||||
* of the authors and should not be interpreted as representing official policies,
|
||||
* either expressed or implied, of the FreeBSD Project.
|
||||
*/
|
||||
|
||||
//WARNING: Do not include this header directly. Use intertask_interface.h instead.
|
||||
|
||||
/* Messages for S1AP logging */
|
||||
MESSAGE_DEF(S1AP_UPLINK_NAS_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_uplink_nas_log)
|
||||
MESSAGE_DEF(S1AP_UE_CAPABILITY_IND_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_ue_capability_ind_log)
|
||||
MESSAGE_DEF(S1AP_INITIAL_CONTEXT_SETUP_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_initial_context_setup_log)
|
||||
MESSAGE_DEF(S1AP_NAS_NON_DELIVERY_IND_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_nas_non_delivery_ind_log)
|
||||
MESSAGE_DEF(S1AP_DOWNLINK_NAS_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_downlink_nas_log)
|
||||
MESSAGE_DEF(S1AP_S1_SETUP_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_s1_setup_log)
|
||||
MESSAGE_DEF(S1AP_INITIAL_UE_MESSAGE_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_initial_ue_message_log)
|
||||
MESSAGE_DEF(S1AP_UE_CONTEXT_RELEASE_REQ_LOG, MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_ue_context_release_req_log)
|
||||
MESSAGE_DEF(S1AP_UE_CONTEXT_RELEASE_COMMAND_LOG, MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_ue_context_release_command_log)
|
||||
MESSAGE_DEF(S1AP_UE_CONTEXT_RELEASE_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_ue_context_release_log)
|
||||
|
||||
MESSAGE_DEF(S1AP_UE_CAPABILITIES_IND , MESSAGE_PRIORITY_MED, s1ap_ue_cap_ind_t , s1ap_ue_cap_ind)
|
||||
MESSAGE_DEF(S1AP_ENB_DEREGISTERED_IND , MESSAGE_PRIORITY_MED, s1ap_eNB_deregistered_ind_t , s1ap_eNB_deregistered_ind)
|
||||
MESSAGE_DEF(S1AP_DEREGISTER_UE_REQ , MESSAGE_PRIORITY_MED, s1ap_deregister_ue_req_t , s1ap_deregister_ue_req)
|
||||
MESSAGE_DEF(S1AP_UE_CONTEXT_RELEASE_REQ , MESSAGE_PRIORITY_MED, s1ap_ue_context_release_req_t , s1ap_ue_context_release_req)
|
||||
MESSAGE_DEF(S1AP_UE_CONTEXT_RELEASE_COMMAND, MESSAGE_PRIORITY_MED, s1ap_ue_context_release_command_t, s1ap_ue_context_release_command)
|
||||
MESSAGE_DEF(S1AP_UE_CONTEXT_RELEASE_COMPLETE, MESSAGE_PRIORITY_MED, s1ap_ue_context_release_complete_t, s1ap_ue_context_release_complete)
|
||||
@@ -0,0 +1,99 @@
|
||||
/*
|
||||
* Copyright (c) 2015, EURECOM (www.eurecom.fr)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those
|
||||
* of the authors and should not be interpreted as representing official policies,
|
||||
* either expressed or implied, of the FreeBSD Project.
|
||||
*/
|
||||
|
||||
#ifndef S1AP_MESSAGES_TYPES_H_
|
||||
#define S1AP_MESSAGES_TYPES_H_
|
||||
|
||||
#define S1AP_ENB_DEREGISTERED_IND(mSGpTR) (mSGpTR)->ittiMsg.s1ap_eNB_deregistered_ind
|
||||
#define S1AP_DEREGISTER_UE_REQ(mSGpTR) (mSGpTR)->ittiMsg.s1ap_deregister_ue_req
|
||||
#define S1AP_UE_CONTEXT_RELEASE_REQ(mSGpTR) (mSGpTR)->ittiMsg.s1ap_ue_context_release_req
|
||||
#define S1AP_UE_CONTEXT_RELEASE_COMMAND(mSGpTR) (mSGpTR)->ittiMsg.s1ap_ue_context_release_command
|
||||
#define S1AP_UE_CONTEXT_RELEASE_COMPLETE(mSGpTR) (mSGpTR)->ittiMsg.s1ap_ue_context_release_complete
|
||||
|
||||
typedef struct s1ap_initial_ue_message_s {
|
||||
unsigned eNB_ue_s1ap_id:24;
|
||||
uint32_t mme_ue_s1ap_id;
|
||||
cgi_t e_utran_cgi;
|
||||
} s1ap_initial_ue_message_t;
|
||||
|
||||
typedef struct s1ap_initial_ctxt_setup_req_s {
|
||||
unsigned eNB_ue_s1ap_id:24;
|
||||
uint32_t mme_ue_s1ap_id;
|
||||
|
||||
/* Key eNB */
|
||||
uint8_t keNB[32];
|
||||
|
||||
ambr_t ambr;
|
||||
ambr_t apn_ambr;
|
||||
|
||||
/* EPS bearer ID */
|
||||
unsigned ebi:4;
|
||||
|
||||
/* QoS */
|
||||
qci_t qci;
|
||||
priority_level_t prio_level;
|
||||
pre_emp_vulnerability_t pre_emp_vulnerability;
|
||||
pre_emp_capability_t pre_emp_capability;
|
||||
|
||||
/* S-GW TEID for user-plane */
|
||||
Teid_t teid;
|
||||
/* S-GW IP address for User-Plane */
|
||||
ip_address_t s_gw_address;
|
||||
} s1ap_initial_ctxt_setup_req_t;
|
||||
|
||||
typedef struct s1ap_ue_cap_ind_s {
|
||||
unsigned eNB_ue_s1ap_id:24;
|
||||
uint32_t mme_ue_s1ap_id;
|
||||
uint8_t radio_capabilities[100];
|
||||
uint32_t radio_capabilities_length;
|
||||
} s1ap_ue_cap_ind_t;
|
||||
|
||||
#define S1AP_ITTI_UE_PER_DEREGISTER_MESSAGE 20
|
||||
typedef struct s1ap_eNB_deregistered_ind_s {
|
||||
uint8_t nb_ue_to_deregister;
|
||||
uint32_t mme_ue_s1ap_id[S1AP_ITTI_UE_PER_DEREGISTER_MESSAGE];
|
||||
} s1ap_eNB_deregistered_ind_t;
|
||||
|
||||
typedef struct s1ap_deregister_ue_req_s {
|
||||
uint32_t mme_ue_s1ap_id;
|
||||
} s1ap_deregister_ue_req_t;
|
||||
|
||||
typedef struct s1ap_ue_context_release_req_s {
|
||||
uint32_t mme_ue_s1ap_id;
|
||||
} s1ap_ue_context_release_req_t;
|
||||
|
||||
typedef struct s1ap_ue_context_release_command_s {
|
||||
uint32_t mme_ue_s1ap_id;
|
||||
} s1ap_ue_context_release_command_t;
|
||||
|
||||
typedef struct s1ap_ue_context_release_complete_s {
|
||||
uint32_t mme_ue_s1ap_id;
|
||||
} s1ap_ue_context_release_complete_t;
|
||||
|
||||
#endif /* S1AP_MESSAGES_TYPES_H_ */
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (c) 2015, EURECOM (www.eurecom.fr)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those
|
||||
* of the authors and should not be interpreted as representing official policies,
|
||||
* either expressed or implied, of the FreeBSD Project.
|
||||
*/
|
||||
|
||||
//WARNING: Do not include this header directly. Use intertask_interface.h instead.
|
||||
|
||||
MESSAGE_DEF(SCTP_INIT_MSG, MESSAGE_PRIORITY_MED, SctpInit, sctpInit)
|
||||
MESSAGE_DEF(SCTP_DATA_REQ, MESSAGE_PRIORITY_MED, sctp_data_req_t, sctp_data_req)
|
||||
MESSAGE_DEF(SCTP_DATA_IND, MESSAGE_PRIORITY_MED, sctp_data_ind_t, sctp_data_ind)
|
||||
MESSAGE_DEF(SCTP_NEW_ASSOCIATION, MESSAGE_PRIORITY_MAX, sctp_new_peer_t, sctp_new_peer)
|
||||
MESSAGE_DEF(SCTP_CLOSE_ASSOCIATION, MESSAGE_PRIORITY_MAX, sctp_close_association_t, sctp_close_association)
|
||||
@@ -0,0 +1,77 @@
|
||||
/*
|
||||
* Copyright (c) 2015, EURECOM (www.eurecom.fr)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those
|
||||
* of the authors and should not be interpreted as representing official policies,
|
||||
* either expressed or implied, of the FreeBSD Project.
|
||||
*/
|
||||
|
||||
#ifndef SCTP_MESSAGES_TYPES_H_
|
||||
#define SCTP_MESSAGES_TYPES_H_
|
||||
|
||||
#define SCTP_DATA_IND(mSGpTR) (mSGpTR)->ittiMsg.sctp_data_ind
|
||||
#define SCTP_DATA_REQ(mSGpTR) (mSGpTR)->ittiMsg.sctp_data_req
|
||||
#define SCTP_INIT_MSG(mSGpTR) (mSGpTR)->ittiMsg.sctpInit
|
||||
#define SCTP_CLOSE_ASSOCIATION(mSGpTR) (mSGpTR)->ittiMsg.sctp_close_association
|
||||
|
||||
typedef struct sctp_data_req_s {
|
||||
uint8_t *buffer;
|
||||
uint32_t bufLen;
|
||||
uint32_t assocId;
|
||||
uint16_t stream;
|
||||
} sctp_data_req_t;
|
||||
|
||||
typedef struct sctp_data_ind_s {
|
||||
uint8_t *buffer; ///< SCTP buffer
|
||||
uint32_t buf_length; ///< SCTP buffer length
|
||||
int32_t assoc_id; ///< SCTP physical association ID
|
||||
uint8_t stream; ///< Stream number on which data had been received
|
||||
uint16_t instreams; ///< Number of input streams for the SCTP connection between peers
|
||||
uint16_t outstreams; ///< Number of output streams for the SCTP connection between peers
|
||||
} sctp_data_ind_t;
|
||||
|
||||
typedef struct sctp_init_s {
|
||||
/* Request usage of ipv4 */
|
||||
unsigned ipv4:1;
|
||||
/* Request usage of ipv6 */
|
||||
unsigned ipv6:1;
|
||||
uint8_t nb_ipv4_addr;
|
||||
uint32_t ipv4_address[10];
|
||||
uint8_t nb_ipv6_addr;
|
||||
char *ipv6_address[10];
|
||||
uint16_t port;
|
||||
uint32_t ppid;
|
||||
} SctpInit;
|
||||
|
||||
typedef struct sctp_close_association_s {
|
||||
uint32_t assoc_id;
|
||||
} sctp_close_association_t;
|
||||
|
||||
typedef struct sctp_new_peer_s {
|
||||
uint32_t instreams;
|
||||
uint32_t outstreams;
|
||||
uint32_t assoc_id;
|
||||
} sctp_new_peer_t;
|
||||
|
||||
#endif /* SCTP_MESSAGES_TYPES_H_ */
|
||||
@@ -0,0 +1,155 @@
|
||||
/*
|
||||
* Copyright (c) 2015, EURECOM (www.eurecom.fr)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those
|
||||
* of the authors and should not be interpreted as representing official policies,
|
||||
* either expressed or implied, of the FreeBSD Project.
|
||||
*/
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_UINT128_T)
|
||||
# include <gmp.h>
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
#if 0
|
||||
#include "queue.h"
|
||||
#endif
|
||||
|
||||
#ifndef SECURITY_TYPES_H_
|
||||
#define SECURITY_TYPES_H_
|
||||
|
||||
#define RAND_LENGTH_BITS (128)
|
||||
#define RAND_LENGTH_OCTETS (RAND_LENGTH_BITS/8)
|
||||
#define AUTH_KEY_LENGTH_BITS (128)
|
||||
#define AUTH_KEY_LENGTH_OCTETS (AUTH_KEY_LENGTH_BITS/8)
|
||||
#define KASME_LENGTH_BITS (256)
|
||||
#define KASME_LENGTH_OCTETS (KASME_LENGTH_BITS/8)
|
||||
/* In OCTETS */
|
||||
#define XRES_LENGTH_MIN (4)
|
||||
#define XRES_LENGTH_MAX (16)
|
||||
#define AUTN_LENGTH_BITS (128)
|
||||
#define AUTN_LENGTH_OCTETS (AUTN_LENGTH_BITS/8)
|
||||
|
||||
/* Some methods to convert a string to an int64_t */
|
||||
/*
|
||||
#define STRING_TO_64BITS(sTRING, cONTAINER) \
|
||||
sscanf(sTRING, "%" SCN64, cONTAINER)
|
||||
#define STRING_TO_U64BITS(sTRING, cONTAINER) \
|
||||
sscanf(sTRING, "%" SCNu64, cONTAINER)
|
||||
*/
|
||||
|
||||
/* Converts a string to 128 bits gmplib integer holder */
|
||||
# define STRING_TO_XBITS(sTRING, lENGTH, cONTAINER, rET) \
|
||||
do { \
|
||||
memcpy(cONTAINER, sTRING, lENGTH); \
|
||||
rET = 0; \
|
||||
} while(0)
|
||||
|
||||
# define STRING_TO_128BITS(sTRING, cONTAINER, rET) \
|
||||
STRING_TO_XBITS(sTRING, 16, cONTAINER, rET)
|
||||
|
||||
# define STRING_TO_256BITS(sTRING, cONTAINER, rET) \
|
||||
STRING_TO_XBITS(sTRING, 32, cONTAINER, rET)
|
||||
|
||||
# define STRING_TO_RAND STRING_TO_128BITS
|
||||
# define STRING_TO_AUTH_KEY STRING_TO_128BITS
|
||||
# define STRING_TO_AUTH_RES STRING_TO_128BITS
|
||||
# define STRING_TO_AUTN STRING_TO_128BITS
|
||||
# define STRING_TO_KASME STRING_TO_256BITS
|
||||
# define STRING_TO_XRES(sTRING, lENGTH, cONTAINER, rET) \
|
||||
do { \
|
||||
STRING_TO_XBITS(sTRING, lENGTH, (cONTAINER)->data, rET); \
|
||||
if (rET != -1) \
|
||||
(cONTAINER)->size = lENGTH; \
|
||||
} while(0)
|
||||
|
||||
/* RES amd XRES can have a variable length of 4-16 octets */
|
||||
typedef struct {
|
||||
uint8_t size;
|
||||
uint8_t data[XRES_LENGTH_MAX];
|
||||
} res_t;
|
||||
|
||||
#define FORMAT_128BITS "%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x"
|
||||
#define RAND_FORMAT FORMAT_128BITS
|
||||
#define AUTN_FORMAT FORMAT_128BITS
|
||||
#define KASME_FORMAT FORMAT_128BITS
|
||||
|
||||
#define DISPLAY_128BITS(bUFFER) \
|
||||
bUFFER[0], bUFFER[1], bUFFER[2], bUFFER[3], bUFFER[4], bUFFER[5], bUFFER[6], bUFFER[7], \
|
||||
bUFFER[8], bUFFER[9], bUFFER[10], bUFFER[11], bUFFER[12], bUFFER[13], bUFFER[14], bUFFER[15]
|
||||
#define DISPLAY_128BITS_2(bUFFER) \
|
||||
bUFFER[16], bUFFER[17], bUFFER[18], bUFFER[19], bUFFER[20], bUFFER[21], bUFFER[22], bUFFER[23], \
|
||||
bUFFER[24], bUFFER[25], bUFFER[26], bUFFER[27], bUFFER[28], bUFFER[29], bUFFER[30], bUFFER[31]
|
||||
|
||||
#define RAND_DISPLAY(bUFFER) DISPLAY_128BITS(bUFFER)
|
||||
#define AUTN_DISPLAY(bUFFER) DISPLAY_128BITS(bUFFER)
|
||||
/* Display only first 128 bits of KASME */
|
||||
#define KASME_DISPLAY_1(bUFFER) DISPLAY_128BITS(bUFFER)
|
||||
#define KASME_DISPLAY_2(bUFFER) DISPLAY_128BITS_2(bUFFER)
|
||||
|
||||
/* Holds an E-UTRAN authentication vector */
|
||||
typedef struct eutran_vector_s {
|
||||
uint8_t rand[RAND_LENGTH_OCTETS];
|
||||
res_t xres;
|
||||
uint8_t autn[AUTN_LENGTH_OCTETS];
|
||||
uint8_t kasme[KASME_LENGTH_OCTETS];
|
||||
|
||||
/* one UE can have multiple vectors so use STAILQ lists for easy management */
|
||||
#if 0
|
||||
STAILQ_ENTRY(eutran_vector_s) entries;
|
||||
#endif
|
||||
} eutran_vector_t;
|
||||
|
||||
#define FC_KASME (0x10)
|
||||
#define FC_KENB (0x11)
|
||||
#define FC_NH (0x12)
|
||||
#define FC_KENB_STAR (0x13)
|
||||
/* 33401 #A.7 Algorithm for key derivation function.
|
||||
* This FC should be used for:
|
||||
* - NAS Encryption algorithm
|
||||
* - NAS Integrity algorithm
|
||||
* - RRC Encryption algorithm
|
||||
* - RRC Integrity algorithm
|
||||
* - User Plane Encryption algorithm
|
||||
*/
|
||||
#define FC_ALG_KEY_DER (0x15)
|
||||
#define FC_KASME_TO_CK (0x16)
|
||||
|
||||
typedef enum {
|
||||
NAS_ENC_ALG = 0x01,
|
||||
NAS_INT_ALG = 0x02,
|
||||
RRC_ENC_ALG = 0x03,
|
||||
RRC_INT_ALG = 0x04,
|
||||
UP_ENC_ALG = 0x05,
|
||||
UP_INT_ALG = 0x06
|
||||
} algorithm_type_dist_t;
|
||||
|
||||
#endif /* SECURITY_TYPES_H_ */
|
||||
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright (c) 2015, EURECOM (www.eurecom.fr)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those
|
||||
* of the authors and should not be interpreted as representing official policies,
|
||||
* either expressed or implied, of the FreeBSD Project.
|
||||
*/
|
||||
|
||||
// This task is mandatory and must always be placed in first position
|
||||
TASK_DEF(TASK_TIMER, TASK_PRIORITY_MED, 10)
|
||||
|
||||
// Other possible tasks in the process
|
||||
|
||||
/// GTPV1-U task
|
||||
TASK_DEF(TASK_GTPV1_U, TASK_PRIORITY_MED, 200)
|
||||
/// FW_IP task
|
||||
TASK_DEF(TASK_FW_IP, TASK_PRIORITY_MED, 200)
|
||||
/// MME Applicative task
|
||||
TASK_DEF(TASK_MME_APP, TASK_PRIORITY_MED, 200)
|
||||
/// NAS task
|
||||
TASK_DEF(TASK_NAS_MME, TASK_PRIORITY_MED, 200)
|
||||
/// S11 task
|
||||
TASK_DEF(TASK_S11, TASK_PRIORITY_MED, 200)
|
||||
/// S1AP task
|
||||
TASK_DEF(TASK_S1AP, TASK_PRIORITY_MED, 200)
|
||||
/// S6a task
|
||||
TASK_DEF(TASK_S6A, TASK_PRIORITY_MED, 200)
|
||||
/// SCTP task
|
||||
TASK_DEF(TASK_SCTP, TASK_PRIORITY_MED, 200)
|
||||
/// Serving and Proxy Gateway Application task
|
||||
TASK_DEF(TASK_SPGW_APP, TASK_PRIORITY_MED, 200)
|
||||
/// UDP task
|
||||
TASK_DEF(TASK_UDP, TASK_PRIORITY_MED, 200)
|
||||
//MESSAGE GENERATOR TASK
|
||||
TASK_DEF(TASK_MSC, TASK_PRIORITY_MED, 200)
|
||||
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright (c) 2015, EURECOM (www.eurecom.fr)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those
|
||||
* of the authors and should not be interpreted as representing official policies,
|
||||
* either expressed or implied, of the FreeBSD Project.
|
||||
*/
|
||||
|
||||
MESSAGE_DEF(UDP_INIT, MESSAGE_PRIORITY_MED, udp_init_t, udp_init)
|
||||
MESSAGE_DEF(UDP_DATA_REQ, MESSAGE_PRIORITY_MED, udp_data_req_t, udp_data_req)
|
||||
MESSAGE_DEF(UDP_DATA_IND, MESSAGE_PRIORITY_MED, udp_data_ind_t, udp_data_ind)
|
||||
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
* Copyright (c) 2015, EURECOM (www.eurecom.fr)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those
|
||||
* of the authors and should not be interpreted as representing official policies,
|
||||
* either expressed or implied, of the FreeBSD Project.
|
||||
*/
|
||||
|
||||
#ifndef UDP_MESSAGES_TYPES_H_
|
||||
#define UDP_MESSAGES_TYPES_H_
|
||||
|
||||
#define UDP_INIT(mSGpTR) (mSGpTR)->ittiMsg.udp_init
|
||||
|
||||
typedef struct {
|
||||
uint32_t port;
|
||||
char *address;
|
||||
} udp_init_t;
|
||||
|
||||
typedef struct {
|
||||
uint8_t *buffer;
|
||||
uint32_t buffer_length;
|
||||
uint32_t buffer_offset;
|
||||
uint32_t peer_address;
|
||||
uint32_t peer_port;
|
||||
} udp_data_req_t;
|
||||
|
||||
typedef struct {
|
||||
uint8_t *buffer;
|
||||
uint32_t buffer_length;
|
||||
uint32_t peer_address;
|
||||
uint32_t peer_port;
|
||||
} udp_data_ind_t;
|
||||
|
||||
#endif /* UDP_MESSAGES_TYPES_H_ */
|
||||
Reference in New Issue
Block a user