Skip to content
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

Closed
wants to merge 9 commits into from

Conversation

slankdev
Copy link
Contributor

@slankdev slankdev commented Dec 6, 2020

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.)

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>
Copy link

@polychaeta polychaeta left a 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.

@slankdev slankdev mentioned this pull request Dec 6, 2020
FRRouting#7680 (review)

Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
@LabN-CI
Copy link
Collaborator

LabN-CI commented Dec 6, 2020

Outdated results 💚

Basic BGPD CI results: SUCCESS, 0 tests failed

_ _
Result SUCCESS git merge/7680 ec5aa48
Date 12/06/2020
Start 03:41:02
Finish 04:16:31
Run-Time 35:29
Total 1815
Pass 1815
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2020-12-06-03:41:02.txt
Log autoscript-2020-12-06-03:42:06.log.bz2
Memory 485 493 427

For details, please contact louberger

@LabN-CI
Copy link
Collaborator

LabN-CI commented Dec 6, 2020

Outdated results 💚

Basic BGPD CI results: SUCCESS, 0 tests failed

_ _
Result SUCCESS git merge/7680 bba7a35
Date 12/06/2020
Start 04:21:02
Finish 04:56:32
Run-Time 35:30
Total 1815
Pass 1815
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2020-12-06-04:21:02.txt
Log autoscript-2020-12-06-04:22:03.log.bz2
Memory 500 500 427

For details, please contact louberger

@NetDEF-CI
Copy link
Collaborator

NetDEF-CI commented Dec 6, 2020

Continuous Integration Result: SUCCESSFUL

Continuous Integration Result: SUCCESSFUL

Congratulations, 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.
For questions and feedback in regards to this CI system, please feel free to email
Martin Winter - mwinter (at) opensourcerouting.org.

Warnings Generated during build:

Checkout code: Successful with additional warnings
Report for nexthop.c | 2 issues
===============================================
< ERROR: code indent should use tabs where possible
< #70: FILE: /tmp/f1-13665/nexthop.c:70:
Report for sharp_vty.c | 2 issues
===============================================
< WARNING: Missing a blank line after declarations
< #281: FILE: /tmp/f1-13665/sharp_vty.c:281:

Warnings Generated during build:

Debian 10 amd64 build: Successful with additional warnings

Debian Package lintian failed for Debian 10 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-15854/artifact/DEB10BUILD/ErrorLog/log_lintian.txt)

W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.5.0.3 (current is 4.3.0)
W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.5.0.3 (current is 4.3.0)
W: frr-doc: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201206-05-gec5aa487d-0 (missing) -> 7.6-dev-20201206-05-gec5aa487d-0~deb10u1
W: frr-rpki-rtrlib: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201206-05-gec5aa487d-0 (missing) -> 7.6-dev-20201206-05-gec5aa487d-0~deb10u1
W: frr-snmp: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201206-05-gec5aa487d-0 (missing) -> 7.6-dev-20201206-05-gec5aa487d-0~deb10u1
W: frr: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201206-05-gec5aa487d-0 (missing) -> 7.6-dev-20201206-05-gec5aa487d-0~deb10u1
W: frr-pythontools: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201206-05-gec5aa487d-0 (missing) -> 7.6-dev-20201206-05-gec5aa487d-0~deb10u1

@NetDEF-CI
Copy link
Collaborator

NetDEF-CI commented Dec 6, 2020

Continuous Integration Result: SUCCESSFUL

Continuous Integration Result: SUCCESSFUL

Congratulations, 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.
For questions and feedback in regards to this CI system, please feel free to email
Martin Winter - mwinter (at) opensourcerouting.org.

Warnings Generated during build:

Checkout code: Successful with additional warnings
Report for rt_netlink.c | 2 issues
===============================================
< WARNING: line over 80 characters
< #2346: FILE: /tmp/f1-22566/rt_netlink.c:2346:
Report for sharp_vty.c | 2 issues
===============================================
< WARNING: Missing a blank line after declarations
< #281: FILE: /tmp/f1-22566/sharp_vty.c:281:

