diff --git a/bgpd/bgp_evpn.c b/bgpd/bgp_evpn.c
index d062d01df603..bfe8e343a8af 100644
--- a/bgpd/bgp_evpn.c
+++ b/bgpd/bgp_evpn.c
@@ -4596,6 +4596,7 @@ static int process_type2_route(struct peer *peer, afi_t afi, safi_t safi,
 	uint32_t num_labels = 0;
 	uint32_t eth_tag;
 	int ret = 0;
+	uint8_t i;
 
 	/* Type-2 route should be either 33, 37 or 49 bytes or an
 	 * additional 3 bytes if there is a second label (VNI):
@@ -4687,11 +4688,14 @@ static int process_type2_route(struct peer *peer, afi_t afi, safi_t safi,
 	}
 
 	/* Process the route. */
-	if (attr)
+	if (attr) {
+		attr->num_labels = num_labels;
+		for (i=0; i < num_labels; i++)
+			attr->label_tbl[i] = label[i];
 		bgp_update(peer, (struct prefix *)&p, addpath_id, attr, afi,
 			   safi, ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, &prd,
-			   &label[0], num_labels, 0, &evpn);
-	else
+			   0, &evpn);
+	} else
 		bgp_withdraw(peer, (struct prefix *)&p, addpath_id, afi, safi,
 			     ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, &prd, &label[0],
 			     num_labels, &evpn);
