summaryrefslogtreecommitdiff
path: root/zebra/zapi_msg.h
diff options
context:
space:
mode:
authorHiroki Shirokura <slank.dev@gmail.com>2020-12-09 18:52:17 +0900
committerMark Stapp <mjs@voltanet.io>2021-06-02 10:24:47 -0400
commit6e68a08484bf8f5c79f041ce8c103ce42abc2e7f (patch)
treefe15369c2c80eb9db7c125098f910272b5012291 /zebra/zapi_msg.h
parentf2867068e679900582aeb263d1723f8d7c3aa0ed (diff)
zebra: ZAPI add new api to manipulate srv6-locator (step2)
This commit is a part of #5853 works that add new ZAPI to configure SRv6 locator which manages chunk prefix for SRv6 SID IPv6 address for each routing protocol daemons. NEW-ZAPIs: * ZEBRA_SRV6_LOCATOR_ADD * ZEBRA_SRV6_LOCATOR_DELETE * ZEBRA_SRV6_MANAGER_CONNECT * ZEBRA_SRV6_MANAGER_GET_LOCATOR_CHUNK * ZEBRA_SRV6_MANAGER_RELEASE_LOCATOR_CHUNK Zclient can connect to zebra's srv6-manager with ZEBRA_SRV6_MANAGER_CONNECT api like a label-manager. Then zclient uses ZEBRA_SRV6_MANAGER_GET_LOCATOR_CHUNK to allocated dedicated locator chunk for it's routing protocol. Zebra works for only prefix reservation and distribute the ownership of the locator chunks for zcliens. Then, zclient installs SRv6 function with ZEBRA_ROUTE_ADD api with nh_seg6local_* fields. This feature is already implemented by another PR(#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
Diffstat (limited to 'zebra/zapi_msg.h')
-rw-r--r--zebra/zapi_msg.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/zebra/zapi_msg.h b/zebra/zapi_msg.h
index 0beb3cc100..35bb554121 100644
--- a/zebra/zapi_msg.h
+++ b/zebra/zapi_msg.h
@@ -30,6 +30,7 @@
#include "zebra/zebra_pbr.h"
#include "zebra/zebra_errors.h"
#include "zebra/label_manager.h"
+#include "zebra/zebra_srv6.h"
#ifdef __cplusplus
@@ -116,6 +117,14 @@ int zsend_nhg_notify(uint16_t type, uint16_t instance, uint32_t session_id,
extern void zapi_opaque_free(struct opaque *opaque);
+extern int zsend_zebra_srv6_locator_add(struct zserv *client,
+ struct srv6_locator *loc);
+extern int zsend_zebra_srv6_locator_delete(struct zserv *client,
+ struct srv6_locator *loc);
+extern int zsend_srv6_manager_get_locator_chunk_response(struct zserv *client,
+ vrf_id_t vrf_id,
+ struct srv6_locator *loc);
+
#ifdef __cplusplus
}
#endif