Warnings Generated during build:

Debian 10 amd64 build: Successful with additional warnings

Debian Package lintian failed for Debian 10 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-15855/artifact/DEB10BUILD/ErrorLog/log_lintian.txt)

W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.5.0.3 (current is 4.3.0)
W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.5.0.3 (current is 4.3.0)
W: frr-pythontools: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201206-06-gbba7a35d5-0 (missing) -> 7.6-dev-20201206-06-gbba7a35d5-0~deb10u1
W: frr: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201206-06-gbba7a35d5-0 (missing) -> 7.6-dev-20201206-06-gbba7a35d5-0~deb10u1
W: frr-snmp: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201206-06-gbba7a35d5-0 (missing) -> 7.6-dev-20201206-06-gbba7a35d5-0~deb10u1
W: frr-rpki-rtrlib: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201206-06-gbba7a35d5-0 (missing) -> 7.6-dev-20201206-06-gbba7a35d5-0~deb10u1
W: frr-doc: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201206-06-gbba7a35d5-0 (missing) -> 7.6-dev-20201206-06-gbba7a35d5-0~deb10u1

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>
@NetDEF-CI
Copy link
Collaborator

NetDEF-CI commented Dec 9, 2020

Continuous Integration Result: FAILED

Continuous Integration Result: FAILED

See below for issues.
CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-15901/

This is a comment from an automated CI system.
For questions and feedback in regards to this CI system, please feel free to email
Martin Winter - mwinter (at) opensourcerouting.org.

Get source / Pull Request: Successful

Building Stage: Failed

Debian 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.gz

Make failed for Debian 8 amd64 build:
(see full Make log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-15901/artifact/CI008BLD/ErrorLog/log_make.txt)

copying selected object files to avoid basename conflicts...
zebra/rt_netlink.c: In function parse_nexthop_unicast:
zebra/rt_netlink.c:456:9: error: missing braces around initializer [-Werror=missing-braces]
zebra/rt_netlink.c:456:9: error: (near initialization for seg6l_ctx.nh4) [-Werror=missing-braces]
zebra/rt_netlink.c: In function parse_multipath_nexthops_unicast:
zebra/rt_netlink.c:528:9: error: missing braces around initializer [-Werror=missing-braces]
zebra/rt_netlink.c:528:9: error: (near initialization for seg6l_ctx.nh4) [-Werror=missing-braces]
cc1: all warnings being treated as errors
Makefile:7666: recipe for target 'zebra/rt_netlink.o' failed

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
  • Debian 10 amd64 build
  • FreeBSD 11 amd64 build
  • CentOS 7 amd64 build
  • Ubuntu 18.04 arm8 build
  • OpenBSD 6 amd64 build
  • Ubuntu 16.04 amd64 build
  • Ubuntu 18.04 amd64 build
  • FreeBSD 12 amd64 build
  • CentOS 8 amd64 build
  • Ubuntu 16.04 arm7 build
  • Ubuntu 18.04 ppc64le build
  • Ubuntu 20.04 amd64 build
  • Ubuntu 18.04 arm7 build
  • Debian 9 amd64 build
  • NetBSD 8 amd64 build
  • Ubuntu 16.04 arm8 build
  • Fedora 29 amd64 build
  • Ubuntu 16.04 i386 build

Warnings Generated during build:

Checkout code: Successful with additional warnings
Debian 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.gz

Make failed for Debian 8 amd64 build:
(see full Make log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-15901/artifact/CI008BLD/ErrorLog/log_make.txt)

