safi_t safi;
struct bpacket_attr_vec_arr vecarr;
bool addpath_capable = false;
- uint8_t default_originate_label[4] = {0x80, 0x00, 0x00};
- mpls_label_t *label = NULL;
+ mpls_label_t label = MPLS_LABEL_IMPLICIT_NULL;
uint32_t num_labels = 0;
if (DISABLE_BGP_ANNOUNCE)
addpath_capable = bgp_addpath_encode_tx(peer, afi, safi);
if (safi == SAFI_LABELED_UNICAST) {
- label = (mpls_label_t *)default_originate_label;
+ label = mpls_lse_encode((afi == AFI_IP)
+ ? MPLS_LABEL_IPV4_EXPLICIT_NULL
+ : MPLS_LABEL_IPV6_EXPLICIT_NULL,
+ 0, 0, 1);
+ bgp_set_valid_label(&label);
num_labels = 1;
}
/* Make place for total attribute length. */
pos = stream_get_endp(s);
stream_putw(s, 0);
- total_attr_len = bgp_packet_attribute(
- NULL, peer, s, attr, &vecarr, &p, afi, safi, from, NULL, label,
- num_labels, addpath_capable,
- BGP_ADDPATH_TX_ID_FOR_DEFAULT_ORIGINATE, NULL);
+ total_attr_len =
+ bgp_packet_attribute(NULL, peer, s, attr, &vecarr, &p, afi,
+ safi, from, NULL, &label, num_labels,
+ addpath_capable,
+ BGP_ADDPATH_TX_ID_FOR_DEFAULT_ORIGINATE,
+ NULL);
/* Set Total Path Attribute Length. */
stream_putw_at(s, pos, total_attr_len);