mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 16:20:08 +00:00
bgpd: Always show CIDR mask when displaying routes
Classful networking has been obsolete for ages and there is currently an inconsistency between `show ip route` and `show bgp`, where the first one always displays the CIDR mask while the second one hides classful network masks. This commit adjusts the behavior of `show bgp` to always show the CIDR mask for a route, even when it is classful. Signed-off-by: Pascal Mathis <mail@pascalmathis.com>
This commit is contained in:
parent
6c70521823
commit
89e5e9f028
@ -6245,24 +6245,14 @@ static void route_vty_out_route(struct prefix *p, struct vty *vty,
|
|||||||
json_object *json)
|
json_object *json)
|
||||||
{
|
{
|
||||||
int len = 0;
|
int len = 0;
|
||||||
uint32_t destination;
|
|
||||||
char buf[BUFSIZ];
|
char buf[BUFSIZ];
|
||||||
|
|
||||||
if (p->family == AF_INET) {
|
if (p->family == AF_INET) {
|
||||||
if (!json) {
|
if (!json) {
|
||||||
len = vty_out(vty, "%s",
|
len = vty_out(
|
||||||
inet_ntop(p->family, &p->u.prefix, buf,
|
vty, "%s/%d",
|
||||||
BUFSIZ));
|
inet_ntop(p->family, &p->u.prefix, buf, BUFSIZ),
|
||||||
destination = ntohl(p->u.prefix4.s_addr);
|
p->prefixlen);
|
||||||
|
|
||||||
if ((IN_CLASSC(destination) && p->prefixlen == 24)
|
|
||||||
|| (IN_CLASSB(destination) && p->prefixlen == 16)
|
|
||||||
|| (IN_CLASSA(destination) && p->prefixlen == 8)
|
|
||||||
|| p->u.prefix4.s_addr == 0) {
|
|
||||||
/* When mask is natural,
|
|
||||||
mask is not displayed. */
|
|
||||||
} else
|
|
||||||
len += vty_out(vty, "/%d", p->prefixlen);
|
|
||||||
} else {
|
} else {
|
||||||
json_object_string_add(json, "prefix",
|
json_object_string_add(json, "prefix",
|
||||||
inet_ntop(p->family,
|
inet_ntop(p->family,
|
||||||
|
Loading…
Reference in New Issue
Block a user