BIRD-1.3.6 - show bgp summary command
Alexander Shikoff
minotaur at crete.org.ua
Tue Mar 6 21:33:50 CET 2012
On Tue, Mar 06, 2012 at 10:14:21PM +0400, Alexander V. Chernikov wrote:
> 'show bgp sum proto' gives us mapping for proto -> peer address, but
> what about reverse mapping?
>
> Like this:
> bird> show bgp summary
> Proto Peer AS Last state change Prefixes
> rcvd/best State/Last error
> b_7204 10.2.33.4 65001 22:00 0/0
> Idle Received: No supported AFI/SAFI
> b_7206 10.2.33.6 65001 22:00 8/3
> Established
> b_mega 10.0.0.1 42678 22:00 0/0
> Connect
The only reason why I've not included instance name in output
is the urge to minimize it. It's easy to implement, if someone
really needs instance name in an output.
> P.S.
> I've changed style a bit, new version attached.
> +void
> +bgp_sh_summary(struct symbol *sym)
> +{
> + struct proto_config *pc = NULL;
> +
> + if (sym)
> + {
> + if (sym->class != SYM_PROTO)
> + cf_error("%s: Not a protocol", sym->name);
> + pc = (struct proto_config *)sym->def;
> + if (pc->protocol != &proto_bgp)
> + cf_error("%s: Not a BGP protocol", sym->name);
> + }
> + else
> + {
> + if (EMPTY_LIST(config->protos))
> + {
> + cli_msg(1006, "No protocols match");
> + return;
> + }
> + }
In this case EMPTY_LIST will be applied to global protos list. Thus if
you have only non-BGP protos then EMPTY_LIST(config->protos) will return 0
and you'll get header string printed:
> +
> +#ifdef IPV6
> + cli_msg(-2002, "%-10s %s\n%12s %-19s %-20s %s", "Proto", "Peer", "AS", "Last state change", "Prefixes rcvd/best", "State/Last error" );
> +#else
> + cli_msg(-2002, "%-10s %-15s %10s %-19s %-20s %s", "Proto", "Peer", "AS", "Last state change", "Prefixes rcvd/best", "State/Last error" );
> +#endif
... and nothing after it. I tried to avoid that.
> + if (pc)
> + {
> + /* Show single protocol info */
> + bgp_sh_proto_summary(pc->proto);
> + cli_msg(0, "");
> + return;
> + }
> +
> + WALK_LIST(pc, config->protos)
> + {
> + if ((pc->protocol != &proto_bgp) || (!pc->proto))
> + continue;
> +
> + bgp_sh_proto_summary(pc->proto);
> + }
> +
> + cli_msg(0, "");
> +}
--
MINO-RIPE
More information about the Bird-users
mailing list