void bgp_path_info_path_with_addpath_rx_str(struct bgp_path_info *pi, char *buf,
size_t buf_len)
{
+ struct peer *peer;
+
+ if (pi->sub_type == BGP_ROUTE_IMPORTED &&
+ bgp_get_imported_bpi_ultimate(pi))
+ peer = bgp_get_imported_bpi_ultimate(pi)->peer;
+ else
+ peer = pi->peer;
+
if (pi->addpath_rx_id)
- snprintf(buf, buf_len, "path %s (addpath rxid %d)",
- pi->peer->host, pi->addpath_rx_id);
+ snprintf(buf, buf_len, "path %s (addpath rxid %d)", peer->host,
+ pi->addpath_rx_id);
else
- snprintf(buf, buf_len, "path %s", pi->peer->host);
+ snprintf(buf, buf_len, "path %s", peer->host);
}