summaryrefslogtreecommitdiff
path: root/src/ipcpd/normal/pff.c
diff options
context:
space:
mode:
authorSander Vrijders <[email protected]>2017-03-24 14:05:40 +0100
committerSander Vrijders <[email protected]>2017-03-24 14:36:20 +0100
commit0ed6ef2567a8355013e2cd61a1a31df6be67ae01 (patch)
tree1967a00bfe73a11cafbee7a5e97173abd7699add /src/ipcpd/normal/pff.c
parent2ee56ae4d3c90b77d77e9be8e5e00832256e50de (diff)
downloadouroboros-0ed6ef2567a8355013e2cd61a1a31df6be67ae01.tar.gz
ouroboros-0ed6ef2567a8355013e2cd61a1a31df6be67ae01.zip
ipcpd: normal: Fill in forwarding table
The routing now takes the results of the routing table to fill in the forwarding table, by going through the neighbors and filling in the right fd.
Diffstat (limited to 'src/ipcpd/normal/pff.c')
-rw-r--r--src/ipcpd/normal/pff.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/ipcpd/normal/pff.c b/src/ipcpd/normal/pff.c
index 8cab7936..77c2c551 100644
--- a/src/ipcpd/normal/pff.c
+++ b/src/ipcpd/normal/pff.c
@@ -68,6 +68,16 @@ void pff_destroy(struct pff * instance)
free(instance);
}
+void pff_lock(struct pff * instance)
+{
+ pthread_mutex_lock(&instance->lock);
+}
+
+void pff_unlock(struct pff * instance)
+{
+ pthread_mutex_unlock(&instance->lock);
+}
+
int pff_add(struct pff * instance, uint64_t addr, int fd)
{
int * val;
@@ -132,6 +142,15 @@ int pff_remove(struct pff * instance, uint64_t addr)
return 0;
}
+void pff_flush(struct pff * instance)
+{
+ assert(instance);
+
+ pthread_mutex_lock(&instance->lock);
+ htable_flush(instance->table);
+ pthread_mutex_unlock(&instance->lock);
+}
+
int pff_nhop(struct pff * instance, uint64_t addr)
{
int * j;