version 1.1.1.1, 2012/02/21 17:26:11
|
version 1.1.1.2, 2012/10/09 09:22:29
|
Line 556 vty_show_ip_route_detail (struct vty *vty, struct rout
|
Line 556 vty_show_ip_route_detail (struct vty *vty, struct rout
|
#define ONE_WEEK_SECOND 60*60*24*7 |
#define ONE_WEEK_SECOND 60*60*24*7 |
if (rib->type == ZEBRA_ROUTE_RIP |
if (rib->type == ZEBRA_ROUTE_RIP |
|| rib->type == ZEBRA_ROUTE_OSPF |
|| rib->type == ZEBRA_ROUTE_OSPF |
|
|| rib->type == ZEBRA_ROUTE_BABEL |
|| rib->type == ZEBRA_ROUTE_ISIS |
|| rib->type == ZEBRA_ROUTE_ISIS |
|| rib->type == ZEBRA_ROUTE_BGP) |
|| rib->type == ZEBRA_ROUTE_BGP) |
{ |
{ |
Line 774 vty_show_ip_route (struct vty *vty, struct route_node
|
Line 775 vty_show_ip_route (struct vty *vty, struct route_node
|
|
|
if (rib->type == ZEBRA_ROUTE_RIP |
if (rib->type == ZEBRA_ROUTE_RIP |
|| rib->type == ZEBRA_ROUTE_OSPF |
|| rib->type == ZEBRA_ROUTE_OSPF |
|
|| rib->type == ZEBRA_ROUTE_BABEL |
|| rib->type == ZEBRA_ROUTE_ISIS |
|| rib->type == ZEBRA_ROUTE_ISIS |
|| rib->type == ZEBRA_ROUTE_BGP) |
|| rib->type == ZEBRA_ROUTE_BGP) |
{ |
{ |
Line 802 vty_show_ip_route (struct vty *vty, struct route_node
|
Line 804 vty_show_ip_route (struct vty *vty, struct route_node
|
} |
} |
} |
} |
|
|
#define SHOW_ROUTE_V4_HEADER "Codes: K - kernel route, C - connected, " \ |
|
"S - static, R - RIP, O - OSPF,%s I - ISIS, B - BGP, " \ |
|
"> - selected route, * - FIB route%s%s" |
|
|
|
DEFUN (show_ip_route, |
DEFUN (show_ip_route, |
show_ip_route_cmd, |
show_ip_route_cmd, |
"show ip route", |
"show ip route", |
Line 828 DEFUN (show_ip_route,
|
Line 826 DEFUN (show_ip_route,
|
{ |
{ |
if (first) |
if (first) |
{ |
{ |
vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE, VTY_NEWLINE, | vty_out (vty, SHOW_ROUTE_V4_HEADER); |
VTY_NEWLINE); | |
first = 0; |
first = 0; |
} |
} |
vty_show_ip_route (vty, rn, rib); |
vty_show_ip_route (vty, rn, rib); |
Line 871 DEFUN (show_ip_route_prefix_longer,
|
Line 868 DEFUN (show_ip_route_prefix_longer,
|
{ |
{ |
if (first) |
if (first) |
{ |
{ |
vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE, | vty_out (vty, SHOW_ROUTE_V4_HEADER); |
VTY_NEWLINE, VTY_NEWLINE); | |
first = 0; |
first = 0; |
} |
} |
vty_show_ip_route (vty, rn, rib); |
vty_show_ip_route (vty, rn, rib); |
Line 910 DEFUN (show_ip_route_supernets,
|
Line 906 DEFUN (show_ip_route_supernets,
|
{ |
{ |
if (first) |
if (first) |
{ |
{ |
vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE, | vty_out (vty, SHOW_ROUTE_V4_HEADER); |
VTY_NEWLINE, VTY_NEWLINE); | |
first = 0; |
first = 0; |
} |
} |
vty_show_ip_route (vty, rn, rib); |
vty_show_ip_route (vty, rn, rib); |
Line 922 DEFUN (show_ip_route_supernets,
|
Line 917 DEFUN (show_ip_route_supernets,
|
|
|
DEFUN (show_ip_route_protocol, |
DEFUN (show_ip_route_protocol, |
show_ip_route_protocol_cmd, |
show_ip_route_protocol_cmd, |
"show ip route (bgp|connected|isis|kernel|ospf|rip|static)", | "show ip route " QUAGGA_IP_REDIST_STR_ZEBRA, |
SHOW_STR |
SHOW_STR |
IP_STR |
IP_STR |
"IP routing table\n" |
"IP routing table\n" |
"Border Gateway Protocol (BGP)\n" | QUAGGA_IP_REDIST_HELP_STR_ZEBRA) |
"Connected\n" | |
"ISO IS-IS (ISIS)\n" | |
"Kernel\n" | |
"Open Shortest Path First (OSPF)\n" | |
"Routing Information Protocol (RIP)\n" | |
"Static routes\n") | |
{ |
{ |
int type; |
int type; |
struct route_table *table; |
struct route_table *table; |
Line 940 DEFUN (show_ip_route_protocol,
|
Line 929 DEFUN (show_ip_route_protocol,
|
struct rib *rib; |
struct rib *rib; |
int first = 1; |
int first = 1; |
|
|
if (strncmp (argv[0], "b", 1) == 0) | type = proto_redistnum (AFI_IP, argv[0]); |
type = ZEBRA_ROUTE_BGP; | if (type < 0) |
else if (strncmp (argv[0], "c", 1) == 0) | |
type = ZEBRA_ROUTE_CONNECT; | |
else if (strncmp (argv[0], "k", 1) ==0) | |
type = ZEBRA_ROUTE_KERNEL; | |
else if (strncmp (argv[0], "o", 1) == 0) | |
type = ZEBRA_ROUTE_OSPF; | |
else if (strncmp (argv[0], "i", 1) == 0) | |
type = ZEBRA_ROUTE_ISIS; | |
else if (strncmp (argv[0], "r", 1) == 0) | |
type = ZEBRA_ROUTE_RIP; | |
else if (strncmp (argv[0], "s", 1) == 0) | |
type = ZEBRA_ROUTE_STATIC; | |
else | |
{ |
{ |
vty_out (vty, "Unknown route type%s", VTY_NEWLINE); |
vty_out (vty, "Unknown route type%s", VTY_NEWLINE); |
return CMD_WARNING; |
return CMD_WARNING; |
Line 971 DEFUN (show_ip_route_protocol,
|
Line 947 DEFUN (show_ip_route_protocol,
|
{ |
{ |
if (first) |
if (first) |
{ |
{ |
vty_out (vty, SHOW_ROUTE_V4_HEADER, | vty_out (vty, SHOW_ROUTE_V4_HEADER); |
VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE); | |
first = 0; |
first = 0; |
} |
} |
vty_show_ip_route (vty, rn, rib); |
vty_show_ip_route (vty, rn, rib); |
Line 1559 vty_show_ipv6_route_detail (struct vty *vty, struct ro
|
Line 1534 vty_show_ipv6_route_detail (struct vty *vty, struct ro
|
#define ONE_WEEK_SECOND 60*60*24*7 |
#define ONE_WEEK_SECOND 60*60*24*7 |
if (rib->type == ZEBRA_ROUTE_RIPNG |
if (rib->type == ZEBRA_ROUTE_RIPNG |
|| rib->type == ZEBRA_ROUTE_OSPF6 |
|| rib->type == ZEBRA_ROUTE_OSPF6 |
|
|| rib->type == ZEBRA_ROUTE_BABEL |
|| rib->type == ZEBRA_ROUTE_ISIS |
|| rib->type == ZEBRA_ROUTE_ISIS |
|| rib->type == ZEBRA_ROUTE_BGP) |
|| rib->type == ZEBRA_ROUTE_BGP) |
{ |
{ |
Line 1738 vty_show_ipv6_route (struct vty *vty, struct route_nod
|
Line 1714 vty_show_ipv6_route (struct vty *vty, struct route_nod
|
|
|
if (rib->type == ZEBRA_ROUTE_RIPNG |
if (rib->type == ZEBRA_ROUTE_RIPNG |
|| rib->type == ZEBRA_ROUTE_OSPF6 |
|| rib->type == ZEBRA_ROUTE_OSPF6 |
|
|| rib->type == ZEBRA_ROUTE_BABEL |
|| rib->type == ZEBRA_ROUTE_ISIS |
|| rib->type == ZEBRA_ROUTE_ISIS |
|| rib->type == ZEBRA_ROUTE_BGP) |
|| rib->type == ZEBRA_ROUTE_BGP) |
{ |
{ |
Line 1766 vty_show_ipv6_route (struct vty *vty, struct route_nod
|
Line 1743 vty_show_ipv6_route (struct vty *vty, struct route_nod
|
} |
} |
} |
} |
|
|
#define SHOW_ROUTE_V6_HEADER "Codes: K - kernel route, C - connected, S - static, R - RIPng, O - OSPFv3,%s I - ISIS, B - BGP, * - FIB route.%s%s" |
|
|
|
DEFUN (show_ipv6_route, |
DEFUN (show_ipv6_route, |
show_ipv6_route_cmd, |
show_ipv6_route_cmd, |
"show ipv6 route", |
"show ipv6 route", |
Line 1790 DEFUN (show_ipv6_route,
|
Line 1765 DEFUN (show_ipv6_route,
|
{ |
{ |
if (first) |
if (first) |
{ |
{ |
vty_out (vty, SHOW_ROUTE_V6_HEADER, VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE); | vty_out (vty, SHOW_ROUTE_V6_HEADER); |
first = 0; |
first = 0; |
} |
} |
vty_show_ipv6_route (vty, rn, rib); |
vty_show_ipv6_route (vty, rn, rib); |
Line 1832 DEFUN (show_ipv6_route_prefix_longer,
|
Line 1807 DEFUN (show_ipv6_route_prefix_longer,
|
{ |
{ |
if (first) |
if (first) |
{ |
{ |
vty_out (vty, SHOW_ROUTE_V6_HEADER, VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE); | vty_out (vty, SHOW_ROUTE_V6_HEADER); |
first = 0; |
first = 0; |
} |
} |
vty_show_ipv6_route (vty, rn, rib); |
vty_show_ipv6_route (vty, rn, rib); |
Line 1842 DEFUN (show_ipv6_route_prefix_longer,
|
Line 1817 DEFUN (show_ipv6_route_prefix_longer,
|
|
|
DEFUN (show_ipv6_route_protocol, |
DEFUN (show_ipv6_route_protocol, |
show_ipv6_route_protocol_cmd, |
show_ipv6_route_protocol_cmd, |
"show ipv6 route (bgp|connected|isis|kernel|ospf6|ripng|static)", | "show ipv6 route " QUAGGA_IP6_REDIST_STR_ZEBRA, |
SHOW_STR |
SHOW_STR |
IP_STR |
IP_STR |
"IP routing table\n" |
"IP routing table\n" |
"Border Gateway Protocol (BGP)\n" | QUAGGA_IP6_REDIST_HELP_STR_ZEBRA) |
"Connected\n" | |
"ISO IS-IS (ISIS)\n" | |
"Kernel\n" | |
"Open Shortest Path First (OSPFv3)\n" | |
"Routing Information Protocol (RIPng)\n" | |
"Static routes\n") | |
{ |
{ |
int type; |
int type; |
struct route_table *table; |
struct route_table *table; |
Line 1860 DEFUN (show_ipv6_route_protocol,
|
Line 1829 DEFUN (show_ipv6_route_protocol,
|
struct rib *rib; |
struct rib *rib; |
int first = 1; |
int first = 1; |
|
|
if (strncmp (argv[0], "b", 1) == 0) | type = proto_redistnum (AFI_IP6, argv[0]); |
type = ZEBRA_ROUTE_BGP; | if (type < 0) |
else if (strncmp (argv[0], "c", 1) == 0) | |
type = ZEBRA_ROUTE_CONNECT; | |
else if (strncmp (argv[0], "k", 1) ==0) | |
type = ZEBRA_ROUTE_KERNEL; | |
else if (strncmp (argv[0], "o", 1) == 0) | |
type = ZEBRA_ROUTE_OSPF6; | |
else if (strncmp (argv[0], "i", 1) == 0) | |
type = ZEBRA_ROUTE_ISIS; | |
else if (strncmp (argv[0], "r", 1) == 0) | |
type = ZEBRA_ROUTE_RIPNG; | |
else if (strncmp (argv[0], "s", 1) == 0) | |
type = ZEBRA_ROUTE_STATIC; | |
else | |
{ |
{ |
vty_out (vty, "Unknown route type%s", VTY_NEWLINE); |
vty_out (vty, "Unknown route type%s", VTY_NEWLINE); |
return CMD_WARNING; |
return CMD_WARNING; |
Line 1891 DEFUN (show_ipv6_route_protocol,
|
Line 1847 DEFUN (show_ipv6_route_protocol,
|
{ |
{ |
if (first) |
if (first) |
{ |
{ |
vty_out (vty, SHOW_ROUTE_V6_HEADER, VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE); | vty_out (vty, SHOW_ROUTE_V6_HEADER); |
first = 0; |
first = 0; |
} |
} |
vty_show_ipv6_route (vty, rn, rib); |
vty_show_ipv6_route (vty, rn, rib); |
Line 1995 DEFUN (show_ipv6_route_summary,
|
Line 1951 DEFUN (show_ipv6_route_summary,
|
return CMD_SUCCESS; |
return CMD_SUCCESS; |
} |
} |
|
|
|
/* |
|
* Show IP mroute command to dump the BGP Multicast |
|
* routing table |
|
*/ |
|
DEFUN (show_ip_mroute, |
|
show_ip_mroute_cmd, |
|
"show ip mroute", |
|
SHOW_STR |
|
IP_STR |
|
"IP Multicast routing table\n") |
|
{ |
|
struct route_table *table; |
|
struct route_node *rn; |
|
struct rib *rib; |
|
int first = 1; |
|
|
|
table = vrf_table (AFI_IP, SAFI_MULTICAST, 0); |
|
if (! table) |
|
return CMD_SUCCESS; |
|
|
|
/* Show all IPv4 routes. */ |
|
for (rn = route_top (table); rn; rn = route_next (rn)) |
|
for (rib = rn->info; rib; rib = rib->next) |
|
{ |
|
if (first) |
|
{ |
|
vty_out (vty, SHOW_ROUTE_V4_HEADER); |
|
first = 0; |
|
} |
|
vty_show_ip_route (vty, rn, rib); |
|
} |
|
return CMD_SUCCESS; |
|
} |
|
|
|
/* |
|
* Show IPv6 mroute command.Used to dump |
|
* the Multicast routing table. |
|
*/ |
|
|
|
DEFUN (show_ipv6_mroute, |
|
show_ipv6_mroute_cmd, |
|
"show ipv6 mroute", |
|
SHOW_STR |
|
IP_STR |
|
"IPv6 Multicast routing table\n") |
|
{ |
|
struct route_table *table; |
|
struct route_node *rn; |
|
struct rib *rib; |
|
int first = 1; |
|
|
|
table = vrf_table (AFI_IP6, SAFI_MULTICAST, 0); |
|
if (! table) |
|
return CMD_SUCCESS; |
|
|
|
/* Show all IPv6 route. */ |
|
for (rn = route_top (table); rn; rn = route_next (rn)) |
|
for (rib = rn->info; rib; rib = rib->next) |
|
{ |
|
if (first) |
|
{ |
|
vty_out (vty, SHOW_ROUTE_V6_HEADER); |
|
first = 0; |
|
} |
|
vty_show_ipv6_route (vty, rn, rib); |
|
} |
|
return CMD_SUCCESS; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
/* Write IPv6 static route configuration. */ |
/* Write IPv6 static route configuration. */ |
static int |
static int |
static_config_ipv6 (struct vty *vty) |
static_config_ipv6 (struct vty *vty) |
Line 2137 zebra_vty_init (void)
|
Line 2167 zebra_vty_init (void)
|
install_element (ENABLE_NODE, &show_ip_route_supernets_cmd); |
install_element (ENABLE_NODE, &show_ip_route_supernets_cmd); |
install_element (ENABLE_NODE, &show_ip_route_summary_cmd); |
install_element (ENABLE_NODE, &show_ip_route_summary_cmd); |
|
|
|
install_element (VIEW_NODE, &show_ip_mroute_cmd); |
|
install_element (ENABLE_NODE, &show_ip_mroute_cmd); |
|
|
|
|
#ifdef HAVE_IPV6 |
#ifdef HAVE_IPV6 |
install_element (CONFIG_NODE, &ipv6_route_cmd); |
install_element (CONFIG_NODE, &ipv6_route_cmd); |
install_element (CONFIG_NODE, &ipv6_route_flags_cmd); |
install_element (CONFIG_NODE, &ipv6_route_flags_cmd); |
Line 2166 zebra_vty_init (void)
|
Line 2200 zebra_vty_init (void)
|
install_element (ENABLE_NODE, &show_ipv6_route_prefix_cmd); |
install_element (ENABLE_NODE, &show_ipv6_route_prefix_cmd); |
install_element (ENABLE_NODE, &show_ipv6_route_prefix_longer_cmd); |
install_element (ENABLE_NODE, &show_ipv6_route_prefix_longer_cmd); |
install_element (ENABLE_NODE, &show_ipv6_route_summary_cmd); |
install_element (ENABLE_NODE, &show_ipv6_route_summary_cmd); |
|
|
|
install_element (VIEW_NODE, &show_ipv6_mroute_cmd); |
|
install_element (ENABLE_NODE, &show_ipv6_mroute_cmd); |
#endif /* HAVE_IPV6 */ |
#endif /* HAVE_IPV6 */ |
} |
} |