copying selected object files to avoid basename conflicts...
zebra/rt_netlink.c: In function parse_nexthop_unicast:
zebra/rt_netlink.c:456:9: error: missing braces around initializer [-Werror=missing-braces]
zebra/rt_netlink.c:456:9: error: (near initialization for seg6l_ctx.nh4) [-Werror=missing-braces]
zebra/rt_netlink.c: In function parse_multipath_nexthops_unicast:
zebra/rt_netlink.c:528:9: error: missing braces around initializer [-Werror=missing-braces]
zebra/rt_netlink.c:528:9: error: (near initialization for seg6l_ctx.nh4) [-Werror=missing-braces]
cc1: all warnings being treated as errors
Makefile:7666: recipe for target 'zebra/rt_netlink.o' failed

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

Report for rt_netlink.c | 2 issues
===============================================
< WARNING: line over 80 characters
< #2394: FILE: /tmp/f1-10517/rt_netlink.c:2394:
Report for sharp_vty.c | 2 issues
===============================================
< WARNING: Missing a blank line after declarations
< #281: FILE: /tmp/f1-10517/sharp_vty.c:281:

Warnings Generated during build:

Debian 10 amd64 build: Successful with additional warnings

Debian Package lintian failed for Debian 10 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-15901/artifact/DEB10BUILD/ErrorLog/log_lintian.txt)

W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.5.0.3 (current is 4.3.0)
W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.5.0.3 (current is 4.3.0)
W: frr-snmp: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201209-00-g8a81428f3-0 (missing) -> 7.6-dev-20201209-00-g8a81428f3-0~deb10u1
W: frr-rpki-rtrlib: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201209-00-g8a81428f3-0 (missing) -> 7.6-dev-20201209-00-g8a81428f3-0~deb10u1
W: frr-doc: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201209-00-g8a81428f3-0 (missing) -> 7.6-dev-20201209-00-g8a81428f3-0~deb10u1
W: frr-pythontools: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201209-00-g8a81428f3-0 (missing) -> 7.6-dev-20201209-00-g8a81428f3-0~deb10u1
W: frr: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201209-00-g8a81428f3-0 (missing) -> 7.6-dev-20201209-00-g8a81428f3-0~deb10u1

Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
@LabN-CI
Copy link
Collaborator

LabN-CI commented Dec 9, 2020

💚 Basic BGPD CI results: SUCCESS, 0 tests failed

Results table
_ _
Result SUCCESS git merge/7680 a97d7f7
Date 12/09/2020
Start 05:37:07
Finish 06:12:40
Run-Time 35:33
Total 1815
Pass 1815
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2020-12-09-05:37:07.txt
Log autoscript-2020-12-09-05:38:13.log.bz2
Memory 493 501 427

For details, please contact louberger

slankdev added a commit to slankdev/frr that referenced this pull request Dec 9, 2020
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>
@NetDEF-CI
Copy link
Collaborator

Continuous Integration Result: SUCCESSFUL

Congratulations, 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.
For questions and feedback in regards to this CI system, please feel free to email
Martin Winter - mwinter (at) opensourcerouting.org.

Warnings Generated during build:

Checkout code: Successful with additional warnings
Report for rt_netlink.c | 6 issues
===============================================
< ERROR: space required after that close brace '}'
< #456: FILE: /tmp/f1-11129/rt_netlink.c:456:
< ERROR: space required after that close brace '}'
< #528: FILE: /tmp/f1-11129/rt_netlink.c:528:
< WARNING: line over 80 characters
< #2394: FILE: /tmp/f1-11129/rt_netlink.c:2394:
Report for sharp_vty.c | 2 issues
===============================================
< WARNING: Missing a blank line after declarations
< #281: FILE: /tmp/f1-11129/sharp_vty.c:281:

Warnings Generated during build:

Debian 10 amd64 build: Successful with additional warnings

Debian Package lintian failed for Debian 10 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-15903/artifact/DEB10BUILD/ErrorLog/log_lintian.txt)