@@ -4780,8 +4784,8 @@ static int process_type3_route(struct peer *peer, afi_t afi, safi_t safi,
 	/* Process the route. */
 	if (attr)
 		bgp_update(peer, (struct prefix *)&p, addpath_id, attr, afi,
-			   safi, ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, &prd, NULL,
-			   0, 0, NULL);
+			   safi, ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, &prd,
+			   0, NULL);
 	else
 		bgp_withdraw(peer, (struct prefix *)&p, addpath_id, afi, safi,
 			     ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, &prd, NULL, 0,
@@ -4912,11 +4916,13 @@ static int process_type5_route(struct peer *peer, afi_t afi, safi_t safi,
 	}
 
 	/* Process the route. */
-	if (attr && is_valid_update)
+	if (attr && is_valid_update) {
+		attr->num_labels = 1;
+		attr->label_tbl[0] = label;
 		bgp_update(peer, (struct prefix *)&p, addpath_id, attr, afi,
 			   safi, ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, &prd,
-			   &label, 1, 0, &evpn);
-	else {
+			   0, &evpn);
+	} else {
 		if (!is_valid_update) {
 			char attr_str[BUFSIZ] = {0};
 
diff --git a/bgpd/bgp_evpn_mh.c b/bgpd/bgp_evpn_mh.c
index e0474a763cc7..b8b07ee8a3ee 100644
--- a/bgpd/bgp_evpn_mh.c
+++ b/bgpd/bgp_evpn_mh.c
@@ -757,8 +757,8 @@ int bgp_evpn_type4_route_process(struct peer *peer, afi_t afi, safi_t safi,
 	/* Process the route. */
 	if (attr) {
 		bgp_update(peer, (struct prefix *)&p, addpath_id, attr, afi,
-			   safi, ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, &prd, NULL,
-			   0, 0, NULL);
+			   safi, ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, &prd,
+			   0, NULL);
 	} else {
 		bgp_withdraw(peer, (struct prefix *)&p, addpath_id, afi, safi,
 			     ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, &prd, NULL, 0,
@@ -1226,8 +1226,8 @@ int bgp_evpn_type1_route_process(struct peer *peer, afi_t afi, safi_t safi,
 	/* Process the route. */
 	if (attr) {
 		bgp_update(peer, (struct prefix *)&p, addpath_id, attr, afi,
-			   safi, ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, &prd, NULL,
-			   0, 0, NULL);
+			   safi, ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, &prd,
+			   0, NULL);
 	} else {
 		bgp_withdraw(peer, (struct prefix *)&p, addpath_id, afi, safi,
 			     ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, &prd, NULL, 0,
diff --git a/bgpd/bgp_flowspec.c b/bgpd/bgp_flowspec.c
index 6165bf892e72..b170108fe7ea 100644
--- a/bgpd/bgp_flowspec.c
+++ b/bgpd/bgp_flowspec.c
@@ -192,7 +192,7 @@ int bgp_nlri_parse_flowspec(struct peer *peer, struct attr *attr,
 		if (!withdraw) {
 			bgp_update(peer, &p, 0, attr, afi, safi,
 				   ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, NULL,
-				   NULL, 0, 0, NULL);
+				   0, NULL);
 		} else {
 			bgp_withdraw(peer, &p, 0, afi, safi, ZEBRA_ROUTE_BGP,
 				     BGP_ROUTE_NORMAL, NULL, NULL, 0, NULL);
diff --git a/bgpd/bgp_label.c b/bgpd/bgp_label.c
index feef09a53ccf..35d0d028363c 100644
--- a/bgpd/bgp_label.c
+++ b/bgpd/bgp_label.c
@@ -451,9 +451,12 @@ int bgp_nlri_parse_label(struct peer *peer, struct attr *attr,
 		}
 
 		if (attr) {
+			attr->num_labels = 1;
+			attr->label_tbl[0] = label;
+			bgp_set_valid_label(&attr->label_tbl[0]);
 			bgp_update(peer, &p, addpath_id, attr, packet->afi,
 				   safi, ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL,
-				   NULL, &label, 1, 0, NULL);
+				   NULL, 0, NULL);
 		} else {
 			bgp_withdraw(peer, &p, addpath_id, packet->afi,
 				     SAFI_UNICAST, ZEBRA_ROUTE_BGP,
diff --git a/bgpd/bgp_mac.c b/bgpd/bgp_mac.c
index 5de58feadc08..df56ff4f07cf 100644
--- a/bgpd/bgp_mac.c
+++ b/bgpd/bgp_mac.c
@@ -140,8 +140,6 @@ static void bgp_process_mac_rescan_table(struct bgp *bgp, struct peer *peer,
 			const struct prefix *p = bgp_dest_get_prefix(dest);
 			struct prefix_evpn *pevpn = (struct prefix_evpn *)dest;
 			struct prefix_rd prd;
-			uint32_t num_labels = 0;
-			mpls_label_t *label_pnt = NULL;
 			struct bgp_route_evpn *evpn;
 
 			if (pevpn->family == AF_EVPN
@@ -169,10 +167,6 @@ static void bgp_process_mac_rescan_table(struct bgp *bgp, struct peer *peer,
 			    && !dest_affected)
 				continue;
 
-			num_labels = pi->attr->num_labels;
-			if (num_labels)
-				label_pnt = &pi->attr->label_tbl[0];
-
 			prd.family = AF_UNSPEC;
 			prd.prefixlen = 64;
 			memcpy(&prd.val, pdest_p->u.val, 8);
@@ -183,7 +177,7 @@ static void bgp_process_mac_rescan_table(struct bgp *bgp, struct peer *peer,
 
 					bgp_debug_rdpfxpath2str(
 						AFI_L2VPN, SAFI_EVPN, &prd,
-						p, label_pnt, num_labels,
+						p, &pi->attr->label_tbl[0], pi->attr->num_labels,
 						pi->addpath_rx_id ? 1 : 0,
 						pi->addpath_rx_id, NULL,
 						pfx_buf, sizeof(pfx_buf));
@@ -198,8 +192,8 @@ static void bgp_process_mac_rescan_table(struct bgp *bgp, struct peer *peer,
 			       sizeof(evpn));
 			bgp_update(peer, p, pi->addpath_rx_id, pi->attr,
 				   AFI_L2VPN, SAFI_EVPN, ZEBRA_ROUTE_BGP,
-				   BGP_ROUTE_NORMAL, &prd, label_pnt,
-				   num_labels, 1, evpn);
+				   BGP_ROUTE_NORMAL, &prd,
+				   1, evpn);
 		}
 	}
 }
diff --git a/bgpd/bgp_mplsvpn.c b/bgpd/bgp_mplsvpn.c
index 2decd1b43fb8..7fb7b0fcebee 100644
--- a/bgpd/bgp_mplsvpn.c
+++ b/bgpd/bgp_mplsvpn.c
@@ -239,9 +239,12 @@ int bgp_nlri_parse_vpn(struct peer *peer, struct attr *attr,
 		STREAM_GET(p.u.val, data, psize - VPN_PREFIXLEN_MIN_BYTES);
 
 		if (attr) {
+			attr->num_labels = 1;
+			attr->label_tbl[0] = label;
+			bgp_set_valid_label(&attr->label_tbl[0]);
 			bgp_update(peer, &p, addpath_id, attr, packet->afi,
 				   SAFI_MPLS_VPN, ZEBRA_ROUTE_BGP,
-				   BGP_ROUTE_NORMAL, &prd, &label, 1, 0, NULL);
+				   BGP_ROUTE_NORMAL, &prd, 0, NULL);
 		} else {
 			bgp_withdraw(peer, &p, addpath_id, packet->afi,
 				     SAFI_MPLS_VPN, ZEBRA_ROUTE_BGP,
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index fcf35490b20b..5cfa4f77c844 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -4171,8 +4171,8 @@ static bool bgp_accept_own(struct peer *peer, afi_t afi, safi_t safi,
 
 void bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
 		struct attr *attr, afi_t afi, safi_t safi, int type,
-		int sub_type, struct prefix_rd *prd, mpls_label_t *label,
-		uint32_t num_labels, int soft_reconfig,
+		int sub_type, struct prefix_rd *prd,
+		int soft_reconfig,
 		struct bgp_route_evpn *evpn)
 {
 	int ret;
@@ -4215,13 +4215,9 @@ void bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
 	dest = bgp_afi_node_get(bgp->rib[afi][safi], afi, safi, p, prd);
 	/* TODO: Check to see if we can get rid of "is_valid_label" */
 	if (afi == AFI_L2VPN && safi == SAFI_EVPN)
-		has_valid_label = (num_labels > 0) ? 1 : 0;
+		has_valid_label = (attr->num_labels > 0) ? 1 : 0;
 	else
-		has_valid_label = bgp_is_valid_label(label);
-
-	if (has_valid_label)
-		assert(label != NULL);
-
+		has_valid_label = bgp_is_valid_label((const mpls_label_t *) attr->label_tbl);
 
 	/* When peer's soft reconfiguration enabled.  Record input packet in
 	   Adj-RIBs-In.  */
@@ -4408,8 +4404,8 @@ void bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
 	 * commands, so we need bgp_attr_flush in the error paths, until we
 	 * intern
 	 * the attr (which takes over the memory references) */
-	if (bgp_input_modifier(peer, p, &new_attr, afi, orig_safi, NULL, label,
-			       num_labels, dest)
+	if (bgp_input_modifier(peer, p, &new_attr, afi, orig_safi, NULL, attr->label_tbl,
+			       attr->num_labels, dest)
 	    == RMAP_DENY) {
 		peer->stat_pfx_filter++;
 		reason = "route-map;";
@@ -4516,16 +4512,16 @@ void bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
 		if (!CHECK_FLAG(pi->flags, BGP_PATH_REMOVED) && same_attr &&
 		    (!has_valid_label ||
 		     (bgp_labels_same((const mpls_label_t *)pi->attr->label_tbl,
-				      pi->attr->num_labels, label,
-				      num_labels)))) {
+				      pi->attr->num_labels, attr->label_tbl,
+				      attr->num_labels)))) {
 			if (CHECK_FLAG(bgp->af_flags[afi][safi],
 				       BGP_CONFIG_DAMPENING)
 			    && peer->sort == BGP_PEER_EBGP
 			    && CHECK_FLAG(pi->flags, BGP_PATH_HISTORY)) {
 				if (bgp_debug_update(peer, p, NULL, 1)) {
 					bgp_debug_rdpfxpath2str(
-						afi, safi, prd, p, label,
-						num_labels, addpath_id ? 1 : 0,
+						afi, safi, prd, p, attr->label_tbl,
+						attr->num_labels, addpath_id ? 1 : 0,
 						addpath_id, evpn, pfx_buf,
 						sizeof(pfx_buf));
 					zlog_debug("%pBP rcvd %s", peer,
@@ -4550,8 +4546,8 @@ void bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
 					}
 
 					bgp_debug_rdpfxpath2str(
-						afi, safi, prd, p, label,
-						num_labels, addpath_id ? 1 : 0,
+						afi, safi, prd, p, attr->label_tbl,
+						attr->num_labels, addpath_id ? 1 : 0,
 						addpath_id, evpn, pfx_buf,
 						sizeof(pfx_buf));
 					zlog_debug(
@@ -4578,7 +4574,7 @@ void bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
 		if (CHECK_FLAG(pi->flags, BGP_PATH_REMOVED)) {
 			if (bgp_debug_update(peer, p, NULL, 1)) {
 				bgp_debug_rdpfxpath2str(
-					afi, safi, prd, p, label, num_labels,
+					afi, safi, prd, p, attr->label_tbl, attr->num_labels,
 					addpath_id ? 1 : 0, addpath_id, evpn,
 					pfx_buf, sizeof(pfx_buf));
 				zlog_debug(
@@ -4605,8 +4601,8 @@ void bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
 
 		/* Received Logging. */
 		if (bgp_debug_update(peer, p, NULL, 1)) {
-			bgp_debug_rdpfxpath2str(afi, safi, prd, p, label,
-						num_labels, addpath_id ? 1 : 0,
+			bgp_debug_rdpfxpath2str(afi, safi, prd, p, attr->label_tbl,
+						attr->num_labels, addpath_id ? 1 : 0,
 						addpath_id, evpn, pfx_buf,
 						sizeof(pfx_buf));
 			zlog_debug("%pBP rcvd %s", peer, pfx_buf);
@@ -4699,20 +4695,6 @@ void bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
 		bgp_attr_unintern(&pi->attr);
 		pi->attr = attr_new;
 
-		/* Update MPLS label */
-		if (has_valid_label) {
-			bgp_path_info_extra_get(new);
-			if (!bgp_labels_same((const mpls_label_t *)attr->label_tbl,
-					     attr->num_labels, label,
-					     num_labels)) {
-				memcpy(&attr->label_tbl, label,
-				       num_labels * sizeof(mpls_label_t));
-				attr->num_labels = num_labels;
-			}
-			if (!(afi == AFI_L2VPN && safi == SAFI_EVPN))
-				bgp_set_valid_label(&attr->label_tbl[0]);
-		}
-
 #ifdef ENABLE_BGP_VNC
 		if ((afi == AFI_IP || afi == AFI_IP6)
 		    && (safi == SAFI_UNICAST)) {
@@ -4870,7 +4852,7 @@ void bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
 
 #ifdef ENABLE_BGP_VNC
 		if (SAFI_MPLS_VPN == safi) {
-			mpls_label_t label_decoded = decode_label(label);
+			mpls_label_t label_decoded = decode_label(attr->label_tbl);
 
 			rfapiProcessUpdate(peer, NULL, p, prd, attr, afi, safi,
 					   type, sub_type, &label_decoded);
@@ -4891,7 +4873,7 @@ void bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
 			peer->rcvd_attr_printed = 1;
 		}
 
-		bgp_debug_rdpfxpath2str(afi, safi, prd, p, label, num_labels,
+		bgp_debug_rdpfxpath2str(afi, safi, prd, p, attr->label_tbl, attr->num_labels,
 					addpath_id ? 1 : 0, addpath_id, evpn,
 					pfx_buf, sizeof(pfx_buf));
 		zlog_debug("%pBP rcvd %s", peer, pfx_buf);
@@ -4900,19 +4882,6 @@ void bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
 	/* Make new BGP info. */
 	new = info_make(type, sub_type, 0, peer, attr_new, dest);
 
-	/* Update MPLS label */
-	if (has_valid_label) {
-		bgp_path_info_extra_get(new);
-		if (!bgp_labels_same((const mpls_label_t *)attr->label_tbl,
-				     attr->num_labels, label, num_labels)) {
-			memcpy(&attr->label_tbl, label,
-			       num_labels * sizeof(mpls_label_t));
-			attr->num_labels = num_labels;
-		}
-		if (!(afi == AFI_L2VPN && safi == SAFI_EVPN))
-			bgp_set_valid_label(&attr->label_tbl[0]);
-	}
-
 	/* Nexthop reachability check. */
 	if (((afi == AFI_IP || afi == AFI_IP6) &&
 	     (safi == SAFI_UNICAST || safi == SAFI_LABELED_UNICAST ||
@@ -5012,7 +4981,7 @@ void bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
 	}
 #ifdef ENABLE_BGP_VNC
 	if (SAFI_MPLS_VPN == safi) {
-		mpls_label_t label_decoded = decode_label(label);
+		mpls_label_t label_decoded = decode_label(attr->label_tbl);
 
 		rfapiProcessUpdate(peer, NULL, p, prd, attr, afi, safi, type,
 				   sub_type, &label_decoded);
@@ -5044,7 +5013,7 @@ void bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
 			peer->rcvd_attr_printed = 1;
 		}
 
-		bgp_debug_rdpfxpath2str(afi, safi, prd, p, label, num_labels,
+		bgp_debug_rdpfxpath2str(afi, safi, prd, p, attr->label_tbl, attr->num_labels,
 					addpath_id ? 1 : 0, addpath_id, evpn,
 					pfx_buf, sizeof(pfx_buf));
 		zlog_debug("%pBP rcvd UPDATE about %s -- DENIED due to: %s",
@@ -5319,18 +5288,12 @@ static void bgp_soft_reconfig_table_update(struct peer *peer,
 					   safi_t safi, struct prefix_rd *prd)
 {
 	struct bgp_path_info *pi;
-	uint32_t num_labels = 0;
-	mpls_label_t *label_pnt = NULL;
 	struct bgp_route_evpn evpn;
 
 	for (pi = bgp_dest_get_bgp_path_info(dest); pi; pi = pi->next)
 		if (pi->peer == peer)
 			break;
 
-	if (pi)
-		num_labels = pi->attr->num_labels;
-	if (num_labels)
-		label_pnt = &pi->attr->label_tbl[0];
 	if (pi)
 		memcpy(&evpn, bgp_attr_get_evpn_overlay(pi->attr),
 		       sizeof(evpn));
@@ -5339,7 +5302,7 @@ static void bgp_soft_reconfig_table_update(struct peer *peer,
 
 	bgp_update(peer, bgp_dest_get_prefix(dest), ain->addpath_rx_id,
 		   ain->attr, afi, safi, ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, prd,
-		   label_pnt, num_labels, 1, &evpn);
+		   1, &evpn);
 }
 
 static void bgp_soft_reconfig_table(struct peer *peer, afi_t afi, safi_t safi,
@@ -6250,7 +6213,7 @@ int bgp_nlri_parse_ip(struct peer *peer, struct attr *attr,
 		if (attr)
 			bgp_update(peer, &p, addpath_id, attr, afi, safi,
 				   ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, NULL,
-				   NULL, 0, 0, NULL);
+				   0, NULL);
 		else
 			bgp_withdraw(peer, &p, addpath_id, afi, safi,
 				     ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, NULL,
diff --git a/bgpd/bgp_route.h b/bgpd/bgp_route.h
index 462288eb0ea4..e7f53f42a763 100644
--- a/bgpd/bgp_route.h
+++ b/bgpd/bgp_route.h
@@ -783,8 +783,8 @@ extern int bgp_static_set(struct vty *vty, bool negate, const char *ip_str,
 extern void bgp_update(struct peer *peer, const struct prefix *p,
 		       uint32_t addpath_id, struct attr *attr, afi_t afi,
 		       safi_t safi, int type, int sub_type,
-		       struct prefix_rd *prd, mpls_label_t *label,
-		       uint32_t num_labels, int soft_reconfig,
+		       struct prefix_rd *prd,
+		       int soft_reconfig,
 		       struct bgp_route_evpn *evpn);
 extern void bgp_withdraw(struct peer *peer, const struct prefix *p,
 			 uint32_t addpath_id, afi_t afi, safi_t safi, int type,
diff --git a/bgpd/bgp_rpki.c b/bgpd/bgp_rpki.c
index 7f16f0904624..481de91c178d 100644
--- a/bgpd/bgp_rpki.c
+++ b/bgpd/bgp_rpki.c
@@ -657,21 +657,11 @@ static void revalidate_bgp_node(struct bgp_dest *bgp_dest, afi_t afi,
 {
 	struct bgp_adj_in *ain;
 
-	for (ain = bgp_dest->adj_in; ain; ain = ain->next) {
-		struct bgp_path_info *path =
-			bgp_dest_get_bgp_path_info(bgp_dest);
-		mpls_label_t *label = NULL;
-		uint32_t num_labels = 0;
-
-		if (path) {
-			label = path->attr->label_tbl;
-			num_labels = path->attr->num_labels;
-		}
+	for (ain = bgp_dest->adj_in; ain; ain = ain->next)
 		(void)bgp_update(ain->peer, bgp_dest_get_prefix(bgp_dest),
 				 ain->addpath_rx_id, ain->attr, afi, safi,
-				 ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, NULL, label,
-				 num_labels, 1, NULL);
-	}
+				 ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, NULL,
+				 1, NULL);
 }
 
 /*
diff --git a/bgpd/rfapi/vnc_export_bgp.c b/bgpd/rfapi/vnc_export_bgp.c
index 7decb75782dc..efad8ac6d81d 100644
--- a/bgpd/rfapi/vnc_export_bgp.c
+++ b/bgpd/rfapi/vnc_export_bgp.c
@@ -307,7 +307,6 @@ void vnc_direct_bgp_add_route_ce(struct bgp *bgp, struct agg_node *rn,
 		   iattr,	   /* bgp_update copies this attr */
 		   afi, SAFI_UNICAST, ZEBRA_ROUTE_VNC_DIRECT,
 		   BGP_ROUTE_REDISTRIBUTE, NULL, /* RD not used for unicast */
-		   NULL, 0,			 /* tag not used for unicast */
 		   0, NULL);			 /* EVPN not used */
 	bgp_attr_unintern(&iattr);
 }
@@ -1033,9 +1032,7 @@ void vnc_direct_bgp_add_nve(struct bgp *bgp, struct rfapi_descriptor *rfd)
 						ZEBRA_ROUTE_VNC_DIRECT,
 						BGP_ROUTE_REDISTRIBUTE, NULL,
 						/* RD not used for unicast */
-						NULL,
-						/* tag not used for unicast */
-						0, 0, NULL); /* EVPN not used */
+						0, NULL); /* EVPN not used */
 
 					bgp_attr_unintern(&iattr);
 				}
@@ -1246,8 +1243,7 @@ static void vnc_direct_add_rn_group_rd(struct bgp *bgp,
 		   iattr,	  /* bgp_update copies it */
 		   afi, SAFI_UNICAST, ZEBRA_ROUTE_VNC_DIRECT,
 		   BGP_ROUTE_REDISTRIBUTE, NULL, /* RD not used for unicast */
-		   NULL,			 /* tag not used for unicast */
-		   0, 0, NULL);			 /* EVPN not used */
+		   0, NULL);			 /* EVPN not used */
 
 	bgp_attr_unintern(&iattr);
 
@@ -1699,8 +1695,7 @@ void vnc_direct_bgp_rh_add_route(struct bgp *bgp, afi_t afi,
 		   iattr,	/* bgp_update copies this attr */
 		   afi, SAFI_UNICAST, ZEBRA_ROUTE_VNC_DIRECT_RH,
 		   BGP_ROUTE_REDISTRIBUTE, NULL, /* RD not used for unicast */
-		   NULL,	/* tag not used for unicast, EVPN neither */
-		   0, 0, NULL); /* EVPN not used */
+		   0, NULL); /* EVPN not used */
 	bgp_attr_unintern(&iattr);
 }
 
@@ -1937,10 +1932,7 @@ void vnc_direct_bgp_rh_vpn_enable(struct bgp *bgp, afi_t afi)
 						ZEBRA_ROUTE_VNC_DIRECT_RH,
 						BGP_ROUTE_REDISTRIBUTE, NULL,
 						/* RD not used for unicast */
-						NULL,
-						/* tag not used for unicast,
-						   or EVPN */
-						0, 0, NULL); /* EVPN not used */
+						0, NULL); /* EVPN not used */
 
 					bgp_attr_unintern(&iattr);
 				}