diff options
author | dimitri staessens <dimitri.staessens@ugent.be> | 2017-05-02 11:38:39 +0200 |
---|---|---|
committer | dimitri staessens <dimitri.staessens@ugent.be> | 2017-05-02 11:38:39 +0200 |
commit | 9b8b1412c3c4a80df713abd02f172d87397adaf0 (patch) | |
tree | 7981d1887add4a291bafc321bd67a4daa4b0686b /src | |
parent | ed9e4a4fc1eaad3f5f08106e6048b92094a6a70b (diff) | |
download | ouroboros-9b8b1412c3c4a80df713abd02f172d87397adaf0.tar.gz ouroboros-9b8b1412c3c4a80df713abd02f172d87397adaf0.zip |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/ipcpd/normal/fa.c | 38 | ||||
-rw-r--r-- | src/ipcpd/normal/flow_alloc.proto | 1 |
2 files changed, 0 insertions, 39 deletions
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); @@ -438,15 +409,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."); flow_alloc_msg__free_unpacked(msg, NULL); diff --git a/src/ipcpd/normal/flow_alloc.proto b/src/ipcpd/normal/flow_alloc.proto index ee7f96e8..947ce86b 100644 --- a/src/ipcpd/normal/flow_alloc.proto +++ b/src/ipcpd/normal/flow_alloc.proto @@ -25,7 +25,6 @@ syntax = "proto2"; enum flow_alloc_code { FLOW_REQ = 1; FLOW_REPLY = 2; - FLOW_DEALLOC = 3; }; message flow_alloc_msg { |