From e120336ac5c03cc60614880d2ce9f093177acf99 Mon Sep 17 00:00:00 2001 From: Cedric Roux <cedric.roux@eurecom.fr> Date: Wed, 20 Nov 2013 13:40:02 +0000 Subject: [PATCH] - Add Initial context setup failure message definition - Add initial ue id for initial context setup req message - Add configuration for caviar machine git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4462 818b1a75-f10b-46b9-bf7c-635c3b92a50f --- openair-cn/S1AP/s1ap_eNB_handlers.c | 1 + openair-cn/S1AP/s1ap_eNB_nas_procedures.c | 3 +- openair-cn/UTILS/CONF/epc_caviar.conf | 73 +++++++++++++++++++++++ openair2/COMMON/s1ap_messages_def.h | 1 + openair2/COMMON/s1ap_messages_types.h | 10 ++++ 5 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 openair-cn/UTILS/CONF/epc_caviar.conf diff --git a/openair-cn/S1AP/s1ap_eNB_handlers.c b/openair-cn/S1AP/s1ap_eNB_handlers.c index 86aca8ab741..9bc7e860cca 100644 --- a/openair-cn/S1AP/s1ap_eNB_handlers.c +++ b/openair-cn/S1AP/s1ap_eNB_handlers.c @@ -378,6 +378,7 @@ int s1ap_eNB_handle_initial_context_request(uint32_t assoc_id, message_p = itti_alloc_new_message(TASK_S1AP, S1AP_INITIAL_CONTEXT_SETUP_REQ); + S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).ue_initial_id = ue_desc_p->ue_initial_id; S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).eNB_ue_s1ap_id = ue_desc_p->eNB_ue_s1ap_id; S1AP_INITIAL_CONTEXT_SETUP_REQ(message_p).nb_of_e_rabs = initialContextSetupRequest_p->e_RABToBeSetupListCtxtSUReq.s1ap_E_RABToBeSetupItemCtxtSUReq.count; diff --git a/openair-cn/S1AP/s1ap_eNB_nas_procedures.c b/openair-cn/S1AP/s1ap_eNB_nas_procedures.c index 4ea84070674..9c6b97f842f 100644 --- a/openair-cn/S1AP/s1ap_eNB_nas_procedures.c +++ b/openair-cn/S1AP/s1ap_eNB_nas_procedures.c @@ -408,7 +408,8 @@ int s1ap_eNB_initial_ctxt_resp( new_item); } - if (s1ap_eNB_encode_pdu(&message, &buffer, &length) < 0) { + if (s1ap_eNB_encode_pdu(&message, &buffer, &length) < 0) + { S1AP_ERROR("Failed to encode uplink NAS transport\n"); /* Encode procedure has failed... */ return -1; diff --git a/openair-cn/UTILS/CONF/epc_caviar.conf b/openair-cn/UTILS/CONF/epc_caviar.conf new file mode 100644 index 00000000000..a3aa2df051c --- /dev/null +++ b/openair-cn/UTILS/CONF/epc_caviar.conf @@ -0,0 +1,73 @@ +S6A_CONF = "../objs/UTILS/CONF/s6a.conf"; + +REALM = "eur"; + +# Define the limits of the system in terms of served eNB and served UE. +# When the limits will be reached, overload procedure will take place. + +MAXENB = 10; +MAXUE = 100; + +RELATIVE_CAPACITY = 10; + +# Display statistics about whole system (expressed in seconds) +MME_STATISTIC_TIMER = 60; + +# max queue size per task +ITTI_QUEUE_SIZE = 2000000; + +# ------- SCTP definitions +# Number of streams to use in input/output + +SCTP_INSTREAMS = 32; +SCTP_OUTSTREAMS = 32; + +# ------- S1AP definitions + +# outcome drop timer value (seconds) +S1AP_OUTCOME_TIMER = 10; + +# ------- MME served GUMMEI +# MME code DEFAULT = 0 +# size = 8 bits +# maximum of 256 values, comma separated +MME_CODE = 30,56,1,8; + +# MME GROUP ID DEFAULT = 0 +# size = 16 bits +# maximum of 65535 values, comma separated +MME_GID = 3,4,5,30,8,9,50021; + +# TA (mcc.mnc:tracking area code) DEFAULT = 208.34:0 +# max values = 999.999:65535 +# maximum of 32 values, comma separated +PLMN = 208.38:0,209.130:4,208.35:8; + +# ------- Interfaces definitions +SGW_INTERFACE_NAME_FOR_S11 = "eth0"; +SGW_IP_ADDRESS_FOR_S11 = "192.168.12.87"; +SGW_IP_NETMASK_FOR_S11 = 24; + +SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP = "eth0"; +SGW_IP_ADDRESS_FOR_S1U_S12_S4_UP = "192.168.12.87"; +SGW_IP_NETMASK_FOR_S1U_S12_S4_UP = 24; + +SGW_INTERFACE_NAME_FOR_S5_S8_UP = "upsgw1"; +SGW_IP_ADDRESS_FOR_S5_S8_UP = "192.168.5.2"; +SGW_IP_NETMASK_FOR_S5_S8_UP = 24; + +PGW_INTERFACE_NAME_FOR_S5_S8 = "uppgw0"; +PGW_IP_ADDRESS_FOR_S5_S8 = "192.168.5.1"; +PGW_IP_NETMASK_FOR_S5_S8 = 24; + +PGW_INTERFACE_NAME_FOR_SGI = "eth0"; +PGW_IP_ADDR_FOR_SGI = "192.168.12.87"; +PGW_IP_NETMASK_FOR_SGI = 24; + +MME_INTERFACE_NAME_FOR_S1_MME = "eth0"; +MME_IP_ADDRESS_FOR_S1_MME = "192.168.12.87"; +MME_IP_NETMASK_FOR_S1_MME = 24; + +MME_INTERFACE_NAME_FOR_S11_MME = "eth0"; +MME_IP_ADDRESS_FOR_S11_MME = "192.168.12.87"; +MME_IP_NETMASK_FOR_S11_MME = 24; diff --git a/openair2/COMMON/s1ap_messages_def.h b/openair2/COMMON/s1ap_messages_def.h index a05951bccd3..4be2762af80 100644 --- a/openair2/COMMON/s1ap_messages_def.h +++ b/openair2/COMMON/s1ap_messages_def.h @@ -6,6 +6,7 @@ MESSAGE_DEF(S1AP_NAS_FIRST_REQ , MESSAGE_PRIORITY_MED, s1ap_nas_firs MESSAGE_DEF(S1AP_UPLINK_NAS , MESSAGE_PRIORITY_MED, s1ap_uplink_nas_t , s1ap_uplink_nas ) MESSAGE_DEF(S1AP_UE_CAPABILITIES_IND , MESSAGE_PRIORITY_MED, s1ap_ue_cap_info_ind_t , s1ap_ue_cap_info_ind) MESSAGE_DEF(S1AP_INITIAL_CONTEXT_SETUP_RESP, MESSAGE_PRIORITY_MED, s1ap_initial_context_setup_resp_t, s1ap_initial_context_setup_resp) +MESSAGE_DEF(S1AP_INITIAL_CONTEXT_SETUP_FAIL, MESSAGE_PRIORITY_MED, s1ap_initial_context_setup_fail_t, s1ap_initial_context_setup_fail) /* S1AP -> RRC messages */ MESSAGE_DEF(S1AP_DOWNLINK_NAS , MESSAGE_PRIORITY_MED, s1ap_downlink_nas_t , s1ap_downlink_nas ) diff --git a/openair2/COMMON/s1ap_messages_types.h b/openair2/COMMON/s1ap_messages_types.h index f44fbe99923..82356edb65f 100644 --- a/openair2/COMMON/s1ap_messages_types.h +++ b/openair2/COMMON/s1ap_messages_types.h @@ -248,6 +248,10 @@ typedef struct s1ap_uplink_nas_s { typedef s1ap_uplink_nas_t s1ap_downlink_nas_t; typedef struct s1ap_initial_context_setup_req_s { + /* UE id for initial connection to S1AP */ + uint16_t ue_initial_id; + + /* eNB ue s1ap id as initialized by S1AP layer */ unsigned eNB_ue_s1ap_id:24; /* UE aggregate maximum bitrate */ @@ -279,6 +283,12 @@ typedef struct s1ap_initial_context_setup_resp_s { e_rab_failed_t e_rabs_failed[S1AP_MAX_E_RAB]; } s1ap_initial_context_setup_resp_t; +typedef struct s1ap_initial_context_setup_fail_s { + unsigned eNB_ue_s1ap_id:24; + + /* TODO add cause */ +} s1ap_initial_context_setup_fail_t; + typedef struct s1ap_ue_cap_info_ind_s { unsigned eNB_ue_s1ap_id:24; ue_radio_cap_t ue_radio_cap; -- GitLab