Skip to content

zebra: Move incoming netlink interface address change events to the dplane pthread#9052

Merged
donaldsharp merged 9 commits intoFRRouting:masterfrom
mjstapp:dplane_incoming_dev
Sep 21, 2021
Merged

zebra: Move incoming netlink interface address change events to the dplane pthread#9052
donaldsharp merged 9 commits intoFRRouting:masterfrom
mjstapp:dplane_incoming_dev

Conversation

@mjstapp
Copy link
Copy Markdown
Contributor

@mjstapp mjstapp commented Jul 14, 2021

Open a new netlink listener for use by the dataplane pthread. Process incoming interface address change messages in the dplane, create and enqueue a new type of dplane context object to the main pthread. The main pthread handles these contexts, and updates/maintains the internal zebra data structs. This is netlink-only for now. Part of the point of this PR is to introduce the sort of pattern that can be applied to many other types of incoming notifications (I think).

Copy link
Copy Markdown

@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/b552cfe2ab56a620b35f5e2f52187ae4/raw/f2cbe7188e5497ab42b3cf64bfc21d42a78fa281/cr_9052_1626285782.diff | git apply

diff --git a/zebra/if_netlink.c b/zebra/if_netlink.c
index b00cbc3cb..8935e15f9 100644
--- a/zebra/if_netlink.c
+++ b/zebra/if_netlink.c
@@ -1486,11 +1486,11 @@ int netlink_interface_addr_dplane(struct nlmsghdr *h, ns_id_t ns_id,
 	len = h->nlmsg_len - NLMSG_LENGTH(sizeof(struct ifaddrmsg));
 	if (len < 0) {
 		if (IS_ZEBRA_DEBUG_KERNEL)
-			zlog_debug("%s: %s: netlink msg bad size: %d %zu",
-				   __func__, nl_msg_type_to_str(h->nlmsg_type),
-				   h->nlmsg_len,
-				   (size_t)NLMSG_LENGTH(
-					   sizeof(struct ifaddrmsg)));
+			zlog_debug(
+				"%s: %s: netlink msg bad size: %d %zu",
+				__func__, nl_msg_type_to_str(h->nlmsg_type),
+				h->nlmsg_len,
+				(size_t)NLMSG_LENGTH(sizeof(struct ifaddrmsg)));
 		return -1;
 	}
 
@@ -1505,9 +1505,9 @@ int netlink_interface_addr_dplane(struct nlmsghdr *h, ns_id_t ns_id,
 	if (IS_ZEBRA_DEBUG_KERNEL) { /* remove this line to see initial ifcfg */
 		char buf[PREFIX_STRLEN];
 
-		zlog_debug("%s: %s ifindex %u flags 0x%x:",
-			   __func__, nl_msg_type_to_str(h->nlmsg_type),
-			   ifa->ifa_index, kernel_flags);
+		zlog_debug("%s: %s ifindex %u flags 0x%x:", __func__,
+			   nl_msg_type_to_str(h->nlmsg_type), ifa->ifa_index,
+			   kernel_flags);
 		if (tb[IFA_LOCAL])
 			zlog_debug("  IFA_LOCAL     %s/%d",
 				   inet_ntop(ifa->ifa_family,
@@ -1540,8 +1540,8 @@ int netlink_interface_addr_dplane(struct nlmsghdr *h, ns_id_t ns_id,
 
 	/* Validate prefix length */
 
-	if (ifa->ifa_family == AF_INET &&
-	    ifa->ifa_prefixlen > IPV4_MAX_BITLEN) {
+	if (ifa->ifa_family == AF_INET
+	    && ifa->ifa_prefixlen > IPV4_MAX_BITLEN) {
 		if (IS_ZEBRA_DEBUG_KERNEL)
 			zlog_debug("%s: %s: Invalid prefix length: %u",
 				   __func__, nl_msg_type_to_str(h->nlmsg_type),
@@ -1563,8 +1563,8 @@ int netlink_interface_addr_dplane(struct nlmsghdr *h, ns_id_t ns_id,
 		 * notification till IPv6 DAD has completed, but at init
 		 * time, FRR does query for and will receive all addresses.
 		 */
-		if (h->nlmsg_type == RTM_NEWADDR &&
-		    (kernel_flags & (IFA_F_DADFAILED | IFA_F_TENTATIVE))) {
+		if (h->nlmsg_type == RTM_NEWADDR
+		    && (kernel_flags & (IFA_F_DADFAILED | IFA_F_TENTATIVE))) {
 			if (IS_ZEBRA_DEBUG_KERNEL)
 				zlog_debug("%s: %s: Invalid/tentative addr",
 					   __func__,
@@ -1682,8 +1682,8 @@ int netlink_interface_addr_ctx(struct zebra_dplane_ctx *ctx)
 	if (zns == NULL) {
 		/* No ns - deleted maybe? */
 		if (IS_ZEBRA_DEBUG_KERNEL)
-			zlog_debug("%s: can't find zns id %u",
-				   __func__, nsinfo->ns_id);
+			zlog_debug("%s: can't find zns id %u", __func__,
+				   nsinfo->ns_id);
 		goto done;
 	}
 
@@ -1700,8 +1700,8 @@ int netlink_interface_addr_ctx(struct zebra_dplane_ctx *ctx)
 	addr = dplane_ctx_get_intf_addr(ctx);
 
 	if (IS_ZEBRA_DEBUG_KERNEL)
-		zlog_debug("%s: %s: ifindex %u, addr %pFX",
-			   __func__, dplane_op2str(op), ifindex, addr);
+		zlog_debug("%s: %s: ifindex %u, addr %pFX", __func__,
+			   dplane_op2str(op), ifindex, addr);
 
 	/* Is there a peer or broadcast address? */
 	if (dplane_ctx_intf_has_dest(ctx)) {
@@ -1727,30 +1727,27 @@ int netlink_interface_addr_ctx(struct zebra_dplane_ctx *ctx)
 	/* Register interface address to the interface. */
 	if (addr->family == AF_INET) {
 		if (op == DPLANE_OP_INTF_ADDR_ADD)
-			connected_add_ipv4(ifp, flags, &addr->u.prefix4,
-					   addr->prefixlen,
-					   dest ? &dest->u.prefix4 : NULL,
-					   label, metric);
+			connected_add_ipv4(
+				ifp, flags, &addr->u.prefix4, addr->prefixlen,
+				dest ? &dest->u.prefix4 : NULL, label, metric);
 		else if (CHECK_FLAG(flags, ZEBRA_IFA_PEER)) {
 			/* Delete with a peer address */
-			connected_delete_ipv4(
-				ifp, flags, &addr->u.prefix4,
-				addr->prefixlen, &dest->u.prefix4);
+			connected_delete_ipv4(ifp, flags, &addr->u.prefix4,
+					      addr->prefixlen,
+					      &dest->u.prefix4);
 		} else
-			connected_delete_ipv4(
-				ifp, flags, &addr->u.prefix4,
-				addr->prefixlen, NULL);
+			connected_delete_ipv4(ifp, flags, &addr->u.prefix4,
+					      addr->prefixlen, NULL);
 	}
 
 	if (addr->family == AF_INET6) {
 		if (op == DPLANE_OP_INTF_ADDR_ADD) {
-			connected_add_ipv6(ifp, flags,
-					   &addr->u.prefix6,
+			connected_add_ipv6(ifp, flags, &addr->u.prefix6,
 					   dest ? &dest->u.prefix6 : NULL,
 					   addr->prefixlen, label, metric);
 		} else
-			connected_delete_ipv6(ifp, &addr->u.prefix6,
-					      NULL, addr->prefixlen);
+			connected_delete_ipv6(ifp, &addr->u.prefix6, NULL,
+					      addr->prefixlen);
 	}
 
 	/*
diff --git a/zebra/interface.c b/zebra/interface.c
index aa2c51327..5a44852bf 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -1212,7 +1212,7 @@ void zebra_if_addr_update_ctx(struct zebra_dplane_ctx *ctx)
 	netlink_interface_addr_ctx(ctx);
 #else
 	dplane_ctx_fini(&ctx);
-#endif	/* HAVE_NETLINK */
+#endif /* HAVE_NETLINK */
 }
 
 /* Output prefix string to vty. */
diff --git a/zebra/kernel_netlink.c b/zebra/kernel_netlink.c
index 0b4832695..007280d1f 100644
--- a/zebra/kernel_netlink.c
+++ b/zebra/kernel_netlink.c
@@ -444,8 +444,8 @@ static int kernel_read(struct thread *thread)
  */
 int kernel_dplane_read(struct zebra_dplane_info *info)
 {
-	netlink_parse_info(dplane_netlink_information_fetch, &info->nls,
-			   info, 5, 0);
+	netlink_parse_info(dplane_netlink_information_fetch, &info->nls, info,
+			   5, 0);
 
 	return 0;
 }
@@ -531,9 +531,8 @@ static void netlink_install_filter(int sock, uint32_t pid, uint32_t dplane_pid)
 			     safe_strerror(errno));
 }
 
-void netlink_parse_rtattr_flags(struct rtattr **tb, int max,
-				struct rtattr *rta, int len,
-				unsigned short flags)
+void netlink_parse_rtattr_flags(struct rtattr **tb, int max, struct rtattr *rta,
+				int len, unsigned short flags)
 {
 	unsigned short type;
 
@@ -973,9 +972,8 @@ int netlink_parse_info(int (*filter)(struct nlmsghdr *, ns_id_t, int),
 
 			/* Error handling. */
 			if (h->nlmsg_type == NLMSG_ERROR) {
-				int err = netlink_parse_error(nl, h,
-							      zns->is_cmd,
-							      startup);
+				int err = netlink_parse_error(
+					nl, h, zns->is_cmd, startup);
 				if (err == 1) {
 					if (!(h->nlmsg_flags & NLM_F_MULTI))
 						return 0;
@@ -1190,8 +1188,8 @@ static int nl_batch_read_resp(struct nl_batch *bth)
 		}
 
 		if (h->nlmsg_type == NLMSG_ERROR) {
-			int err = netlink_parse_error(nl, h,
-						      bth->zns->is_cmd, false);
+			int err = netlink_parse_error(nl, h, bth->zns->is_cmd,
+						      false);
 
 			if (err == -1)
 				dplane_ctx_set_status(
@@ -1510,8 +1508,8 @@ void kernel_init(struct zebra_ns *zns)
 
 	/* Outbound socket for dplane programming of the host OS. */
 	snprintf(zns->netlink_dplane_out.name,
-		 sizeof(zns->netlink_dplane_out.name),
-		 "netlink-dp (NS %u)", zns->ns_id);
+		 sizeof(zns->netlink_dplane_out.name), "netlink-dp (NS %u)",
+		 zns->ns_id);
 	zns->netlink_dplane_out.sock = -1;
 	if (netlink_socket(&zns->netlink_dplane_out, 0, zns->ns_id) < 0) {
 		zlog_err("Failure to create %s socket",
@@ -1521,8 +1519,8 @@ void kernel_init(struct zebra_ns *zns)
 
 	/* Inbound socket for OS events coming to the dplane. */
 	snprintf(zns->netlink_dplane_in.name,
-		 sizeof(zns->netlink_dplane_in.name),
-		 "netlink-dp-in (NS %u)", zns->ns_id);
+		 sizeof(zns->netlink_dplane_in.name), "netlink-dp-in (NS %u)",
+		 zns->ns_id);
 	zns->netlink_dplane_in.sock = -1;
 	if (netlink_socket(&zns->netlink_dplane_in, groups, zns->ns_id) < 0) {
 		zlog_err("Failure to create %s socket",
@@ -1599,8 +1597,7 @@ void kernel_init(struct zebra_ns *zns)
 	/* Set filter for inbound sockets, to exclude events we've generated
 	 * ourselves.
 	 */
-	netlink_install_filter(zns->netlink.sock,
-			       zns->netlink_cmd.snl.nl_pid,
+	netlink_install_filter(zns->netlink.sock, zns->netlink_cmd.snl.nl_pid,
 			       zns->netlink_dplane_out.snl.nl_pid);
 
 	netlink_install_filter(zns->netlink_dplane_in.sock,
diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c
index 1290a4524..2a731b687 100644
--- a/zebra/kernel_socket.c
+++ b/zebra/kernel_socket.c
@@ -816,7 +816,7 @@ static void ifam_read_mesg(struct ifa_msghdr *ifm, union sockunion *addr,
 				__func__, ifm->ifam_index,
 				(ifnlen ? ifname : "(nil)"),
 				rtatostr(ifm->ifam_addrs, fbuf, sizeof(fbuf)),
-				ifm->ifam_flags, addr, masklen,	brd, &dst,
+				ifm->ifam_flags, addr, masklen, brd, &dst,
 				&gateway);
 		} break;
 		default:
@@ -938,9 +938,10 @@ static int rtm_read_mesg(struct rt_msghdr *rtm, union sockunion *dest,
 
 	/* rt_msghdr version check. */
 	if (rtm->rtm_version != RTM_VERSION)
-		flog_warn(EC_ZEBRA_RTM_VERSION_MISMATCH,
-			  "Routing message version different %d should be %d.This may cause problem",
-			  rtm->rtm_version, RTM_VERSION);
+		flog_warn(
+			EC_ZEBRA_RTM_VERSION_MISMATCH,
+			"Routing message version different %d should be %d.This may cause problem",
+			rtm->rtm_version, RTM_VERSION);
 
 	/* Be sure structure is cleared */
 	memset(dest, 0, sizeof(union sockunion));
diff --git a/zebra/zebra_dplane.c b/zebra/zebra_dplane.c
index f6185361f..ac55919ec 100644
--- a/zebra/zebra_dplane.c
+++ b/zebra/zebra_dplane.c
@@ -4840,8 +4840,8 @@ static int dplane_incoming_read(struct thread *event)
 	kernel_dplane_read(&zi->info);
 
 	/* Re-start read task */
-	thread_add_read(zdplane_info.dg_master, dplane_incoming_read,
-			zi, zi->info.nls.sock, &zi->t_read);
+	thread_add_read(zdplane_info.dg_master, dplane_incoming_read, zi,
+			zi->info.nls.sock, &zi->t_read);
 
 	return 0;
 }
@@ -4860,12 +4860,11 @@ void zebra_dplane_ns_enable(struct zebra_ns *zns, bool enabled)
 	struct dplane_zns_info *zi;
 
 	if (IS_ZEBRA_DEBUG_DPLANE)
-		zlog_debug("%s: %s for nsid %u",
-			   __func__, (enabled ? "ENABLED" : "DISABLED"),
-			   zns->ns_id);
+		zlog_debug("%s: %s for nsid %u", __func__,
+			   (enabled ? "ENABLED" : "DISABLED"), zns->ns_id);
 
 	/* Search for an existing zns info entry */
-	frr_each(zns_info_list, &zdplane_info.dg_zns_list, zi) {
+	frr_each (zns_info_list, &zdplane_info.dg_zns_list, zi) {
 		if (zi->info.ns_id == zns->ns_id)
 			break;
 	}
@@ -4896,8 +4895,8 @@ void zebra_dplane_ns_enable(struct zebra_ns *zns, bool enabled)
 		zns_info_list_del(&zdplane_info.dg_zns_list, zi);
 
 		if (zdplane_info.dg_master)
-			thread_cancel_async(zdplane_info.dg_master,
-					    &zi->t_read, NULL);
+			thread_cancel_async(zdplane_info.dg_master, &zi->t_read,
+					    NULL);
 
 		XFREE(MTYPE_DP_NS, zi);
 	}
@@ -5073,8 +5072,8 @@ static void kernel_dplane_log_detail(struct zebra_dplane_ctx *ctx)
 	case DPLANE_OP_INTF_ADDR_DEL:
 		zlog_debug("Dplane incoming op %s, intf %s, addr %pFX",
 			   dplane_op2str(dplane_ctx_get_op(ctx)),
-					 dplane_ctx_get_ifname(ctx),
-					 dplane_ctx_get_intf_addr(ctx));
+			   dplane_ctx_get_ifname(ctx),
+			   dplane_ctx_get_intf_addr(ctx));
 		break;
 	}
 }
@@ -5564,7 +5563,7 @@ static int dplane_check_shutdown_status(struct thread *event)
 		zlog_debug("Zebra dataplane shutdown status check called");
 
 	/* Remove any zns info entries as we stop the dplane pthread. */
-	frr_each_safe(zns_info_list, &zdplane_info.dg_zns_list, zi) {
+	frr_each_safe (zns_info_list, &zdplane_info.dg_zns_list, zi) {
 		zns_info_list_del(&zdplane_info.dg_zns_list, zi);
 
 		if (zdplane_info.dg_master)
@@ -5904,11 +5903,10 @@ void zebra_dplane_start(void)
 			 &zdplane_info.dg_t_update);
 
 	/* Enqueue reads if necessary */
-	frr_each(zns_info_list, &zdplane_info.dg_zns_list, zi) {
+	frr_each (zns_info_list, &zdplane_info.dg_zns_list, zi) {
 #if defined(HAVE_NETLINK)
-			thread_add_read(zdplane_info.dg_master,
-					dplane_incoming_read, zi,
-					zi->info.nls.sock, &zi->t_read);
+		thread_add_read(zdplane_info.dg_master, dplane_incoming_read,
+				zi, zi->info.nls.sock, &zi->t_read);
 #endif
 	}
 
diff --git a/zebra/zebra_dplane.h b/zebra/zebra_dplane.h
index 04e5bd22d..ff62b3fa7 100644
--- a/zebra/zebra_dplane.h
+++ b/zebra/zebra_dplane.h
@@ -474,8 +474,7 @@ void dplane_ctx_set_intf_dest(struct zebra_dplane_ctx *ctx,
 			      const struct prefix *p);
 bool dplane_ctx_intf_has_label(const struct zebra_dplane_ctx *ctx);
 const char *dplane_ctx_get_intf_label(const struct zebra_dplane_ctx *ctx);
-void dplane_ctx_set_intf_label(struct zebra_dplane_ctx *ctx,
-			       const char *label);
+void dplane_ctx_set_intf_label(struct zebra_dplane_ctx *ctx, const char *label);
 
 /* Accessors for MAC information */
 vlanid_t dplane_ctx_mac_get_vlan(const struct zebra_dplane_ctx *ctx);

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.

@LabN-CI
Copy link
Copy Markdown
Collaborator

LabN-CI commented Jul 14, 2021

Outdated results 💚

Basic BGPD CI results: SUCCESS, 0 tests failed

_ _
Result SUCCESS git merge/9052 5568008
Date 07/14/2021
Start 14:52:19
Finish 15:17:51
Run-Time 25:32
Total 1815
Pass 1815
Fail 0
Valgrind-Errors
Valgrind-Loss
Details vncregress-2021-07-14-14:52:19.txt
Log autoscript-2021-07-14-14:53:36.log.bz2
Memory 512 519 429

For details, please contact louberger

@mjstapp mjstapp force-pushed the dplane_incoming_dev branch from 5568008 to 6706d8d Compare July 15, 2021 14:42
Copy link
Copy Markdown

@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/98c026226eeaeb069ab36c34179148b8/raw/0210203e9579cf21ecaf244930d118bfa7a96596/cr_9052_1626360168.diff | git apply

diff --git a/zebra/if_netlink.c b/zebra/if_netlink.c
index d12297ad8..e420aba14 100644
--- a/zebra/if_netlink.c
+++ b/zebra/if_netlink.c
@@ -1486,11 +1486,11 @@ int netlink_interface_addr_dplane(struct nlmsghdr *h, ns_id_t ns_id,
 	len = h->nlmsg_len - NLMSG_LENGTH(sizeof(struct ifaddrmsg));
 	if (len < 0) {
 		if (IS_ZEBRA_DEBUG_KERNEL)
-			zlog_debug("%s: %s: netlink msg bad size: %d %zu",
-				   __func__, nl_msg_type_to_str(h->nlmsg_type),
-				   h->nlmsg_len,
-				   (size_t)NLMSG_LENGTH(
-					   sizeof(struct ifaddrmsg)));
+			zlog_debug(
+				"%s: %s: netlink msg bad size: %d %zu",
+				__func__, nl_msg_type_to_str(h->nlmsg_type),
+				h->nlmsg_len,
+				(size_t)NLMSG_LENGTH(sizeof(struct ifaddrmsg)));
 		return -1;
 	}
 
@@ -1505,9 +1505,9 @@ int netlink_interface_addr_dplane(struct nlmsghdr *h, ns_id_t ns_id,
 	if (IS_ZEBRA_DEBUG_KERNEL) { /* remove this line to see initial ifcfg */
 		char buf[PREFIX_STRLEN];
 
-		zlog_debug("%s: %s ifindex %u flags 0x%x:",
-			   __func__, nl_msg_type_to_str(h->nlmsg_type),
-			   ifa->ifa_index, kernel_flags);
+		zlog_debug("%s: %s ifindex %u flags 0x%x:", __func__,
+			   nl_msg_type_to_str(h->nlmsg_type), ifa->ifa_index,
+			   kernel_flags);
 		if (tb[IFA_LOCAL])
 			zlog_debug("  IFA_LOCAL     %s/%d",
 				   inet_ntop(ifa->ifa_family,
@@ -1540,8 +1540,8 @@ int netlink_interface_addr_dplane(struct nlmsghdr *h, ns_id_t ns_id,
 
 	/* Validate prefix length */
 
-	if (ifa->ifa_family == AF_INET &&
-	    ifa->ifa_prefixlen > IPV4_MAX_BITLEN) {
+	if (ifa->ifa_family == AF_INET
+	    && ifa->ifa_prefixlen > IPV4_MAX_BITLEN) {
 		if (IS_ZEBRA_DEBUG_KERNEL)
 			zlog_debug("%s: %s: Invalid prefix length: %u",
 				   __func__, nl_msg_type_to_str(h->nlmsg_type),
@@ -1563,8 +1563,8 @@ int netlink_interface_addr_dplane(struct nlmsghdr *h, ns_id_t ns_id,
 		 * notification till IPv6 DAD has completed, but at init
 		 * time, FRR does query for and will receive all addresses.
 		 */
-		if (h->nlmsg_type == RTM_NEWADDR &&
-		    (kernel_flags & (IFA_F_DADFAILED | IFA_F_TENTATIVE))) {
+		if (h->nlmsg_type == RTM_NEWADDR
+		    && (kernel_flags & (IFA_F_DADFAILED | IFA_F_TENTATIVE))) {
 			if (IS_ZEBRA_DEBUG_KERNEL)
 				zlog_debug("%s: %s: Invalid/tentative addr",
 					   __func__,
@@ -1682,8 +1682,8 @@ int netlink_interface_addr_ctx(struct zebra_dplane_ctx *ctx)
 	if (zns == NULL) {
 		/* No ns - deleted maybe? */
 		if (IS_ZEBRA_DEBUG_KERNEL)
-			zlog_debug("%s: can't find zns id %u",
-				   __func__, nsinfo->ns_id);
+			zlog_debug("%s: can't find zns id %u", __func__,
+				   nsinfo->ns_id);
 		goto done;
 	}
 
@@ -1700,8 +1700,8 @@ int netlink_interface_addr_ctx(struct zebra_dplane_ctx *ctx)
 	addr = dplane_ctx_get_intf_addr(ctx);
 
 	if (IS_ZEBRA_DEBUG_KERNEL)
-		zlog_debug("%s: %s: ifindex %u, addr %pFX",
-			   __func__, dplane_op2str(op), ifindex, addr);
+		zlog_debug("%s: %s: ifindex %u, addr %pFX", __func__,
+			   dplane_op2str(op), ifindex, addr);
 
 	/* Is there a peer or broadcast address? */
 	dest = dplane_ctx_get_intf_dest(ctx);
@@ -1727,30 +1727,27 @@ int netlink_interface_addr_ctx(struct zebra_dplane_ctx *ctx)
 	/* Register interface address to the interface. */
 	if (addr->family == AF_INET) {
 		if (op == DPLANE_OP_INTF_ADDR_ADD)
-			connected_add_ipv4(ifp, flags, &addr->u.prefix4,
-					   addr->prefixlen,
-					   dest ? &dest->u.prefix4 : NULL,
-					   label, metric);
+			connected_add_ipv4(
+				ifp, flags, &addr->u.prefix4, addr->prefixlen,
+				dest ? &dest->u.prefix4 : NULL, label, metric);
 		else if (CHECK_FLAG(flags, ZEBRA_IFA_PEER)) {
 			/* Delete with a peer address */
-			connected_delete_ipv4(
-				ifp, flags, &addr->u.prefix4,
-				addr->prefixlen, &dest->u.prefix4);
+			connected_delete_ipv4(ifp, flags, &addr->u.prefix4,
+					      addr->prefixlen,
+					      &dest->u.prefix4);
 		} else
-			connected_delete_ipv4(
-				ifp, flags, &addr->u.prefix4,
-				addr->prefixlen, NULL);
+			connected_delete_ipv4(ifp, flags, &addr->u.prefix4,
+					      addr->prefixlen, NULL);
 	}
 
 	if (addr->family == AF_INET6) {
 		if (op == DPLANE_OP_INTF_ADDR_ADD) {
-			connected_add_ipv6(ifp, flags,
-					   &addr->u.prefix6,
+			connected_add_ipv6(ifp, flags, &addr->u.prefix6,
 					   dest ? &dest->u.prefix6 : NULL,
 					   addr->prefixlen, label, metric);
 		} else
-			connected_delete_ipv6(ifp, &addr->u.prefix6,
-					      NULL, addr->prefixlen);
+			connected_delete_ipv6(ifp, &addr->u.prefix6, NULL,
+					      addr->prefixlen);
 	}
 
 	/*
diff --git a/zebra/interface.c b/zebra/interface.c
index aa2c51327..5a44852bf 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -1212,7 +1212,7 @@ void zebra_if_addr_update_ctx(struct zebra_dplane_ctx *ctx)
 	netlink_interface_addr_ctx(ctx);
 #else
 	dplane_ctx_fini(&ctx);
-#endif	/* HAVE_NETLINK */
+#endif /* HAVE_NETLINK */
 }
 
 /* Output prefix string to vty. */
diff --git a/zebra/kernel_netlink.c b/zebra/kernel_netlink.c
index 0b4832695..007280d1f 100644
--- a/zebra/kernel_netlink.c
+++ b/zebra/kernel_netlink.c
@@ -444,8 +444,8 @@ static int kernel_read(struct thread *thread)
  */
 int kernel_dplane_read(struct zebra_dplane_info *info)
 {
-	netlink_parse_info(dplane_netlink_information_fetch, &info->nls,
-			   info, 5, 0);
+	netlink_parse_info(dplane_netlink_information_fetch, &info->nls, info,
+			   5, 0);
 
 	return 0;
 }
@@ -531,9 +531,8 @@ static void netlink_install_filter(int sock, uint32_t pid, uint32_t dplane_pid)
 			     safe_strerror(errno));
 }
 
-void netlink_parse_rtattr_flags(struct rtattr **tb, int max,
-				struct rtattr *rta, int len,
-				unsigned short flags)
+void netlink_parse_rtattr_flags(struct rtattr **tb, int max, struct rtattr *rta,
+				int len, unsigned short flags)
 {
 	unsigned short type;
 
@@ -973,9 +972,8 @@ int netlink_parse_info(int (*filter)(struct nlmsghdr *, ns_id_t, int),
 
 			/* Error handling. */
 			if (h->nlmsg_type == NLMSG_ERROR) {
-				int err = netlink_parse_error(nl, h,
-							      zns->is_cmd,
-							      startup);
+				int err = netlink_parse_error(
+					nl, h, zns->is_cmd, startup);
 				if (err == 1) {
 					if (!(h->nlmsg_flags & NLM_F_MULTI))
 						return 0;
@@ -1190,8 +1188,8 @@ static int nl_batch_read_resp(struct nl_batch *bth)
 		}
 
 		if (h->nlmsg_type == NLMSG_ERROR) {
-			int err = netlink_parse_error(nl, h,
-						      bth->zns->is_cmd, false);
+			int err = netlink_parse_error(nl, h, bth->zns->is_cmd,
+						      false);
 
 			if (err == -1)
 				dplane_ctx_set_status(
@@ -1510,8 +1508,8 @@ void kernel_init(struct zebra_ns *zns)
 
 	/* Outbound socket for dplane programming of the host OS. */
 	snprintf(zns->netlink_dplane_out.name,
-		 sizeof(zns->netlink_dplane_out.name),
-		 "netlink-dp (NS %u)", zns->ns_id);
+		 sizeof(zns->netlink_dplane_out.name), "netlink-dp (NS %u)",
+		 zns->ns_id);
 	zns->netlink_dplane_out.sock = -1;
 	if (netlink_socket(&zns->netlink_dplane_out, 0, zns->ns_id) < 0) {
 		zlog_err("Failure to create %s socket",
@@ -1521,8 +1519,8 @@ void kernel_init(struct zebra_ns *zns)
 
 	/* Inbound socket for OS events coming to the dplane. */
 	snprintf(zns->netlink_dplane_in.name,
-		 sizeof(zns->netlink_dplane_in.name),
-		 "netlink-dp-in (NS %u)", zns->ns_id);
+		 sizeof(zns->netlink_dplane_in.name), "netlink-dp-in (NS %u)",
+		 zns->ns_id);
 	zns->netlink_dplane_in.sock = -1;
 	if (netlink_socket(&zns->netlink_dplane_in, groups, zns->ns_id) < 0) {
 		zlog_err("Failure to create %s socket",
@@ -1599,8 +1597,7 @@ void kernel_init(struct zebra_ns *zns)
 	/* Set filter for inbound sockets, to exclude events we've generated
 	 * ourselves.
 	 */
-	netlink_install_filter(zns->netlink.sock,
-			       zns->netlink_cmd.snl.nl_pid,
+	netlink_install_filter(zns->netlink.sock, zns->netlink_cmd.snl.nl_pid,
 			       zns->netlink_dplane_out.snl.nl_pid);
 
 	netlink_install_filter(zns->netlink_dplane_in.sock,
diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c
index 1290a4524..2a731b687 100644
--- a/zebra/kernel_socket.c
+++ b/zebra/kernel_socket.c
@@ -816,7 +816,7 @@ static void ifam_read_mesg(struct ifa_msghdr *ifm, union sockunion *addr,
 				__func__, ifm->ifam_index,
 				(ifnlen ? ifname : "(nil)"),
 				rtatostr(ifm->ifam_addrs, fbuf, sizeof(fbuf)),
-				ifm->ifam_flags, addr, masklen,	brd, &dst,
+				ifm->ifam_flags, addr, masklen, brd, &dst,
 				&gateway);
 		} break;
 		default:
@@ -938,9 +938,10 @@ static int rtm_read_mesg(struct rt_msghdr *rtm, union sockunion *dest,
 
 	/* rt_msghdr version check. */
 	if (rtm->rtm_version != RTM_VERSION)
-		flog_warn(EC_ZEBRA_RTM_VERSION_MISMATCH,
-			  "Routing message version different %d should be %d.This may cause problem",
-			  rtm->rtm_version, RTM_VERSION);
+		flog_warn(
+			EC_ZEBRA_RTM_VERSION_MISMATCH,
+			"Routing message version different %d should be %d.This may cause problem",
+			rtm->rtm_version, RTM_VERSION);
 
 	/* Be sure structure is cleared */
 	memset(dest, 0, sizeof(union sockunion));
diff --git a/zebra/zebra_dplane.c b/zebra/zebra_dplane.c
index fac5aea7a..fe5f835f7 100644
--- a/zebra/zebra_dplane.c
+++ b/zebra/zebra_dplane.c
@@ -4835,8 +4835,8 @@ static int dplane_incoming_read(struct thread *event)
 	kernel_dplane_read(&zi->info);
 
 	/* Re-start read task */
-	thread_add_read(zdplane_info.dg_master, dplane_incoming_read,
-			zi, zi->info.nls.sock, &zi->t_read);
+	thread_add_read(zdplane_info.dg_master, dplane_incoming_read, zi,
+			zi->info.nls.sock, &zi->t_read);
 
 	return 0;
 }
@@ -4855,12 +4855,11 @@ void zebra_dplane_ns_enable(struct zebra_ns *zns, bool enabled)
 	struct dplane_zns_info *zi;
 
 	if (IS_ZEBRA_DEBUG_DPLANE)
-		zlog_debug("%s: %s for nsid %u",
-			   __func__, (enabled ? "ENABLED" : "DISABLED"),
-			   zns->ns_id);
+		zlog_debug("%s: %s for nsid %u", __func__,
+			   (enabled ? "ENABLED" : "DISABLED"), zns->ns_id);
 
 	/* Search for an existing zns info entry */
-	frr_each(zns_info_list, &zdplane_info.dg_zns_list, zi) {
+	frr_each (zns_info_list, &zdplane_info.dg_zns_list, zi) {
 		if (zi->info.ns_id == zns->ns_id)
 			break;
 	}
@@ -4891,8 +4890,8 @@ void zebra_dplane_ns_enable(struct zebra_ns *zns, bool enabled)
 		zns_info_list_del(&zdplane_info.dg_zns_list, zi);
 
 		if (zdplane_info.dg_master)
-			thread_cancel_async(zdplane_info.dg_master,
-					    &zi->t_read, NULL);
+			thread_cancel_async(zdplane_info.dg_master, &zi->t_read,
+					    NULL);
 
 		XFREE(MTYPE_DP_NS, zi);
 	}
@@ -5068,8 +5067,8 @@ static void kernel_dplane_log_detail(struct zebra_dplane_ctx *ctx)
 	case DPLANE_OP_INTF_ADDR_DEL:
 		zlog_debug("Dplane incoming op %s, intf %s, addr %pFX",
 			   dplane_op2str(dplane_ctx_get_op(ctx)),
-					 dplane_ctx_get_ifname(ctx),
-					 dplane_ctx_get_intf_addr(ctx));
+			   dplane_ctx_get_ifname(ctx),
+			   dplane_ctx_get_intf_addr(ctx));
 		break;
 	}
 }
@@ -5559,7 +5558,7 @@ static int dplane_check_shutdown_status(struct thread *event)
 		zlog_debug("Zebra dataplane shutdown status check called");
 
 	/* Remove any zns info entries as we stop the dplane pthread. */
-	frr_each_safe(zns_info_list, &zdplane_info.dg_zns_list, zi) {
+	frr_each_safe (zns_info_list, &zdplane_info.dg_zns_list, zi) {
 		zns_info_list_del(&zdplane_info.dg_zns_list, zi);
 
 		if (zdplane_info.dg_master)
@@ -5899,11 +5898,10 @@ void zebra_dplane_start(void)
 			 &zdplane_info.dg_t_update);
 
 	/* Enqueue reads if necessary */
-	frr_each(zns_info_list, &zdplane_info.dg_zns_list, zi) {
+	frr_each (zns_info_list, &zdplane_info.dg_zns_list, zi) {
 #if defined(HAVE_NETLINK)
-			thread_add_read(zdplane_info.dg_master,
-					dplane_incoming_read, zi,
-					zi->info.nls.sock, &zi->t_read);
+		thread_add_read(zdplane_info.dg_master, dplane_incoming_read,
+				zi, zi->info.nls.sock, &zi->t_read);
 #endif
 	}
 
diff --git a/zebra/zebra_dplane.h b/zebra/zebra_dplane.h
index 04e5bd22d..ff62b3fa7 100644
--- a/zebra/zebra_dplane.h
+++ b/zebra/zebra_dplane.h
@@ -474,8 +474,7 @@ void dplane_ctx_set_intf_dest(struct zebra_dplane_ctx *ctx,
 			      const struct prefix *p);
 bool dplane_ctx_intf_has_label(const struct zebra_dplane_ctx *ctx);
 const char *dplane_ctx_get_intf_label(const struct zebra_dplane_ctx *ctx);
-void dplane_ctx_set_intf_label(struct zebra_dplane_ctx *ctx,
-			       const char *label);
+void dplane_ctx_set_intf_label(struct zebra_dplane_ctx *ctx, const char *label);
 
 /* Accessors for MAC information */
 vlanid_t dplane_ctx_mac_get_vlan(const struct zebra_dplane_ctx *ctx);

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.

@mjstapp
Copy link
Copy Markdown
Contributor Author

mjstapp commented Jul 15, 2021

Pushed to fix issue with ctx flags

@LabN-CI
Copy link
Copy Markdown
Collaborator

LabN-CI commented Jul 15, 2021

Outdated results 💚

Basic BGPD CI results: SUCCESS, 0 tests failed

_ _
Result SUCCESS git merge/9052 6706d8d
Date 07/15/2021
Start 10:46:18
Finish 11:11:57
Run-Time 25:39
Total 1816
Pass 1816
Fail 0
Valgrind-Errors
Valgrind-Loss
Details vncregress-2021-07-15-10:46:18.txt
Log autoscript-2021-07-15-10:47:33.log.bz2
Memory 491 519 429

For details, please contact louberger

@NetDEF-CI
Copy link
Copy Markdown
Collaborator

NetDEF-CI commented Jul 15, 2021

Continuous Integration Result: FAILED

Continuous Integration Result: FAILED

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

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: Successful

Basic Tests: Failed

Topotests Ubuntu 18.04 arm8 part 1: Failed (click for details) Topotests Ubuntu 18.04 arm8 part 1: No useful log found
Topotests Ubuntu 18.04 i386 part 6: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TOPO6U18I386-20286/test

Topology Tests failed for Topotests Ubuntu 18.04 i386 part 6:

2021-07-15 17:53:02,985 ERROR: 'router_json_cmp' failed after 79.80 seconds
2021-07-15 17:53:02,987 ERROR: assert failed at "bgp_vrf_netns.test_bgp_vrf_netns_topo/test_bgp_convergence": BGP router network did not converge
assert Generated JSON diff error report:
  
  > $->ipv4Unicast->peers->10.0.1.101->state: d1 has element with value 'Active' but in d2 it has value 'Established'
  > $->ipv4Unicast->peers->10.0.1.101->pfxRcd: d1 has element with value '0' but in d2 it has value '10'
*** defaultIntf: warning: r1 has no interfaces
2021-07-15 17:53:57,122 ERROR: host2: pimd left a dead pidfile (pid=23736)

see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-20286/artifact/TOPO6U18I386/ErrorLog/log_topotests.txt

Topotests Ubuntu 18.04 i386 part 1: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TOPO1U18I386-20286/test

Topology Tests failed for Topotests Ubuntu 18.04 i386 part 1:

2021-07-15 15:36:20,943 ERROR: 'router_json_cmp' failed after 22.55 seconds
2021-07-15 15:36:20,945 ERROR: assert failed at "bfd_vrf_topo1.test_bfd_vrf_topo1/test_bfd_connection": "r4" JSON output mismatches
assert Generated JSON diff error report:
  
  > $: d2 has the following element at index 0 which is not present in d1: 
  
  	{
  	    "peer": "192.168.2.2",
  	    "status": "up"
  	}
  
  	Closest match in d1 is at index 0 with the following errors: 
  
  	> $[0]->status: d1 has element with value 'down' but in d2 it has value 'up'
  
2021-07-15 16:06:18,107 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO1U18I386/topotests/lib/bgp.py", line 203, in create_router_bgp
    tgen, router, data_all_bgp, "bgp", build, load_config
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO1U18I386/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO1U18I386/topotests/lib/common_config.py", line 618, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 6: % Unknown command[27]: neighbor 10.0.0.13 remote-as 0 
% Specify remote-as or peer-group commands first
line 7: Failure to communicate[13] to bgpd, line: neighbor 10.0.0.13 timers 3 10 

line 9: % Unknown command[30]: neighbor fd00:0:0:3::1 remote-as 0 
% Specify remote-as or peer-group commands first
line 11: Failure to communicate[13] to bgpd, line: neighbor fd00:0:0:3::1 activate 

% Specify remote-as or peer-group commands first
line 12: Failure to communicate[13] to bgpd, line: neighbor fd00:0:0:3::1 timers 3 10 

% Specify remote-as or peer-group commands first
line 14: Failure to communicate[13] to bgpd, line: no neighbor fd00:0:0:3::1 activate 



2021-07-15 16:06:18,872 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO1U18I386/topotests/lib/bgp.py", line 203, in create_router_bgp
    tgen, router, data_all_bgp, "bgp", build, load_config
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO1U18I386/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO1U18I386/topotests/lib/common_config.py", line 618, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % No BGP process is configured
line 2: Failure to communicate[13] to bgpd, line: no router bgp  

see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-20286/artifact/TOPO1U18I386/ErrorLog/log_topotests.txt

Topotests Ubuntu 18.04 arm8 part 6: Failed (click for details) Topotests Ubuntu 18.04 arm8 part 6: No useful log found
Topotests debian 10 amd64 part 9: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TOPO9DEB10AMD64-20286/test

Topology Tests failed for Topotests debian 10 amd64 part 9:

2021-07-15 15:43:28,540 WARNING: vtysh_cmd: r0: failed to convert json output: : No JSON object could be decoded
2021-07-15 15:43:57,060 WARNING: vtysh_cmd: r1: failed to convert json output: : No JSON object could be decoded
2021-07-15 15:56:35,081 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9DEB10AMD64/topotests/lib/common_config.py", line 1875, in create_interfaces_cfg
    tgen, c_router, interface_data, "interface_config", build=build
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9DEB10AMD64/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9DEB10AMD64/topotests/lib/common_config.py", line 618, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 3: % Unknown command[16]: ip ospf hello-interval 65536 


2021-07-15 15:57:18,634 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9DEB10AMD64/topotests/lib/common_config.py", line 1875, in create_interfaces_cfg
    tgen, c_router, interface_data, "interface_config", build=build
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9DEB10AMD64/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9DEB10AMD64/topotests/lib/common_config.py", line 618, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 3: % Unknown command[16]: ip ospf dead-interval 65536 


2021-07-15 16:11:10,011 ERROR: r4: staticd left a dead pidfile (pid=26008)
2021-07-15 16:13:33,581 ERROR: 'router_output_cmp' failed after 131.68 seconds
2021-07-15 16:13:33,583 ERROR: assert failed at "ospf_topo1_vrf.test_ospf_topo1_vrf/test_ospf_convergence": OSPF did not converge on r1:
  --- Current output
  +++ Expected output
  @@ -1,6 +1,18 @@
   VRF Name: r1-cust1
   ============ OSPF network routing table ============
  +N 10.0.1.0/24 [10] area: 0.0.0.0
  + directly attached to r1-eth0
  +N 10.0.2.0/24 [20] area: 0.0.0.0
  + via 10.0.3.3, r1-eth1
  +N 10.0.3.0/24 [10] area: 0.0.0.0
  + directly attached to r1-eth1
  +N 10.0.10.0/24 [20] area: 0.0.0.0
  + via 10.0.3.1, r1-eth1
   
   ============ OSPF router routing table =============
  +R 10.0.255.2 [10] area: 0.0.0.0, ASBR
  + via 10.0.3.3, r1-eth1
  +R 10.0.255.3 [10] area: 0.0.0.0, ASBR
  + via 10.0.3.1, r1-eth1
   
   ============ OSPF external routing table ===========
assert False

see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-20286/artifact/TOPO9DEB10AMD64/ErrorLog/log_topotests.txt

Topotests Ubuntu 18.04 arm8 part 9: Failed (click for details) Topotests Ubuntu 18.04 arm8 part 9: No useful log found
Topotests Ubuntu 18.04 amd64 part 9: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TOPO9U18AMD64-20286/test

Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 9:

2021-07-15 15:28:34,647 ERROR: rt6: zebra left a dead pidfile (pid=7926)
2021-07-15 15:40:38,604 WARNING: vtysh_cmd: r0: failed to convert json output: : No JSON object could be decoded
2021-07-15 15:41:03,656 WARNING: vtysh_cmd: r1: failed to convert json output: : No JSON object could be decoded
2021-07-15 15:43:36,856 ERROR: r0: zebra left a dead pidfile (pid=22454)
2021-07-15 15:51:43,532 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18AMD64/topotests/lib/common_config.py", line 1875, in create_interfaces_cfg
    tgen, c_router, interface_data, "interface_config", build=build
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18AMD64/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18AMD64/topotests/lib/common_config.py", line 618, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 3: % Unknown command[16]: ip ospf hello-interval 65536 


2021-07-15 15:52:13,613 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18AMD64/topotests/lib/common_config.py", line 1875, in create_interfaces_cfg
    tgen, c_router, interface_data, "interface_config", build=build
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18AMD64/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18AMD64/topotests/lib/common_config.py", line 618, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 3: % Unknown command[16]: ip ospf dead-interval 65536 


2021-07-15 15:53:33,428 ERROR: r0: bgpd left a dead pidfile (pid=32291)
2021-07-15 15:56:54,917 ERROR: 'router_json_cmp' failed after 0.75 seconds
2021-07-15 15:56:54,919 ERROR: assert failed at "ospf_gr_topo1.test_ospf_gr_topo1/test_gr_rt7": "rt1" JSON output mismatches the expected result
assert Generated JSON diff error report:
  
  > $: d2 has key '7.7.7.7/32' which is not present in d1
2021-07-15 16:06:23,519 ERROR: 'router_output_cmp' failed after 120.20 seconds
2021-07-15 16:06:23,523 ERROR: assert failed at "ospf_topo1_vrf.test_ospf_topo1_vrf/test_ospf_convergence": OSPF did not converge on r1:
  --- Current output
  +++ Expected output
  @@ -1,6 +1,18 @@
   VRF Name: r1-cust1
   ============ OSPF network routing table ============
  +N 10.0.1.0/24 [10] area: 0.0.0.0
  + directly attached to r1-eth0
  +N 10.0.2.0/24 [20] area: 0.0.0.0
  + via 10.0.3.3, r1-eth1
  +N 10.0.3.0/24 [10] area: 0.0.0.0
  + directly attached to r1-eth1
  +N 10.0.10.0/24 [20] area: 0.0.0.0
  + via 10.0.3.1, r1-eth1
   
   ============ OSPF router routing table =============
  +R 10.0.255.2 [10] area: 0.0.0.0, ASBR
  + via 10.0.3.3, r1-eth1
  +R 10.0.255.3 [10] area: 0.0.0.0, ASBR
  + via 10.0.3.1, r1-eth1
   
   ============ OSPF external routing table ===========
assert False
2021-07-15 16:08:44,418 ERROR: r3: zebra left a dead pidfile (pid=20465)

see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-20286/artifact/TOPO9U18AMD64/ErrorLog/log_topotests.txt

Topotests debian 10 amd64 part 6: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TOPO6DEB10AMD64-20286/test

Topology Tests failed for Topotests debian 10 amd64 part 6:

2021-07-15 15:48:14,985 ERROR: r1: zebra left a dead pidfile (pid=29659)
2021-07-15 15:51:36,711 ERROR: 'router_json_cmp' failed after 72.82 seconds
2021-07-15 15:51:36,713 ERROR: assert failed at "bgp_vrf_netns.test_bgp_vrf_netns_topo/test_bgp_convergence": BGP router network did not converge
assert Generated JSON diff error report:
  
  > $->ipv4Unicast->peers->10.0.1.101->state: d1 has element with value 'Active' but in d2 it has value 'Established'
  > $->ipv4Unicast->peers->10.0.1.101->pfxRcd: d1 has element with value '0' but in d2 it has value '10'
*** defaultIntf: warning: r1 has no interfaces

see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-20286/artifact/TOPO6DEB10AMD64/ErrorLog/log_topotests.txt

Topotests debian 10 amd64 part 1: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TOPO1DEB10AMD64-20286/test

Topology Tests failed for Topotests debian 10 amd64 part 1:

2021-07-15 15:34:50,956 ERROR: 'router_json_cmp' failed after 20.75 seconds
2021-07-15 15:34:50,958 ERROR: assert failed at "bfd_vrf_topo1.test_bfd_vrf_topo1/test_bfd_connection": "r4" JSON output mismatches
assert Generated JSON diff error report:
  
  > $: d2 has the following element at index 0 which is not present in d1: 
  
  	{
  	    "peer": "192.168.2.2",
  	    "status": "up"
  	}
  
  	Closest match in d1 is at index 0 with the following errors: 
  
  	> $[0]->status: d1 has element with value 'down' but in d2 it has value 'up'
  
2021-07-15 15:50:08,799 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO1DEB10AMD64/topotests/lib/bgp.py", line 203, in create_router_bgp
    tgen, router, data_all_bgp, "bgp", build, load_config
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO1DEB10AMD64/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO1DEB10AMD64/topotests/lib/common_config.py", line 618, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 6: % Unknown command[27]: neighbor 10.0.0.13 remote-as 0 
% Specify remote-as or peer-group commands first
line 7: Failure to communicate[13] to bgpd, line: neighbor 10.0.0.13 timers 3 10 

line 9: % Unknown command[30]: neighbor fd00:0:0:3::1 remote-as 0 
% Specify remote-as or peer-group commands first
line 11: Failure to communicate[13] to bgpd, line: neighbor fd00:0:0:3::1 activate 

% Specify remote-as or peer-group commands first
line 12: Failure to communicate[13] to bgpd, line: neighbor fd00:0:0:3::1 timers 3 10 

% Specify remote-as or peer-group commands first
line 14: Failure to communicate[13] to bgpd, line: no neighbor fd00:0:0:3::1 activate 



2021-07-15 15:50:09,390 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO1DEB10AMD64/topotests/lib/bgp.py", line 203, in create_router_bgp
    tgen, router, data_all_bgp, "bgp", build, load_config
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO1DEB10AMD64/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO1DEB10AMD64/topotests/lib/common_config.py", line 618, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % No BGP process is configured
line 2: Failure to communicate[13] to bgpd, line: no router bgp  

see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-20286/artifact/TOPO1DEB10AMD64/ErrorLog/log_topotests.txt

Topotests Ubuntu 18.04 i386 part 9: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TOPO9U18I386-20286/test

Topology Tests failed for Topotests Ubuntu 18.04 i386 part 9:

2021-07-15 15:41:56,654 ERROR: r3: bgpd left a dead pidfile (pid=12477)
2021-07-15 15:45:13,687 WARNING: vtysh_cmd: r0: failed to convert json output: : No JSON object could be decoded
2021-07-15 15:45:41,239 WARNING: vtysh_cmd: r1: failed to convert json output: : No JSON object could be decoded
2021-07-15 15:50:18,841 ERROR: r3: bgpd left a dead pidfile (pid=19009)
2021-07-15 15:59:16,752 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18I386/topotests/lib/common_config.py", line 1875, in create_interfaces_cfg
    tgen, c_router, interface_data, "interface_config", build=build
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18I386/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18I386/topotests/lib/common_config.py", line 618, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 3: % Unknown command[16]: ip ospf hello-interval 65536 


2021-07-15 16:00:07,305 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18I386/topotests/lib/common_config.py", line 1875, in create_interfaces_cfg
    tgen, c_router, interface_data, "interface_config", build=build
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18I386/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18I386/topotests/lib/common_config.py", line 618, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 3: % Unknown command[16]: ip ospf dead-interval 65536 


2021-07-15 16:16:51,161 ERROR: 'router_output_cmp' failed after 136.54 seconds
2021-07-15 16:16:51,163 ERROR: assert failed at "ospf_topo1_vrf.test_ospf_topo1_vrf/test_ospf_convergence": OSPF did not converge on r1:
  --- Current output
  +++ Expected output
  @@ -1,6 +1,18 @@
   VRF Name: r1-cust1
   ============ OSPF network routing table ============
  +N 10.0.1.0/24 [10] area: 0.0.0.0
  + directly attached to r1-eth0
  +N 10.0.2.0/24 [20] area: 0.0.0.0
  + via 10.0.3.3, r1-eth1
  +N 10.0.3.0/24 [10] area: 0.0.0.0
  + directly attached to r1-eth1
  +N 10.0.10.0/24 [20] area: 0.0.0.0
  + via 10.0.3.1, r1-eth1
   
   ============ OSPF router routing table =============
  +R 10.0.255.2 [10] area: 0.0.0.0, ASBR
  + via 10.0.3.3, r1-eth1
  +R 10.0.255.3 [10] area: 0.0.0.0, ASBR
  + via 10.0.3.1, r1-eth1
   
   ============ OSPF external routing table ===========
assert False
2021-07-15 16:17:09,643 ERROR: r2: zebra left a dead pidfile (pid=10363)

see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-20286/artifact/TOPO9U18I386/ErrorLog/log_topotests.txt

Topotests Ubuntu 18.04 amd64 part 6: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TOPO6U18AMD64-20286/test

Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 6:

2021-07-15 15:37:12,253 ERROR: r2: bgpd left a dead pidfile (pid=13394)
2021-07-15 15:48:30,655 ERROR: 'router_json_cmp' failed after 69.47 seconds
2021-07-15 15:48:30,661 ERROR: assert failed at "bgp_vrf_netns.test_bgp_vrf_netns_topo/test_bgp_convergence": BGP router network did not converge
assert Generated JSON diff error report:
  
  > $->ipv4Unicast->peers->10.0.1.101->state: d1 has element with value 'Active' but in d2 it has value 'Established'
  > $->ipv4Unicast->peers->10.0.1.101->pfxRcd: d1 has element with value '0' but in d2 it has value '10'
*** defaultIntf: warning: r1 has no interfaces

see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-20286/artifact/TOPO6U18AMD64/ErrorLog/log_topotests.txt

Topotests Ubuntu 18.04 amd64 part 1: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP1U1804AMD64-20286/test

Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 1:

2021-07-15 15:32:36,785 ERROR: rt4: zebra left a dead pidfile (pid=19732)
2021-07-15 15:35:43,460 ERROR: 'router_json_cmp' failed after 21.05 seconds
2021-07-15 15:35:43,463 ERROR: assert failed at "bfd_vrf_topo1.test_bfd_vrf_topo1/test_bfd_connection": "r4" JSON output mismatches
assert Generated JSON diff error report:
  
  > $: d2 has the following element at index 0 which is not present in d1: 
  
  	{
  	    "peer": "192.168.2.2",
  	    "status": "up"
  	}
  
  	Closest match in d1 is at index 0 with the following errors: 
  
  	> $[0]->status: d1 has element with value 'down' but in d2 it has value 'up'
  
2021-07-15 16:04:40,136 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TP1U1804AMD64/topotests/lib/bgp.py", line 203, in create_router_bgp
    tgen, router, data_all_bgp, "bgp", build, load_config
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TP1U1804AMD64/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TP1U1804AMD64/topotests/lib/common_config.py", line 618, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 6: % Unknown command[27]: neighbor 10.0.0.13 remote-as 0 
% Specify remote-as or peer-group commands first
line 7: Failure to communicate[13] to bgpd, line: neighbor 10.0.0.13 timers 3 10 

line 9: % Unknown command[30]: neighbor fd00:0:0:3::1 remote-as 0 
% Specify remote-as or peer-group commands first
line 11: Failure to communicate[13] to bgpd, line: neighbor fd00:0:0:3::1 activate 

% Specify remote-as or peer-group commands first
line 12: Failure to communicate[13] to bgpd, line: neighbor fd00:0:0:3::1 timers 3 10 

% Specify remote-as or peer-group commands first
line 14: Failure to communicate[13] to bgpd, line: no neighbor fd00:0:0:3::1 activate 



2021-07-15 16:04:40,699 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TP1U1804AMD64/topotests/lib/bgp.py", line 203, in create_router_bgp
    tgen, router, data_all_bgp, "bgp", build, load_config
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TP1U1804AMD64/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TP1U1804AMD64/topotests/lib/common_config.py", line 618, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % No BGP process is configured
line 2: Failure to communicate[13] to bgpd, line: no router bgp  

see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-20286/artifact/TP1U1804AMD64/ErrorLog/log_topotests.txt

Successful on other platforms/tests
  • Topotests Ubuntu 18.04 amd64 part 3
  • Addresssanitizer topotests part 1
  • IPv6 protocols on Ubuntu 18.04
  • Topotests debian 10 amd64 part 8
  • Topotests debian 10 amd64 part 3
  • Topotests Ubuntu 18.04 amd64 part 5
  • Addresssanitizer topotests part 3
  • Addresssanitizer topotests part 6
  • Topotests debian 10 amd64 part 2
  • Addresssanitizer topotests part 8
  • Topotests Ubuntu 18.04 arm8 part 8
  • Topotests debian 10 amd64 part 7
  • IPv4 protocols on Ubuntu 18.04
  • Topotests Ubuntu 18.04 arm8 part 7
  • Ubuntu 20.04 deb pkg check
  • Topotests Ubuntu 18.04 arm8 part 2
  • Topotests Ubuntu 18.04 i386 part 0
  • Addresssanitizer topotests part 2
  • Topotests Ubuntu 18.04 arm8 part 4
  • Topotests Ubuntu 18.04 i386 part 5
  • Debian 10 deb pkg check
  • Topotests Ubuntu 18.04 amd64 part 8
  • Debian 9 deb pkg check
  • IPv4 ldp protocol on Ubuntu 18.04
  • Addresssanitizer topotests part 9
  • Fedora 29 rpm pkg check
  • Topotests debian 10 amd64 part 5
  • Topotests Ubuntu 18.04 i386 part 8
  • Topotests debian 10 amd64 part 0
  • Topotests Ubuntu 18.04 i386 part 3
  • Addresssanitizer topotests part 4
  • Topotests Ubuntu 18.04 amd64 part 7
  • Topotests Ubuntu 18.04 i386 part 2
  • Topotests Ubuntu 18.04 i386 part 7
  • Addresssanitizer topotests part 7
  • Topotests debian 10 amd64 part 4
  • Topotests Ubuntu 18.04 arm8 part 0
  • Static analyzer (clang)
  • Topotests Ubuntu 18.04 amd64 part 0
  • Topotests Ubuntu 18.04 amd64 part 4
  • Topotests Ubuntu 18.04 arm8 part 5
  • Ubuntu 18.04 deb pkg check
  • Addresssanitizer topotests part 5
  • Ubuntu 16.04 deb pkg check
  • Topotests Ubuntu 18.04 arm8 part 3
  • CentOS 7 rpm pkg check
  • Topotests Ubuntu 18.04 amd64 part 2
  • Addresssanitizer topotests part 0
  • Topotests Ubuntu 18.04 i386 part 4

* for the FIB e.g., and one for incoming events from the OS.
*/
struct nlsock netlink_dplane_out;
struct nlsock netlink_dplane_in;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there really need to have 2 sockets ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, like the sockets used by the main pthread: one socket listens for asynchronous incoming events, the other is used to send outbound changes, and it needs to read results synchronously.


DPLANE_OP_NEIGH_TABLE_UPDATE,
DPLANE_OP_GRE_SET,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

semantic used does not explicitly say this message is for incoming operation or outgoing operation.
should we have to split the lists in two or not ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think the direction really matters, does it - the handlers of the various operation codes know what to do?

@mjstapp mjstapp force-pushed the dplane_incoming_dev branch from 6706d8d to d3848d5 Compare July 16, 2021 13:15
Copy link
Copy Markdown

@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/540ec102e2d7ed9ec5189cc630a6a4a5/raw/189df85033abc4f9bc87f0dca1ac48d01c7003c7/cr_9052_1626441326.diff | git apply

diff --git a/zebra/if_netlink.c b/zebra/if_netlink.c
index ee6843b70..b8b2db360 100644
--- a/zebra/if_netlink.c
+++ b/zebra/if_netlink.c
@@ -1486,11 +1486,11 @@ int netlink_interface_addr_dplane(struct nlmsghdr *h, ns_id_t ns_id,
 	len = h->nlmsg_len - NLMSG_LENGTH(sizeof(struct ifaddrmsg));
 	if (len < 0) {
 		if (IS_ZEBRA_DEBUG_KERNEL)
-			zlog_debug("%s: %s: netlink msg bad size: %d %zu",
-				   __func__, nl_msg_type_to_str(h->nlmsg_type),
-				   h->nlmsg_len,
-				   (size_t)NLMSG_LENGTH(
-					   sizeof(struct ifaddrmsg)));
+			zlog_debug(
+				"%s: %s: netlink msg bad size: %d %zu",
+				__func__, nl_msg_type_to_str(h->nlmsg_type),
+				h->nlmsg_len,
+				(size_t)NLMSG_LENGTH(sizeof(struct ifaddrmsg)));
 		return -1;
 	}
 
@@ -1505,8 +1505,8 @@ int netlink_interface_addr_dplane(struct nlmsghdr *h, ns_id_t ns_id,
 	if (IS_ZEBRA_DEBUG_KERNEL) { /* remove this line to see initial ifcfg */
 		char buf[PREFIX_STRLEN];
 
-		zlog_debug("%s: %s nsid %u ifindex %u flags 0x%x:",
-			   __func__, nl_msg_type_to_str(h->nlmsg_type), ns_id,
+		zlog_debug("%s: %s nsid %u ifindex %u flags 0x%x:", __func__,
+			   nl_msg_type_to_str(h->nlmsg_type), ns_id,
 			   ifa->ifa_index, kernel_flags);
 		if (tb[IFA_LOCAL])
 			zlog_debug("  IFA_LOCAL     %s/%d",
@@ -1540,8 +1540,8 @@ int netlink_interface_addr_dplane(struct nlmsghdr *h, ns_id_t ns_id,
 
 	/* Validate prefix length */
 
-	if (ifa->ifa_family == AF_INET &&
-	    ifa->ifa_prefixlen > IPV4_MAX_BITLEN) {
+	if (ifa->ifa_family == AF_INET
+	    && ifa->ifa_prefixlen > IPV4_MAX_BITLEN) {
 		if (IS_ZEBRA_DEBUG_KERNEL)
 			zlog_debug("%s: %s: Invalid prefix length: %u",
 				   __func__, nl_msg_type_to_str(h->nlmsg_type),
@@ -1563,8 +1563,8 @@ int netlink_interface_addr_dplane(struct nlmsghdr *h, ns_id_t ns_id,
 		 * notification till IPv6 DAD has completed, but at init
 		 * time, FRR does query for and will receive all addresses.
 		 */
-		if (h->nlmsg_type == RTM_NEWADDR &&
-		    (kernel_flags & (IFA_F_DADFAILED | IFA_F_TENTATIVE))) {
+		if (h->nlmsg_type == RTM_NEWADDR
+		    && (kernel_flags & (IFA_F_DADFAILED | IFA_F_TENTATIVE))) {
 			if (IS_ZEBRA_DEBUG_KERNEL)
 				zlog_debug("%s: %s: Invalid/tentative addr",
 					   __func__,
@@ -1700,8 +1700,8 @@ int netlink_interface_addr_ctx(struct zebra_dplane_ctx *ctx)
 	addr = dplane_ctx_get_intf_addr(ctx);
 
 	if (IS_ZEBRA_DEBUG_KERNEL)
-		zlog_debug("%s: %s: ifindex %u, addr %pFX",
-			   __func__, dplane_op2str(op), ifindex, addr);
+		zlog_debug("%s: %s: ifindex %u, addr %pFX", __func__,
+			   dplane_op2str(op), ifindex, addr);
 
 	/* Is there a peer or broadcast address? */
 	dest = dplane_ctx_get_intf_dest(ctx);
@@ -1727,30 +1727,27 @@ int netlink_interface_addr_ctx(struct zebra_dplane_ctx *ctx)
 	/* Register interface address to the interface. */
 	if (addr->family == AF_INET) {
 		if (op == DPLANE_OP_INTF_ADDR_ADD)
-			connected_add_ipv4(ifp, flags, &addr->u.prefix4,
-					   addr->prefixlen,
-					   dest ? &dest->u.prefix4 : NULL,
-					   label, metric);
+			connected_add_ipv4(
+				ifp, flags, &addr->u.prefix4, addr->prefixlen,
+				dest ? &dest->u.prefix4 : NULL, label, metric);
 		else if (CHECK_FLAG(flags, ZEBRA_IFA_PEER)) {
 			/* Delete with a peer address */
-			connected_delete_ipv4(
-				ifp, flags, &addr->u.prefix4,
-				addr->prefixlen, &dest->u.prefix4);
+			connected_delete_ipv4(ifp, flags, &addr->u.prefix4,
+					      addr->prefixlen,
+					      &dest->u.prefix4);
 		} else
-			connected_delete_ipv4(
-				ifp, flags, &addr->u.prefix4,
-				addr->prefixlen, NULL);
+			connected_delete_ipv4(ifp, flags, &addr->u.prefix4,
+					      addr->prefixlen, NULL);
 	}
 
 	if (addr->family == AF_INET6) {
 		if (op == DPLANE_OP_INTF_ADDR_ADD) {
-			connected_add_ipv6(ifp, flags,
-					   &addr->u.prefix6,
+			connected_add_ipv6(ifp, flags, &addr->u.prefix6,
 					   dest ? &dest->u.prefix6 : NULL,
 					   addr->prefixlen, label, metric);
 		} else
-			connected_delete_ipv6(ifp, &addr->u.prefix6,
-					      NULL, addr->prefixlen);
+			connected_delete_ipv6(ifp, &addr->u.prefix6, NULL,
+					      addr->prefixlen);
 	}
 
 	/*
diff --git a/zebra/interface.c b/zebra/interface.c
index aa2c51327..5a44852bf 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -1212,7 +1212,7 @@ void zebra_if_addr_update_ctx(struct zebra_dplane_ctx *ctx)
 	netlink_interface_addr_ctx(ctx);
 #else
 	dplane_ctx_fini(&ctx);
-#endif	/* HAVE_NETLINK */
+#endif /* HAVE_NETLINK */
 }
 
 /* Output prefix string to vty. */
diff --git a/zebra/kernel_netlink.c b/zebra/kernel_netlink.c
index 0b4832695..007280d1f 100644
--- a/zebra/kernel_netlink.c
+++ b/zebra/kernel_netlink.c
@@ -444,8 +444,8 @@ static int kernel_read(struct thread *thread)
  */
 int kernel_dplane_read(struct zebra_dplane_info *info)
 {
-	netlink_parse_info(dplane_netlink_information_fetch, &info->nls,
-			   info, 5, 0);
+	netlink_parse_info(dplane_netlink_information_fetch, &info->nls, info,
+			   5, 0);
 
 	return 0;
 }
@@ -531,9 +531,8 @@ static void netlink_install_filter(int sock, uint32_t pid, uint32_t dplane_pid)
 			     safe_strerror(errno));
 }
 
-void netlink_parse_rtattr_flags(struct rtattr **tb, int max,
-				struct rtattr *rta, int len,
-				unsigned short flags)
+void netlink_parse_rtattr_flags(struct rtattr **tb, int max, struct rtattr *rta,
+				int len, unsigned short flags)
 {
 	unsigned short type;
 
@@ -973,9 +972,8 @@ int netlink_parse_info(int (*filter)(struct nlmsghdr *, ns_id_t, int),
 
 			/* Error handling. */
 			if (h->nlmsg_type == NLMSG_ERROR) {
-				int err = netlink_parse_error(nl, h,
-							      zns->is_cmd,
-							      startup);
+				int err = netlink_parse_error(
+					nl, h, zns->is_cmd, startup);
 				if (err == 1) {
 					if (!(h->nlmsg_flags & NLM_F_MULTI))
 						return 0;
@@ -1190,8 +1188,8 @@ static int nl_batch_read_resp(struct nl_batch *bth)
 		}
 
 		if (h->nlmsg_type == NLMSG_ERROR) {
-			int err = netlink_parse_error(nl, h,
-						      bth->zns->is_cmd, false);
+			int err = netlink_parse_error(nl, h, bth->zns->is_cmd,
+						      false);
 
 			if (err == -1)
 				dplane_ctx_set_status(
@@ -1510,8 +1508,8 @@ void kernel_init(struct zebra_ns *zns)
 
 	/* Outbound socket for dplane programming of the host OS. */
 	snprintf(zns->netlink_dplane_out.name,
-		 sizeof(zns->netlink_dplane_out.name),
-		 "netlink-dp (NS %u)", zns->ns_id);
+		 sizeof(zns->netlink_dplane_out.name), "netlink-dp (NS %u)",
+		 zns->ns_id);
 	zns->netlink_dplane_out.sock = -1;
 	if (netlink_socket(&zns->netlink_dplane_out, 0, zns->ns_id) < 0) {
 		zlog_err("Failure to create %s socket",
@@ -1521,8 +1519,8 @@ void kernel_init(struct zebra_ns *zns)
 
 	/* Inbound socket for OS events coming to the dplane. */
 	snprintf(zns->netlink_dplane_in.name,
-		 sizeof(zns->netlink_dplane_in.name),
-		 "netlink-dp-in (NS %u)", zns->ns_id);
+		 sizeof(zns->netlink_dplane_in.name), "netlink-dp-in (NS %u)",
+		 zns->ns_id);
 	zns->netlink_dplane_in.sock = -1;
 	if (netlink_socket(&zns->netlink_dplane_in, groups, zns->ns_id) < 0) {
 		zlog_err("Failure to create %s socket",
@@ -1599,8 +1597,7 @@ void kernel_init(struct zebra_ns *zns)
 	/* Set filter for inbound sockets, to exclude events we've generated
 	 * ourselves.
 	 */
-	netlink_install_filter(zns->netlink.sock,
-			       zns->netlink_cmd.snl.nl_pid,
+	netlink_install_filter(zns->netlink.sock, zns->netlink_cmd.snl.nl_pid,
 			       zns->netlink_dplane_out.snl.nl_pid);
 
 	netlink_install_filter(zns->netlink_dplane_in.sock,
diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c
index 1290a4524..2a731b687 100644
--- a/zebra/kernel_socket.c
+++ b/zebra/kernel_socket.c
@@ -816,7 +816,7 @@ static void ifam_read_mesg(struct ifa_msghdr *ifm, union sockunion *addr,
 				__func__, ifm->ifam_index,
 				(ifnlen ? ifname : "(nil)"),
 				rtatostr(ifm->ifam_addrs, fbuf, sizeof(fbuf)),
-				ifm->ifam_flags, addr, masklen,	brd, &dst,
+				ifm->ifam_flags, addr, masklen, brd, &dst,
 				&gateway);
 		} break;
 		default:
@@ -938,9 +938,10 @@ static int rtm_read_mesg(struct rt_msghdr *rtm, union sockunion *dest,
 
 	/* rt_msghdr version check. */
 	if (rtm->rtm_version != RTM_VERSION)
-		flog_warn(EC_ZEBRA_RTM_VERSION_MISMATCH,
-			  "Routing message version different %d should be %d.This may cause problem",
-			  rtm->rtm_version, RTM_VERSION);
+		flog_warn(
+			EC_ZEBRA_RTM_VERSION_MISMATCH,
+			"Routing message version different %d should be %d.This may cause problem",
+			rtm->rtm_version, RTM_VERSION);
 
 	/* Be sure structure is cleared */
 	memset(dest, 0, sizeof(union sockunion));
diff --git a/zebra/zebra_dplane.c b/zebra/zebra_dplane.c
index ee99be5eb..deaefd690 100644
--- a/zebra/zebra_dplane.c
+++ b/zebra/zebra_dplane.c
@@ -4850,8 +4850,8 @@ static int dplane_incoming_read(struct thread *event)
 	kernel_dplane_read(&zi->info);
 
 	/* Re-start read task */
-	thread_add_read(zdplane_info.dg_master, dplane_incoming_read,
-			zi, zi->info.nls.sock, &zi->t_read);
+	thread_add_read(zdplane_info.dg_master, dplane_incoming_read, zi,
+			zi->info.nls.sock, &zi->t_read);
 
 	return 0;
 }
@@ -4870,12 +4870,11 @@ void zebra_dplane_ns_enable(struct zebra_ns *zns, bool enabled)
 	struct dplane_zns_info *zi;
 
 	if (IS_ZEBRA_DEBUG_DPLANE)
-		zlog_debug("%s: %s for nsid %u",
-			   __func__, (enabled ? "ENABLED" : "DISABLED"),
-			   zns->ns_id);
+		zlog_debug("%s: %s for nsid %u", __func__,
+			   (enabled ? "ENABLED" : "DISABLED"), zns->ns_id);
 
 	/* Search for an existing zns info entry */
-	frr_each(zns_info_list, &zdplane_info.dg_zns_list, zi) {
+	frr_each (zns_info_list, &zdplane_info.dg_zns_list, zi) {
 		if (zi->info.ns_id == zns->ns_id)
 			break;
 	}
@@ -4890,8 +4889,8 @@ void zebra_dplane_ns_enable(struct zebra_ns *zns, bool enabled)
 			zns_info_list_add_tail(&zdplane_info.dg_zns_list, zi);
 
 			if (IS_ZEBRA_DEBUG_DPLANE)
-				zlog_debug("%s: nsid %u, new zi %p",
-					   __func__, zns->ns_id, zi);
+				zlog_debug("%s: nsid %u, new zi %p", __func__,
+					   zns->ns_id, zi);
 		}
 
 		/* Make sure we're up-to-date with the zns object */
@@ -4907,15 +4906,15 @@ void zebra_dplane_ns_enable(struct zebra_ns *zns, bool enabled)
 #endif
 	} else if (zi) {
 		if (IS_ZEBRA_DEBUG_DPLANE)
-			zlog_debug("%s: nsid %u, deleting zi %p",
-				   __func__, zns->ns_id, zi);
+			zlog_debug("%s: nsid %u, deleting zi %p", __func__,
+				   zns->ns_id, zi);
 
 		/* Stop reading, free memory */
 		zns_info_list_del(&zdplane_info.dg_zns_list, zi);
 
 		if (zdplane_info.dg_master)
-			thread_cancel_async(zdplane_info.dg_master,
-					    &zi->t_read, NULL);
+			thread_cancel_async(zdplane_info.dg_master, &zi->t_read,
+					    NULL);
 
 		XFREE(MTYPE_DP_NS, zi);
 	}
@@ -5091,8 +5090,8 @@ static void kernel_dplane_log_detail(struct zebra_dplane_ctx *ctx)
 	case DPLANE_OP_INTF_ADDR_DEL:
 		zlog_debug("Dplane incoming op %s, intf %s, addr %pFX",
 			   dplane_op2str(dplane_ctx_get_op(ctx)),
-					 dplane_ctx_get_ifname(ctx),
-					 dplane_ctx_get_intf_addr(ctx));
+			   dplane_ctx_get_ifname(ctx),
+			   dplane_ctx_get_intf_addr(ctx));
 		break;
 	}
 }
@@ -5582,7 +5581,7 @@ static int dplane_check_shutdown_status(struct thread *event)
 		zlog_debug("Zebra dataplane shutdown status check called");
 
 	/* Remove any zns info entries as we stop the dplane pthread. */
-	frr_each_safe(zns_info_list, &zdplane_info.dg_zns_list, zi) {
+	frr_each_safe (zns_info_list, &zdplane_info.dg_zns_list, zi) {
 		zns_info_list_del(&zdplane_info.dg_zns_list, zi);
 
 		if (zdplane_info.dg_master)
@@ -5922,11 +5921,10 @@ void zebra_dplane_start(void)
 			 &zdplane_info.dg_t_update);
 
 	/* Enqueue reads if necessary */
-	frr_each(zns_info_list, &zdplane_info.dg_zns_list, zi) {
+	frr_each (zns_info_list, &zdplane_info.dg_zns_list, zi) {
 #if defined(HAVE_NETLINK)
-			thread_add_read(zdplane_info.dg_master,
-					dplane_incoming_read, zi,
-					zi->info.nls.sock, &zi->t_read);
+		thread_add_read(zdplane_info.dg_master, dplane_incoming_read,
+				zi, zi->info.nls.sock, &zi->t_read);
 #endif
 	}
 
diff --git a/zebra/zebra_dplane.h b/zebra/zebra_dplane.h
index 6f70972d0..c51ada732 100644
--- a/zebra/zebra_dplane.h
+++ b/zebra/zebra_dplane.h
@@ -478,8 +478,7 @@ void dplane_ctx_set_intf_dest(struct zebra_dplane_ctx *ctx,
 			      const struct prefix *p);
 bool dplane_ctx_intf_has_label(const struct zebra_dplane_ctx *ctx);
 const char *dplane_ctx_get_intf_label(const struct zebra_dplane_ctx *ctx);
-void dplane_ctx_set_intf_label(struct zebra_dplane_ctx *ctx,
-			       const char *label);
+void dplane_ctx_set_intf_label(struct zebra_dplane_ctx *ctx, const char *label);
 
 /* Accessors for MAC information */
 vlanid_t dplane_ctx_mac_get_vlan(const struct zebra_dplane_ctx *ctx);

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.

@mjstapp
Copy link
Copy Markdown
Contributor Author

mjstapp commented Jul 16, 2021

Fixed some more nsid problems

@LabN-CI
Copy link
Copy Markdown
Collaborator

LabN-CI commented Jul 16, 2021

Outdated results 💚

Basic BGPD CI results: SUCCESS, 0 tests failed

_ _
Result SUCCESS git merge/9052 d3848d5
Date 07/16/2021
Start 10:32:05
Finish 10:57:34
Run-Time 25:29
Total 1813
Pass 1813
Fail 0
Valgrind-Errors
Valgrind-Loss
Details vncregress-2021-07-16-10:32:05.txt
Log autoscript-2021-07-16-10:33:18.log.bz2
Memory 500 520 419

For details, please contact louberger

@mjstapp mjstapp force-pushed the dplane_incoming_dev branch from d3848d5 to 5005ccd Compare July 16, 2021 16:14
@mjstapp
Copy link
Copy Markdown
Contributor Author

mjstapp commented Jul 16, 2021

Pushed some polly cleanups

@LabN-CI
Copy link
Copy Markdown
Collaborator

LabN-CI commented Jul 16, 2021

Outdated results 💚

Basic BGPD CI results: SUCCESS, 0 tests failed

_ _
Result SUCCESS git merge/9052 5005ccd
Date 07/16/2021
Start 12:16:19
Finish 12:41:58
Run-Time 25:39
Total 1813
Pass 1813
Fail 0
Valgrind-Errors
Valgrind-Loss
Details vncregress-2021-07-16-12:16:19.txt
Log autoscript-2021-07-16-12:17:34.log.bz2
Memory 481 478 430

For details, please contact louberger

@mjstapp
Copy link
Copy Markdown
Contributor Author

mjstapp commented Jul 19, 2021

CI:rerun

@NetDEF-CI
Copy link
Copy Markdown
Collaborator

NetDEF-CI commented Jul 19, 2021

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-20354/

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.

@pushpasis
Copy link
Copy Markdown
Contributor

Hi @mjstapp

I see this PR is in Draft mode. Is it not ready for review then? I can take a look otherwise.

Thanks
-Pushpasis

@mjstapp
Copy link
Copy Markdown
Contributor Author

mjstapp commented Jul 27, 2021

Oh, just the opposite! I opened it as a draft in order to have discussion and review on the approach and changes. I wanted to make it clear that I would rather not "just merge" it, until there's some agreement that this pattern, this approach, is reasonable.

Hi @mjstapp

I see this PR is in Draft mode. Is it not ready for review then? I can take a look otherwise.

Thanks
-Pushpasis

@mjstapp mjstapp force-pushed the dplane_incoming_dev branch from 5005ccd to 073ff62 Compare August 4, 2021 13:58
Copy link
Copy Markdown

@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/2b9829d69e94d1c7b54f4c299a1c6c07/raw/a24e430357f1a4492a5437daefc61c510561fd46/cr_9052_1628085487.diff | git apply

diff --git a/zebra/if_netlink.c b/zebra/if_netlink.c
index a7fdddc978..f29761b8a0 100644
--- a/zebra/if_netlink.c
+++ b/zebra/if_netlink.c
@@ -1490,11 +1490,11 @@ int netlink_interface_addr_dplane(struct nlmsghdr *h, ns_id_t ns_id,
 	len = h->nlmsg_len - NLMSG_LENGTH(sizeof(struct ifaddrmsg));
 	if (len < 0) {
 		if (IS_ZEBRA_DEBUG_KERNEL)
-			zlog_debug("%s: %s: netlink msg bad size: %d %zu",
-				   __func__, nl_msg_type_to_str(h->nlmsg_type),
-				   h->nlmsg_len,
-				   (size_t)NLMSG_LENGTH(
-					   sizeof(struct ifaddrmsg)));
+			zlog_debug(
+				"%s: %s: netlink msg bad size: %d %zu",
+				__func__, nl_msg_type_to_str(h->nlmsg_type),
+				h->nlmsg_len,
+				(size_t)NLMSG_LENGTH(sizeof(struct ifaddrmsg)));
 		return -1;
 	}
 
@@ -1509,8 +1509,8 @@ int netlink_interface_addr_dplane(struct nlmsghdr *h, ns_id_t ns_id,
 	if (IS_ZEBRA_DEBUG_KERNEL) { /* remove this line to see initial ifcfg */
 		char buf[PREFIX_STRLEN];
 
-		zlog_debug("%s: %s nsid %u ifindex %u flags 0x%x:",
-			   __func__, nl_msg_type_to_str(h->nlmsg_type), ns_id,
+		zlog_debug("%s: %s nsid %u ifindex %u flags 0x%x:", __func__,
+			   nl_msg_type_to_str(h->nlmsg_type), ns_id,
 			   ifa->ifa_index, kernel_flags);
 		if (tb[IFA_LOCAL])
 			zlog_debug("  IFA_LOCAL     %s/%d",
@@ -1544,8 +1544,8 @@ int netlink_interface_addr_dplane(struct nlmsghdr *h, ns_id_t ns_id,
 
 	/* Validate prefix length */
 
-	if (ifa->ifa_family == AF_INET &&
-	    ifa->ifa_prefixlen > IPV4_MAX_BITLEN) {
+	if (ifa->ifa_family == AF_INET
+	    && ifa->ifa_prefixlen > IPV4_MAX_BITLEN) {
 		if (IS_ZEBRA_DEBUG_KERNEL)
 			zlog_debug("%s: %s: Invalid prefix length: %u",
 				   __func__, nl_msg_type_to_str(h->nlmsg_type),
@@ -1567,8 +1567,8 @@ int netlink_interface_addr_dplane(struct nlmsghdr *h, ns_id_t ns_id,
 		 * notification till IPv6 DAD has completed, but at init
 		 * time, FRR does query for and will receive all addresses.
 		 */
-		if (h->nlmsg_type == RTM_NEWADDR &&
-		    (kernel_flags & (IFA_F_DADFAILED | IFA_F_TENTATIVE))) {
+		if (h->nlmsg_type == RTM_NEWADDR
+		    && (kernel_flags & (IFA_F_DADFAILED | IFA_F_TENTATIVE))) {
 			if (IS_ZEBRA_DEBUG_KERNEL)
 				zlog_debug("%s: %s: Invalid/tentative addr",
 					   __func__,
@@ -1704,8 +1704,8 @@ int netlink_interface_addr_ctx(struct zebra_dplane_ctx *ctx)
 	addr = dplane_ctx_get_intf_addr(ctx);
 
 	if (IS_ZEBRA_DEBUG_KERNEL)
-		zlog_debug("%s: %s: ifindex %u, addr %pFX",
-			   __func__, dplane_op2str(op), ifindex, addr);
+		zlog_debug("%s: %s: ifindex %u, addr %pFX", __func__,
+			   dplane_op2str(op), ifindex, addr);
 
 	/* Is there a peer or broadcast address? */
 	dest = dplane_ctx_get_intf_dest(ctx);
@@ -1731,30 +1731,27 @@ int netlink_interface_addr_ctx(struct zebra_dplane_ctx *ctx)
 	/* Register interface address to the interface. */
 	if (addr->family == AF_INET) {
 		if (op == DPLANE_OP_INTF_ADDR_ADD)
-			connected_add_ipv4(ifp, flags, &addr->u.prefix4,
-					   addr->prefixlen,
-					   dest ? &dest->u.prefix4 : NULL,
-					   label, metric);
+			connected_add_ipv4(
+				ifp, flags, &addr->u.prefix4, addr->prefixlen,
+				dest ? &dest->u.prefix4 : NULL, label, metric);
 		else if (CHECK_FLAG(flags, ZEBRA_IFA_PEER)) {
 			/* Delete with a peer address */
-			connected_delete_ipv4(
-				ifp, flags, &addr->u.prefix4,
-				addr->prefixlen, &dest->u.prefix4);
+			connected_delete_ipv4(ifp, flags, &addr->u.prefix4,
+					      addr->prefixlen,
+					      &dest->u.prefix4);
 		} else
-			connected_delete_ipv4(
-				ifp, flags, &addr->u.prefix4,
-				addr->prefixlen, NULL);
+			connected_delete_ipv4(ifp, flags, &addr->u.prefix4,
+					      addr->prefixlen, NULL);
 	}
 
 	if (addr->family == AF_INET6) {
 		if (op == DPLANE_OP_INTF_ADDR_ADD) {
-			connected_add_ipv6(ifp, flags,
-					   &addr->u.prefix6,
+			connected_add_ipv6(ifp, flags, &addr->u.prefix6,
 					   dest ? &dest->u.prefix6 : NULL,
 					   addr->prefixlen, label, metric);
 		} else
-			connected_delete_ipv6(ifp, &addr->u.prefix6,
-					      NULL, addr->prefixlen);
+			connected_delete_ipv6(ifp, &addr->u.prefix6, NULL,
+					      addr->prefixlen);
 	}
 
 	/*
diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c
index 9e4a2720a0..e085cbd850 100644
--- a/zebra/kernel_socket.c
+++ b/zebra/kernel_socket.c
@@ -816,7 +816,7 @@ static void ifam_read_mesg(struct ifa_msghdr *ifm, union sockunion *addr,
 				__func__, ifm->ifam_index,
 				(ifnlen ? ifname : "(nil)"),
 				rtatostr(ifm->ifam_addrs, fbuf, sizeof(fbuf)),
-				ifm->ifam_flags, addr, masklen,	brd, &dst,
+				ifm->ifam_flags, addr, masklen, brd, &dst,
 				&gateway);
 		} break;
 		default:
@@ -944,9 +944,10 @@ static int rtm_read_mesg(struct rt_msghdr *rtm, union sockunion *dest,
 
 	/* rt_msghdr version check. */
 	if (rtm->rtm_version != RTM_VERSION)
-		flog_warn(EC_ZEBRA_RTM_VERSION_MISMATCH,
-			  "Routing message version different %d should be %d.This may cause problem",
-			  rtm->rtm_version, RTM_VERSION);
+		flog_warn(
+			EC_ZEBRA_RTM_VERSION_MISMATCH,
+			"Routing message version different %d should be %d.This may cause problem",
+			rtm->rtm_version, RTM_VERSION);
 
 	/* Be sure structure is cleared */
 	memset(dest, 0, sizeof(union sockunion));
diff --git a/zebra/zebra_dplane.c b/zebra/zebra_dplane.c
index c590602dfe..6f2e49376d 100644
--- a/zebra/zebra_dplane.c
+++ b/zebra/zebra_dplane.c
@@ -4882,12 +4882,11 @@ void zebra_dplane_ns_enable(struct zebra_ns *zns, bool enabled)
 	struct dplane_zns_info *zi;
 
 	if (IS_ZEBRA_DEBUG_DPLANE)
-		zlog_debug("%s: %s for nsid %u",
-			   __func__, (enabled ? "ENABLED" : "DISABLED"),
-			   zns->ns_id);
+		zlog_debug("%s: %s for nsid %u", __func__,
+			   (enabled ? "ENABLED" : "DISABLED"), zns->ns_id);
 
 	/* Search for an existing zns info entry */
-	frr_each(zns_info_list, &zdplane_info.dg_zns_list, zi) {
+	frr_each (zns_info_list, &zdplane_info.dg_zns_list, zi) {
 		if (zi->info.ns_id == zns->ns_id)
 			break;
 	}
@@ -4902,8 +4901,8 @@ void zebra_dplane_ns_enable(struct zebra_ns *zns, bool enabled)
 			zns_info_list_add_tail(&zdplane_info.dg_zns_list, zi);
 
 			if (IS_ZEBRA_DEBUG_DPLANE)
-				zlog_debug("%s: nsid %u, new zi %p",
-					   __func__, zns->ns_id, zi);
+				zlog_debug("%s: nsid %u, new zi %p", __func__,
+					   zns->ns_id, zi);
 		}
 
 		/* Make sure we're up-to-date with the zns object */
@@ -4919,8 +4918,8 @@ void zebra_dplane_ns_enable(struct zebra_ns *zns, bool enabled)
 #endif
 	} else if (zi) {
 		if (IS_ZEBRA_DEBUG_DPLANE)
-			zlog_debug("%s: nsid %u, deleting zi %p",
-				   __func__, zns->ns_id, zi);
+			zlog_debug("%s: nsid %u, deleting zi %p", __func__,
+				   zns->ns_id, zi);
 
 		/* Stop reading, free memory */
 		zns_info_list_del(&zdplane_info.dg_zns_list, zi);
@@ -5594,7 +5593,7 @@ static int dplane_check_shutdown_status(struct thread *event)
 		zlog_debug("Zebra dataplane shutdown status check called");
 
 	/* Remove any zns info entries as we stop the dplane pthread. */
-	frr_each_safe(zns_info_list, &zdplane_info.dg_zns_list, zi) {
+	frr_each_safe (zns_info_list, &zdplane_info.dg_zns_list, zi) {
 		zns_info_list_del(&zdplane_info.dg_zns_list, zi);
 
 		if (zdplane_info.dg_master)
@@ -5934,7 +5933,7 @@ void zebra_dplane_start(void)
 			 &zdplane_info.dg_t_update);
 
 	/* Enqueue reads if necessary */
-	frr_each(zns_info_list, &zdplane_info.dg_zns_list, zi) {
+	frr_each (zns_info_list, &zdplane_info.dg_zns_list, zi) {
 #if defined(HAVE_NETLINK)
 		thread_add_read(zdplane_info.dg_master, dplane_incoming_read,
 				zi, zi->info.nls.sock, &zi->t_read);

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.

@mjstapp mjstapp marked this pull request as ready for review August 4, 2021 13:58
@mjstapp
Copy link
Copy Markdown
Contributor Author

mjstapp commented Aug 4, 2021

Rebased, resolved conflict, removed 'draft' status

@LabN-CI
Copy link
Copy Markdown
Collaborator

LabN-CI commented Aug 4, 2021

Outdated results 💚

Basic BGPD CI results: SUCCESS, 0 tests failed

_ _
Result SUCCESS git merge/9052 073ff62
Date 08/04/2021
Start 10:22:02
Finish 10:47:40
Run-Time 25:38
Total 1813
Pass 1813
Fail 0
Valgrind-Errors
Valgrind-Loss
Details vncregress-2021-08-04-10:22:02.txt
Log autoscript-2021-08-04-10:23:26.log.bz2
Memory 512 485 429

For details, please contact louberger

@sworleys
Copy link
Copy Markdown
Member

sworleys commented Sep 8, 2021

small nit of moving some functionality out of if_netlink.c but it can come later.

Copy link
Copy Markdown
Member

@donaldsharp donaldsharp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@qlyoung
Copy link
Copy Markdown
Member

qlyoung commented Sep 8, 2021

@frrbot rereview

@qlyoung
Copy link
Copy Markdown
Member

qlyoung commented Sep 8, 2021

Is your copy of clang-format producing different results from the style warnings?

@mjstapp mjstapp force-pushed the dplane_incoming_dev branch from 073ff62 to 5adac28 Compare September 9, 2021 13:00
@mjstapp
Copy link
Copy Markdown
Contributor Author

mjstapp commented Sep 9, 2021

Pushed some style fixes to make polly happier; rebased to newer master.

@LabN-CI
Copy link
Copy Markdown
Collaborator

LabN-CI commented Sep 9, 2021

Outdated results 💚

Basic BGPD CI results: SUCCESS, 0 tests failed

_ _
Result SUCCESS git merge/9052 5adac28
Date 09/09/2021
Start 09:21:16
Finish 09:47:33
Run-Time 26:17
Total 1813
Pass 1813
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2021-09-09-09:21:16.txt
Log autoscript-2021-09-09-09:22:31.log.bz2
Memory 508 513 424

For details, please contact louberger

@donaldsharp
Copy link
Copy Markdown
Member

ci:rerun

@NetDEF-CI
Copy link
Copy Markdown
Collaborator

NetDEF-CI commented Sep 10, 2021

Continuous Integration Result: FAILED

Continuous Integration Result: FAILED

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

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: Successful

Basic Tests: Failed

Topotests Ubuntu 18.04 amd64 part 7: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO7U18AMD64-113/test

Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 7:

rt1: Daemon isisd not running

From frr rt1 isisd log file:
2021/09/09 21:37:14.278 ISIS: [HX52X-E87E8] ISIS-SPF (1) L1 SPF schedule called, lastrun 0 sec ago Caller: lsp_update isisd/isis_lsp.c:574
2021/09/09 21:37:14.278 ISIS: [KD9RA-6JFGA] ISIS-SPF (1) L1 SPF scheduled 1 sec from now
2021/09/09 21:37:14.278 ISIS: [HX52X-E87E8] ISIS-SPF (1) L2 SPF schedule called, lastrun 0 sec ago Caller: lsp_update isisd/isis_lsp.c:574
2021/09/09 21:37:14.278 ISIS: [KD9RA-6JFGA] ISIS-SPF (1) L2 SPF scheduled 1 sec from now
2021/09/09 21:37:15.278 ISIS: [N48RF-Z09QJ] ISIS-SPF (1) L1 SPF needed, periodic SPF
2021/09/09 21:37:15.280 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.6/32@10.0.255.8 with LDP
2021/09/09 21:37:15.280 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.4/32@10.0.255.8 with LDP
2021/09/09 21:37:15.280 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.2/32@10.0.255.8 with LDP
2021/09/09 21:37:15.280 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.7/32@10.0.255.8 with LDP
2021/09/09 21:37:15.280 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.5/32@10.0.255.8 with LDP
2021/09/09 21:37:15.280 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.3/32@10.0.255.8 with LDP
2021/09/09 21:37:15.280 ISIS: [VNT16-WVA2E] ISIS-Rte (1): route changed: 2001:db8::8/128, change: nhops num (old: 1, new: 2)
2021/09/09 21:37:27.003 ISIS: [N48RF-Z09QJ] ISIS-SPF (1) L2 SPF needed, periodic SPF
2021/09/09 21:37:27.004 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.6/32@10.0.255.8 with LDP
2021/09/09 21:37:27.004 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.4/32@10.0.255.8 with LDP
2021/09/09 21:37:27.004 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.2/32@10.0.255.8 with LDP
2021/09/09 21:37:27.004 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.7/32@10.0.255.8 with LDP
2021/09/09 21:37:27.004 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.5/32@10.0.255.8 with LDP
2021/09/09 21:37:27.004 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.3/32@10.0.255.8 with LDP
2021/09/09 21:37:27.005 ISIS: [VNT16-WVA2E] ISIS-Rte (1): route changed: 2001:db8::8/128, change: nhops num (old: 1, new: 2)

see full log at https://ci1.netdef.org/browse/FRR-PULLREQ2-113/artifact/TOPO7U18AMD64/ErrorLog/log_topotests.txt

Topotests debian 10 amd64 part 1: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO1DEB10AMD64-113/test

Topology Tests failed for Topotests debian 10 amd64 part 1:

r1 failed SHOW BGP IPv6 SUMMARY check:
--- actual SHOW BGP IPv6 SUMMARY
+++ expected SHOW BGP IPv6 SUMMARY
@@ -4,5 +4,5 @@
 Peers 2, using XXXX KiB of memory
 
 Neighbor         V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt Desc
-fc00:0:0:8::1000 4        100         0         0        0    0    0    never      Connect        0 Transit_cogent_v6
-fc00:0:0:8::2000 4        200         0         0        0    0    0    never      Connect        0 Client_Toto_default
+fc00:0:0:8::1000 4        100         0         0        0    0    0    never       Active        0 Transit_cogent_v6
+fc00:0:0:8::2000 4        200         0         0        0    0    0    never       Active        0 Client_Toto_default

see full log at https://ci1.netdef.org/browse/FRR-PULLREQ2-113/artifact/TOPO1DEB10AMD64/ErrorLog/log_topotests.txt

Topotests debian 10 amd64 part 7: Failed (click for details) Topotests debian 10 amd64 part 7: No useful log found
Successful on other platforms/tests
  • Topotests Ubuntu 18.04 arm8 part 3
  • Topotests Ubuntu 18.04 amd64 part 2
  • Addresssanitizer topotests part 5
  • Topotests debian 10 amd64 part 4
  • Topotests Ubuntu 18.04 i386 part 3
  • Addresssanitizer topotests part 4
  • Topotests debian 10 amd64 part 8
  • Addresssanitizer topotests part 0
  • Topotests Ubuntu 18.04 arm8 part 4
  • Topotests debian 10 amd64 part 9
  • Topotests Ubuntu 18.04 arm8 part 9
  • Topotests Ubuntu 18.04 amd64 part 3
  • IPv6 protocols on Ubuntu 18.04
  • Topotests debian 10 amd64 part 3
  • Topotests debian 10 amd64 part 0
  • Ubuntu 16.04 deb pkg check
  • Topotests Ubuntu 18.04 arm8 part 2
  • Ubuntu 20.04 deb pkg check
  • Topotests Ubuntu 18.04 arm8 part 7
  • Topotests Ubuntu 18.04 amd64 part 8
  • Topotests Ubuntu 18.04 i386 part 1
  • Topotests Ubuntu 18.04 amd64 part 4
  • IPv4 protocols on Ubuntu 18.04
  • Addresssanitizer topotests part 9
  • Topotests Ubuntu 18.04 i386 part 6
  • IPv4 ldp protocol on Ubuntu 18.04
  • Topotests Ubuntu 18.04 arm8 part 0
  • Topotests Ubuntu 18.04 i386 part 8
  • Topotests Ubuntu 18.04 amd64 part 9
  • Debian 10 deb pkg check
  • Addresssanitizer topotests part 7
  • Topotests Ubuntu 18.04 amd64 part 5
  • Addresssanitizer topotests part 6
  • Topotests Ubuntu 18.04 i386 part 5
  • Addresssanitizer topotests part 3
  • Topotests Ubuntu 18.04 i386 part 0
  • CentOS 7 rpm pkg check
  • Topotests Ubuntu 18.04 arm8 part 5
  • Fedora 29 rpm pkg check
  • Topotests Ubuntu 18.04 amd64 part 0
  • Topotests debian 10 amd64 part 2
  • Addresssanitizer topotests part 2
  • Static analyzer (clang)
  • Topotests debian 10 amd64 part 5
  • Topotests Ubuntu 18.04 amd64 part 1
  • Debian 9 deb pkg check
  • Ubuntu 18.04 deb pkg check
  • Addresssanitizer topotests part 1
  • Topotests Ubuntu 18.04 i386 part 4
  • Topotests Ubuntu 18.04 i386 part 9
  • Topotests Ubuntu 18.04 i386 part 2
  • Addresssanitizer topotests part 8
  • Topotests Ubuntu 18.04 arm8 part 6
  • Topotests debian 10 amd64 part 6
  • Topotests Ubuntu 18.04 arm8 part 1
  • Topotests Ubuntu 18.04 arm8 part 8
  • Topotests Ubuntu 18.04 i386 part 7
  • Topotests Ubuntu 18.04 amd64 part 6

Warnings Generated during build:

Checkout code: Successful with additional warnings
Topotests Ubuntu 18.04 amd64 part 7: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO7U18AMD64-113/test

Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 7:

rt1: Daemon isisd not running

From frr rt1 isisd log file:
2021/09/09 21:37:14.278 ISIS: [HX52X-E87E8] ISIS-SPF (1) L1 SPF schedule called, lastrun 0 sec ago Caller: lsp_update isisd/isis_lsp.c:574
2021/09/09 21:37:14.278 ISIS: [KD9RA-6JFGA] ISIS-SPF (1) L1 SPF scheduled 1 sec from now
2021/09/09 21:37:14.278 ISIS: [HX52X-E87E8] ISIS-SPF (1) L2 SPF schedule called, lastrun 0 sec ago Caller: lsp_update isisd/isis_lsp.c:574
2021/09/09 21:37:14.278 ISIS: [KD9RA-6JFGA] ISIS-SPF (1) L2 SPF scheduled 1 sec from now
2021/09/09 21:37:15.278 ISIS: [N48RF-Z09QJ] ISIS-SPF (1) L1 SPF needed, periodic SPF
2021/09/09 21:37:15.280 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.6/32@10.0.255.8 with LDP
2021/09/09 21:37:15.280 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.4/32@10.0.255.8 with LDP
2021/09/09 21:37:15.280 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.2/32@10.0.255.8 with LDP
2021/09/09 21:37:15.280 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.7/32@10.0.255.8 with LDP
2021/09/09 21:37:15.280 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.5/32@10.0.255.8 with LDP
2021/09/09 21:37:15.280 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.3/32@10.0.255.8 with LDP
2021/09/09 21:37:15.280 ISIS: [VNT16-WVA2E] ISIS-Rte (1): route changed: 2001:db8::8/128, change: nhops num (old: 1, new: 2)
2021/09/09 21:37:27.003 ISIS: [N48RF-Z09QJ] ISIS-SPF (1) L2 SPF needed, periodic SPF
2021/09/09 21:37:27.004 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.6/32@10.0.255.8 with LDP
2021/09/09 21:37:27.004 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.4/32@10.0.255.8 with LDP
2021/09/09 21:37:27.004 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.2/32@10.0.255.8 with LDP
2021/09/09 21:37:27.004 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.7/32@10.0.255.8 with LDP
2021/09/09 21:37:27.004 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.5/32@10.0.255.8 with LDP
2021/09/09 21:37:27.004 ISIS: [KP4EP-91Y4X] ISIS-LFA: registering RLFA 10.0.255.3/32@10.0.255.8 with LDP
2021/09/09 21:37:27.005 ISIS: [VNT16-WVA2E] ISIS-Rte (1): route changed: 2001:db8::8/128, change: nhops num (old: 1, new: 2)

see full log at https://ci1.netdef.org/browse/FRR-PULLREQ2-113/artifact/TOPO7U18AMD64/ErrorLog/log_topotests.txt

Topotests debian 10 amd64 part 1: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO1DEB10AMD64-113/test

Topology Tests failed for Topotests debian 10 amd64 part 1:

r1 failed SHOW BGP IPv6 SUMMARY check:
--- actual SHOW BGP IPv6 SUMMARY
+++ expected SHOW BGP IPv6 SUMMARY
@@ -4,5 +4,5 @@
 Peers 2, using XXXX KiB of memory
 
 Neighbor         V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt Desc
-fc00:0:0:8::1000 4        100         0         0        0    0    0    never      Connect        0 Transit_cogent_v6
-fc00:0:0:8::2000 4        200         0         0        0    0    0    never      Connect        0 Client_Toto_default
+fc00:0:0:8::1000 4        100         0         0        0    0    0    never       Active        0 Transit_cogent_v6
+fc00:0:0:8::2000 4        200         0         0        0    0    0    never       Active        0 Client_Toto_default

see full log at https://ci1.netdef.org/browse/FRR-PULLREQ2-113/artifact/TOPO1DEB10AMD64/ErrorLog/log_topotests.txt

Topotests debian 10 amd64 part 7: Failed (click for details) Topotests debian 10 amd64 part 7: No useful log found
Report for zebra_dplane.c | 4 issues
===============================================
< WARNING: space prohibited between function name and open parenthesis '('
< #5580: FILE: /tmp/f1-10359/zebra_dplane.c:5580:
< WARNING: space prohibited between function name and open parenthesis '('
< #5920: FILE: /tmp/f1-10359/zebra_dplane.c:5920:

@NetDEF-CI
Copy link
Copy Markdown
Collaborator

NetDEF-CI commented Sep 10, 2021

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-PULLREQ2-122/

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 zebra_dplane.c | 4 issues
===============================================
< WARNING: space prohibited between function name and open parenthesis '('
< #5580: FILE: /tmp/f1-22534/zebra_dplane.c:5580:
< WARNING: space prohibited between function name and open parenthesis '('
< #5920: FILE: /tmp/f1-22534/zebra_dplane.c:5920:

Add a new netlink socket for events coming in from the host OS
to the dataplane system for processing. Rename the existing
outbound dplane socket.

Signed-off-by: Mark Stapp <mjs.ietf@gmail.com>
Use more consistent int type.

Signed-off-by: Mark Stapp <mjs.ietf@gmail.com>
Use const in ipX_martian apis, and in some zebra apis.

Signed-off-by: Mark Stapp <mjs.ietf@gmail.com>
Use the frr format spec instead.

Signed-off-by: Mark Stapp <mjs.ietf@gmail.com>
Add a few more setters for interface data in dplane
contexts.

Signed-off-by: Mark Stapp <mjs.ietf@gmail.com>
Add new dplane op values for incoming interface address add
and delete events.

Signed-off-by: Mark Stapp <mjs.ietf@gmail.com>
Add new apis for dplane interface address handling, based on
the existing api. The existing api is basically split in two:
the first part processes an incoming netlink message in the
dplane pthread, creating a dplane context with info about
the event. The second part runs in the main pthread and uses
the context data to update an interface or connected object.

Signed-off-by: Mark Stapp <mjs.ietf@gmail.com>
Read incoming interface address change notifications in the
dplane pthread; enqueue the events to the main pthread
for processing. This is netlink-only for now - the bsd
kernel socket path remains unchanged.

Signed-off-by: Mark Stapp <mjs.ietf@gmail.com>
Move the handler for incoming interface address events
to a neutral source file - it's not netlink-specific and
shouldn't have been in a netlink file.

Signed-off-by: Mark Stapp <mjs.ietf@gmail.com>
@mjstapp mjstapp force-pushed the dplane_incoming_dev branch from 5adac28 to c6f55fb Compare September 14, 2021 15:08
@mjstapp
Copy link
Copy Markdown
Contributor Author

mjstapp commented Sep 14, 2021

rebase, move interface addr handler to platform-neutral file, fix a couple more style nits

@LabN-CI
Copy link
Copy Markdown
Collaborator

LabN-CI commented Sep 14, 2021

💚 Basic BGPD CI results: SUCCESS, 0 tests failed

Results table
_ _
Result SUCCESS git merge/9052 c6f55fb
Date 09/14/2021
Start 11:47:34
Finish 12:13:59
Run-Time 26:25
Total 1813
Pass 1813
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2021-09-14-11:47:34.txt
Log autoscript-2021-09-14-11:48:55.log.bz2
Memory 504 517 425

For details, please contact louberger

@NetDEF-CI
Copy link
Copy Markdown
Collaborator

NetDEF-CI commented Sep 14, 2021

Continuous Integration Result: FAILED

Continuous Integration Result: FAILED

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

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: Successful

Basic Tests: Failed

Topotests debian 10 amd64 part 0: Failed (click for details) Topotests debian 10 amd64 part 0: No useful log found
Successful on other platforms/tests
  • CentOS 7 rpm pkg check
  • Topotests Ubuntu 18.04 arm8 part 5
  • Addresssanitizer topotests part 6
  • Static analyzer (clang)
  • Topotests debian 10 amd64 part 1
  • Topotests Ubuntu 18.04 i386 part 5
  • Topotests Ubuntu 18.04 amd64 part 1
  • Topotests debian 10 amd64 part 2
  • Topotests debian 10 amd64 part 7
  • Topotests Ubuntu 18.04 i386 part 0
  • Topotests Ubuntu 18.04 arm8 part 0
  • Topotests Ubuntu 18.04 amd64 part 8
  • Addresssanitizer topotests part 0
  • Topotests Ubuntu 18.04 amd64 part 6
  • Topotests debian 10 amd64 part 3
  • Ubuntu 18.04 deb pkg check
  • Topotests Ubuntu 18.04 arm8 part 1
  • Topotests debian 10 amd64 part 6
  • Topotests Ubuntu 18.04 arm8 part 6
  • Addresssanitizer topotests part 1
  • Topotests Ubuntu 18.04 i386 part 4
  • Topotests Ubuntu 18.04 i386 part 9
  • Addresssanitizer topotests part 4
  • Topotests debian 10 amd64 part 5
  • Debian 9 deb pkg check
  • Addresssanitizer topotests part 8
  • Topotests Ubuntu 18.04 i386 part 7
  • Addresssanitizer topotests part 7
  • Topotests Ubuntu 18.04 arm8 part 8
  • Topotests debian 10 amd64 part 4
  • Topotests Ubuntu 18.04 amd64 part 3
  • Topotests Ubuntu 18.04 arm8 part 3
  • Topotests Ubuntu 18.04 i386 part 2
  • Topotests debian 10 amd64 part 9
  • Topotests Ubuntu 18.04 amd64 part 2
  • Addresssanitizer topotests part 5
  • Topotests Ubuntu 18.04 i386 part 6
  • IPv4 ldp protocol on Ubuntu 18.04
  • Ubuntu 16.04 deb pkg check
  • Topotests debian 10 amd64 part 8
  • Topotests Ubuntu 18.04 amd64 part 4
  • IPv6 protocols on Ubuntu 18.04
  • Topotests Ubuntu 18.04 arm8 part 4
  • Topotests Ubuntu 18.04 i386 part 1
  • Topotests Ubuntu 18.04 arm8 part 9
  • Addresssanitizer topotests part 2
  • Topotests Ubuntu 18.04 amd64 part 5
  • Ubuntu 20.04 deb pkg check
  • Debian 10 deb pkg check
  • Topotests Ubuntu 18.04 amd64 part 0
  • Addresssanitizer topotests part 3
  • IPv4 protocols on Ubuntu 18.04
  • Topotests Ubuntu 18.04 amd64 part 7
  • Topotests Ubuntu 18.04 arm8 part 2
  • Topotests Ubuntu 18.04 arm8 part 7
  • Fedora 29 rpm pkg check
  • Addresssanitizer topotests part 9
  • Topotests Ubuntu 18.04 amd64 part 9
  • Topotests Ubuntu 18.04 i386 part 8
  • Topotests Ubuntu 18.04 i386 part 3

Warnings Generated during build:

Checkout code: Successful with additional warnings
Topotests debian 10 amd64 part 0: Failed (click for details) Topotests debian 10 amd64 part 0: No useful log found
Report for zebra_dplane.c | 6 issues
===============================================
< WARNING: space prohibited between function name and open parenthesis '('
< #4872: FILE: /tmp/f1-6656/zebra_dplane.c:4872:
< WARNING: space prohibited between function name and open parenthesis '('
< #5579: FILE: /tmp/f1-6656/zebra_dplane.c:5579:
< WARNING: space prohibited between function name and open parenthesis '('
< #5919: FILE: /tmp/f1-6656/zebra_dplane.c:5919:

@mjstapp
Copy link
Copy Markdown
Contributor Author

mjstapp commented Sep 14, 2021

CI:rerun

@mjstapp
Copy link
Copy Markdown
Contributor Author

mjstapp commented Sep 14, 2021

failed a single timing test by 1/2 second, so have to rerun...

@NetDEF-CI
Copy link
Copy Markdown
Collaborator

Continuous Integration Result: FAILED

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

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: Successful

Basic Tests: Failed

Topotests Ubuntu 18.04 amd64 part 7: Failed (click for details) Topotests Ubuntu 18.04 amd64 part 7: No useful log found
Successful on other platforms/tests
  • Fedora 29 rpm pkg check
  • Addresssanitizer topotests part 6
  • Topotests Ubuntu 18.04 i386 part 5
  • Topotests Ubuntu 18.04 i386 part 0
  • Addresssanitizer topotests part 3
  • Topotests debian 10 amd64 part 1
  • Topotests Ubuntu 18.04 arm8 part 5
  • CentOS 7 rpm pkg check
  • Topotests Ubuntu 18.04 amd64 part 4
  • Topotests Ubuntu 18.04 amd64 part 0
  • Addresssanitizer topotests part 2
  • Topotests debian 10 amd64 part 5
  • Topotests Ubuntu 18.04 amd64 part 1
  • Addresssanitizer topotests part 1
  • Topotests Ubuntu 18.04 i386 part 4
  • Ubuntu 18.04 deb pkg check
  • Topotests Ubuntu 18.04 i386 part 9
  • Topotests debian 10 amd64 part 7
  • Debian 9 deb pkg check
  • Topotests Ubuntu 18.04 amd64 part 6
  • Addresssanitizer topotests part 8
  • Topotests Ubuntu 18.04 arm8 part 8
  • Topotests Ubuntu 18.04 arm8 part 1
  • Topotests Ubuntu 18.04 i386 part 7
  • Topotests Ubuntu 18.04 arm8 part 6
  • Topotests debian 10 amd64 part 6
  • Topotests Ubuntu 18.04 i386 part 2
  • Topotests Ubuntu 18.04 amd64 part 2
  • Addresssanitizer topotests part 5
  • Topotests Ubuntu 18.04 arm8 part 3
  • Topotests debian 10 amd64 part 4
  • Topotests Ubuntu 18.04 i386 part 3
  • Addresssanitizer topotests part 4
  • Addresssanitizer topotests part 0
  • Topotests debian 10 amd64 part 8
  • Topotests debian 10 amd64 part 9
  • Topotests Ubuntu 18.04 arm8 part 4
  • Topotests Ubuntu 18.04 amd64 part 3
  • Topotests Ubuntu 18.04 arm8 part 9
  • Topotests debian 10 amd64 part 3
  • IPv6 protocols on Ubuntu 18.04
  • Static analyzer (clang)
  • Topotests Ubuntu 18.04 arm8 part 2
  • Topotests debian 10 amd64 part 0
  • Ubuntu 16.04 deb pkg check
  • Topotests Ubuntu 18.04 arm8 part 7
  • Topotests Ubuntu 18.04 i386 part 6
  • Addresssanitizer topotests part 9
  • Topotests Ubuntu 18.04 amd64 part 8
  • Topotests Ubuntu 18.04 i386 part 1
  • Topotests debian 10 amd64 part 2
  • IPv4 protocols on Ubuntu 18.04
  • Topotests Ubuntu 18.04 arm8 part 0
  • IPv4 ldp protocol on Ubuntu 18.04
  • Topotests Ubuntu 18.04 i386 part 8
  • Topotests Ubuntu 18.04 amd64 part 9
  • Addresssanitizer topotests part 7
  • Ubuntu 20.04 deb pkg check
  • Topotests Ubuntu 18.04 amd64 part 5
  • Debian 10 deb pkg check

Warnings Generated during build:

Checkout code: Successful with additional warnings
Topotests Ubuntu 18.04 amd64 part 7: Failed (click for details) Topotests Ubuntu 18.04 amd64 part 7: No useful log found
Report for zebra_dplane.c | 6 issues
===============================================
< WARNING: space prohibited between function name and open parenthesis '('
< #4872: FILE: /tmp/f1-593/zebra_dplane.c:4872:
< WARNING: space prohibited between function name and open parenthesis '('
< #5579: FILE: /tmp/f1-593/zebra_dplane.c:5579:
< WARNING: space prohibited between function name and open parenthesis '('
< #5919: FILE: /tmp/f1-593/zebra_dplane.c:5919:

@mjstapp
Copy link
Copy Markdown
Contributor Author

mjstapp commented Sep 15, 2021

CI:rerun

@NetDEF-CI
Copy link
Copy Markdown
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-PULLREQ2-190/

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 zebra_dplane.c | 6 issues
===============================================
< WARNING: space prohibited between function name and open parenthesis '('
< #4872: FILE: /tmp/f1-1408/zebra_dplane.c:4872:
< WARNING: space prohibited between function name and open parenthesis '('
< #5579: FILE: /tmp/f1-1408/zebra_dplane.c:5579:
< WARNING: space prohibited between function name and open parenthesis '('
< #5919: FILE: /tmp/f1-1408/zebra_dplane.c:5919:

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.

9 participants