diff options
author | Maria Matejka <mq@ucw.cz> | 2022-08-31 16:04:36 +0200 |
---|---|---|
committer | Maria Matejka <mq@ucw.cz> | 2022-09-01 18:46:40 +0200 |
commit | cd628d124dbdcfdbd870b3df5840cc6888d36f9d (patch) | |
tree | b0cc74f4d575012e0589bd35f745564da1c5112d /nest/rt.h | |
parent | ecdb1ec6eabbf0c47c410e9bb8551ab5d039a650 (diff) |
Flowspec revalidate notification converted to an export hook
Instead of synchronous notifications, we use the asynchronous export
framework to notify flowspec src route updates. This allows us to
invoke flowspec revalidation without locking collisions.
Diffstat (limited to 'nest/rt.h')
-rw-r--r-- | nest/rt.h | 14 |
1 files changed, 6 insertions, 8 deletions
@@ -132,7 +132,6 @@ typedef struct rtable { list subscribers; /* Subscribers for notifications */ struct timer *settle_timer; /* Settle time for notifications */ - list flowspec_links; /* List of flowspec links, src for NET_IPx and dst for NET_FLOWx */ struct f_trie *flowspec_trie; /* Trie for evaluation of flowspec notifications */ } rtable; @@ -143,13 +142,6 @@ struct rt_subscription { event_list *list; }; -struct rt_flowspec_link { - node n; - rtable *src; - rtable *dst; - u32 uc; -}; - extern struct rt_cork { _Atomic uint active; event_list queue; @@ -416,6 +408,12 @@ struct hostcache { struct rt_export_request req; /* Notifier */ }; +struct rt_flowspec_link { + rtable *src; + rtable *dst; + u32 uc; + struct rt_export_request req; +}; #define rte_update channel_rte_import /** |