summaryrefslogtreecommitdiff
path: root/bgpd/rfapi
diff options
context:
space:
mode:
authorLouis Scalbert <louis.scalbert@6wind.com>2024-02-26 10:42:42 +0100
committerLouis Scalbert <louis.scalbert@6wind.com>2024-06-05 11:08:46 +0200
commit64fe15fd28774333c51352ed53022014ee090ade (patch)
tree1b2a972176ce06eab16b7fe09dc6c8216d1dfad7 /bgpd/rfapi
parent1fcedd00d150ada5526e9f4b5dd86cfdc1218daa (diff)
bgpd: add bgp_path_info_num_labels()
Add bgp_path_info_num_labels() to get the number of labels stored in a path_info structure. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Diffstat (limited to 'bgpd/rfapi')
-rw-r--r--bgpd/rfapi/rfapi_import.c4
-rw-r--r--bgpd/rfapi/rfapi_rib.c2
-rw-r--r--bgpd/rfapi/rfapi_vty.c7
-rw-r--r--bgpd/rfapi/vnc_import_bgp.c21
4 files changed, 18 insertions, 16 deletions
diff --git a/bgpd/rfapi/rfapi_import.c b/bgpd/rfapi/rfapi_import.c
index 7fb7d5d7aa..7e19fb8c97 100644
--- a/bgpd/rfapi/rfapi_import.c
+++ b/bgpd/rfapi/rfapi_import.c
@@ -1271,7 +1271,7 @@ rfapiRouteInfo2NextHopEntry(struct rfapi_ip_prefix *rprefix,
/* label comes from MP_REACH_NLRI label */
vo->v.l2addr.label =
- bpi->extra->num_labels
+ bgp_path_info_num_labels(bpi)
? decode_label(&bpi->extra->label[0])
: MPLS_INVALID_LABEL;
@@ -4166,7 +4166,7 @@ static void rfapiBgpTableFilteredImport(struct bgp *bgp,
BGP_PATH_REMOVED))
continue;
- if (bpi->extra && bpi->extra->num_labels)
+ if (bgp_path_info_num_labels(bpi))
label = decode_label(
&bpi->extra->label[0]);
(*rfapiBgpInfoFilteredImportFunction(
diff --git a/bgpd/rfapi/rfapi_rib.c b/bgpd/rfapi/rfapi_rib.c
index 11dccbf1b5..5c63576720 100644
--- a/bgpd/rfapi/rfapi_rib.c
+++ b/bgpd/rfapi/rfapi_rib.c
@@ -692,7 +692,7 @@ static void rfapiRibBi2Ri(struct bgp_path_info *bpi, struct rfapi_info *ri,
/* label comes from MP_REACH_NLRI label */
vo->v.l2addr.label =
- bpi->extra->num_labels
+ bgp_path_info_num_labels(bpi)
? decode_label(&bpi->extra->label[0])
: MPLS_INVALID_LABEL;
diff --git a/bgpd/rfapi/rfapi_vty.c b/bgpd/rfapi/rfapi_vty.c
index 2576a283f5..ddf95b63fc 100644
--- a/bgpd/rfapi/rfapi_vty.c
+++ b/bgpd/rfapi/rfapi_vty.c
@@ -413,7 +413,7 @@ void rfapi_vty_out_vncinfo(struct vty *vty, const struct prefix *p,
XFREE(MTYPE_ECOMMUNITY_STR, s);
}
- if (bpi->extra != NULL && bpi->extra->num_labels) {
+ if (bgp_path_info_num_labels(bpi)) {
if (bpi->extra->label[0] == BGP_PREVENT_VRF_2_VRF_LEAK)
vty_out(vty, " label=VRF2VRF");
else
@@ -1052,7 +1052,7 @@ static int rfapiPrintRemoteRegBi(struct bgp *bgp, void *stream,
snprintf(buf_un, sizeof(buf_un), "%s",
inet_ntop(pfx_vn.family, &pfx_vn.u.prefix, buf_ntop,
sizeof(buf_ntop)));
- if (bpi->extra && bpi->extra->num_labels) {
+ if (bgp_path_info_num_labels(bpi)) {
uint32_t l = decode_label(&bpi->extra->label[0]);
snprintf(buf_vn, sizeof(buf_vn), "Label: %d", l);
} else /* should never happen */
@@ -1161,8 +1161,7 @@ static int rfapiPrintRemoteRegBi(struct bgp *bgp, void *stream,
}
}
}
- if (tun_type != BGP_ENCAP_TYPE_MPLS && bpi->extra &&
- bpi->extra->num_labels) {
+ if (tun_type != BGP_ENCAP_TYPE_MPLS && bgp_path_info_num_labels(bpi)) {
uint32_t l = decode_label(&bpi->extra->label[0]);
if (!MPLS_LABEL_IS_NULL(l)) {
diff --git a/bgpd/rfapi/vnc_import_bgp.c b/bgpd/rfapi/vnc_import_bgp.c
index 09260dbca1..fbc0256128 100644
--- a/bgpd/rfapi/vnc_import_bgp.c
+++ b/bgpd/rfapi/vnc_import_bgp.c
@@ -470,7 +470,7 @@ static void vnc_import_bgp_add_route_mode_resolve_nve_one_bi(
if (bgp_attr_get_ecommunity(bpi->attr))
ecommunity_merge(new_ecom, bgp_attr_get_ecommunity(bpi->attr));
- if (bpi->extra && bpi->extra->num_labels)
+ if (bgp_path_info_num_labels(bpi))
label = decode_label(&bpi->extra->label[0]);
add_vnc_route(&vncHDResolveNve, bgp, SAFI_MPLS_VPN,
@@ -1699,7 +1699,8 @@ static void vnc_import_bgp_exterior_add_route_it(
if (bpi_interior->extra) {
prd = &bpi_interior->extra->vnc->vnc
.import.rd;
- if (bpi_interior->extra->num_labels)
+ if (bgp_path_info_num_labels(
+ bpi_interior))
label = decode_label(
&bpi_interior->extra
->label[0]);
@@ -1870,7 +1871,8 @@ void vnc_import_bgp_exterior_del_route(
if (bpi_interior->extra) {
prd = &bpi_interior->extra->vnc->vnc
.import.rd;
- if (bpi_interior->extra->num_labels)
+ if (bgp_path_info_num_labels(
+ bpi_interior))
label = decode_label(
&bpi_interior->extra
->label[0]);
@@ -2019,7 +2021,7 @@ void vnc_import_bgp_exterior_add_route_interior(
if (bpi_interior->extra) {
prd = &bpi_interior->extra->vnc->vnc.import.rd;
- if (bpi_interior->extra->num_labels)
+ if (bgp_path_info_num_labels(bpi_interior))
label = decode_label(
&bpi_interior->extra->label[0]);
} else
@@ -2134,7 +2136,7 @@ void vnc_import_bgp_exterior_add_route_interior(
if (bpi->extra) {
prd = &bpi->extra->vnc->vnc
.import.rd;
- if (bpi->extra->num_labels)
+ if (bgp_path_info_num_labels(bpi))
label = decode_label(
&bpi->extra->label
[0]);
@@ -2158,7 +2160,8 @@ void vnc_import_bgp_exterior_add_route_interior(
if (bpi_interior->extra) {
prd = &bpi_interior->extra->vnc->vnc
.import.rd;
- if (bpi_interior->extra->num_labels)
+ if (bgp_path_info_num_labels(
+ bpi_interior))
label = decode_label(
&bpi_interior->extra
->label[0]);
@@ -2278,7 +2281,7 @@ void vnc_import_bgp_exterior_add_route_interior(
*/
if (bpi_interior->extra) {
prd = &bpi_interior->extra->vnc->vnc.import.rd;
- if (bpi_interior->extra->num_labels)
+ if (bgp_path_info_num_labels(bpi_interior))
label = decode_label(
&bpi_interior->extra->label[0]);
} else
@@ -2387,7 +2390,7 @@ void vnc_import_bgp_exterior_del_route_interior(
if (bpi_interior->extra) {
prd = &bpi_interior->extra->vnc->vnc.import.rd;
- if (bpi_interior->extra->num_labels)
+ if (bgp_path_info_num_labels(bpi_interior))
label = decode_label(
&bpi_interior->extra->label[0]);
} else
@@ -2466,7 +2469,7 @@ void vnc_import_bgp_exterior_del_route_interior(
if (bpi->extra) {
prd = &bpi->extra->vnc->vnc.import.rd;
- if (bpi->extra->num_labels)
+ if (bgp_path_info_num_labels(bpi))
label = decode_label(
&bpi->extra->label[0]);
} else