diff options
| author | Mark Stapp <mjs@voltanet.io> | 2018-05-23 12:20:43 -0400 |
|---|---|---|
| committer | Mark Stapp <mjs@voltanet.io> | 2018-10-25 08:34:30 -0400 |
| commit | 7cdb1a8445ecff8ad0f2eb532df5eb2112d921e0 (patch) | |
| tree | fb34cd690dff402df2e4f5323d697f18582b2cfc /zebra/rt.h | |
| parent | 6cd85474f80492d4721966610357109593ae4ab9 (diff) | |
zebra: start dataplane layer work
Reduce or eliminate use of global zebra_ns structs in
a couple of netlink/kernel code paths, so that those paths
can potentially be made asynch eventually.
Slide netlink_talk_info into place to remove dependency on core
zebra structs; add accessors for dplane context block
Start init of route context from zebra core re and rn structs;
start queueing and event handling for incoming route updates.
Expose netlink apis that don't rely on zebra core structs;
add parallel route-update code path using the dplane ctx;
simplest possible event loop to process queued route'
updates.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
Diffstat (limited to 'zebra/rt.h')
| -rw-r--r-- | zebra/rt.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/zebra/rt.h b/zebra/rt.h index dbea298584..a4db8968a5 100644 --- a/zebra/rt.h +++ b/zebra/rt.h @@ -58,6 +58,12 @@ extern void kernel_route_rib_pass_fail(struct route_node *rn, struct route_entry *re, enum zebra_dplane_status res); +/* + * Update or delete a prefix from the kernel, + * using info from a dataplane context. + */ +extern enum zebra_dplane_result kernel_route_update(dplane_ctx_h ctx); + extern int kernel_address_add_ipv4(struct interface *, struct connected *); extern int kernel_address_delete_ipv4(struct interface *, struct connected *); extern int kernel_address_add_ipv6(struct interface *, struct connected *); |
