summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_route.c15
-rw-r--r--bgpd/bgp_vty.c19
-rw-r--r--bgpd/bgp_vty.h2
3 files changed, 20 insertions, 16 deletions
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index 573fc76655..0225a0bbef 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -8058,7 +8058,7 @@ DEFUN (show_ip_bgp,
struct bgp *bgp = NULL;
int idx = 0;
- idx = bgp_vty_find_and_parse_afi_safi_vrf (vty, argv, argc, idx, &afi, &safi, &vrf);
+ bgp_vty_find_and_parse_afi_safi_vrf (vty, argv, argc, &idx, &afi, &safi, &vrf);
if (!idx)
return CMD_WARNING;
@@ -8067,6 +8067,7 @@ DEFUN (show_ip_bgp,
if (vrf != VRF_ALL)
{
+ vty_out(vty, "VRF-id: %d", vrf);
bgp = bgp_lookup_by_vrf_id (vrf);
if (bgp == NULL)
{
@@ -8165,7 +8166,7 @@ DEFUN (show_ip_bgp_route,
int idx = 0;
- idx = bgp_vty_find_and_parse_afi_safi_vrf (vty, argv, argc, idx, &afi, &safi, &vrf);
+ bgp_vty_find_and_parse_afi_safi_vrf (vty, argv, argc, &idx, &afi, &safi, &vrf);
if (!idx)
return CMD_WARNING;
@@ -8235,7 +8236,7 @@ DEFUN (show_ip_bgp_regexp,
safi_t safi = SAFI_UNICAST;
int idx = 0;
- idx = bgp_vty_find_and_parse_afi_safi_vrf (vty, argv, argc, idx, &afi, &safi, &vrf);
+ bgp_vty_find_and_parse_afi_safi_vrf (vty, argv, argc, &idx, &afi, &safi, &vrf);
if (!idx)
return CMD_WARNING;
@@ -8269,7 +8270,7 @@ DEFUN (show_ip_bgp_instance_all,
safi_t safi = SAFI_UNICAST;
int idx = 0;
- idx = bgp_vty_find_and_parse_afi_safi_vrf (vty, argv, argc, idx, &afi, &safi, &vrf);
+ bgp_vty_find_and_parse_afi_safi_vrf (vty, argv, argc, &idx, &afi, &safi, &vrf);
if (!idx)
return CMD_WARNING;
@@ -8960,7 +8961,7 @@ DEFUN (show_ip_bgp_instance_neighbor_prefix_counts,
int idx = 0;
struct bgp *bgp = NULL;
- idx = bgp_vty_find_and_parse_afi_safi_vrf (vty, argv, argc, idx, &afi, &safi, &vrf);
+ bgp_vty_find_and_parse_afi_safi_vrf (vty, argv, argc, &idx, &afi, &safi, &vrf);
if (!idx)
return CMD_WARNING;
@@ -9324,7 +9325,7 @@ DEFUN (show_ip_bgp_instance_neighbor_advertised_route,
int idx = 0;
- idx = bgp_vty_find_and_parse_afi_safi_vrf (vty, argv, argc, idx, &afi, &safi, &vrf);
+ bgp_vty_find_and_parse_afi_safi_vrf (vty, argv, argc, &idx, &afi, &safi, &vrf);
if (!idx)
return CMD_WARNING;
@@ -9512,7 +9513,7 @@ DEFUN (show_ip_bgp_neighbor_routes,
int idx = 0;
- idx = bgp_vty_find_and_parse_afi_safi_vrf (vty, argv, argc, idx, &afi, &safi, &vrf);
+ bgp_vty_find_and_parse_afi_safi_vrf (vty, argv, argc, &idx, &afi, &safi, &vrf);
if (!idx)
return CMD_WARNING;
diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c
index 208dd54460..7462f29e31 100644
--- a/bgpd/bgp_vty.c
+++ b/bgpd/bgp_vty.c
@@ -232,22 +232,22 @@ argv_find_and_parse_safi (struct cmd_token **argv, int argc, int *index, safi_t
* it found the last token.
*/
int
-bgp_vty_find_and_parse_afi_safi_vrf (struct vty *vty, struct cmd_token **argv, int argc, int idx,
+bgp_vty_find_and_parse_afi_safi_vrf (struct vty *vty, struct cmd_token **argv, int argc, int *idx,
afi_t *afi, safi_t *safi, vrf_id_t *vrf)
{
char *vrf_name = NULL;
- if (argv_find (argv, argc, "ip", &idx))
+ if (argv_find (argv, argc, "ip", idx))
*afi = AFI_IP;
- if (argv_find (argv, argc, "view", &idx) || argv_find (argv, argc, "vrf", &idx))
+ if (argv_find (argv, argc, "view", idx) || argv_find (argv, argc, "vrf", idx))
{
- vrf_name = argv[idx + 1]->arg;
- idx += 2;
+ vrf_name = argv[*idx + 1]->arg;
+ *idx += 2;
}
- if (argv_find_and_parse_afi (argv, argc, &idx, afi))
- argv_find_and_parse_safi (argv, argc, &idx, safi);
+ if (argv_find_and_parse_afi (argv, argc, idx, afi))
+ argv_find_and_parse_safi (argv, argc, idx, safi);
if (vrf_name)
{
@@ -260,9 +260,12 @@ bgp_vty_find_and_parse_afi_safi_vrf (struct vty *vty, struct cmd_token **argv, i
if (*vrf == VRF_UNKNOWN)
{
vty_out (vty, "View/Vrf specified is unknown: %s", vrf_name);
+ *idx = 0;
return 0;
}
- return idx + 1;
+
+ *idx += 1;
+ return *idx;
}
static int
diff --git a/bgpd/bgp_vty.h b/bgpd/bgp_vty.h
index cfc4f6cdfb..13e67d112e 100644
--- a/bgpd/bgp_vty.h
+++ b/bgpd/bgp_vty.h
@@ -64,6 +64,6 @@ extern int
argv_find_and_parse_safi(struct cmd_token **argv, int argc, int *index, safi_t *safi);
extern int
-bgp_vty_find_and_parse_afi_safi_vrf (struct vty *vty, struct cmd_token **argv, int argc, int idx,
+bgp_vty_find_and_parse_afi_safi_vrf (struct vty *vty, struct cmd_token **argv, int argc, int *idx,
afi_t *afi, safi_t *safi, vrf_id_t *vrf);
#endif /* _QUAGGA_BGP_VTY_H */