}
if (!path)
return;
- if (path->attr && path->attr->ecommunity) {
+ if (path->attr->ecommunity) {
/* Print attribute */
attr = path->attr;
s = ecommunity_ecom2str(attr->ecommunity,
if (display == NLRI_STRING_FORMAT_LARGE) {
struct bgp_path_info_extra *extra =
bgp_path_info_extra_get(path);
+ bool list_began = false;
- if (listcount(extra->bgp_fs_pbr) ||
- listcount(extra->bgp_fs_iprule)) {
+ if (extra->bgp_fs_pbr && listcount(extra->bgp_fs_pbr)) {
struct listnode *node;
struct bgp_pbr_match_entry *bpme;
- struct bgp_pbr_rule *bpr;
struct bgp_pbr_match *bpm;
- bool list_began = false;
struct list *list_bpm;
list_bpm = list_new();
vty_out(vty, ", ");
vty_out(vty, "%s", bpm->ipset_name);
}
+ list_delete(&list_bpm);
+ }
+ if (extra->bgp_fs_iprule && listcount(extra->bgp_fs_iprule)) {
+ struct listnode *node;
+ struct bgp_pbr_rule *bpr;
+
+ if (!list_began)
+ vty_out(vty, "\tinstalled in PBR");
for (ALL_LIST_ELEMENTS_RO(extra->bgp_fs_iprule,
node, bpr)) {
if (!bpr->action)
if (list_began)
vty_out(vty, ")");
vty_out(vty, "\n");
- list_delete(&list_bpm);
- } else
+ }
+ if (!list_began)
vty_out(vty, "\tnot installed in PBR\n");
}
}