W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.5.0.3 (current is 4.3.0)
W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.5.0.3 (current is 4.3.0)
W: frr: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201209-01-ga97d7f762-0 (missing) -> 7.6-dev-20201209-01-ga97d7f762-0~deb10u1
W: frr-rpki-rtrlib: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201209-01-ga97d7f762-0 (missing) -> 7.6-dev-20201209-01-ga97d7f762-0~deb10u1
W: frr-pythontools: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201209-01-ga97d7f762-0 (missing) -> 7.6-dev-20201209-01-ga97d7f762-0~deb10u1
W: frr-doc: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201209-01-ga97d7f762-0 (missing) -> 7.6-dev-20201209-01-ga97d7f762-0~deb10u1
W: frr-snmp: changelog-file-missing-explicit-entry 7.5-0 -> 7.6-dev-20201209-01-ga97d7f762-0 (missing) -> 7.6-dev-20201209-01-ga97d7f762-0~deb10u1

slankdev added a commit to slankdev/frr that referenced this pull request Dec 9, 2020
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>
slankdev added a commit to slankdev/frr that referenced this pull request Dec 10, 2020
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>
slankdev added a commit to slankdev/frr that referenced this pull request Dec 10, 2020
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>
slankdev added a commit to slankdev/frr that referenced this pull request Dec 10, 2020
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>
@slankdev
Copy link
Contributor Author

As I inform in slack (https://frrouting.slack.com/archives/C4SEHQQ3S/p1607573496280400).
I'll close this PR. And I restart PR(#5653) including lines of this PR.

Sorry for inconvenience.

@slankdev slankdev closed this Dec 10, 2020
slankdev added a commit to slankdev/frr that referenced this pull request Dec 10, 2020
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>
slankdev added a commit to slankdev/frr that referenced this pull request Dec 10, 2020
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>
slankdev added a commit to slankdev/frr that referenced this pull request Dec 10, 2020
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>
slankdev added a commit to slankdev/frr that referenced this pull request Dec 10, 2020
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>
slankdev added a commit to slankdev/frr that referenced this pull request Dec 10, 2020
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>
slankdev added a commit to slankdev/frr that referenced this pull request Dec 18, 2020
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>
slankdev added a commit to slankdev/frr that referenced this pull request Dec 19, 2020
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>
slankdev added a commit to slankdev/frr that referenced this pull request Dec 19, 2020
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>
slankdev added a commit to slankdev/frr that referenced this pull request Dec 21, 2020
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>
slankdev added a commit to slankdev/frr that referenced this pull request Dec 29, 2020
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>
slankdev added a commit to slankdev/frr that referenced this pull request Jan 15, 2021
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>
slankdev added a commit to slankdev/frr that referenced this pull request Jan 31, 2021
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>
slankdev added a commit to slankdev/frr that referenced this pull request Feb 9, 2021
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>
slankdev added a commit to slankdev/frr that referenced this pull request Feb 11, 2021
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>
slankdev added a commit to slankdev/frr that referenced this pull request Mar 22, 2021
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>
slankdev added a commit to slankdev/frr that referenced this pull request Apr 2, 2021
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>
donaldsharp pushed a commit to donaldsharp/frr that referenced this pull request Apr 2, 2021
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>
donaldsharp pushed a commit to donaldsharp/frr that referenced this pull request Apr 2, 2021
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>
donaldsharp pushed a commit to donaldsharp/frr that referenced this pull request Apr 3, 2021
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>
slankdev added a commit to slankdev/frr that referenced this pull request Apr 26, 2021
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>
slankdev added a commit to slankdev/frr that referenced this pull request May 1, 2021
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>
slankdev added a commit to slankdev/frr that referenced this pull request May 5, 2021
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>
slankdev added a commit to slankdev/frr that referenced this pull request May 6, 2021
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>
slankdev added a commit to slankdev/frr that referenced this pull request Jun 2, 2021
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>
mjstapp pushed a commit to slankdev/frr that referenced this pull request Jun 2, 2021
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants