summaryrefslogtreecommitdiff
path: root/src/ipcpd/unicast/routing
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2026-08-16 18:09:31 +0000
committerSander Vrijders <sander@ouroboros.rocks>2026-08-31 08:31:45 +0200
commitc88151f46719816afed7fb08c2dafce696595bdd (patch)
tree89ce58f67e3aa7e156776f557b7fb06df665e618 /src/ipcpd/unicast/routing
parent657fdee8e909bd50fcc0b809b454cf1ad551384b (diff)
downloadouroboros-c88151f46719816afed7fb08c2dafce696595bdd.tar.gz
ouroboros-c88151f46719816afed7fb08c2dafce696595bdd.zip
ipcpd: Clean up pft on flow down
The pft had stale DT entries after a flow goes down until the next lsdb update. The flow descriptors are now purged once the link is declared down. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/ipcpd/unicast/routing')
-rw-r--r--src/ipcpd/unicast/routing/link-state.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/ipcpd/unicast/routing/link-state.c b/src/ipcpd/unicast/routing/link-state.c
index c4ea9e1c..4fba2f05 100644
--- a/src/ipcpd/unicast/routing/link-state.c
+++ b/src/ipcpd/unicast/routing/link-state.c
@@ -878,9 +878,15 @@ static void handle_event(void * self,
break;
case NOTIFY_DT_CONN_UP:
flow_event(c->flow_info.fd, true);
+
+ if (lsdb_add_link(ls.addr, c->conn_info.addr, 0, &qs) < 0)
+ log_dbg("Failed to re-add adjacency to lsdb.");
break;
case NOTIFY_DT_CONN_DOWN:
flow_event(c->flow_info.fd, false);
+
+ if (lsdb_del_link(ls.addr, c->conn_info.addr) < 0)
+ log_dbg("Local link was not in lsdb.");
break;
case NOTIFY_MGMT_CONN_ADD:
fccntl(c->flow_info.fd, FLOWGFLAGS, &flags);