summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_updgrp_packet.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/bgpd/bgp_updgrp_packet.c b/bgpd/bgp_updgrp_packet.c
index f734763b70..87a9cfdcfa 100644
--- a/bgpd/bgp_updgrp_packet.c
+++ b/bgpd/bgp_updgrp_packet.c
@@ -763,7 +763,13 @@ subgroup_update_packet (struct update_subgroup *subgrp)
if (rn->prn)
prd = (struct prefix_rd *) &rn->prn->p;
- tag = bgp_adv_label(rn, binfo, peer, afi, safi);
+
+ if (safi == SAFI_LABELED_UNICAST)
+ tag = bgp_adv_label(rn, binfo, peer, afi, safi);
+ else
+ if (binfo && binfo->extra)
+ tag = binfo->extra->tag;
+
if (bgp_labeled_safi(safi))
sprintf (label_buf, "label %u", label_pton(tag));