compilation OK for UE+eNB virtualized
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5318 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -10,7 +10,9 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
|
||||||
|
#if 0
|
||||||
#include "queue.h"
|
#include "queue.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef SECURITY_TYPES_H_
|
#ifndef SECURITY_TYPES_H_
|
||||||
#define SECURITY_TYPES_H_
|
#define SECURITY_TYPES_H_
|
||||||
|
|||||||
@@ -206,7 +206,7 @@ int lowerlayer_data_ind(unsigned int ueid, const OctetString *data)
|
|||||||
esm_sap_t esm_sap;
|
esm_sap_t esm_sap;
|
||||||
int rc;
|
int rc;
|
||||||
#if defined(NAS_MME)
|
#if defined(NAS_MME)
|
||||||
emm_data_context_t *emm_ctx;
|
emm_data_context_t *emm_ctx = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
LOG_FUNC_IN;
|
LOG_FUNC_IN;
|
||||||
|
|||||||
@@ -188,17 +188,17 @@ typedef struct {
|
|||||||
* -------------------------
|
* -------------------------
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int usim_is_valid; /* Indication of USIM data validity */
|
int usim_is_valid; /* Indication of USIM data validity */
|
||||||
|
|
||||||
imei_t *imei; /* IMEI read from the UE's non-volatile memory */
|
imei_t *imei; /* IMEI read from the UE's non-volatile memory*/
|
||||||
const imsi_t *imsi; /* The valid IMSI read from the USIM */
|
const imsi_t *imsi; /* The valid IMSI read from the USIM */
|
||||||
GUTI_t *guti; /* The valid GUTI read from the USIM */
|
GUTI_t *guti; /* The valid GUTI read from the USIM */
|
||||||
tai_t *tai; /* Last visited registered Tracking Area Id */
|
tai_t *tai; /* Last visited registered Tracking Area Id */
|
||||||
|
|
||||||
emm_eps_update_t status; /* The current EPS update status */
|
emm_eps_update_t status; /* The current EPS update status */
|
||||||
emm_ecm_state_t ecm_status; /* The EPS Connection Management status */
|
emm_ecm_state_t ecm_status; /* The EPS Connection Management status */
|
||||||
int is_attached; /* Network attachment indicator */
|
int is_attached; /* Network attachment indicator */
|
||||||
int is_emergency; /* Emergency bearer services indicator */
|
int is_emergency; /* Emergency bearer services indicator*/
|
||||||
|
|
||||||
/* Tracking Areas list the UE is registered to
|
/* Tracking Areas list the UE is registered to
|
||||||
* Contains the list of TAIs that identify the tracking areas that
|
* Contains the list of TAIs that identify the tracking areas that
|
||||||
@@ -209,17 +209,17 @@ typedef struct {
|
|||||||
#define EMM_DATA_TAI_MAX 16
|
#define EMM_DATA_TAI_MAX 16
|
||||||
TAI_LIST_T(EMM_DATA_TAI_MAX) ltai;
|
TAI_LIST_T(EMM_DATA_TAI_MAX) ltai;
|
||||||
|
|
||||||
int plmn_mode; /* Network selection operating mode */
|
int plmn_mode; /* Network selection operating mode */
|
||||||
int plmn_index; /* Manually selected PLMN */
|
int plmn_index; /* Manually selected PLMN */
|
||||||
int plmn_rat; /* Manually selected Radio Access Technology */
|
int plmn_rat; /* Manually selected Radio Access Technology*/
|
||||||
|
|
||||||
plmn_t splmn; /* The currently selected PLMN */
|
plmn_t splmn; /* The currently selected PLMN */
|
||||||
int is_rplmn; /* splmn is the registered PLMN */
|
int is_rplmn; /* splmn is the registered PLMN */
|
||||||
int is_eplmn; /* splmn is in the list of equivalent PLMNs */
|
int is_eplmn; /* splmn is in the list of equivalent PLMNs */
|
||||||
Stat_t stat; /* Current network registration status */
|
Stat_t stat; /* Current network registration status */
|
||||||
tac_t tac; /* Tracking area code */
|
tac_t tac; /* Tracking area code */
|
||||||
ci_t ci; /* GERAN/UTRAN/E-UTRAN serving cell identifier */
|
ci_t ci; /* GERAN/UTRAN/E-UTRAN serving cell identifier */
|
||||||
AcT_t rat; /* Radio Access Technology of the serving cell */
|
AcT_t rat; /* Radio Access Technology of the serving cell */
|
||||||
|
|
||||||
/* An octet string representation of operators present in the network */
|
/* An octet string representation of operators present in the network */
|
||||||
struct {
|
struct {
|
||||||
|
|||||||
+3
-3
@@ -11,8 +11,8 @@
|
|||||||
#include "ImeisvRequest.h"
|
#include "ImeisvRequest.h"
|
||||||
#include "Nonce.h"
|
#include "Nonce.h"
|
||||||
|
|
||||||
#ifndef SECURITY_MODE_COMMAND_H_
|
#ifndef NAS_SECURITY_MODE_COMMAND_H_
|
||||||
#define SECURITY_MODE_COMMAND_H_
|
#define NAS_SECURITY_MODE_COMMAND_H_
|
||||||
|
|
||||||
/* Minimum length macro. Formed by minimum length of each mandatory field */
|
/* Minimum length macro. Formed by minimum length of each mandatory field */
|
||||||
#define SECURITY_MODE_COMMAND_MINIMUM_LENGTH ( \
|
#define SECURITY_MODE_COMMAND_MINIMUM_LENGTH ( \
|
||||||
@@ -68,5 +68,5 @@ int decode_security_mode_command(security_mode_command_msg *securitymodecommand,
|
|||||||
|
|
||||||
int encode_security_mode_command(security_mode_command_msg *securitymodecommand, uint8_t *buffer, uint32_t len);
|
int encode_security_mode_command(security_mode_command_msg *securitymodecommand, uint8_t *buffer, uint32_t len);
|
||||||
|
|
||||||
#endif /* ! defined(SECURITY_MODE_COMMAND_H_) */
|
#endif /* ! defined(NAS_SECURITY_MODE_COMMAND_H_) */
|
||||||
|
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
#include "TLVEncoder.h"
|
#include "TLVEncoder.h"
|
||||||
#include "TLVDecoder.h"
|
#include "TLVDecoder.h"
|
||||||
#include "SecurityModeCommand.h"
|
#include "NASSecurityModeCommand.h"
|
||||||
|
|
||||||
int decode_security_mode_command(security_mode_command_msg *security_mode_command, uint8_t *buffer, uint32_t len)
|
int decode_security_mode_command(security_mode_command_msg *security_mode_command, uint8_t *buffer, uint32_t len)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
#include "TLVEncoder.h"
|
#include "TLVEncoder.h"
|
||||||
#include "TLVDecoder.h"
|
#include "TLVDecoder.h"
|
||||||
#include "SecurityModeComplete.h"
|
#include "NASSecurityModeComplete.h"
|
||||||
|
|
||||||
int decode_security_mode_complete(security_mode_complete_msg *security_mode_complete, uint8_t *buffer, uint32_t len)
|
int decode_security_mode_complete(security_mode_complete_msg *security_mode_complete, uint8_t *buffer, uint32_t len)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -44,8 +44,8 @@ Description Defines EPS Mobility Management messages and functions used
|
|||||||
#include "AuthenticationFailure.h"
|
#include "AuthenticationFailure.h"
|
||||||
#include "IdentityRequest.h"
|
#include "IdentityRequest.h"
|
||||||
#include "IdentityResponse.h"
|
#include "IdentityResponse.h"
|
||||||
#include "SecurityModeCommand.h"
|
#include "NASSecurityModeCommand.h"
|
||||||
#include "SecurityModeComplete.h"
|
#include "NASSecurityModeComplete.h"
|
||||||
#include "SecurityModeReject.h"
|
#include "SecurityModeReject.h"
|
||||||
#include "EmmStatus.h"
|
#include "EmmStatus.h"
|
||||||
#include "EmmInformation.h"
|
#include "EmmInformation.h"
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ Description Defines the EMMAS Service Access Point that provides
|
|||||||
#include "emm_as.h"
|
#include "emm_as.h"
|
||||||
#include "emm_recv.h"
|
#include "emm_recv.h"
|
||||||
#include "emm_send.h"
|
#include "emm_send.h"
|
||||||
|
#include "emmData.h"
|
||||||
#include "commonDef.h"
|
#include "commonDef.h"
|
||||||
#include "nas_log.h"
|
#include "nas_log.h"
|
||||||
|
|
||||||
@@ -321,8 +322,11 @@ static int _emm_as_recv(unsigned int ueid, const char *msg, int len,
|
|||||||
nas_message_t nas_msg;
|
nas_message_t nas_msg;
|
||||||
memset(&nas_msg, 0 , sizeof(nas_message_t));
|
memset(&nas_msg, 0 , sizeof(nas_message_t));
|
||||||
|
|
||||||
emm_data_context_t *emm_ctx = NULL;
|
|
||||||
emm_security_context_t *security = NULL; /* Current EPS NAS security context */
|
emm_security_context_t *security = NULL; /* Current EPS NAS security context */
|
||||||
|
#if defined(NAS_MME)
|
||||||
|
#if defined(EPC_BUILD)
|
||||||
|
emm_data_context_t *emm_ctx = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(EPC_BUILD)
|
#if defined(EPC_BUILD)
|
||||||
emm_ctx = emm_data_context_get(&_emm_data, ueid);
|
emm_ctx = emm_data_context_get(&_emm_data, ueid);
|
||||||
@@ -332,8 +336,14 @@ static int _emm_as_recv(unsigned int ueid, const char *msg, int len,
|
|||||||
#else
|
#else
|
||||||
if (ueid < EMM_DATA_NB_UE_MAX) {
|
if (ueid < EMM_DATA_NB_UE_MAX) {
|
||||||
emm_ctx = _emm_data.ctx[ueid];
|
emm_ctx = _emm_data.ctx[ueid];
|
||||||
|
if (emm_ctx) {
|
||||||
|
security = emm_ctx->security;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#else /* NAS_MME */
|
||||||
|
security = _emm_data.security;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Decode the received message */
|
/* Decode the received message */
|
||||||
decoder_rc = nas_message_decode(msg, &nas_msg, len, security);
|
decoder_rc = nas_message_decode(msg, &nas_msg, len, security);
|
||||||
@@ -494,11 +504,12 @@ static int _emm_as_data_ind(const emm_as_data_t *msg, int *emm_cause)
|
|||||||
char *plain_msg = (char *)malloc(msg->NASmsg.length);
|
char *plain_msg = (char *)malloc(msg->NASmsg.length);
|
||||||
if (plain_msg) {
|
if (plain_msg) {
|
||||||
nas_message_security_header_t header;
|
nas_message_security_header_t header;
|
||||||
emm_data_context_t *emm_ctx = NULL;
|
|
||||||
emm_security_context_t *security = NULL; /* Current EPS NAS security context */
|
emm_security_context_t *security = NULL; /* Current EPS NAS security context */
|
||||||
|
|
||||||
memset(&header, 0, sizeof(header));
|
memset(&header, 0, sizeof(header));
|
||||||
/* Decrypt the received security protected message */
|
/* Decrypt the received security protected message */
|
||||||
|
#if defined(NAS_MME)
|
||||||
|
emm_data_context_t *emm_ctx = NULL;
|
||||||
#if defined(EPC_BUILD)
|
#if defined(EPC_BUILD)
|
||||||
if (msg->ueid > 0) {
|
if (msg->ueid > 0) {
|
||||||
emm_ctx = emm_data_context_get(&_emm_data, msg->ueid);
|
emm_ctx = emm_data_context_get(&_emm_data, msg->ueid);
|
||||||
@@ -513,6 +524,9 @@ static int _emm_as_data_ind(const emm_as_data_t *msg, int *emm_cause)
|
|||||||
security = emm_ctx->security;
|
security = emm_ctx->security;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
security = _emm_data.security;
|
||||||
#endif
|
#endif
|
||||||
int bytes = nas_message_decrypt((char *)(msg->NASmsg.value),
|
int bytes = nas_message_decrypt((char *)(msg->NASmsg.value),
|
||||||
plain_msg,
|
plain_msg,
|
||||||
@@ -590,8 +604,11 @@ static int _emm_as_establish_cnf(const emm_as_establish_t *msg,
|
|||||||
memset(&nas_msg, 0 , sizeof(nas_message_t));
|
memset(&nas_msg, 0 , sizeof(nas_message_t));
|
||||||
|
|
||||||
/* Decode initial NAS message */
|
/* Decode initial NAS message */
|
||||||
decoder_rc = nas_message_decode((char *)(msg->NASmsg.value), &nas_msg,
|
decoder_rc = nas_message_decode((char *)(msg->NASmsg.value),
|
||||||
msg->NASmsg.length);
|
&nas_msg,
|
||||||
|
msg->NASmsg.length,
|
||||||
|
_emm_data.security);
|
||||||
|
|
||||||
if (decoder_rc < 0) {
|
if (decoder_rc < 0) {
|
||||||
LOG_TRACE(WARNING, "EMMAS-SAP - Failed to decode initial NAS message"
|
LOG_TRACE(WARNING, "EMMAS-SAP - Failed to decode initial NAS message"
|
||||||
"(err=%d)", decoder_rc);
|
"(err=%d)", decoder_rc);
|
||||||
@@ -756,6 +773,7 @@ static int _emm_as_establish_req(const emm_as_establish_t *msg, int *emm_cause)
|
|||||||
nas_message_t nas_msg;
|
nas_message_t nas_msg;
|
||||||
memset(&nas_msg, 0 , sizeof(nas_message_t));
|
memset(&nas_msg, 0 , sizeof(nas_message_t));
|
||||||
|
|
||||||
|
#if defined(NAS_MME)
|
||||||
#if defined(EPC_BUILD)
|
#if defined(EPC_BUILD)
|
||||||
emm_ctx = emm_data_context_get(&_emm_data, msg->ueid);
|
emm_ctx = emm_data_context_get(&_emm_data, msg->ueid);
|
||||||
#else
|
#else
|
||||||
@@ -766,6 +784,10 @@ static int _emm_as_establish_req(const emm_as_establish_t *msg, int *emm_cause)
|
|||||||
if (emm_ctx) {
|
if (emm_ctx) {
|
||||||
emm_security_context = emm_ctx->security;
|
emm_security_context = emm_ctx->security;
|
||||||
}
|
}
|
||||||
|
#else /* NAS_MME */
|
||||||
|
security = _emm_data.security;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Decode initial NAS message */
|
/* Decode initial NAS message */
|
||||||
decoder_rc = nas_message_decode(
|
decoder_rc = nas_message_decode(
|
||||||
@@ -1353,8 +1375,9 @@ static int _emm_as_data_req(const emm_as_data_t *msg,
|
|||||||
|
|
||||||
if (size > 0) {
|
if (size > 0) {
|
||||||
int bytes;
|
int bytes;
|
||||||
struct emm_data_context_s *emm_ctx = NULL;
|
|
||||||
emm_security_context_t *emm_security_context = NULL;
|
emm_security_context_t *emm_security_context = NULL;
|
||||||
|
#if defined(NAS_MME)
|
||||||
|
struct emm_data_context_s *emm_ctx = NULL;
|
||||||
#if defined(EPC_BUILD)
|
#if defined(EPC_BUILD)
|
||||||
emm_ctx = emm_data_context_get(&_emm_data, msg->ueid);
|
emm_ctx = emm_data_context_get(&_emm_data, msg->ueid);
|
||||||
#else
|
#else
|
||||||
@@ -1365,6 +1388,9 @@ static int _emm_as_data_req(const emm_as_data_t *msg,
|
|||||||
if (emm_ctx) {
|
if (emm_ctx) {
|
||||||
emm_security_context = emm_ctx->security;
|
emm_security_context = emm_ctx->security;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
emm_security_context = _emm_data.security;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!is_encoded) {
|
if (!is_encoded) {
|
||||||
/* Encode the NAS information message */
|
/* Encode the NAS information message */
|
||||||
@@ -1438,8 +1464,9 @@ static int _emm_as_status_ind(const emm_as_status_t *msg,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (size > 0) {
|
if (size > 0) {
|
||||||
struct emm_data_context_s *emm_ctx = NULL;
|
|
||||||
emm_security_context_t *emm_security_context = NULL;
|
emm_security_context_t *emm_security_context = NULL;
|
||||||
|
#if defined(NAS_MME)
|
||||||
|
struct emm_data_context_s *emm_ctx = NULL;
|
||||||
#if defined(EPC_BUILD)
|
#if defined(EPC_BUILD)
|
||||||
emm_ctx = emm_data_context_get(&_emm_data, msg->ueid);
|
emm_ctx = emm_data_context_get(&_emm_data, msg->ueid);
|
||||||
#else
|
#else
|
||||||
@@ -1450,6 +1477,9 @@ static int _emm_as_status_ind(const emm_as_status_t *msg,
|
|||||||
if (emm_ctx) {
|
if (emm_ctx) {
|
||||||
emm_security_context = emm_ctx->security;
|
emm_security_context = emm_ctx->security;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
emm_security_context = _emm_data.security;
|
||||||
|
#endif
|
||||||
/* Encode the NAS information message */
|
/* Encode the NAS information message */
|
||||||
int bytes = _emm_as_encode(
|
int bytes = _emm_as_encode(
|
||||||
&as_msg->nasMsg,
|
&as_msg->nasMsg,
|
||||||
@@ -1587,7 +1617,11 @@ static int _emm_as_security_res(const emm_as_security_t *msg,
|
|||||||
|
|
||||||
if (size > 0) {
|
if (size > 0) {
|
||||||
/* Encode the NAS security message */
|
/* Encode the NAS security message */
|
||||||
int bytes = _emm_as_encode(&as_msg->nasMsg, &nas_msg, size);
|
int bytes = _emm_as_encode(&as_msg->nasMsg,
|
||||||
|
&nas_msg,
|
||||||
|
size,
|
||||||
|
_emm_data.security);
|
||||||
|
|
||||||
if (bytes > 0) {
|
if (bytes > 0) {
|
||||||
LOG_FUNC_RETURN (AS_UL_INFO_TRANSFER_REQ);
|
LOG_FUNC_RETURN (AS_UL_INFO_TRANSFER_REQ);
|
||||||
}
|
}
|
||||||
@@ -1673,7 +1707,12 @@ static int _emm_as_establish_req(const emm_as_establish_t *msg,
|
|||||||
|
|
||||||
if (size > 0) {
|
if (size > 0) {
|
||||||
/* Encode the initial NAS information message */
|
/* Encode the initial NAS information message */
|
||||||
int bytes = _emm_as_encode(&as_msg->initialNasMsg, &nas_msg, size);
|
int bytes = _emm_as_encode(
|
||||||
|
&as_msg->initialNasMsg,
|
||||||
|
&nas_msg,
|
||||||
|
size,
|
||||||
|
_emm_data.security);
|
||||||
|
|
||||||
if (bytes > 0) {
|
if (bytes > 0) {
|
||||||
LOG_FUNC_RETURN (AS_NAS_ESTABLISH_REQ);
|
LOG_FUNC_RETURN (AS_NAS_ESTABLISH_REQ);
|
||||||
}
|
}
|
||||||
@@ -1757,6 +1796,7 @@ static int _emm_as_security_req(const emm_as_security_t *msg,
|
|||||||
if (emm_ctx) {
|
if (emm_ctx) {
|
||||||
emm_security_context = emm_ctx->security;
|
emm_security_context = emm_ctx->security;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Encode the NAS security message */
|
/* Encode the NAS security message */
|
||||||
int bytes = _emm_as_encode(
|
int bytes = _emm_as_encode(
|
||||||
&as_msg->nasMsg,
|
&as_msg->nasMsg,
|
||||||
@@ -1835,6 +1875,7 @@ static int _emm_as_security_rej(const emm_as_security_t *msg,
|
|||||||
if (emm_ctx) {
|
if (emm_ctx) {
|
||||||
emm_security_context = emm_ctx->security;
|
emm_security_context = emm_ctx->security;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Encode the NAS security message */
|
/* Encode the NAS security message */
|
||||||
int bytes = _emm_as_encode(
|
int bytes = _emm_as_encode(
|
||||||
&as_msg->nasMsg,
|
&as_msg->nasMsg,
|
||||||
@@ -1926,6 +1967,7 @@ static int _emm_as_establish_cnf(const emm_as_establish_t *msg,
|
|||||||
as_msg->nas_ul_count);
|
as_msg->nas_ul_count);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Encode the initial NAS information message */
|
/* Encode the initial NAS information message */
|
||||||
int bytes = _emm_as_encode(
|
int bytes = _emm_as_encode(
|
||||||
&as_msg->nasMsg,
|
&as_msg->nasMsg,
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ Description Defines functions executed at the EMMAS Service Access
|
|||||||
#include "AuthenticationRequest.h"
|
#include "AuthenticationRequest.h"
|
||||||
#include "AuthenticationReject.h"
|
#include "AuthenticationReject.h"
|
||||||
#include "IdentityRequest.h"
|
#include "IdentityRequest.h"
|
||||||
#include "SecurityModeCommand.h"
|
#include "NASSecurityModeCommand.h"
|
||||||
#include "EmmInformation.h"
|
#include "EmmInformation.h"
|
||||||
#include "DownlinkNasTransport.h"
|
#include "DownlinkNasTransport.h"
|
||||||
#include "CsServiceNotification.h"
|
#include "CsServiceNotification.h"
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ Description Defines functions executed at the EMMAS Service Access
|
|||||||
#include "AuthenticationResponse.h"
|
#include "AuthenticationResponse.h"
|
||||||
#include "AuthenticationFailure.h"
|
#include "AuthenticationFailure.h"
|
||||||
#include "IdentityResponse.h"
|
#include "IdentityResponse.h"
|
||||||
#include "SecurityModeComplete.h"
|
#include "NASSecurityModeComplete.h"
|
||||||
#include "SecurityModeReject.h"
|
#include "SecurityModeReject.h"
|
||||||
#include "UplinkNasTransport.h"
|
#include "UplinkNasTransport.h"
|
||||||
#endif
|
#endif
|
||||||
@@ -53,7 +53,7 @@ Description Defines functions executed at the EMMAS Service Access
|
|||||||
#include "AuthenticationRequest.h"
|
#include "AuthenticationRequest.h"
|
||||||
#include "AuthenticationReject.h"
|
#include "AuthenticationReject.h"
|
||||||
#include "IdentityRequest.h"
|
#include "IdentityRequest.h"
|
||||||
#include "SecurityModeCommand.h"
|
#include "NASSecurityModeCommand.h"
|
||||||
#include "EmmInformation.h"
|
#include "EmmInformation.h"
|
||||||
#include "DownlinkNasTransport.h"
|
#include "DownlinkNasTransport.h"
|
||||||
#include "CsServiceNotification.h"
|
#include "CsServiceNotification.h"
|
||||||
|
|||||||
@@ -18,7 +18,10 @@ libnas_INCLUDES = \
|
|||||||
-I$(ESMSAPDIR) \
|
-I$(ESMSAPDIR) \
|
||||||
-I$(MMEAPIDIR) \
|
-I$(MMEAPIDIR) \
|
||||||
-I$(USIMAPIDIR) \
|
-I$(USIMAPIDIR) \
|
||||||
-I$(IESDIR)
|
-I$(IESDIR) \
|
||||||
|
-I$(SECU_DIR) \
|
||||||
|
-I$(OPENAIRCN_DIR)/COMMON \
|
||||||
|
-I$(OPENAIRCN_DIR)/UTILS
|
||||||
|
|
||||||
OUTDIR = $(UE_NAS_DIR)/ue_objs
|
OUTDIR = $(UE_NAS_DIR)/ue_objs
|
||||||
|
|
||||||
@@ -277,8 +280,8 @@ CFLAGS = \
|
|||||||
-DUE_BUILD \
|
-DUE_BUILD \
|
||||||
-Wuninitialized \
|
-Wuninitialized \
|
||||||
-Werror=implicit-function-declaration \
|
-Werror=implicit-function-declaration \
|
||||||
$(libnas_INCLUDES) \
|
$(UENAS_CFLAGS) \
|
||||||
$(UENAS_CFLAGS)
|
$(libnas_INCLUDES)
|
||||||
|
|
||||||
.SECONDEXPANSION:
|
.SECONDEXPANSION:
|
||||||
$(NAS_UE_COMPILED_OBJS): %.o : $$(subst $(OUTDIR), $(UE_NAS_DIR), $$*.c)
|
$(NAS_UE_COMPILED_OBJS): %.o : $$(subst $(OUTDIR), $(UE_NAS_DIR), $$*.c)
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ libnas_emm_msg_SRCS = \
|
|||||||
EURECOM-NAS/src/emm/msg/DetachRequest.c \
|
EURECOM-NAS/src/emm/msg/DetachRequest.c \
|
||||||
EURECOM-NAS/src/emm/msg/emm_msgDef.h \
|
EURECOM-NAS/src/emm/msg/emm_msgDef.h \
|
||||||
EURECOM-NAS/src/emm/msg/GutiReallocationComplete.c \
|
EURECOM-NAS/src/emm/msg/GutiReallocationComplete.c \
|
||||||
EURECOM-NAS/src/emm/msg/SecurityModeCommand.h \
|
EURECOM-NAS/src/emm/msg/NASSecurityModeCommand.h \
|
||||||
EURECOM-NAS/src/emm/msg/ServiceRequest.h \
|
EURECOM-NAS/src/emm/msg/ServiceRequest.h \
|
||||||
EURECOM-NAS/src/emm/msg/TrackingAreaUpdateRequest.h \
|
EURECOM-NAS/src/emm/msg/TrackingAreaUpdateRequest.h \
|
||||||
EURECOM-NAS/src/emm/msg/AttachReject.h \
|
EURECOM-NAS/src/emm/msg/AttachReject.h \
|
||||||
@@ -78,7 +78,7 @@ libnas_emm_msg_SRCS = \
|
|||||||
EURECOM-NAS/src/emm/msg/DownlinkNasTransport.c \
|
EURECOM-NAS/src/emm/msg/DownlinkNasTransport.c \
|
||||||
EURECOM-NAS/src/emm/msg/EmmStatus.c \
|
EURECOM-NAS/src/emm/msg/EmmStatus.c \
|
||||||
EURECOM-NAS/src/emm/msg/IdentityRequest.c \
|
EURECOM-NAS/src/emm/msg/IdentityRequest.c \
|
||||||
EURECOM-NAS/src/emm/msg/SecurityModeComplete.h \
|
EURECOM-NAS/src/emm/msg/NASSecurityModeComplete.h \
|
||||||
EURECOM-NAS/src/emm/msg/TrackingAreaUpdateAccept.h \
|
EURECOM-NAS/src/emm/msg/TrackingAreaUpdateAccept.h \
|
||||||
EURECOM-NAS/src/emm/msg/UplinkNasTransport.h \
|
EURECOM-NAS/src/emm/msg/UplinkNasTransport.h \
|
||||||
EURECOM-NAS/src/emm/msg/AttachRequest.h \
|
EURECOM-NAS/src/emm/msg/AttachRequest.h \
|
||||||
|
|||||||
@@ -1,38 +1,45 @@
|
|||||||
|
# include $(OPENAIR_TARGETS)/SIMU/USER/Makerules
|
||||||
|
|
||||||
|
OUTDIR = .
|
||||||
|
|
||||||
|
|
||||||
libsecu_OBJECTS = \
|
libsecu_OBJECTS = \
|
||||||
kdf.o \
|
kdf.o \
|
||||||
key_nas_deriver.o \
|
key_nas_deriver.o \
|
||||||
nas_stream_eea2.o \
|
nas_stream_eea2.o \
|
||||||
nas_stream_eia2.o
|
nas_stream_eia2.o
|
||||||
|
|
||||||
-include .deps/*.d
|
# pull in dependency info for *existing* .o files
|
||||||
|
-include $(OUTDIR)/*.d
|
||||||
.PHONY = depdir
|
|
||||||
|
|
||||||
CFLAGS = \
|
CFLAGS = \
|
||||||
-I../COMMON \
|
-Wall \
|
||||||
-I../UTILS \
|
$(SECU_CFLAGS) \
|
||||||
-DENB_MODE \
|
-DENB_MODE \
|
||||||
-DENABLE_USE_MME \
|
-Werror=uninitialized \
|
||||||
-DUSER_MODE \
|
|
||||||
-O2 \
|
|
||||||
-g \
|
|
||||||
-Wall \
|
|
||||||
-Werror=implicit-function-declaration
|
-Werror=implicit-function-declaration
|
||||||
|
|
||||||
$(libsecu_OBJECTS): %.o : %.c
|
$(OUTDIR)/%.o : %.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ $<
|
@echo "Compiling $<"
|
||||||
@if ! test -d ".deps/" ; then mkdir -p .deps; fi
|
@if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi;
|
||||||
@$(CC) -MM $(CFLAGS) $*.c > .deps/$*.d
|
@$(CC) -c $(CFLAGS) -o $@ $<
|
||||||
@mv -f .deps/$*.d .deps/$*.d.tmp
|
@$(CC) -MM $(CFLAGS) $< > $(basename $@).d
|
||||||
@sed -e 's|.*:|$*.o:|' < .deps/$*.d.tmp > .deps/$*.d
|
@mv -f $(basename $@).d $(basename $@).d.tmp
|
||||||
@sed -e 's/.*://' -e 's/\\$$//' < .deps/$*.d.tmp | fmt -1 | \
|
@sed -e 's|.*:|$@:|' < $(basename $@).d.tmp > $(basename $@).d
|
||||||
sed -e 's/^ *//' -e 's/$$/:/' >> .deps/$*.d
|
@sed -e 's/.*://' -e 's/\\$$//' < $(basename $@).d.tmp | fmt -1 | \
|
||||||
@rm -f .deps/$*.d.tmp
|
sed -e 's/^ *//' -e 's/$$/:/' >> $(basename $@).d
|
||||||
|
@rm -f $(basename $@).d.tmp
|
||||||
|
|
||||||
libsecu.a: $(libsecu_OBJECTS)
|
objsdir:
|
||||||
$(AR) rcvs $@ $(libsecu_OBJECTS)
|
@if [ ! -d $(OUTDIR) ]; then mkdir -p $(OUTDIR); fi;
|
||||||
|
|
||||||
|
$(OUTDIR)/libsecu.a: $(addprefix $(OUTDIR)/,$(libsecu_OBJECTS))
|
||||||
|
@echo Creating SECU archive
|
||||||
|
@$(AR) rcs $@ $(addprefix $(OUTDIR)/,$(libsecu_OBJECTS))
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(libsecu_OBJECTS)
|
@$(RM_F_V) $(OUTDIR)/*.o
|
||||||
rm -rf .deps/
|
@$(RM_F_V) $(OUTDIR)/*.d
|
||||||
rm -f libsecu.a
|
@$(RM_F_V) $(OUTDIR)/libsecu.a
|
||||||
|
|
||||||
|
cleanall: clean
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
#include "security_types.h"
|
|
||||||
|
|
||||||
#ifndef SECU_DEFS_H_
|
#ifndef SECU_DEFS_H_
|
||||||
#define SECU_DEFS_H_
|
#define SECU_DEFS_H_
|
||||||
|
|
||||||
|
#include "security_types.h"
|
||||||
|
|
||||||
#define EIA0_ALG_ID 0x00
|
#define EIA0_ALG_ID 0x00
|
||||||
#define EIA1_128_ALG_ID 0x01
|
#define EIA1_128_ALG_ID 0x01
|
||||||
#define EIA2_128_ALG_ID 0x02
|
#define EIA2_128_ALG_ID 0x02
|
||||||
|
|||||||
+11
-11
@@ -2551,9 +2551,9 @@ char openair_rrc_lite_eNB_init(
|
|||||||
{
|
{
|
||||||
/* Init security parameters */
|
/* Init security parameters */
|
||||||
for (j = 0; j < NUMBER_OF_UE_MAX; j++) {
|
for (j = 0; j < NUMBER_OF_UE_MAX; j++) {
|
||||||
eNB_rrc_inst[enb_mod_idP].ciphering_algorithm[j] = SecurityAlgorithmConfig__cipheringAlgorithm_eea0;
|
eNB_rrc_inst[enb_mod_idP].ciphering_algorithm[j] = SecurityAlgorithmConfig__cipheringAlgorithm_eea0;
|
||||||
eNB_rrc_inst[enb_mod_idP].integrity_algorithm[j] = SecurityAlgorithmConfig__integrityProtAlgorithm_eia2;
|
eNB_rrc_inst[enb_mod_idP].integrity_algorithm[j] = SecurityAlgorithmConfig__integrityProtAlgorithm_eia2;
|
||||||
rrc_lite_eNB_init_security(enb_mod_idP, j);
|
rrc_lite_eNB_init_security(enb_mod_idP, j);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2743,7 +2743,7 @@ int rrc_eNB_decode_ccch(
|
|||||||
LOG_F(RRC,"%02x ", ((uint8_t*)Srb_info->Rx_buffer.Payload)[i]);
|
LOG_F(RRC,"%02x ", ((uint8_t*)Srb_info->Rx_buffer.Payload)[i]);
|
||||||
LOG_F(RRC,"\n");
|
LOG_F(RRC,"\n");
|
||||||
#endif
|
#endif
|
||||||
LOG_D(RRC,
|
LOG_D(RRC,
|
||||||
"[FRAME %05d][MAC_eNB][MOD %02d][][--- MAC_DATA_IND (rrcConnectionRequest on SRB0) -->][RRC_eNB][MOD %02d][]\n",
|
"[FRAME %05d][MAC_eNB][MOD %02d][][--- MAC_DATA_IND (rrcConnectionRequest on SRB0) -->][RRC_eNB][MOD %02d][]\n",
|
||||||
frameP, enb_mod_idP, enb_mod_idP);
|
frameP, enb_mod_idP, enb_mod_idP);
|
||||||
|
|
||||||
@@ -2990,10 +2990,10 @@ int rrc_eNB_decode_dcch(
|
|||||||
LOG_F(RRC,"\n");
|
LOG_F(RRC,"\n");
|
||||||
#endif
|
#endif
|
||||||
LOG_I(RRC,
|
LOG_I(RRC,
|
||||||
"[FRAME %05d][RLC][MOD %02d][RB %02d][--- RLC_DATA_IND %d bytes "
|
"[FRAME %05d][RLC][MOD %02d][RB %02d][--- RLC_DATA_IND %d bytes "
|
||||||
"(rrcConnectionReestablishmentComplete) --->][RRC_eNB][MOD %02d][]\n",
|
"(rrcConnectionReestablishmentComplete) --->][RRC_eNB][MOD %02d][]\n",
|
||||||
frameP, enb_mod_idP, DCCH, sdu_sizeP, enb_mod_idP);
|
frameP, enb_mod_idP, DCCH, sdu_sizeP, enb_mod_idP);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case UL_DCCH_MessageType__c1_PR_rrcConnectionSetupComplete:
|
case UL_DCCH_MessageType__c1_PR_rrcConnectionSetupComplete:
|
||||||
#ifdef RRC_MSG_PRINT
|
#ifdef RRC_MSG_PRINT
|
||||||
@@ -3002,7 +3002,7 @@ int rrc_eNB_decode_dcch(
|
|||||||
LOG_F(RRC,"%02x ", ((uint8_t*)Rx_sdu)[i]);
|
LOG_F(RRC,"%02x ", ((uint8_t*)Rx_sdu)[i]);
|
||||||
LOG_F(RRC,"\n");
|
LOG_F(RRC,"\n");
|
||||||
#endif
|
#endif
|
||||||
LOG_D(RRC,
|
LOG_D(RRC,
|
||||||
"[FRAME %05d][RLC][MOD %02d][RB %02d][--- RLC_DATA_IND %d bytes "
|
"[FRAME %05d][RLC][MOD %02d][RB %02d][--- RLC_DATA_IND %d bytes "
|
||||||
"(RRCConnectionSetupComplete) --->][RRC_eNB][MOD %02d][]\n",
|
"(RRCConnectionSetupComplete) --->][RRC_eNB][MOD %02d][]\n",
|
||||||
frameP, enb_mod_idP, DCCH, sdu_sizeP, enb_mod_idP);
|
frameP, enb_mod_idP, DCCH, sdu_sizeP, enb_mod_idP);
|
||||||
@@ -3032,7 +3032,7 @@ int rrc_eNB_decode_dcch(
|
|||||||
LOG_F(RRC,"%02x ", ((uint8_t*)Rx_sdu)[i]);
|
LOG_F(RRC,"%02x ", ((uint8_t*)Rx_sdu)[i]);
|
||||||
LOG_F(RRC,"\n");
|
LOG_F(RRC,"\n");
|
||||||
#endif
|
#endif
|
||||||
LOG_I(RRC,
|
LOG_I(RRC,
|
||||||
"[eNB %d] Frame %d received securityModeComplete on UL-DCCH %d from UE %d\n",
|
"[eNB %d] Frame %d received securityModeComplete on UL-DCCH %d from UE %d\n",
|
||||||
enb_mod_idP, frameP, DCCH, ue_mod_idP);
|
enb_mod_idP, frameP, DCCH, ue_mod_idP);
|
||||||
LOG_D(RRC,
|
LOG_D(RRC,
|
||||||
@@ -3054,7 +3054,7 @@ int rrc_eNB_decode_dcch(
|
|||||||
LOG_F(RRC,"%02x ", ((uint8_t*)Rx_sdu)[i]);
|
LOG_F(RRC,"%02x ", ((uint8_t*)Rx_sdu)[i]);
|
||||||
LOG_F(RRC,"\n");
|
LOG_F(RRC,"\n");
|
||||||
#endif
|
#endif
|
||||||
LOG_D(RRC,
|
LOG_D(RRC,
|
||||||
"[FRAME %05d][RLC][MOD %02d][RB %02d][--- RLC_DATA_IND %d bytes "
|
"[FRAME %05d][RLC][MOD %02d][RB %02d][--- RLC_DATA_IND %d bytes "
|
||||||
"(securityModeFailure) --->][RRC_eNB][MOD %02d][]\n", frameP, enb_mod_idP, DCCH, sdu_sizeP, enb_mod_idP);
|
"(securityModeFailure) --->][RRC_eNB][MOD %02d][]\n", frameP, enb_mod_idP, DCCH, sdu_sizeP, enb_mod_idP);
|
||||||
#ifdef XER_PRINT
|
#ifdef XER_PRINT
|
||||||
|
|||||||
@@ -339,7 +339,7 @@ static void rrc_pdcp_config_security(uint8_t enb_mod_idP, uint8_t ue_mod_idP, ui
|
|||||||
kRRCenc,
|
kRRCenc,
|
||||||
kRRCint,
|
kRRCint,
|
||||||
kUPenc);
|
kUPenc);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*------------------------------------------------------------------------------*/
|
/*------------------------------------------------------------------------------*/
|
||||||
|
|||||||
+29
-16
@@ -6,9 +6,10 @@ X2AP_DIR = $(OPENAIR_HOME)/openair2/X2AP
|
|||||||
SCTP_DIR = $(OPENAIR_HOME)/openair-cn/SCTP
|
SCTP_DIR = $(OPENAIR_HOME)/openair-cn/SCTP
|
||||||
UDP_DIR = $(OPENAIR_HOME)/openair-cn/UDP
|
UDP_DIR = $(OPENAIR_HOME)/openair-cn/UDP
|
||||||
GTPV1U_DIR = $(OPENAIR_HOME)/openair-cn/GTPV1-U
|
GTPV1U_DIR = $(OPENAIR_HOME)/openair-cn/GTPV1-U
|
||||||
CN_SECU_DIR = $(OPENAIR_HOME)/openair-cn/SECU
|
SECU_DIR = $(OPENAIR_HOME)/openair-cn/SECU
|
||||||
|
|
||||||
UE_NAS_OBJ_DIR = $(subst $(OPENAIR_HOME),$(OBJS_DIR),$(UE_NAS_DIR))
|
UE_NAS_OBJ_DIR = $(subst $(OPENAIR_HOME),$(OBJS_DIR),$(UE_NAS_DIR))
|
||||||
|
SECU_OBJ_DIR = $(subst $(OPENAIR_HOME),$(OBJS_DIR),$(SECU_DIR))
|
||||||
S1AP_OBJ_DIR = $(subst $(OPENAIR_HOME),$(OBJS_DIR),$(S1AP_DIR))
|
S1AP_OBJ_DIR = $(subst $(OPENAIR_HOME),$(OBJS_DIR),$(S1AP_DIR))
|
||||||
X2AP_OBJ_DIR = $(subst $(OPENAIR_HOME),$(OBJS_DIR),$(X2AP_DIR))
|
X2AP_OBJ_DIR = $(subst $(OPENAIR_HOME),$(OBJS_DIR),$(X2AP_DIR))
|
||||||
SCTP_OBJ_DIR = $(subst $(OPENAIR_HOME),$(OBJS_DIR),$(SCTP_DIR))
|
SCTP_OBJ_DIR = $(subst $(OPENAIR_HOME),$(OBJS_DIR),$(SCTP_DIR))
|
||||||
@@ -22,15 +23,15 @@ export X2AP_DIR
|
|||||||
export SCTP_DIR
|
export SCTP_DIR
|
||||||
export UDP_DIR
|
export UDP_DIR
|
||||||
export GTPV1U_DIR
|
export GTPV1U_DIR
|
||||||
export CN_SECU_DIR
|
export SECU_DIR
|
||||||
|
|
||||||
#Export common cflags (between softmodem and oaisim)
|
#Export common cflags (between softmodem and oaisim)
|
||||||
COMMON_CFLAGS = \
|
COMMON_CFLAGS = \
|
||||||
-D'FIRMWARE_VERSION="$(SVN_REV) - $(DATE_REV)"' \
|
-D'FIRMWARE_VERSION="$(SVN_REV) - $(DATE_REV)"' \
|
||||||
-Wall \
|
-Wall \
|
||||||
-fno-strict-aliasing \
|
-fno-strict-aliasing \
|
||||||
-O2 \
|
-O2 \
|
||||||
-Werror=implicit-function-declaration
|
-Werror=implicit-function-declaration
|
||||||
|
|
||||||
ITTI_MESSAGES_H = messages_xml.h
|
ITTI_MESSAGES_H = messages_xml.h
|
||||||
ITTI_MESSAGES_XML = messages.xml
|
ITTI_MESSAGES_XML = messages.xml
|
||||||
@@ -62,12 +63,12 @@ SHARED_DEPENDENCIES += $(ITTI_MESSAGES_H)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef USE_MME
|
ifdef USE_MME
|
||||||
#LGLIBS += $(UE_NAS_OBJ_DIR)/libuenas.a $(X2AP_OBJ_DIR)/libx2ap.a
|
#LGLIBS += $(X2AP_OBJ_DIR)/libx2ap.a
|
||||||
LIBS += $(UE_NAS_OBJ_DIR)/libuenas.a
|
LIBS += $(UE_NAS_OBJ_DIR)/libuenas.a $(SECU_OBJ_DIR)/libsecu.a
|
||||||
LIBS += $(S1AP_OBJ_DIR)/libs1ap.a $(SCTP_OBJ_DIR)/libsctp.a -lsctp -lcrypt
|
LIBS += $(S1AP_OBJ_DIR)/libs1ap.a $(SCTP_OBJ_DIR)/libsctp.a -lsctp -lcrypt
|
||||||
LIBS += $(UDP_OBJ_DIR)/libudp.a $(GTPV1U_OBJ_DIR)/libgtpv1u.a
|
LIBS += $(UDP_OBJ_DIR)/libudp.a $(GTPV1U_OBJ_DIR)/libgtpv1u.a
|
||||||
#LG SHARED_DEPENDENCIES += $(UE_NAS_OBJ_DIR)/libuenas.a $(X2AP_OBJ_DIR)/libx2ap.a $(S1AP_OBJ_DIR)/libs1ap.a $(SCTP_OBJ_DIR)/libsctp.a $(UDP_OBJ_DIR)/libudp.a $(GTPV1U_OBJ_DIR)/libgtpv1u.a
|
#LG SHARED_DEPENDENCIES += $(UE_NAS_OBJ_DIR)/libuenas.a $(SECU_OBJ_DIR)/libsecu.a $(X2AP_OBJ_DIR)/libx2ap.a $(S1AP_OBJ_DIR)/libs1ap.a $(SCTP_OBJ_DIR)/libsctp.a $(UDP_OBJ_DIR)/libudp.a $(GTPV1U_OBJ_DIR)/libgtpv1u.a
|
||||||
SHARED_DEPENDENCIES += $(UE_NAS_OBJ_DIR)/libuenas.a $(S1AP_OBJ_DIR)/libs1ap.a $(SCTP_OBJ_DIR)/libsctp.a $(UDP_OBJ_DIR)/libudp.a $(GTPV1U_OBJ_DIR)/libgtpv1u.a
|
SHARED_DEPENDENCIES += $(UE_NAS_OBJ_DIR)/libuenas.a $(SECU_OBJ_DIR)/libsecu.a $(S1AP_OBJ_DIR)/libs1ap.a $(SCTP_OBJ_DIR)/libsctp.a $(UDP_OBJ_DIR)/libudp.a $(GTPV1U_OBJ_DIR)/libgtpv1u.a
|
||||||
|
|
||||||
COMMON_CFLAGS += -DLOG_NO_THREAD
|
COMMON_CFLAGS += -DLOG_NO_THREAD
|
||||||
#-DEMIT_ASN_DEBUG
|
#-DEMIT_ASN_DEBUG
|
||||||
@@ -83,13 +84,18 @@ COMMON_CFLAGS += -I$(OPENAIR_HOME)/openair-cn/NAS/EURECOM-NAS/src/esm/msg
|
|||||||
COMMON_CFLAGS += -I$(OPENAIR_HOME)/openair-cn/NAS/EURECOM-NAS/src/util
|
COMMON_CFLAGS += -I$(OPENAIR_HOME)/openair-cn/NAS/EURECOM-NAS/src/util
|
||||||
endif
|
endif
|
||||||
|
|
||||||
UENAS_CFLAGS = $(COMMON_CFLAGS)
|
UENAS_CFLAGS = $(COMMON_CFLAGS)
|
||||||
|
UENAS_CFLAGS += -I$(SECU_DIR)
|
||||||
export UENAS_CFLAGS
|
export UENAS_CFLAGS
|
||||||
|
|
||||||
$(UE_NAS_OBJ_DIR)/libuenas.a: force_look
|
SECU_CFLAGS = $(COMMON_CFLAGS)
|
||||||
@$(MAKE) -C $(UE_NAS_DIR) -f Makefile.UE $(UE_NAS_OBJ_DIR)/libuenas.a OUTDIR=$(UE_NAS_OBJ_DIR)
|
SECU_CFLAGS += -I$(OPENAIR_HOME)/openair-cn/COMMON
|
||||||
|
SECU_CFLAGS += -I$(OPENAIR_HOME)/openair-cn/UTILS
|
||||||
|
SECU_CFLAGS += -I$(SECU_DIR)
|
||||||
|
export SECU_CFLAGS
|
||||||
|
|
||||||
COMMON_MME_CFLAGS = -I$(SCTP_DIR)
|
COMMON_MME_CFLAGS = -I$(SECU_DIR)
|
||||||
|
COMMON_MME_CFLAGS += -I$(SCTP_DIR)
|
||||||
COMMON_MME_CFLAGS += -I$(X2AP_DIR)
|
COMMON_MME_CFLAGS += -I$(X2AP_DIR)
|
||||||
COMMON_MME_CFLAGS += -I$(S1AP_DIR)
|
COMMON_MME_CFLAGS += -I$(S1AP_DIR)
|
||||||
COMMON_MME_CFLAGS += -I$(UDP_DIR)
|
COMMON_MME_CFLAGS += -I$(UDP_DIR)
|
||||||
@@ -137,6 +143,11 @@ GTPV1U_ENB_CFLAGS += -I$(OPENAIR_HOME)/openair2/ENB_APP
|
|||||||
GTPV1U_ENB_CFLAGS += $(UTIL_incl) -I$(OPENAIRCN_DIR)/UTILS
|
GTPV1U_ENB_CFLAGS += $(UTIL_incl) -I$(OPENAIRCN_DIR)/UTILS
|
||||||
export GTPV1U_ENB_CFLAGS
|
export GTPV1U_ENB_CFLAGS
|
||||||
|
|
||||||
|
|
||||||
|
$(UE_NAS_OBJ_DIR)/libuenas.a: force_look
|
||||||
|
@$(MAKE) -C $(UE_NAS_DIR) -f Makefile.UE $(UE_NAS_OBJ_DIR)/libuenas.a OUTDIR=$(UE_NAS_OBJ_DIR)
|
||||||
|
$(SECU_OBJ_DIR)/libsecu.a: force_look
|
||||||
|
@$(MAKE) -C $(SECU_DIR) -f Makefile.eNB $(SECU_OBJ_DIR)/libsecu.a OUTDIR=$(SECU_OBJ_DIR)
|
||||||
$(X2AP_OBJ_DIR)/libx2ap.a: force_look
|
$(X2AP_OBJ_DIR)/libx2ap.a: force_look
|
||||||
@$(MAKE) -C $(X2AP_DIR) -f Makefile.inc $(X2AP_OBJ_DIR)/libx2ap.a OUTDIR=$(X2AP_OBJ_DIR)
|
@$(MAKE) -C $(X2AP_DIR) -f Makefile.inc $(X2AP_OBJ_DIR)/libx2ap.a OUTDIR=$(X2AP_OBJ_DIR)
|
||||||
$(S1AP_OBJ_DIR)/libs1ap.a: force_look
|
$(S1AP_OBJ_DIR)/libs1ap.a: force_look
|
||||||
@@ -148,7 +159,7 @@ $(UDP_OBJ_DIR)/libudp.a: force_look
|
|||||||
$(GTPV1U_OBJ_DIR)/libgtpv1u.a: force_look
|
$(GTPV1U_OBJ_DIR)/libgtpv1u.a: force_look
|
||||||
@$(MAKE) -C $(GTPV1U_DIR) -f Makefile.eNB $(GTPV1U_OBJ_DIR)/libgtpv1u.a OUTDIR=$(GTPV1U_OBJ_DIR)
|
@$(MAKE) -C $(GTPV1U_DIR) -f Makefile.eNB $(GTPV1U_OBJ_DIR)/libgtpv1u.a OUTDIR=$(GTPV1U_OBJ_DIR)
|
||||||
|
|
||||||
OBJ = $(NAS_UE_OBJS)
|
OBJ = $(NAS_UE_OBJS) $(SECU_OBJS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
export COMMON_CFLAGS
|
export COMMON_CFLAGS
|
||||||
@@ -188,6 +199,7 @@ common-clean:
|
|||||||
@$(RM_F_V) $(ITTI_MESSAGES_H) $(ITTI_MESSAGES_XML) $(ITTI_MESSAGES_XML:.xml=.d)
|
@$(RM_F_V) $(ITTI_MESSAGES_H) $(ITTI_MESSAGES_XML) $(ITTI_MESSAGES_XML:.xml=.d)
|
||||||
@$(MAKE) -C $(LFDS_DIR) -f makefile.linux clean OUTDIR=$(LFDS_OBJ_DIR)
|
@$(MAKE) -C $(LFDS_DIR) -f makefile.linux clean OUTDIR=$(LFDS_OBJ_DIR)
|
||||||
@if [ -d $(UE_NAS_OBJ_DIR) ]; then $(MAKE) -C $(UE_NAS_DIR) -f Makefile.UE clean OUTDIR=$(UE_NAS_OBJ_DIR); fi
|
@if [ -d $(UE_NAS_OBJ_DIR) ]; then $(MAKE) -C $(UE_NAS_DIR) -f Makefile.UE clean OUTDIR=$(UE_NAS_OBJ_DIR); fi
|
||||||
|
@if [ -d $(SECU_OBJ_DIR) ]; then $(MAKE) -C $(SECU_DIR) -f Makefile.eNB clean OUTDIR=$(SECU_OBJ_DIR); fi
|
||||||
@if [ -d $(X2AP_OBJ_DIR) ]; then $(MAKE) -C $(X2AP_DIR) -f Makefile.inc clean OUTDIR=$(X2AP_OBJ_DIR); fi
|
@if [ -d $(X2AP_OBJ_DIR) ]; then $(MAKE) -C $(X2AP_DIR) -f Makefile.inc clean OUTDIR=$(X2AP_OBJ_DIR); fi
|
||||||
@if [ -d $(S1AP_OBJ_DIR) ]; then $(MAKE) -C $(S1AP_DIR) -f Makefile.eNB clean OUTDIR=$(S1AP_OBJ_DIR); fi
|
@if [ -d $(S1AP_OBJ_DIR) ]; then $(MAKE) -C $(S1AP_DIR) -f Makefile.eNB clean OUTDIR=$(S1AP_OBJ_DIR); fi
|
||||||
@if [ -d $(SCTP_OBJ_DIR) ]; then $(MAKE) -C $(SCTP_DIR) -f Makefile.eNB clean OUTDIR=$(SCTP_OBJ_DIR); fi
|
@if [ -d $(SCTP_OBJ_DIR) ]; then $(MAKE) -C $(SCTP_DIR) -f Makefile.eNB clean OUTDIR=$(SCTP_OBJ_DIR); fi
|
||||||
@@ -196,6 +208,7 @@ common-clean:
|
|||||||
|
|
||||||
common-cleanall:
|
common-cleanall:
|
||||||
@if [ -d $(UE_NAS_OBJ_DIR) ]; then $(MAKE) -C $(UE_NAS_DIR) -f Makefile.UE cleanall OUTDIR=$(UE_NAS_OBJ_DIR); fi
|
@if [ -d $(UE_NAS_OBJ_DIR) ]; then $(MAKE) -C $(UE_NAS_DIR) -f Makefile.UE cleanall OUTDIR=$(UE_NAS_OBJ_DIR); fi
|
||||||
|
@if [ -d $(SECU_OBJ_DIR) ]; then $(MAKE) -C $(SECU_DIR) -f Makefile.eNB cleanall OUTDIR=$(SECU_OBJ_DIR); fi
|
||||||
@if [ -d $(X2AP_OBJ_DIR) ]; then $(MAKE) -C $(X2AP_DIR) -f Makefile.inc cleanall OUTDIR=$(X2AP_OBJ_DIR); fi
|
@if [ -d $(X2AP_OBJ_DIR) ]; then $(MAKE) -C $(X2AP_DIR) -f Makefile.inc cleanall OUTDIR=$(X2AP_OBJ_DIR); fi
|
||||||
@if [ -d $(S1AP_OBJ_DIR) ]; then $(MAKE) -C $(S1AP_DIR) -f Makefile.eNB cleanall OUTDIR=$(S1AP_OBJ_DIR); fi
|
@if [ -d $(S1AP_OBJ_DIR) ]; then $(MAKE) -C $(S1AP_DIR) -f Makefile.eNB cleanall OUTDIR=$(S1AP_OBJ_DIR); fi
|
||||||
@if [ -d $(SCTP_OBJ_DIR) ]; then $(MAKE) -C $(SCTP_DIR) -f Makefile.eNB cleanall OUTDIR=$(SCTP_OBJ_DIR); fi
|
@if [ -d $(SCTP_OBJ_DIR) ]; then $(MAKE) -C $(SCTP_DIR) -f Makefile.eNB cleanall OUTDIR=$(SCTP_OBJ_DIR); fi
|
||||||
|
|||||||
@@ -93,7 +93,7 @@
|
|||||||
###########################################################
|
###########################################################
|
||||||
# Parameters
|
# Parameters
|
||||||
###########################################################
|
###########################################################
|
||||||
declare MAKE_LTE_ACCESS_STRATUM_TARGET="oaisim DEBUG=1 ENABLE_ITTI=1 USE_MME=R10 LINK_PDCP_TO_GTPV1U=1 NAS=1 Rel10=1"
|
declare MAKE_LTE_ACCESS_STRATUM_TARGET="oaisim DEBUG=1 ENABLE_ITTI=1 USE_MME=R10 LINK_PDCP_TO_GTPV1U=1 NAS=1 SECU=1 Rel10=1"
|
||||||
declare MAKE_IP_DRIVER_TARGET="ue_ip.ko"
|
declare MAKE_IP_DRIVER_TARGET="ue_ip.ko"
|
||||||
declare IP_DRIVER_NAME="ue_ip"
|
declare IP_DRIVER_NAME="ue_ip"
|
||||||
declare LTEIF="oip1"
|
declare LTEIF="oip1"
|
||||||
|
|||||||
Reference in New Issue
Block a user