"%s AS Scoped Link State Database%s%s"
static int
-parse_show_level (int argc, struct cmd_token **argv)
+parse_show_level (int idx_level, int argc, struct cmd_token **argv)
{
- int level = 0;
- if (argc)
+ int level = OSPF6_LSDB_SHOW_LEVEL_NORMAL;
+
+ if (argc > idx_level)
{
- if (! strncmp (argv[0]->arg, "de", 2))
+ if (strmatch (argv[idx_level]->text, "detail"))
level = OSPF6_LSDB_SHOW_LEVEL_DETAIL;
- else if (! strncmp (argv[0]->arg, "du", 2))
+ else if (strmatch (argv[idx_level]->text, "dump"))
level = OSPF6_LSDB_SHOW_LEVEL_DUMP;
- else if (! strncmp (argv[0]->arg, "in", 2))
+ else if (strmatch (argv[idx_level]->text, "internal"))
level = OSPF6_LSDB_SHOW_LEVEL_INTERNAL;
}
- else
- level = OSPF6_LSDB_SHOW_LEVEL_NORMAL;
+
return level;
}
static u_int16_t
-parse_type_spec (int argc, struct cmd_token **argv)
+parse_type_spec (int idx_lsa, int argc, struct cmd_token **argv)
{
u_int16_t type = 0;
- assert (argc);
- if (! strcmp (argv[0]->arg, "router"))
- type = htons (OSPF6_LSTYPE_ROUTER);
- else if (! strcmp (argv[0]->arg, "network"))
- type = htons (OSPF6_LSTYPE_NETWORK);
- else if (! strcmp (argv[0]->arg, "as-external"))
- type = htons (OSPF6_LSTYPE_AS_EXTERNAL);
- else if (! strcmp (argv[0]->arg, "intra-prefix"))
- type = htons (OSPF6_LSTYPE_INTRA_PREFIX);
- else if (! strcmp (argv[0]->arg, "inter-router"))
- type = htons (OSPF6_LSTYPE_INTER_ROUTER);
- else if (! strcmp (argv[0]->arg, "inter-prefix"))
- type = htons (OSPF6_LSTYPE_INTER_PREFIX);
- else if (! strcmp (argv[0]->arg, "link"))
- type = htons (OSPF6_LSTYPE_LINK);
+
+ if (argc > idx_lsa)
+ {
+ if (strmatch (argv[0]->text, "router"))
+ type = htons (OSPF6_LSTYPE_ROUTER);
+ else if (strmatch (argv[0]->text, "network"))
+ type = htons (OSPF6_LSTYPE_NETWORK);
+ else if (strmatch (argv[0]->text, "as-external"))
+ type = htons (OSPF6_LSTYPE_AS_EXTERNAL);
+ else if (strmatch (argv[0]->text, "intra-prefix"))
+ type = htons (OSPF6_LSTYPE_INTRA_PREFIX);
+ else if (strmatch (argv[0]->text, "inter-router"))
+ type = htons (OSPF6_LSTYPE_INTER_ROUTER);
+ else if (strmatch (argv[0]->text, "inter-prefix"))
+ type = htons (OSPF6_LSTYPE_INTER_PREFIX);
+ else if (strmatch (argv[0]->text, "link"))
+ type = htons (OSPF6_LSTYPE_LINK);
+ }
+
return type;
}
-/*
- * CHECK ME - The following ALIASes need to be implemented in this DEFUN
- * "show ipv6 ospf6 database (detail|dump|internal)",
- * SHOW_STR
- * IPV6_STR
- * OSPF6_STR
- * "Display Link state database\n"
- * "Display details of LSAs\n"
- * "Dump LSAs\n"
- * "Display LSA's internal information\n"
- *
- *
- */
DEFUN (show_ipv6_ospf6_database,
show_ipv6_ospf6_database_cmd,
- "show ipv6 ospf6 database",
+ "show ipv6 ospf6 database [detail|dump|internal]",
SHOW_STR
IPV6_STR
OSPF6_STR
"Display Link state database\n"
- )
+ "Display details of LSAs\n"
+ "Dump LSAs\n"
+ "Display LSA's internal information\n")
{
- /* CHECK ME argc referenced below */
+ int idx_level = 4;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
OSPF6_CMD_CHECK_RUNNING ();
- level = parse_show_level (argc, argv);
+ level = parse_show_level (idx_level, argc, argv);
for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa))
{
return CMD_SUCCESS;
}
-
-/*
- * CHECK ME - The following ALIASes need to be implemented in this DEFUN
- * "show ipv6 ospf6 database (router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix) (detail|dump|internal)",
- * SHOW_STR
- * IPV6_STR
- * OSPF6_STR
- * "Display Link state database\n"
- * "Display Router LSAs\n"
- * "Display Network LSAs\n"
- * "Display Inter-Area-Prefix LSAs\n"
- * "Display Inter-Area-Router LSAs\n"
- * "Display As-External LSAs\n"
- * "Display Group-Membership LSAs\n"
- * "Display Type-7 LSAs\n"
- * "Display Link LSAs\n"
- * "Display Intra-Area-Prefix LSAs\n"
- * "Display details of LSAs\n"
- * "Dump LSAs\n"
- * "Display LSA's internal information\n"
- *
- *
- */
DEFUN (show_ipv6_ospf6_database_type,
show_ipv6_ospf6_database_type_cmd,
- "show ipv6 ospf6 database <router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix>",
+ "show ipv6 ospf6 database <router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix> [<detail|dump|internal>]",
SHOW_STR
IPV6_STR
OSPF6_STR
"Display Type-7 LSAs\n"
"Display Link LSAs\n"
"Display Intra-Area-Prefix LSAs\n"
+ "Display details of LSAs\n"
+ "Dump LSAs\n"
+ "Display LSA's internal information\n"
)
{
- /* CHECK ME argc referenced below */
+ int idx_lsa = 4;
+ int idx_level = 5;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
OSPF6_CMD_CHECK_RUNNING ();
- type = parse_type_spec (argc, argv);
- argc--;
- argv++;
- level = parse_show_level (argc, argv);
+ type = parse_type_spec (idx_lsa, argc, argv);
+ level = parse_show_level (idx_level, argc, argv);
switch (OSPF6_LSA_SCOPE (type))
{
* "Display LSA's internal information\n"
*
*
- * "show ipv6 ospf6 database linkstate-id A.B.C.D "
- * "(detail|dump|internal)",
+ * "show ipv6 ospf6 database linkstate-id A.B.C.D (detail|dump|internal)",
* SHOW_STR
* IPV6_STR
* OSPF6_STR
{
/* CHECK ME argc referenced below */
int idx_ipv4 = 5;
+ int idx_level = 6;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
u_int32_t id = 0;
OSPF6_CMD_CHECK_RUNNING ();
-
- if ((inet_pton (AF_INET, argv[idx_ipv4]->arg, &id)) != 1)
- {
- vty_out (vty, "Link State ID is not parsable: %s%s",
- argv[idx_ipv4]->arg, VNL);
- return CMD_SUCCESS;
- }
-
- argc--;
- argv++;
- level = parse_show_level (argc, argv);
+ inet_pton (AF_INET, argv[idx_ipv4]->arg, &id);
+ level = parse_show_level (idx_level, argc, argv);
for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa))
{
* "Specify Advertising Router as IPv4 address notation\n"
*
*
- * "show ipv6 ospf6 database adv-router A.B.C.D "
- * "(detail|dump|internal)",
+ * "show ipv6 ospf6 database adv-router A.B.C.D (detail|dump|internal)",
* SHOW_STR
* IPV6_STR
* OSPF6_STR
{
/* CHECK ME argc referenced below */
int idx_ipv4 = 6;
+ int idx_level = 7;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
u_int32_t adv_router = 0;
OSPF6_CMD_CHECK_RUNNING ();
-
- if ((inet_pton (AF_INET, argv[idx_ipv4]->arg, &adv_router)) != 1)
- {
- vty_out (vty, "Advertising Router is not parsable: %s%s",
- argv[idx_ipv4]->arg, VNL);
- return CMD_SUCCESS;
- }
-
- argc--;
- argv++;
- level = parse_show_level (argc, argv);
+ inet_pton (AF_INET, argv[idx_ipv4]->arg, &adv_router);
+ level = parse_show_level (idx_level, argc, argv);
for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa))
{
* "Display LSA's internal information\n"
*
*
- * "show ipv6 ospf6 database "
- * "(router|network|inter-prefix|inter-router|as-external|"
- * "group-membership|type-7|link|intra-prefix) A.B.C.D "
- * "(detail|dump|internal)",
+ * "show ipv6 ospf6 database (router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix) A.B.C.D (detail|dump|internal)",
* SHOW_STR
* IPV6_STR
* OSPF6_STR
* "Display LSA's internal information\n"
*
*
- * "show ipv6 ospf6 database "
- * "(router|network|inter-prefix|inter-router|as-external|"
- * "group-membership|type-7|link|intra-prefix) linkstate-id A.B.C.D",
+ * "show ipv6 ospf6 database (router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix) linkstate-id A.B.C.D",
* SHOW_STR
* IPV6_STR
* OSPF6_STR
{
/* CHECK ME argc referenced below */
int idx_lsa = 4;
+ int idx_ipv4 = 5;
+ int idx_level = 6;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
OSPF6_CMD_CHECK_RUNNING ();
- type = parse_type_spec (argc, argv);
- argc--;
- argv++;
-
- if ((inet_pton (AF_INET, argv[idx_lsa]->arg, &id)) != 1)
- {
- vty_out (vty, "Link state ID is not parsable: %s%s",
- argv[idx_lsa]->arg, VNL);
- return CMD_SUCCESS;
- }
-
- argc--;
- argv++;
- level = parse_show_level (argc, argv);
+ type = parse_type_spec (idx_lsa, argc, argv);
+ inet_pton (AF_INET, argv[idx_ipv4]->arg, &id);
+ level = parse_show_level (idx_level, argc, argv);
switch (OSPF6_LSA_SCOPE (type))
{
* "Display LSA's internal information\n"
*
*
- * "show ipv6 ospf6 database "
- * "(router|network|inter-prefix|inter-router|as-external|"
- * "group-membership|type-7|link|intra-prefix) adv-router A.B.C.D "
- * "(detail|dump|internal)",
+ * "show ipv6 ospf6 database (router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix) adv-router A.B.C.D (detail|dump|internal)",
* SHOW_STR
* IPV6_STR
* OSPF6_STR
* "Display LSA's internal information\n"
*
*
- * "show ipv6 ospf6 database "
- * "(router|network|inter-prefix|inter-router|as-external|"
- * "group-membership|type-7|link|intra-prefix) adv-router A.B.C.D",
+ * "show ipv6 ospf6 database (router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix) adv-router A.B.C.D",
* SHOW_STR
* IPV6_STR
* OSPF6_STR
{
/* CHECK ME argc referenced below */
int idx_lsa = 4;
+ int idx_ipv4 = 6;
+ int idx_level = 7;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
OSPF6_CMD_CHECK_RUNNING ();
- type = parse_type_spec (argc, argv);
- argc--;
- argv++;
-
- if ((inet_pton (AF_INET, argv[idx_lsa]->arg, &adv_router)) != 1)
- {
- vty_out (vty, "Advertising Router is not parsable: %s%s",
- argv[idx_lsa]->arg, VNL);
- return CMD_SUCCESS;
- }
-
- argc--;
- argv++;
- level = parse_show_level (argc, argv);
+ type = parse_type_spec (idx_lsa, argc, argv);
+ inet_pton (AF_INET, argv[idx_ipv4]->arg, &adv_router);
+ level = parse_show_level (idx_level, argc, argv);
switch (OSPF6_LSA_SCOPE (type))
{
}
-
-
-/*
- * CHECK ME - The following ALIASes need to be implemented in this DEFUN
- * "show ipv6 ospf6 database * A.B.C.D A.B.C.D (detail|dump|internal)",
- * SHOW_STR
- * IPV6_STR
- * OSPF6_STR
- * "Display Link state database\n"
- * "Any Link state Type\n"
- * "Specify Link state ID as IPv4 address notation\n"
- * "Specify Advertising Router as IPv4 address notation\n"
- * "Display details of LSAs\n"
- * "Dump LSAs\n"
- * "Display LSA's internal information\n"
- *
- *
- */
DEFUN (show_ipv6_ospf6_database_id_router,
show_ipv6_ospf6_database_id_router_cmd,
- "show ipv6 ospf6 database * A.B.C.D A.B.C.D",
+ "show ipv6 ospf6 database * A.B.C.D A.B.C.D [<detail|dump|internal>]",
SHOW_STR
IPV6_STR
OSPF6_STR
"Any Link state Type\n"
"Specify Link state ID as IPv4 address notation\n"
"Specify Advertising Router as IPv4 address notation\n"
+ "Display details of LSAs\n"
+ "Dump LSAs\n"
+ "Display LSA's internal information\n"
)
{
- /* CHECK ME argc referenced below */
- int idx_ipv4 = 5;
+ int idx_ls_id = 5;
+ int idx_adv_rtr = 6;
+ int idx_level = 7;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
u_int32_t adv_router = 0;
OSPF6_CMD_CHECK_RUNNING ();
-
- if ((inet_pton (AF_INET, argv[idx_ipv4]->arg, &id)) != 1)
- {
- vty_out (vty, "Link state ID is not parsable: %s%s",
- argv[idx_ipv4]->arg, VNL);
- return CMD_SUCCESS;
- }
-
- argc--;
- argv++;
-
- if ((inet_pton (AF_INET, argv[idx_ipv4]->arg, &adv_router)) != 1)
- {
- vty_out (vty, "Advertising Router is not parsable: %s%s",
- argv[idx_ipv4]->arg, VNL);
- return CMD_SUCCESS;
- }
-
- argc--;
- argv++;
- level = parse_show_level (argc, argv);
+ inet_pton (AF_INET, argv[idx_ls_id]->arg, &id);
+ inet_pton (AF_INET, argv[idx_adv_rtr]->arg, &adv_router);
+ level = parse_show_level (idx_level, argc, argv);
for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa))
{
}
-/*
- * CHECK ME - The following ALIASes need to be implemented in this DEFUN
- * "show ipv6 ospf6 database adv-router A.B.C.D linkstate-id A.B.C.D (detail|dump|internal)",
- * SHOW_STR
- * IPV6_STR
- * OSPF6_STR
- * "Display Link state database\n"
- * "Search by Advertising Router\n"
- * "Specify Advertising Router as IPv4 address notation\n"
- * "Search by Link state ID\n"
- * "Specify Link state ID as IPv4 address notation\n"
- * "Display details of LSAs\n"
- * "Dump LSAs\n"
- * "Display LSA's internal information\n"
- *
- *
- */
DEFUN (show_ipv6_ospf6_database_adv_router_linkstate_id,
show_ipv6_ospf6_database_adv_router_linkstate_id_cmd,
- "show ipv6 ospf6 database adv-router A.B.C.D linkstate-id A.B.C.D",
+ "show ipv6 ospf6 database adv-router A.B.C.D linkstate-id A.B.C.D [<detail|dump|internal>]",
SHOW_STR
IPV6_STR
OSPF6_STR
"Specify Advertising Router as IPv4 address notation\n"
"Search by Link state ID\n"
"Specify Link state ID as IPv4 address notation\n"
- )
+ "Display details of LSAs\n"
+ "Dump LSAs\n"
+ "Display LSA's internal information\n")
{
- /* CHECK ME argc referenced below */
- int idx_ipv4 = 5;
+ int idx_adv_rtr = 5;
+ int idx_ls_id = 7;
+ int idx_level = 8;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
u_int32_t adv_router = 0;
OSPF6_CMD_CHECK_RUNNING ();
-
- if ((inet_pton (AF_INET, argv[idx_ipv4]->arg, &adv_router)) != 1)
- {
- vty_out (vty, "Advertising Router is not parsable: %s%s",
- argv[idx_ipv4]->arg, VNL);
- return CMD_SUCCESS;
- }
-
- argc--;
- argv++;
-
- if ((inet_pton (AF_INET, argv[idx_ipv4]->arg, &id)) != 1)
- {
- vty_out (vty, "Link state ID is not parsable: %s%s",
- argv[idx_ipv4]->arg, VNL);
- return CMD_SUCCESS;
- }
-
- argc--;
- argv++;
- level = parse_show_level (argc, argv);
+ inet_pton (AF_INET, argv[idx_adv_rtr]->arg, &adv_router);
+ inet_pton (AF_INET, argv[idx_ls_id]->arg, &id);
+ level = parse_show_level (idx_level, argc, argv);
for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa))
{
return CMD_SUCCESS;
}
-
-/*
- * CHECK ME - The following ALIASes need to be implemented in this DEFUN
- * "show ipv6 ospf6 database (router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix) A.B.C.D A.B.C.D (dump|internal)",
- * SHOW_STR
- * IPV6_STR
- * OSPF6_STR
- * "Display Link state database\n"
- * "Display Router LSAs\n"
- * "Display Network LSAs\n"
- * "Display Inter-Area-Prefix LSAs\n"
- * "Display Inter-Area-Router LSAs\n"
- * "Display As-External LSAs\n"
- * "Display Group-Membership LSAs\n"
- * "Display Type-7 LSAs\n"
- * "Display Link LSAs\n"
- * "Display Intra-Area-Prefix LSAs\n"
- * "Specify Link state ID as IPv4 address notation\n"
- * "Specify Advertising Router as IPv4 address notation\n"
- * "Dump LSAs\n"
- * "Display LSA's internal information\n"
- *
- *
- */
DEFUN (show_ipv6_ospf6_database_type_id_router,
show_ipv6_ospf6_database_type_id_router_cmd,
- "show ipv6 ospf6 database <router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix> A.B.C.D A.B.C.D",
+ "show ipv6 ospf6 database <router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix> A.B.C.D A.B.C.D [<dump|internal>]",
SHOW_STR
IPV6_STR
OSPF6_STR
"Display Intra-Area-Prefix LSAs\n"
"Specify Link state ID as IPv4 address notation\n"
"Specify Advertising Router as IPv4 address notation\n"
- )
+ "Dump LSAs\n"
+ "Display LSA's internal information\n")
{
- /* CHECK ME argc referenced below */
int idx_lsa = 4;
+ int idx_ls_id = 5;
+ int idx_adv_rtr = 6;
+ int idx_level = 7;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
u_int32_t id = 0;
u_int32_t adv_router = 0;
+ // dwalton is this needed?
OSPF6_CMD_CHECK_RUNNING ();
- type = parse_type_spec (argc, argv);
- argc--;
- argv++;
-
- if ((inet_pton (AF_INET, argv[idx_lsa]->arg, &id)) != 1)
- {
- vty_out (vty, "Link state ID is not parsable: %s%s",
- argv[idx_lsa]->arg, VNL);
- return CMD_SUCCESS;
- }
-
- argc--;
- argv++;
-
- if ((inet_pton (AF_INET, argv[idx_lsa]->arg, &adv_router)) != 1)
- {
- vty_out (vty, "Advertising Router is not parsable: %s%s",
- argv[idx_lsa]->arg, VNL);
- return CMD_SUCCESS;
- }
-
- argc--;
- argv++;
- level = parse_show_level (argc, argv);
+ type = parse_type_spec (idx_lsa, argc, argv);
+ inet_pton (AF_INET, argv[idx_ls_id]->arg, &id);
+ inet_pton (AF_INET, argv[idx_adv_rtr]->arg, &adv_router);
+ level = parse_show_level (idx_level, argc, argv);
switch (OSPF6_LSA_SCOPE (type))
{
}
-/*
- * CHECK ME - The following ALIASes need to be implemented in this DEFUN
- * "show ipv6 ospf6 database (router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix) adv-router A.B.C.D linkstate-id A.B.C.D (dump|internal)",
- * SHOW_STR
- * IPV6_STR
- * OSPF6_STR
- * "Display Link state database\n"
- * "Display Router LSAs\n"
- * "Display Network LSAs\n"
- * "Display Inter-Area-Prefix LSAs\n"
- * "Display Inter-Area-Router LSAs\n"
- * "Display As-External LSAs\n"
- * "Display Group-Membership LSAs\n"
- * "Display Type-7 LSAs\n"
- * "Display Link LSAs\n"
- * "Display Intra-Area-Prefix LSAs\n"
- * "Search by Advertising Router\n"
- * "Specify Advertising Router as IPv4 address notation\n"
- * "Search by Link state ID\n"
- * "Specify Link state ID as IPv4 address notation\n"
- * "Dump LSAs\n"
- * "Display LSA's internal information\n"
- *
- *
- */
DEFUN (show_ipv6_ospf6_database_type_adv_router_linkstate_id,
show_ipv6_ospf6_database_type_adv_router_linkstate_id_cmd,
- "show ipv6 ospf6 database <router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix> adv-router A.B.C.D linkstate-id A.B.C.D",
+ "show ipv6 ospf6 database <router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix> adv-router A.B.C.D linkstate-id A.B.C.D [<dump|internal>]",
SHOW_STR
IPV6_STR
OSPF6_STR
"Specify Advertising Router as IPv4 address notation\n"
"Search by Link state ID\n"
"Specify Link state ID as IPv4 address notation\n"
- )
+ "Dump LSAs\n"
+ "Display LSA's internal information\n")
{
- /* CHECK ME argc referenced below */
int idx_lsa = 4;
+ int idx_adv_rtr = 6;
+ int idx_ls_id = 8;
+ int idx_level = 9;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
OSPF6_CMD_CHECK_RUNNING ();
- type = parse_type_spec (argc, argv);
- argc--;
- argv++;
-
- if ((inet_pton (AF_INET, argv[idx_lsa]->arg, &adv_router)) != 1)
- {
- vty_out (vty, "Advertising Router is not parsable: %s%s",
- argv[idx_lsa]->arg, VNL);
- return CMD_SUCCESS;
- }
-
- argc--;
- argv++;
-
- if ((inet_pton (AF_INET, argv[idx_lsa]->arg, &id)) != 1)
- {
- vty_out (vty, "Link state ID is not parsable: %s%s",
- argv[idx_lsa]->arg, VNL);
- return CMD_SUCCESS;
- }
-
- argc--;
- argv++;
- level = parse_show_level (argc, argv);
+ type = parse_type_spec (idx_lsa, argc, argv);
+ inet_pton (AF_INET, argv[idx_adv_rtr]->arg, &adv_router);
+ inet_pton (AF_INET, argv[idx_ls_id]->arg, &id);
+ level = parse_show_level (idx_level, argc, argv);
switch (OSPF6_LSA_SCOPE (type))
{
return CMD_SUCCESS;
}
-
-/*
- * CHECK ME - The following ALIASes need to be implemented in this DEFUN
- * "show ipv6 ospf6 database self-originated (detail|dump|internal)",
- * SHOW_STR
- * IPV6_STR
- * OSPF6_STR
- * "Display Self-originated LSAs\n"
- * "Display details of LSAs\n"
- * "Dump LSAs\n"
- * "Display LSA's internal information\n"
- *
- *
- */
DEFUN (show_ipv6_ospf6_database_self_originated,
show_ipv6_ospf6_database_self_originated_cmd,
- "show ipv6 ospf6 database self-originated",
+ "show ipv6 ospf6 database self-originated [<detail|dump|internal>]",
SHOW_STR
IPV6_STR
OSPF6_STR
"Display Self-originated LSAs\n"
- )
+ "Display details of LSAs\n"
+ "Dump LSAs\n"
+ "Display LSA's internal information\n")
{
- /* CHECK ME argc referenced below */
+ int idx_level = 5;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
u_int32_t adv_router = 0;
OSPF6_CMD_CHECK_RUNNING ();
-
- level = parse_show_level (argc, argv);
-
+ level = parse_show_level (idx_level, argc, argv);
adv_router = o->router_id;
for (ALL_LIST_ELEMENTS_RO (o->area_list, i, oa))
}
-/*
- * CHECK ME - The following ALIASes need to be implemented in this DEFUN
- * "show ipv6 ospf6 database (router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix) self-originated (detail|dump|internal)",
- * SHOW_STR
- * IPV6_STR
- * OSPF6_STR
- * "Display Link state database\n"
- * "Display Router LSAs\n"
- * "Display Network LSAs\n"
- * "Display Inter-Area-Prefix LSAs\n"
- * "Display Inter-Area-Router LSAs\n"
- * "Display As-External LSAs\n"
- * "Display Group-Membership LSAs\n"
- * "Display Type-7 LSAs\n"
- * "Display Link LSAs\n"
- * "Display Intra-Area-Prefix LSAs\n"
- * "Display Self-originated LSAs\n"
- * "Display details of LSAs\n"
- * "Dump LSAs\n"
- * "Display LSA's internal information\n"
- *
- *
- */
DEFUN (show_ipv6_ospf6_database_type_self_originated,
show_ipv6_ospf6_database_type_self_originated_cmd,
- "show ipv6 ospf6 database <router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix> self-originated",
+ "show ipv6 ospf6 database <router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix> self-originated [<detail|dump|internal>]",
SHOW_STR
IPV6_STR
OSPF6_STR
"Display Link LSAs\n"
"Display Intra-Area-Prefix LSAs\n"
"Display Self-originated LSAs\n"
- )
+ "Display details of LSAs\n"
+ "Dump LSAs\n"
+ "Display LSA's internal information\n")
{
- /* CHECK ME argc referenced below */
+ int idx_lsa = 4;
+ int idx_level = 6;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
OSPF6_CMD_CHECK_RUNNING ();
- type = parse_type_spec (argc, argv);
- argc--;
- argv++;
- level = parse_show_level (argc, argv);
+ type = parse_type_spec (idx_lsa, argc, argv);
+ level = parse_show_level (idx_level, argc, argv);
adv_router = o->router_id;
return CMD_SUCCESS;
}
-
-/*
- * CHECK ME - The following ALIASes need to be implemented in this DEFUN
- * "show ipv6 ospf6 database (router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix) self-originated linkstate-id A.B.C.D (detail|dump|internal)",
- * SHOW_STR
- * IPV6_STR
- * OSPF6_STR
- * "Display Link state database\n"
- * "Display Router LSAs\n"
- * "Display Network LSAs\n"
- * "Display Inter-Area-Prefix LSAs\n"
- * "Display Inter-Area-Router LSAs\n"
- * "Display As-External LSAs\n"
- * "Display Group-Membership LSAs\n"
- * "Display Type-7 LSAs\n"
- * "Display Link LSAs\n"
- * "Display Intra-Area-Prefix LSAs\n"
- * "Display Self-originated LSAs\n"
- * "Search by Link state ID\n"
- * "Specify Link state ID as IPv4 address notation\n"
- * "Display details of LSAs\n"
- * "Dump LSAs\n"
- * "Display LSA's internal information\n"
- *
- *
- */
DEFUN (show_ipv6_ospf6_database_type_self_originated_linkstate_id,
show_ipv6_ospf6_database_type_self_originated_linkstate_id_cmd,
- "show ipv6 ospf6 database <router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix> self-originated linkstate-id A.B.C.D",
+ "show ipv6 ospf6 database <router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix> self-originated linkstate-id A.B.C.D [<detail|dump|internal>]",
SHOW_STR
IPV6_STR
OSPF6_STR
"Display Self-originated LSAs\n"
"Search by Link state ID\n"
"Specify Link state ID as IPv4 address notation\n"
- )
+ "Display details of LSAs\n"
+ "Dump LSAs\n"
+ "Display LSA's internal information\n")
{
- /* CHECK ME argc referenced below */
int idx_lsa = 4;
+ int idx_ls_id = 7;
+ int idx_level = 8;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
OSPF6_CMD_CHECK_RUNNING ();
- type = parse_type_spec (argc, argv);
- argc--;
- argv++;
-
- if ((inet_pton (AF_INET, argv[idx_lsa]->arg, &id)) != 1)
- {
- vty_out (vty, "Link State ID is not parsable: %s%s",
- argv[idx_lsa]->arg, VNL);
- return CMD_SUCCESS;
- }
-
- argc--;
- argv++;
- level = parse_show_level (argc, argv);
-
+ type = parse_type_spec (idx_lsa, argc, argv);
+ inet_pton (AF_INET, argv[idx_ls_id]->arg, &id);
+ level = parse_show_level (idx_level, argc, argv);
adv_router = o->router_id;
switch (OSPF6_LSA_SCOPE (type))
return CMD_SUCCESS;
}
-
-/*
- * CHECK ME - The following ALIASes need to be implemented in this DEFUN
- * "show ipv6 ospf6 database (router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix) A.B.C.D self-originated (detail|dump|internal)",
- * SHOW_STR
- * IPV6_STR
- * OSPF6_STR
- * "Display Link state database\n"
- * "Display Router LSAs\n"
- * "Display Network LSAs\n"
- * "Display Inter-Area-Prefix LSAs\n"
- * "Display Inter-Area-Router LSAs\n"
- * "Display As-External LSAs\n"
- * "Display Group-Membership LSAs\n"
- * "Display Type-7 LSAs\n"
- * "Display Link LSAs\n"
- * "Display Intra-Area-Prefix LSAs\n"
- * "Display Self-originated LSAs\n"
- * "Search by Link state ID\n"
- * "Specify Link state ID as IPv4 address notation\n"
- * "Display details of LSAs\n"
- * "Dump LSAs\n"
- * "Display LSA's internal information\n"
- *
- *
- */
DEFUN (show_ipv6_ospf6_database_type_id_self_originated,
show_ipv6_ospf6_database_type_id_self_originated_cmd,
- "show ipv6 ospf6 database <router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix> A.B.C.D self-originated",
+ "show ipv6 ospf6 database <router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix> A.B.C.D self-originated [<detail|dump|internal>]",
SHOW_STR
IPV6_STR
OSPF6_STR
"Display Intra-Area-Prefix LSAs\n"
"Specify Link state ID as IPv4 address notation\n"
"Display Self-originated LSAs\n"
- )
+ "Display details of LSAs\n"
+ "Dump LSAs\n"
+ "Display LSA's internal information\n")
{
- /* CHECK ME argc referenced below */
int idx_lsa = 4;
+ int idx_ls_id = 5;
+ int idx_level = 7;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
OSPF6_CMD_CHECK_RUNNING ();
- type = parse_type_spec (argc, argv);
- argc--;
- argv++;
-
- if ((inet_pton (AF_INET, argv[idx_lsa]->arg, &id)) != 1)
- {
- vty_out (vty, "Link State ID is not parsable: %s%s",
- argv[idx_lsa]->arg, VNL);
- return CMD_SUCCESS;
- }
-
- argc--;
- argv++;
- level = parse_show_level (argc, argv);
-
+ type = parse_type_spec (idx_lsa, argc, argv);
+ inet_pton (AF_INET, argv[idx_ls_id]->arg, &id);
+ level = parse_show_level (idx_level, argc, argv);
adv_router = o->router_id;
switch (OSPF6_LSA_SCOPE (type))
return CMD_SUCCESS;
}
-
-
-/*
- * CHECK ME - The following ALIASes need to be implemented in this DEFUN
- * "show ipv6 ospf6 border-routers (A.B.C.D|detail)",
- * SHOW_STR
- * IP6_STR
- * OSPF6_STR
- * "Display routing table for ABR and ASBR\n"
- * "Specify Router-ID\n"
- * "Display Detail\n"
- *
- *
- */
DEFUN (show_ipv6_ospf6_border_routers,
show_ipv6_ospf6_border_routers_cmd,
- "show ipv6 ospf6 border-routers",
+ "show ipv6 ospf6 border-routers [<A.B.C.D|detail>]",
SHOW_STR
IP6_STR
OSPF6_STR
"Display routing table for ABR and ASBR\n"
)
{
- /* CHECK ME argc referenced below */
+ int idx_ipv4 = 4;
u_int32_t adv_router;
- void (*showfunc) (struct vty *, struct ospf6_route *);
struct ospf6_route *ro;
struct prefix prefix;
OSPF6_CMD_CHECK_RUNNING ();
- if (argc && ! strcmp ("detail", argv[4]->arg))
- {
- showfunc = ospf6_route_show_detail;
- argc--;
- argv++;
- }
- else
- showfunc = ospf6_brouter_show;
-
- if (argc)
+ if (argc == 5)
{
- if ((inet_pton (AF_INET, argv[4]->arg, &adv_router)) != 1)
+ if (strmatch (argv[idx_ipv4]->text, "detail"))
{
- vty_out (vty, "Router ID is not parsable: %s%s", argv[4]->arg, VNL);
- return CMD_SUCCESS;
+ for (ro = ospf6_route_head (ospf6->brouter_table); ro;
+ ro = ospf6_route_next (ro))
+ ospf6_route_show_detail (vty, ro);
}
-
- ospf6_linkstate_prefix (adv_router, 0, &prefix);
- ro = ospf6_route_lookup (&prefix, ospf6->brouter_table);
- if (!ro)
+ else
{
- vty_out (vty, "No Route found for Router ID: %s%s", argv[4]->arg, VNL);
+ inet_pton (AF_INET, argv[idx_ipv4]->arg, &adv_router);
+
+ ospf6_linkstate_prefix (adv_router, 0, &prefix);
+ ro = ospf6_route_lookup (&prefix, ospf6->brouter_table);
+ if (!ro)
+ {
+ vty_out (vty, "No Route found for Router ID: %s%s", argv[4]->arg, VNL);
+ return CMD_SUCCESS;
+ }
+
+ ospf6_route_show_detail (vty, ro);
return CMD_SUCCESS;
}
-
- ospf6_route_show_detail (vty, ro);
- return CMD_SUCCESS;
}
+ else
+ {
+ ospf6_brouter_show_header (vty);
- if (showfunc == ospf6_brouter_show)
- ospf6_brouter_show_header (vty);
-
- for (ro = ospf6_route_head (ospf6->brouter_table); ro;
- ro = ospf6_route_next (ro))
- (*showfunc) (vty, ro);
+ for (ro = ospf6_route_head (ospf6->brouter_table); ro;
+ ro = ospf6_route_next (ro))
+ ospf6_brouter_show (vty, ro);
+ }
return CMD_SUCCESS;
}