-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
zebra: ZEBRA_ROUTE_ADD api supports seg6local route #7680
Conversation
Make seg6local_context2str function's prototype better. This function is added on commit e496b42, and function interface's considering wasn't enough. Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#5853 works that add new nexthop's addional object for SRv6 routing about seg6local route. Before this commit, we can add MPLS info as additional object on nexthop. This commit make it add more support about seg6local routes. seg6local routes are ones of the LWT routing mechanism, so configuration of seg6local routes is performed by ZEBRA_ROUTE_SEND, it's same as MPLS configuration. Real configuration implementation isn't implemented at this commit. later commit add that. This commit add only nexthop additional object and some misc functions. Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
With this patch, zclient can intall seg6local rotues whem they set properties nh_seg6local_{action,ctx} on struct nexthop and set ZEBRA_FLAG_SEG6LOCAL_ROUTE on zapi_route's flag. Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
current route addition mechanism on shaprd support only ipv4/v6 nexthop routes simply. so It doesn't need to ensure flags of zapi_routes. Then when we want to configure more complicated routing feature (like a srv6), we will want to control flags of zapi_route. In this patch, it will supports to configure flags of zapi_route when sharpd calls ZEBRA_ROUTE_ADD. Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
In this patch, we can install seg6local routes from shapd cli. New sub command "sharp install route $PREFIX nexthop-seg6local" is added to install seg6local routes via ZEBRA_ROUTE_ADD. This is for the behaviour test(topotest) to ensure SRv6 ZAPI is working fine. NEW-CLI: sharp install routes 1::1 nexthop-seg6local dum0 End 1 sharp install routes 2::1 nexthop-seg6local dum0 End_X 2001::1 1 sharp install routes 3::1 nexthop-seg6local dum0 End_T 10 1 sharp install routes 4::1 nexthop-seg6local dum0 End_DX4 10.0.0.1 1 SRv6 routes are installed as NEXTHOP_IFINDEX routes because of seg6local specification. seg6local routes depends the output device status instead of routing-nexthop. FYI: In seg6local implementation, kernel don't care RTA_OIF on the nexthop deeply but some requirement are exist as follow. (a) DEV isn't loopback interface (b) DEV's ipv6 status is enabled (c) DEV's enslaving status is the same with target-route Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit checks seg6local route configuration via ZAPI is working fine. SRv6 feature is little young feature as kernel feature so netlink interface may be changed/updated in the future. And this ZAPI extention is something to support new routing paradigm, so it should be checked by topotests until srv6 feature of linux kernel will be well stable. Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your contribution to FRR!
Click for style suggestions
To apply these suggestions:
curl -s https://gist.githubusercontent.com/polychaeta/85bd2d448e4c48e34ed656566d973245/raw/c010b3575d2f458151a34fb5be5c01513f2f477c/cr_7680_1607243882.diff | git apply
diff --git a/lib/nexthop.c b/lib/nexthop.c
index 785be66d0..20b101c5d 100644
--- a/lib/nexthop.c
+++ b/lib/nexthop.c
@@ -67,7 +67,7 @@ static int _nexthop_labels_cmp(const struct nexthop *nh1,
}
static int _nexthop_seg6local_cmp(const struct nexthop *nh1,
- const struct nexthop *nh2)
+ const struct nexthop *nh2)
{
if (nh1->nh_seg6local_action > nh2->nh_seg6local_action)
return 1;
@@ -84,8 +84,7 @@ static int _nexthop_seg6local_cmp(const struct nexthop *nh1,
if (!nh1->nh_seg6local_ctx && nh2->nh_seg6local_ctx)
return -1;
- return memcmp(nh1->nh_seg6local_ctx,
- nh2->nh_seg6local_ctx,
+ return memcmp(nh1->nh_seg6local_ctx, nh2->nh_seg6local_ctx,
sizeof(struct seg6local_context));
}
diff --git a/lib/zclient.c b/lib/zclient.c
index ce18cfa5a..90c4fc8ba 100644
--- a/lib/zclient.c
+++ b/lib/zclient.c
@@ -804,8 +804,7 @@ static int zapi_nexthop_seg6local_cmp(const struct zapi_nexthop *next1,
if (next1->seg6local_action < next2->seg6local_action)
return -1;
- return memcmp(&next1->seg6local_ctx,
- &next2->seg6local_ctx,
+ return memcmp(&next1->seg6local_ctx, &next2->seg6local_ctx,
sizeof(struct seg6local_context));
}
@@ -1690,8 +1689,7 @@ int zapi_nexthop_from_nexthop(struct zapi_nexthop *znh,
memcpy(znh->backup_idx, nh->backup_idx, znh->backup_num);
}
- if (nh->nh_seg6local_action != 0 &&
- nh->nh_seg6local_ctx != NULL) {
+ if (nh->nh_seg6local_action != 0 && nh->nh_seg6local_ctx != NULL) {
znh->seg6local_action = nh->nh_seg6local_action;
memcpy(&znh->seg6local_ctx, nh->nh_seg6local_ctx,
sizeof(struct seg6local_context));
diff --git a/lib/zclient.h b/lib/zclient.h
index f2e576d6d..d69297829 100644
--- a/lib/zclient.h
+++ b/lib/zclient.h
@@ -542,12 +542,12 @@ struct zapi_route {
* This flag tells Zebra that the route is a seg6 route and should
* be treated specially.
*/
-#define ZEBRA_FLAG_SEG6_ROUTE 0x400
+#define ZEBRA_FLAG_SEG6_ROUTE 0x400
/*
* This flag tells Zebra that the route is a seg6local route and
* should be treated specially.
*/
-#define ZEBRA_FLAG_SEG6LOCAL_ROUTE 0x800
+#define ZEBRA_FLAG_SEG6LOCAL_ROUTE 0x800
/* The older XXX_MESSAGE flags live here */
uint32_t message;
diff --git a/sharpd/sharp_vty.c b/sharpd/sharp_vty.c
index 218bd3cab..589dd9bd8 100644
--- a/sharpd/sharp_vty.c
+++ b/sharpd/sharp_vty.c
@@ -156,9 +156,8 @@ DEFPY (install_routes_data_dump,
return CMD_SUCCESS;
}
-DEFPY (install_routes,
- install_routes_cmd,
- "sharp install routes [vrf NAME$vrf_name]\
+DEFPY(install_routes, install_routes_cmd,
+ "sharp install routes [vrf NAME$vrf_name]\
<A.B.C.D$start4|X:X::X:X$start6>\
<nexthop <A.B.C.D$nexthop4|X:X::X:X$nexthop6>|\
nexthop-group NHGNAME$nexthop_group|\
@@ -169,35 +168,35 @@ DEFPY (install_routes,
End_DX4$seg6l_enddx4 A.B.C.D$seg6l_enddx4_nh4>>\
[backup$backup <A.B.C.D$backup_nexthop4|X:X::X:X$backup_nexthop6>] \
(1-1000000)$routes [instance (0-255)$instance] [repeat (2-1000)$rpt]",
- "Sharp routing Protocol\n"
- "install some routes\n"
- "Routes to install\n"
- "The vrf we would like to install into if non-default\n"
- "The NAME of the vrf\n"
- "v4 Address to start /32 generation at\n"
- "v6 Address to start /32 generation at\n"
- "Nexthop to use(Can be an IPv4 or IPv6 address)\n"
- "V4 Nexthop address to use\n"
- "V6 Nexthop address to use\n"
- "Nexthop-Group to use\n"
- "The Name of the nexthop-group\n"
- "Nexthop-seg6local to use\n"
- "Output device to use\n"
- "SRv6 End function to use\n"
- "SRv6 End.X function to use\n"
- "V6 Nexthop address to use\n"
- "SRv6 End.T function to use\n"
- "Redirect table id to use\n"
- "SRv6 End.DX4 function to use\n"
- "V4 Nexthop address to use\n"
- "Backup nexthop to use(Can be an IPv4 or IPv6 address)\n"
- "Backup V4 Nexthop address to use\n"
- "Backup V6 Nexthop address to use\n"
- "How many to create\n"
- "Instance to use\n"
- "Instance\n"
- "Should we repeat this command\n"
- "How many times to repeat this command\n")
+ "Sharp routing Protocol\n"
+ "install some routes\n"
+ "Routes to install\n"
+ "The vrf we would like to install into if non-default\n"
+ "The NAME of the vrf\n"
+ "v4 Address to start /32 generation at\n"
+ "v6 Address to start /32 generation at\n"
+ "Nexthop to use(Can be an IPv4 or IPv6 address)\n"
+ "V4 Nexthop address to use\n"
+ "V6 Nexthop address to use\n"
+ "Nexthop-Group to use\n"
+ "The Name of the nexthop-group\n"
+ "Nexthop-seg6local to use\n"
+ "Output device to use\n"
+ "SRv6 End function to use\n"
+ "SRv6 End.X function to use\n"
+ "V6 Nexthop address to use\n"
+ "SRv6 End.T function to use\n"
+ "Redirect table id to use\n"
+ "SRv6 End.DX4 function to use\n"
+ "V4 Nexthop address to use\n"
+ "Backup nexthop to use(Can be an IPv4 or IPv6 address)\n"
+ "Backup V4 Nexthop address to use\n"
+ "Backup V6 Nexthop address to use\n"
+ "How many to create\n"
+ "Instance to use\n"
+ "Instance\n"
+ "Should we repeat this command\n"
+ "How many times to repeat this command\n")
{
struct vrf *vrf;
struct prefix prefix;
diff --git a/sharpd/sharp_zebra.c b/sharpd/sharp_zebra.c
index 9a5826f62..5fb891d90 100644
--- a/sharpd/sharp_zebra.c
+++ b/sharpd/sharp_zebra.c
@@ -452,10 +452,9 @@ static void sharp_zclient_buffer_ready(void)
{
switch (wb.restart) {
case SHARP_INSTALL_ROUTES_RESTART:
- sharp_install_routes_restart(&wb.p, wb.count, wb.vrf_id,
- wb.instance, wb.nhgid, wb.nhg,
- wb.backup_nhg, wb.routes,
- wb.flags);
+ sharp_install_routes_restart(
+ &wb.p, wb.count, wb.vrf_id, wb.instance, wb.nhgid,
+ wb.nhg, wb.backup_nhg, wb.routes, wb.flags);
return;
case SHARP_DELETE_ROUTES_RESTART:
sharp_remove_routes_restart(&wb.p, wb.count, wb.vrf_id,
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c
index 49dcbfa2f..a91be4c06 100644
--- a/zebra/rt_netlink.c
+++ b/zebra/rt_netlink.c
@@ -1290,31 +1290,31 @@ static bool _netlink_route_build_singlepath(const struct prefix *p,
action = nexthop->nh_seg6local_action;
encap = LWTUNNEL_ENCAP_SEG6_LOCAL;
nl_attr_put(nlmsg, req_size, RTA_ENCAP_TYPE, &encap,
- sizeof(uint16_t));
+ sizeof(uint16_t));
nest = nl_attr_nest(nlmsg, req_size, RTA_ENCAP);
switch (nexthop->nh_seg6local_action) {
case ZEBRA_SEG6_LOCAL_ACTION_END:
nl_attr_put32(nlmsg, req_size, SEG6_LOCAL_ACTION,
- SEG6_LOCAL_ACTION_END);
+ SEG6_LOCAL_ACTION_END);
break;
case ZEBRA_SEG6_LOCAL_ACTION_END_X:
nl_attr_put32(nlmsg, req_size, SEG6_LOCAL_ACTION,
- SEG6_LOCAL_ACTION_END_X);
+ SEG6_LOCAL_ACTION_END_X);
nl_attr_put(nlmsg, req_size, SEG6_LOCAL_NH6, &ctx->nh6,
- sizeof(struct in6_addr));
+ sizeof(struct in6_addr));
break;
case ZEBRA_SEG6_LOCAL_ACTION_END_T:
nl_attr_put32(nlmsg, req_size, SEG6_LOCAL_ACTION,
- SEG6_LOCAL_ACTION_END_T);
+ SEG6_LOCAL_ACTION_END_T);
nl_attr_put32(nlmsg, req_size, SEG6_LOCAL_TABLE,
ctx->table);
break;
case ZEBRA_SEG6_LOCAL_ACTION_END_DX4:
nl_attr_put32(nlmsg, req_size, SEG6_LOCAL_ACTION,
- SEG6_LOCAL_ACTION_END_DX4);
+ SEG6_LOCAL_ACTION_END_DX4);
nl_attr_put(nlmsg, req_size, SEG6_LOCAL_NH4, &ctx->nh4,
- sizeof(struct in_addr));
+ sizeof(struct in_addr));
break;
default:
zlog_err("%s: unsupport seg6local behaviour action=%u",
@@ -2314,23 +2314,23 @@ ssize_t netlink_nexthop_msg_encode(uint16_t cmd,
ctx = nh->nh_seg6local_ctx;
encap = LWTUNNEL_ENCAP_SEG6_LOCAL;
nl_attr_put(&req->n, buflen, NHA_ENCAP_TYPE,
- &encap, sizeof(uint16_t));
+ &encap, sizeof(uint16_t));
nest = nl_attr_nest(&req->n, buflen,
NHA_ENCAP | NLA_F_NESTED);
switch (action) {
case SEG6_LOCAL_ACTION_END:
nl_attr_put32(&req->n, buflen,
- SEG6_LOCAL_ACTION,
- SEG6_LOCAL_ACTION_END);
+ SEG6_LOCAL_ACTION,
+ SEG6_LOCAL_ACTION_END);
break;
case SEG6_LOCAL_ACTION_END_X:
nl_attr_put32(&req->n, buflen,
- SEG6_LOCAL_ACTION,
- SEG6_LOCAL_ACTION_END_X);
+ SEG6_LOCAL_ACTION,
+ SEG6_LOCAL_ACTION_END_X);
nl_attr_put(&req->n, buflen,
- SEG6_LOCAL_NH6, &ctx->nh6,
- sizeof(struct in6_addr));
+ SEG6_LOCAL_NH6, &ctx->nh6,
+ sizeof(struct in6_addr));
break;
case SEG6_LOCAL_ACTION_END_T:
nl_attr_put32(&req->n, buflen,
@@ -2341,16 +2341,18 @@ ssize_t netlink_nexthop_msg_encode(uint16_t cmd,
ctx->table);
break;
case SEG6_LOCAL_ACTION_END_DX4:
- nl_attr_put32(&req->n, buflen,
- SEG6_LOCAL_ACTION,
- SEG6_LOCAL_ACTION_END_DX4);
+ nl_attr_put32(
+ &req->n, buflen,
+ SEG6_LOCAL_ACTION,
+ SEG6_LOCAL_ACTION_END_DX4);
nl_attr_put(&req->n, buflen,
- SEG6_LOCAL_NH4, &ctx->nh4,
- sizeof(struct in_addr));
+ SEG6_LOCAL_NH4, &ctx->nh4,
+ sizeof(struct in_addr));
break;
default:
- zlog_err("%s: unsupport seg6local behaviour action=%u",
- __func__, action);
+ zlog_err(
+ "%s: unsupport seg6local behaviour action=%u",
+ __func__, action);
break;
}
nl_attr_nest_end(&req->n, nest);
diff --git a/zebra/zebra_vty.c b/zebra/zebra_vty.c
index f6b635e79..e6530aa03 100644
--- a/zebra/zebra_vty.c
+++ b/zebra/zebra_vty.c
@@ -605,8 +605,7 @@ static void show_route_nexthop_helper(struct vty *vty,
nexthop->nh_seg6local_ctx,
nexthop->nh_seg6local_action);
vty_out(vty, ", seg6local %s %s",
- seg6local_action2str(
- nexthop->nh_seg6local_action),
+ seg6local_action2str(nexthop->nh_seg6local_action),
buf);
}
@@ -815,10 +814,8 @@ static void show_nexthop_json_helper(json_object *json_nexthop,
json_seg6local = json_object_new_object();
json_object_string_add(
json_seg6local, "action",
- seg6local_action2str(
- nexthop->nh_seg6local_action));
- json_object_object_add(json_nexthop,
- "seg6local",
+ seg6local_action2str(nexthop->nh_seg6local_action));
+ json_object_object_add(json_nexthop, "seg6local",
json_seg6local);
}
}
If you are a new contributor to FRR, please see our contributing guidelines.
After making changes, you do not need to create a new PR. You should perform an amend or interactive rebase followed by a force push.
FRRouting#7680 (review) Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
Outdated results 💚Basic BGPD CI results: SUCCESS, 0 tests failed
For details, please contact louberger |
Outdated results 💚Basic BGPD CI results: SUCCESS, 0 tests failed
For details, please contact louberger |
Continuous Integration Result: SUCCESSFULContinuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-15854/ This is a comment from an automated CI system. Warnings Generated during build:Checkout code: Successful with additional warnings
Warnings Generated during build:Debian 10 amd64 build: Successful with additional warningsDebian Package lintian failed for Debian 10 amd64 build:
|
Continuous Integration Result: SUCCESSFULContinuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-15855/ This is a comment from an automated CI system. Warnings Generated during build:Checkout code: Successful with additional warnings
Warnings Generated during build:Debian 10 amd64 build: Successful with additional warningsDebian Package lintian failed for Debian 10 amd64 build:
|
FRRouting operator can install seg6local route via ZAPI, But linux kernel operator also can install seg6local route via Netlink directry (i.e. iproute2) This commit make zebra to parse non-frr seg6local route configuration via netlink and audit Zebra's RIB. Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: FailedDebian 8 amd64 build: Failed (click for details)Debian 8 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-15901/artifact/CI008BLD/config.log/config.log.gzMake failed for Debian 8 amd64 build:
Debian 8 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-15901/artifact/CI008BLD/config.status/config.status Successful on other platforms/tests
Warnings Generated during build:Checkout code: Successful with additional warningsDebian 8 amd64 build: Failed (click for details)Debian 8 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-15901/artifact/CI008BLD/config.log/config.log.gzMake failed for Debian 8 amd64 build:
Debian 8 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-15901/artifact/CI008BLD/config.status/config.status
Warnings Generated during build:Debian 10 amd64 build: Successful with additional warningsDebian Package lintian failed for Debian 10 amd64 build:
|
Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
💚 Basic BGPD CI results: SUCCESS, 0 tests failedResults table
For details, please contact louberger |
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
Continuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-15903/ This is a comment from an automated CI system. Warnings Generated during build:Checkout code: Successful with additional warnings
Warnings Generated during build:Debian 10 amd64 build: Successful with additional warningsDebian Package lintian failed for Debian 10 amd64 build:
|
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
As I inform in slack (https://frrouting.slack.com/archives/C4SEHQQ3S/p1607573496280400). Sorry for inconvenience. |
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is a part of FRRouting#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(FRRouting#7680). Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This is a part of this-project(#5853)
More correctly, this work (zapi route add support seg6local route) was a part PR(#5865). But PR5865 includes some unfixed topic and it's need to fix. So I shrink that PR5865 for only seg6local install zapi extention.
This PR makes zapi ZEBRA_ROUTE_ADD to support seg6route configuration. This PR also add Sharpd route-install extention and topotest for seg6local route.
(After this PR will be merged, I resume PR5853 rebased on this PR and laster master-branch.)