]> git.proxmox.com Git - mirror_frr.git/commitdiff
bgpd: Show that prefix is malformed if aggregated by 0
authorDonatas Abraitis <donatas.abraitis@gmail.com>
Thu, 26 Mar 2020 14:06:34 +0000 (16:06 +0200)
committerDonatas Abraitis <donatas.abraitis@gmail.com>
Thu, 26 Mar 2020 14:06:34 +0000 (16:06 +0200)
Show if this malformed under `show [ip] bgp <prefix>`:
 ```
eva# sh ip bgp 103.79.124.0/22
BGP routing table entry for 103.79.124.0/22
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  192.168.201.136
  64539 15096 6939 7545 7545 136001, (aggregated by 0(malformed) 0.0.0.0)
    192.168.201.136 from 192.168.201.136 (192.168.201.136)
      Origin IGP, valid, external, best (First path received)
      Last update: Thu Mar 26 10:02:07 2020
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
bgpd/bgp_route.c

index 842d305f8017ff3f5b17f8dc72c5b801a4bf0f72..e6dbc7d9d1476637ea5be726b4e63ab439baaaa2 100644 (file)
@@ -8713,10 +8713,22 @@ void route_vty_out_detail(struct vty *vty, struct bgp *bgp,
                        json_object_string_add(
                                json_path, "aggregatorId",
                                inet_ntoa(attr->aggregator_addr));
+                       if (attr->aggregator_as == BGP_AS_ZERO)
+                               json_object_boolean_true_add(
+                                       json_path, "aggregatorAsMalformed");
+                       else
+                               json_object_boolean_false_add(
+                                       json_path, "aggregatorAsMalformed");
                } else {
-                       vty_out(vty, ", (aggregated by %u %s)",
-                               attr->aggregator_as,
-                               inet_ntoa(attr->aggregator_addr));
+                       if (attr->aggregator_as == BGP_AS_ZERO)
+                               vty_out(vty,
+                                       ", (aggregated by %u(malformed) %s)",
+                                       attr->aggregator_as,
+                                       inet_ntoa(attr->aggregator_addr));
+                       else
+                               vty_out(vty, ", (aggregated by %u %s)",
+                                       attr->aggregator_as,
+                                       inet_ntoa(attr->aggregator_addr));
                }
        }