From 9b8b1412c3c4a80df713abd02f172d87397adaf0 Mon Sep 17 00:00:00 2001 From: dimitri staessens Date: Tue, 2 May 2017 11:38:39 +0200 Subject: ipcpd: Don't send deallocation messages The flow resources are Delta-t protocol machines that will time out and free their resources without any required signaling. Flows can be cleaned locally when the application requests it and all FRCT instances have timed out and released their resources. --- src/ipcpd/normal/fa.c | 38 -------------------------------------- 1 file changed, 38 deletions(-) (limited to 'src/ipcpd/normal/fa.c') diff --git a/src/ipcpd/normal/fa.c b/src/ipcpd/normal/fa.c index 6ea5b711..3aa2634a 100644 --- a/src/ipcpd/normal/fa.c +++ b/src/ipcpd/normal/fa.c @@ -293,35 +293,6 @@ int fa_alloc_resp(int fd, int fa_dealloc(int fd) { - flow_alloc_msg_t msg = FLOW_ALLOC_MSG__INIT; - struct shm_du_buff * sdb; - qoscube_t qc; - uint64_t addr; - - msg.code = FLOW_ALLOC_CODE__FLOW_DEALLOC; - msg.has_cep_id = true; - - pthread_rwlock_rdlock(&fa.flows_lock); - - msg.cep_id = frct_i_get_id(fa.fd_to_cep_id[fd]); - - addr = frct_i_get_addr(fa.fd_to_cep_id[fd]); - - pthread_rwlock_unlock(&fa.flows_lock); - - sdb = create_fa_sdb(&msg); - if (sdb == NULL) - return -1; - - ipcp_flow_get_qoscube(fd, &qc); - - assert(qc >= 0 && qc < QOS_CUBE_MAX); - - if (dt_write_sdu(addr, qc, PDU_TYPE_FA, sdb)) { - ipcp_sdb_release(sdb); - log_warn("Failed to send dealloc message."); - } - ipcp_flow_fini(fd); pthread_rwlock_wrlock(&fa.flows_lock); @@ -437,15 +408,6 @@ int fa_post_sdu(struct shm_du_buff * sdb) pthread_rwlock_unlock(&fa.flows_lock); - break; - case FLOW_ALLOC_CODE__FLOW_DEALLOC: - /* FIXME: mark flow and wait for frct_i to time out */ - pthread_rwlock_rdlock(&fa.flows_lock); - fd = fa.cep_id_to_fd[msg->cep_id]; - pthread_rwlock_unlock(&fa.flows_lock); - ipcp_flow_fini(fd); - sdu_sched_del(fa.sdu_sched, fd); - flow_dealloc(fd); break; default: log_err("Got an unknown flow allocation message."); -- cgit v1.2.3