From ad1a102f08faa5c50c068b7ffd60a8d128943028 Mon Sep 17 00:00:00 2001 From: Cedric Roux <cedric.roux@eurecom.fr> Date: Fri, 20 Mar 2020 11:13:51 +0100 Subject: [PATCH] fix for CU/DU split --- openair2/RRC/LTE/rrc_eNB.c | 5 +- openair2/RRC/LTE/rrc_eNB_endc.c | 160 -------------------------------- 2 files changed, 1 insertion(+), 164 deletions(-) diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c index 7de5a2c64c1..1d25bf180a1 100644 --- a/openair2/RRC/LTE/rrc_eNB.c +++ b/openair2/RRC/LTE/rrc_eNB.c @@ -8510,7 +8510,7 @@ void rrc_eNB_process_AdditionResponseInformation(const module_id_t enb_mod_idP, unsigned char buffer[8192]; int size; - ue_context = (rrc_eNB_ue_context_t *) get_first_ue_context(RC.rrc[enb_mod_idP]); + ue_context = rrc_eNB_get_ue_context(RC.rrc[enb_mod_idP], m->rnti); PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, 0, @@ -8893,9 +8893,6 @@ rrc_enb_task( { rrc_enb_init(); -void rrc_endc_hack_init(void); -rrc_endc_hack_init(); - itti_mark_task_ready(TASK_RRC_ENB); LOG_I(RRC,"Entering main loop of RRC message task\n"); diff --git a/openair2/RRC/LTE/rrc_eNB_endc.c b/openair2/RRC/LTE/rrc_eNB_endc.c index d6fb9105073..3d3d9787b59 100644 --- a/openair2/RRC/LTE/rrc_eNB_endc.c +++ b/openair2/RRC/LTE/rrc_eNB_endc.c @@ -241,163 +241,3 @@ printf("\n"); return (enc_rval.encoded + 7) / 8; } - -volatile int go_nr; - -struct rrc_eNB_ue_context_s * -get_first_ue_context(eNB_RRC_INST *rrc_instance_pP) -{ - struct rrc_eNB_ue_context_s *ue_context_p = NULL; - RB_FOREACH(ue_context_p, rrc_ue_tree_s, &(rrc_instance_pP->rrc_ue_head)) { - return ue_context_p; - } - return NULL; -} - -void rrc_go_nr(void) -{ - protocol_ctxt_t ctxt; - rrc_eNB_ue_context_t *ue_context; - unsigned char buffer[8192]; - int size; - - go_nr = 0; - - ue_context = get_first_ue_context(RC.rrc[0]); - - PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, - 0, - ENB_FLAG_YES, - ue_context->ue_context.rnti, - 0, 0); - - size = rrc_eNB_generate_RRCConnectionReconfiguration_endc(&ctxt, ue_context, buffer, 8192, NULL, NULL); - - rrc_data_req(&ctxt, - DCCH, - rrc_eNB_mui++, - SDU_CONFIRM_NO, - size, - buffer, - PDCP_TRANSMISSION_MODE_CONTROL); -} - -static void new_thread(void *(*f)(void *), void *data) { - pthread_t t; - pthread_attr_t att; - - if (pthread_attr_init(&att)) { - fprintf(stderr, "pthread_attr_init err\n"); - exit(1); - } - - if (pthread_attr_setdetachstate(&att, PTHREAD_CREATE_DETACHED)) { - fprintf(stderr, "pthread_attr_setdetachstate err\n"); - exit(1); - } - - if (pthread_attr_setstacksize(&att, 10000000)) { - fprintf(stderr, "pthread_attr_setstacksize err\n"); - exit(1); - } - - if (pthread_create(&t, &att, f, data)) { - fprintf(stderr, "pthread_create err\n"); - exit(1); - } - - if (pthread_attr_destroy(&att)) { - fprintf(stderr, "pthread_attr_destroy err\n"); - exit(1); - } -} - -static int create_listen_socket(char *addr, int port) { - struct sockaddr_in a; - int s; - int v; - s = socket(AF_INET, SOCK_STREAM, 0); - - if (s == -1) { - perror("socket"); - exit(1); - } - - v = 1; - - if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &v, sizeof(int))) { - perror("setsockopt"); - exit(1); - } - - a.sin_family = AF_INET; - a.sin_port = htons(port); - a.sin_addr.s_addr = inet_addr(addr); - - if (bind(s, (struct sockaddr *)&a, sizeof(a))) { - perror("bind"); - exit(1); - } - - if (listen(s, 5)) { - perror("listen"); - exit(1); - } - - return s; -} - -static int socket_accept(int s) { - struct sockaddr_in a; - socklen_t alen; - alen = sizeof(a); - return accept(s, (struct sockaddr *)&a, &alen); -} - -static int fullread(int fd, void *_buf, int count) { - char *buf = _buf; - int ret = 0; - int l; - - while (count) { - l = read(fd, buf, count); - - if (l <= 0) return -1; - - count -= l; - buf += l; - ret += l; - } - - return ret; -} - -void *nr_hack(void *_) -{ - int s = create_listen_socket("0.0.0.0", 9001); - int t; - -over: - t = socket_accept(s); - - while (1) { - char c; - - if (fullread(t, &c, 1) != 1) { - close(t); - goto over; - } - - if (c != '\n') continue; - - printf("setting go_nr to 1\n"); - go_nr = 1; - } - - return 0; -} - -void rrc_endc_hack_init(void) -{ - new_thread(nr_hack, NULL); -} -- GitLab