fembms: handle L2 eNB config in softmodem
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
This commit is contained in:
@@ -50,6 +50,7 @@ MESSAGE_DEF(M2AP_DEREGISTERED_ENB_IND , MESSAGE_PRIORITY_MED, m2ap_der
|
|||||||
/* M2AP -> SCTP */
|
/* M2AP -> SCTP */
|
||||||
|
|
||||||
MESSAGE_DEF(M2AP_MCE_SCTP_REQ , MESSAGE_PRIORITY_MED, m2ap_mce_sctp_req_t , m2ap_mce_sctp_req)
|
MESSAGE_DEF(M2AP_MCE_SCTP_REQ , MESSAGE_PRIORITY_MED, m2ap_mce_sctp_req_t , m2ap_mce_sctp_req)
|
||||||
|
MESSAGE_DEF(M2AP_ENB_SCTP_REQ , MESSAGE_PRIORITY_MED, m2ap_enb_sctp_req_t , m2ap_enb_sctp_req)
|
||||||
//MESSAGE_DEF(M2AP_ENB_SCTP_REQ , MESSAGE_PRIORITY_MED, m2ap_enb_setup_req_t , f1ap_enb_setup_req)
|
//MESSAGE_DEF(M2AP_ENB_SCTP_REQ , MESSAGE_PRIORITY_MED, m2ap_enb_setup_req_t , f1ap_enb_setup_req)
|
||||||
|
|
||||||
/* eNB_DU application layer -> M2AP messages or CU M2AP -> RRC*/
|
/* eNB_DU application layer -> M2AP messages or CU M2AP -> RRC*/
|
||||||
|
|||||||
@@ -480,7 +480,7 @@ typedef struct m2ap_mbms_scheduling_information_s {
|
|||||||
uint8_t common_sf_allocation_period;
|
uint8_t common_sf_allocation_period;
|
||||||
uint8_t mbms_area_id;
|
uint8_t mbms_area_id;
|
||||||
struct{
|
struct{
|
||||||
uint8_t allocated_sf_end;
|
uint16_t allocated_sf_end;
|
||||||
uint8_t data_mcs;
|
uint8_t data_mcs;
|
||||||
uint8_t mch_scheduling_period;
|
uint8_t mch_scheduling_period;
|
||||||
struct{
|
struct{
|
||||||
@@ -533,6 +533,15 @@ typedef struct m2ap_mce_sctp_req_s {
|
|||||||
uint32_t mce_port_for_M2C;
|
uint32_t mce_port_for_M2C;
|
||||||
}m2ap_mce_sctp_req_t;
|
}m2ap_mce_sctp_req_t;
|
||||||
|
|
||||||
|
typedef struct m2ap_enb_sctp_req_s {
|
||||||
|
/* The local MCE IP address to bind */
|
||||||
|
net_ip_address_t enb_m2_ip_address;
|
||||||
|
|
||||||
|
/* eNB port for M2C*/
|
||||||
|
uint32_t enb_port_for_M2C;
|
||||||
|
}m2ap_enb_sctp_req_t;
|
||||||
|
|
||||||
|
|
||||||
typedef struct m2ap_mbms_scheduling_information_resp_s {
|
typedef struct m2ap_mbms_scheduling_information_resp_s {
|
||||||
} m2ap_mbms_scheduling_information_resp_t;
|
} m2ap_mbms_scheduling_information_resp_t;
|
||||||
typedef struct m2ap_session_start_req_s {
|
typedef struct m2ap_session_start_req_s {
|
||||||
|
|||||||
+10
-15
@@ -214,7 +214,7 @@ void *eNB_app_task(void *args_p) {
|
|||||||
long x2_enb_register_retry_timer_id;
|
long x2_enb_register_retry_timer_id;
|
||||||
uint32_t m2_register_enb_pending = 0;
|
uint32_t m2_register_enb_pending = 0;
|
||||||
uint32_t m2_registered_enb = 0;
|
uint32_t m2_registered_enb = 0;
|
||||||
long m2_enb_register_retry_timer_id;
|
//long m2_enb_register_retry_timer_id;
|
||||||
MessageDef *msg_p = NULL;
|
MessageDef *msg_p = NULL;
|
||||||
instance_t instance;
|
instance_t instance;
|
||||||
int result;
|
int result;
|
||||||
@@ -236,16 +236,11 @@ void *eNB_app_task(void *args_p) {
|
|||||||
/* Try to register each eNB with MCE each other */
|
/* Try to register each eNB with MCE each other */
|
||||||
if (is_m2ap_eNB_enabled() /*&& !NODE_IS_DU(RC.rrc[0]->node_type)*/) {
|
if (is_m2ap_eNB_enabled() /*&& !NODE_IS_DU(RC.rrc[0]->node_type)*/) {
|
||||||
//eNB_app_register_MBMS_STA(RC.rrc[0]->node_type, enb_id_start, enb_id_end);
|
//eNB_app_register_MBMS_STA(RC.rrc[0]->node_type, enb_id_start, enb_id_end);
|
||||||
//m2_register_enb_pending = eNB_app_register_m2 (enb_id_start, enb_id_end);
|
m2_register_enb_pending = eNB_app_register_m2 (enb_id_start, enb_id_end);
|
||||||
|
|
||||||
if (timer_setup (5, 0, TASK_ENB_APP, INSTANCE_DEFAULT, TIMER_ONE_SHOT,
|
//if (timer_setup (5, 0, TASK_ENB_APP, INSTANCE_DEFAULT, TIMER_ONE_SHOT,
|
||||||
NULL, &m2_enb_register_retry_timer_id) < 0) {
|
// NULL, &m2_enb_register_retry_timer_id) < 0) {
|
||||||
//LOG_E(ENB_APP, " Can not start eNB register retry timer, use \"sleep\" instead!\n");
|
//}
|
||||||
//sleep(ENB_REGISTER_RETRY_DELAY);
|
|
||||||
/* Restart the registration process */
|
|
||||||
//registered_enb = 0;
|
|
||||||
//register_enb_pending = eNB_app_register (RC.rrc[0]->node_type,enb_id_start, enb_id_end);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -377,11 +372,11 @@ void *eNB_app_task(void *args_p) {
|
|||||||
}
|
}
|
||||||
} /* if (EPC_MODE_ENABLED) */
|
} /* if (EPC_MODE_ENABLED) */
|
||||||
|
|
||||||
if(TIMER_HAS_EXPIRED (msg_p).timer_id == m2_enb_register_retry_timer_id) {
|
// if(TIMER_HAS_EXPIRED (msg_p).timer_id == m2_enb_register_retry_timer_id) {
|
||||||
|
//
|
||||||
LOG_I(ENB_APP, " Received %s: timer_id %ld M2 register\n", ITTI_MSG_NAME (msg_p), TIMER_HAS_EXPIRED(msg_p).timer_id);
|
// LOG_I(ENB_APP, " Received %s: timer_id %ld M2 register\n", ITTI_MSG_NAME (msg_p), TIMER_HAS_EXPIRED(msg_p).timer_id);
|
||||||
m2_register_enb_pending = eNB_app_register_m2 (enb_id_start, enb_id_end);
|
// m2_register_enb_pending = eNB_app_register_m2 (enb_id_start, enb_id_end);
|
||||||
}
|
// }
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
@@ -3041,7 +3041,8 @@ void configure_du_mac(int inst) {
|
|||||||
(LTE_SchedulingInfo_MBMS_r14_t *) NULL,
|
(LTE_SchedulingInfo_MBMS_r14_t *) NULL,
|
||||||
(struct LTE_NonMBSFN_SubframeConfig_r14 *) NULL,
|
(struct LTE_NonMBSFN_SubframeConfig_r14 *) NULL,
|
||||||
(LTE_SystemInformationBlockType1_MBMS_r14_t *) NULL,
|
(LTE_SystemInformationBlockType1_MBMS_r14_t *) NULL,
|
||||||
(LTE_MBSFN_AreaInfoList_r9_t *) NULL
|
(LTE_MBSFN_AreaInfoList_r9_t *) NULL,
|
||||||
|
(LTE_MBSFNAreaConfiguration_r9_t*) NULL
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user