"Specify IPv6 prefix\n"
)
{
+ int idx_ipv4 = 1;
+ int idx_ipv6_prefixlen = 3;
int ret;
struct ospf6_area *oa;
struct prefix prefix;
struct ospf6_route *range;
u_int32_t cost = OSPF_AREA_RANGE_COST_UNSPEC;
- OSPF6_CMD_AREA_GET (argv[1]->arg, oa);
+ OSPF6_CMD_AREA_GET (argv[idx_ipv4]->arg, oa);
- ret = str2prefix (argv[3]->arg, &prefix);
+ ret = str2prefix (argv[idx_ipv6_prefixlen]->arg, &prefix);
if (ret != 1 || prefix.family != AF_INET6)
{
- vty_out (vty, "Malformed argument: %s%s", argv[3]->arg, VNL);
+ vty_out (vty, "Malformed argument: %s%s", argv[idx_ipv6_prefixlen]->arg, VNL);
return CMD_SUCCESS;
}
range->path.u.cost_config = cost;
- zlog_debug ("%s: for prefix %s, flag = %x\n", __func__, argv[3]->arg, range->flag);
+ zlog_debug ("%s: for prefix %s, flag = %x\n", __func__, argv[idx_ipv6_prefixlen]->arg, range->flag);
if (range->rnode == NULL)
{
ospf6_route_add (range, oa->range_table);
"Configured address range\n"
"Specify IPv6 prefix\n")
{
+ int idx_ipv4 = 2;
int ret;
struct ospf6_area *oa;
struct prefix prefix;
struct ospf6_route *range, *route;
- OSPF6_CMD_AREA_GET (argv[2]->arg, oa);
+ OSPF6_CMD_AREA_GET (argv[idx_ipv4]->arg, oa);
argc--;
argv++;
- ret = str2prefix (argv[2]->arg, &prefix);
+ ret = str2prefix (argv[idx_ipv4]->arg, &prefix);
if (ret != 1 || prefix.family != AF_INET6)
{
- vty_out (vty, "Malformed argument: %s%s", argv[2]->arg, VNL);
+ vty_out (vty, "Malformed argument: %s%s", argv[idx_ipv4]->arg, VNL);
return CMD_SUCCESS;
}
range = ospf6_route_lookup (&prefix, oa->range_table);
if (range == NULL)
{
- vty_out (vty, "Range %s does not exists.%s", argv[2]->arg, VNL);
+ vty_out (vty, "Range %s does not exists.%s", argv[idx_ipv4]->arg, VNL);
return CMD_SUCCESS;
}
"Filter networks sent to this area\n"
"Filter networks sent from this area\n")
{
+ int idx_ipv4 = 1;
+ int idx_word = 4;
struct ospf6_area *area;
struct prefix_list *plist;
- OSPF6_CMD_AREA_GET (argv[1]->arg, area);
+ OSPF6_CMD_AREA_GET (argv[idx_ipv4]->arg, area);
argc--;
argv++;
- plist = prefix_list_lookup (AFI_IP6, argv[1]->arg);
- if (strncmp (argv[4]->arg, "in", 2) == 0)
+ plist = prefix_list_lookup (AFI_IP6, argv[idx_ipv4]->arg);
+ if (strncmp (argv[idx_word]->arg, "in", 2) == 0)
{
PREFIX_LIST_IN (area) = plist;
if (PREFIX_NAME_IN (area))
free (PREFIX_NAME_IN (area));
- PREFIX_NAME_IN (area) = strdup (argv[1]->arg);
+ PREFIX_NAME_IN (area) = strdup (argv[idx_ipv4]->arg);
ospf6_abr_reimport (area);
}
else
if (PREFIX_NAME_OUT (area))
free (PREFIX_NAME_OUT (area));
- PREFIX_NAME_OUT (area) = strdup (argv[1]->arg);
+ PREFIX_NAME_OUT (area) = strdup (argv[idx_ipv4]->arg);
ospf6_abr_enable_area (area);
}
"Filter networks sent to this area\n"
"Filter networks sent from this area\n")
{
+ int idx_ipv4 = 2;
+ int idx_word = 5;
struct ospf6_area *area;
- OSPF6_CMD_AREA_GET (argv[2]->arg, area);
+ OSPF6_CMD_AREA_GET (argv[idx_ipv4]->arg, area);
argc--;
argv++;
- if (strncmp (argv[5]->arg, "in", 2) == 0)
+ if (strncmp (argv[idx_word]->arg, "in", 2) == 0)
{
if (PREFIX_NAME_IN (area))
- if (strcmp (PREFIX_NAME_IN (area), argv[2]->arg) != 0)
+ if (strcmp (PREFIX_NAME_IN (area), argv[idx_ipv4]->arg) != 0)
return CMD_SUCCESS;
PREFIX_LIST_IN (area) = NULL;
else
{
if (PREFIX_NAME_OUT (area))
- if (strcmp (PREFIX_NAME_OUT (area), argv[2]->arg) != 0)
+ if (strcmp (PREFIX_NAME_OUT (area), argv[idx_ipv4]->arg) != 0)
return CMD_SUCCESS;
PREFIX_LIST_OUT (area) = NULL;
"Set the filter for networks from other areas announced to the specified one\n"
"Name of the acess-list\n")
{
+ int idx_ipv4 = 1;
+ int idx_name = 3;
struct ospf6_area *area;
struct access_list *list;
- OSPF6_CMD_AREA_GET(argv[1]->arg, area);
+ OSPF6_CMD_AREA_GET(argv[idx_ipv4]->arg, area);
- list = access_list_lookup (AFI_IP6, argv[3]->arg);
+ list = access_list_lookup (AFI_IP6, argv[idx_name]->arg);
IMPORT_LIST (area) = list;
if (IMPORT_NAME (area))
free (IMPORT_NAME (area));
- IMPORT_NAME (area) = strdup (argv[3]->arg);
+ IMPORT_NAME (area) = strdup (argv[idx_name]->arg);
ospf6_abr_reimport (area);
return CMD_SUCCESS;
"Unset the filter for networks announced to other areas\n"
"NAme of the access-list\n")
{
+ int idx_ipv4 = 2;
struct ospf6_area *area;
- OSPF6_CMD_AREA_GET(argv[2]->arg, area);
+ OSPF6_CMD_AREA_GET(argv[idx_ipv4]->arg, area);
IMPORT_LIST (area) = 0;
"Set the filter for networks announced to other areas\n"
"Name of the acess-list\n")
{
+ int idx_ipv4 = 1;
+ int idx_name = 3;
struct ospf6_area *area;
struct access_list *list;
- OSPF6_CMD_AREA_GET(argv[1]->arg, area);
+ OSPF6_CMD_AREA_GET(argv[idx_ipv4]->arg, area);
- list = access_list_lookup (AFI_IP6, argv[3]->arg);
+ list = access_list_lookup (AFI_IP6, argv[idx_name]->arg);
EXPORT_LIST (area) = list;
if (EXPORT_NAME (area))
free (EXPORT_NAME (area));
- EXPORT_NAME (area) = strdup (argv[3]->arg);
+ EXPORT_NAME (area) = strdup (argv[idx_name]->arg);
ospf6_abr_enable_area (area);
return CMD_SUCCESS;
"Unset the filter for networks announced to other areas\n"
"Name of the access-list\n")
{
+ int idx_ipv4 = 2;
struct ospf6_area *area;
- OSPF6_CMD_AREA_GET(argv[2]->arg, area);
+ OSPF6_CMD_AREA_GET(argv[idx_ipv4]->arg, area);
EXPORT_LIST (area) = 0;
"Shortest Path First caculation\n"
"Show SPF tree\n")
{
+ int idx_ipv4 = 4;
u_int32_t area_id;
struct ospf6_area *oa;
struct ospf6_vertex *root;
ospf6_linkstate_prefix (ospf6->router_id, htonl (0), &prefix);
- if (inet_pton (AF_INET, argv[4]->arg, &area_id) != 1)
+ if (inet_pton (AF_INET, argv[idx_ipv4]->arg, &area_id) != 1)
{
- vty_out (vty, "Malformed Area-ID: %s%s", argv[4]->arg, VNL);
+ vty_out (vty, "Malformed Area-ID: %s%s", argv[idx_ipv4]->arg, VNL);
return CMD_SUCCESS;
}
oa = ospf6_area_lookup (area_id, ospf6);
if (oa == NULL)
{
- vty_out (vty, "No such Area: %s%s", argv[4]->arg, VNL);
+ vty_out (vty, "No such Area: %s%s", argv[idx_ipv4]->arg, VNL);
return CMD_SUCCESS;
}
"Show SPF tree\n"
"Specify root's router-id to calculate another router's SPF tree\n")
{
+ int idx_ipv4 = 5;
+ int idx_ipv4_2 = 7;
u_int32_t area_id;
struct ospf6_area *oa;
struct ospf6_vertex *root;
OSPF6_CMD_CHECK_RUNNING ();
- inet_pton (AF_INET, argv[5]->arg, &router_id);
+ inet_pton (AF_INET, argv[idx_ipv4]->arg, &router_id);
ospf6_linkstate_prefix (router_id, htonl (0), &prefix);
- if (inet_pton (AF_INET, argv[7]->arg, &area_id) != 1)
+ if (inet_pton (AF_INET, argv[idx_ipv4_2]->arg, &area_id) != 1)
{
- vty_out (vty, "Malformed Area-ID: %s%s", argv[7]->arg, VNL);
+ vty_out (vty, "Malformed Area-ID: %s%s", argv[idx_ipv4_2]->arg, VNL);
return CMD_SUCCESS;
}
oa = ospf6_area_lookup (area_id, ospf6);
if (oa == NULL)
{
- vty_out (vty, "No such Area: %s%s", argv[7]->arg, VNL);
+ vty_out (vty, "No such Area: %s%s", argv[idx_ipv4_2]->arg, VNL);
return CMD_SUCCESS;
}
"OSPF6 area ID as a decimal value\n"
"Configure OSPF6 area as stub\n")
{
+ int idx_ipv4_number = 1;
struct ospf6_area *area;
- OSPF6_CMD_AREA_GET(argv[1]->arg, area);
+ OSPF6_CMD_AREA_GET(argv[idx_ipv4_number]->arg, area);
if (!ospf6_area_stub_set (ospf6, area))
{
"Configure OSPF6 area as stub\n"
"Do not inject inter-area routes into stub\n")
{
+ int idx_ipv4_number = 1;
struct ospf6_area *area;
- OSPF6_CMD_AREA_GET(argv[1]->arg, area);
+ OSPF6_CMD_AREA_GET(argv[idx_ipv4_number]->arg, area);
if (!ospf6_area_stub_set (ospf6, area))
{
"OSPF6 area ID as a decimal value\n"
"Configure OSPF6 area as stub\n")
{
+ int idx_ipv4_number = 2;
struct ospf6_area *area;
- OSPF6_CMD_AREA_GET(argv[2]->arg, area);
+ OSPF6_CMD_AREA_GET(argv[idx_ipv4_number]->arg, area);
ospf6_area_stub_unset (ospf6, area);
ospf6_area_no_summary_unset (ospf6, area);
"Configure OSPF6 area as stub\n"
"Do not inject inter-area routes into area\n")
{
+ int idx_ipv4_number = 2;
struct ospf6_area *area;
- OSPF6_CMD_AREA_GET(argv[2]->arg, area);
+ OSPF6_CMD_AREA_GET(argv[idx_ipv4_number]->arg, area);
ospf6_area_stub_unset (ospf6, area);
ospf6_area_no_summary_unset (ospf6, area);
"Route map name\n"
)
{
+ int idx_protocol = 1;
+ int idx_word = 3;
int type;
- type = proto_redistnum(AFI_IP6, argv[1]->arg);
+ type = proto_redistnum(AFI_IP6, argv[idx_protocol]->arg);
if (type < 0 || type == ZEBRA_ROUTE_OSPF6)
return CMD_WARNING;
ospf6_asbr_redistribute_unset (type);
- ospf6_asbr_routemap_set (type, argv[3]->arg);
+ ospf6_asbr_routemap_set (type, argv[idx_word]->arg);
ospf6_asbr_redistribute_set (type);
return CMD_SUCCESS;
}
"Match entries of prefix-lists\n"
"IPv6 prefix-list name\n")
{
+ int idx_word = 4;
int ret = route_map_add_match ((struct route_map_index *) vty->index,
- "ipv6 address prefix-list", argv[4]->arg);
+ "ipv6 address prefix-list", argv[idx_word]->arg);
return route_map_command_status (vty, ret);
}
"Match entries of prefix-lists\n"
"IPv6 prefix-list name\n")
{
+ int idx_word = 5;
int ret = route_map_delete_match ((struct route_map_index *) vty->index,
- "ipv6 address prefix-list", argv[5]->arg);
+ "ipv6 address prefix-list", argv[idx_word]->arg);
return route_map_command_status (vty, ret);
}
"Match first hop interface of route\n"
"Interface name\n")
{
+ int idx_word = 2;
return route_map_add_match ((struct route_map_index *) vty->index,
- "interface", argv[2]->arg);
+ "interface", argv[idx_word]->arg);
}
/* "no match interface WORD" */
"OSPF6 external type 1 metric\n"
"OSPF6 external type 2 metric\n")
{
+ int idx_external = 2;
int ret = route_map_add_set ((struct route_map_index *) vty->index,
- "metric-type", argv[2]->arg);
+ "metric-type", argv[idx_external]->arg);
return route_map_command_status (vty, ret);
}
"OSPF6 external type 1 metric\n"
"OSPF6 external type 2 metric\n")
{
+ int idx_external = 3;
int ret = route_map_delete_set ((struct route_map_index *) vty->index,
- "metric-type", argv[3]->arg);
+ "metric-type", argv[idx_external]->arg);
return route_map_command_status (vty, ret);
}
"Metric value\n"
"Metric value\n")
{
+ int idx_number = 2;
int ret = route_map_add_set ((struct route_map_index *) vty->index,
- "metric", argv[2]->arg);
+ "metric", argv[idx_number]->arg);
return route_map_command_status (vty, ret);
}
"Forwarding Address\n"
"IPv6 Address\n")
{
+ int idx_ipv6 = 2;
int ret = route_map_add_set ((struct route_map_index *) vty->index,
- "forwarding-address", argv[2]->arg);
+ "forwarding-address", argv[idx_ipv6]->arg);
return route_map_command_status (vty, ret);
}
"Forwarding Address\n"
"IPv6 Address\n")
{
+ int idx_ipv6 = 3;
int ret = route_map_delete_set ((struct route_map_index *) vty->index,
- "forwarding-address", argv[3]->arg);
+ "forwarding-address", argv[idx_ipv6]->arg);
return route_map_command_status (vty, ret);
}
"Required min receive interval\n"
"Desired min transmit interval\n")
{
+ int idx_number = 3;
+ int idx_number_2 = 4;
+ int idx_number_3 = 5;
struct ospf6_interface *oi;
struct interface *ifp;
u_int32_t rx_val;
oi = ospf6_interface_create (ifp);
assert (oi);
- if ((ret = bfd_validate_param (vty, argv[3]->arg, argv[4]->arg, argv[5]->arg, &dm_val,
+ if ((ret = bfd_validate_param (vty, argv[idx_number]->arg, argv[idx_number_2]->arg, argv[idx_number_3]->arg, &dm_val,
&rx_val, &tx_val)) != CMD_SUCCESS)
return ret;
IFNAME_STR
)
{
+ int idx_ifname = 4;
struct interface *ifp;
struct listnode *i;
if (argc)
{
- ifp = if_lookup_by_name (argv[4]->arg);
+ ifp = if_lookup_by_name (argv[idx_ifname]->arg);
if (ifp == NULL)
{
- vty_out (vty, "No such Interface: %s%s", argv[4]->arg,
+ vty_out (vty, "No such Interface: %s%s", argv[idx_ifname]->arg,
VNL);
return CMD_WARNING;
}
"Display connected prefixes to advertise\n"
)
{
+ int idx_ifname = 4;
struct interface *ifp;
struct ospf6_interface *oi;
- ifp = if_lookup_by_name (argv[4]->arg);
+ ifp = if_lookup_by_name (argv[idx_ifname]->arg);
if (ifp == NULL)
{
- vty_out (vty, "No such Interface: %s%s", argv[4]->arg, VNL);
+ vty_out (vty, "No such Interface: %s%s", argv[idx_ifname]->arg, VNL);
return CMD_WARNING;
}
oi = ifp->info;
if (oi == NULL)
{
- vty_out (vty, "OSPFv3 is not enabled on %s%s", argv[4]->arg, VNL);
+ vty_out (vty, "OSPFv3 is not enabled on %s%s", argv[idx_ifname]->arg, VNL);
return CMD_WARNING;
}
"OSPFv3 Interface MTU\n"
)
{
+ int idx_number = 3;
struct ospf6_interface *oi;
struct interface *ifp;
unsigned int ifmtu, iobuflen;
oi = ospf6_interface_create (ifp);
assert (oi);
- ifmtu = strtol (argv[3]->arg, NULL, 10);
+ ifmtu = strtol (argv[idx_number]->arg, NULL, 10);
if (oi->ifmtu == ifmtu)
return CMD_SUCCESS;
"Outgoing metric of this interface\n"
)
{
+ int idx_number = 3;
struct ospf6_interface *oi;
struct interface *ifp;
unsigned long int lcost;
oi = ospf6_interface_create (ifp);
assert (oi);
- lcost = strtol (argv[3]->arg, NULL, 10);
+ lcost = strtol (argv[idx_number]->arg, NULL, 10);
if (lcost > UINT32_MAX)
{
"Use reference bandwidth method to assign OSPF cost\n"
"The reference bandwidth in terms of Mbits per second\n")
{
+ int idx_number = 2;
struct ospf6 *o = vty->index;
struct ospf6_area *oa;
struct ospf6_interface *oi;
struct listnode *i, *j;
u_int32_t refbw;
- refbw = strtol (argv[2]->arg, NULL, 10);
+ refbw = strtol (argv[idx_number]->arg, NULL, 10);
if (refbw < 1 || refbw > 4294967)
{
vty_out (vty, "reference-bandwidth value is invalid%s", VTY_NEWLINE);
SECONDS_STR
)
{
+ int idx_number = 3;
struct ospf6_interface *oi;
struct interface *ifp;
oi = ospf6_interface_create (ifp);
assert (oi);
- oi->hello_interval = strtol (argv[3]->arg, NULL, 10);
+ oi->hello_interval = strtol (argv[idx_number]->arg, NULL, 10);
return CMD_SUCCESS;
}
SECONDS_STR
)
{
+ int idx_number = 3;
struct ospf6_interface *oi;
struct interface *ifp;
oi = ospf6_interface_create (ifp);
assert (oi);
- oi->dead_interval = strtol (argv[3]->arg, NULL, 10);
+ oi->dead_interval = strtol (argv[idx_number]->arg, NULL, 10);
return CMD_SUCCESS;
}
SECONDS_STR
)
{
+ int idx_number = 3;
struct ospf6_interface *oi;
struct interface *ifp;
oi = ospf6_interface_create (ifp);
assert (oi);
- oi->transdelay = strtol (argv[3]->arg, NULL, 10);
+ oi->transdelay = strtol (argv[idx_number]->arg, NULL, 10);
return CMD_SUCCESS;
}
SECONDS_STR
)
{
+ int idx_number = 3;
struct ospf6_interface *oi;
struct interface *ifp;
oi = ospf6_interface_create (ifp);
assert (oi);
- oi->rxmt_interval = strtol (argv[3]->arg, NULL, 10);
+ oi->rxmt_interval = strtol (argv[idx_number]->arg, NULL, 10);
return CMD_SUCCESS;
}
"Priority value\n"
)
{
+ int idx_number = 3;
struct ospf6_interface *oi;
struct interface *ifp;
oi = ospf6_interface_create (ifp);
assert (oi);
- oi->priority = strtol (argv[3]->arg, NULL, 10);
+ oi->priority = strtol (argv[idx_number]->arg, NULL, 10);
if (oi->area &&
(oi->state == OSPF6_INTERFACE_DROTHER ||
"Instance ID value\n"
)
{
+ int idx_number = 3;
struct ospf6_interface *oi;
struct interface *ifp;
oi = ospf6_interface_create (ifp);
assert (oi);
- oi->instance_id = strtol (argv[3]->arg, NULL, 10);
+ oi->instance_id = strtol (argv[idx_number]->arg, NULL, 10);
return CMD_SUCCESS;
}
"Prefix list name\n"
)
{
+ int idx_word = 4;
struct ospf6_interface *oi;
struct interface *ifp;
if (oi->plist_name)
XFREE (MTYPE_CFG_PLIST_NAME, oi->plist_name);
- oi->plist_name = XSTRDUP (MTYPE_CFG_PLIST_NAME, argv[4]->arg);
+ oi->plist_name = XSTRDUP (MTYPE_CFG_PLIST_NAME, argv[idx_word]->arg);
ospf6_interface_connected_route_update (oi->interface);
"Specify OSPF6 point-to-point network\n"
)
{
+ int idx_network = 3;
struct ospf6_interface *oi;
struct interface *ifp;
}
assert (oi);
- if (strncmp (argv[3]->arg, "b", 1) == 0)
+ if (strncmp (argv[idx_network]->arg, "b", 1) == 0)
{
if (oi->type == OSPF_IFTYPE_BROADCAST)
return CMD_SUCCESS;
oi->type = OSPF_IFTYPE_BROADCAST;
}
- else if (strncmp (argv[3]->arg, "point-to-p", 10) == 0)
+ else if (strncmp (argv[idx_network]->arg, "point-to-p", 10) == 0)
{
if (oi->type == OSPF_IFTYPE_POINTOPOINT) {
return CMD_SUCCESS;
IFNAME_STR
)
{
+ int idx_ifname = 4;
struct interface *ifp;
struct listnode *node;
}
else /* Interface name is specified. */
{
- if ((ifp = if_lookup_by_name (argv[4]->arg)) == NULL)
+ if ((ifp = if_lookup_by_name (argv[idx_ifname]->arg)) == NULL)
{
- vty_out (vty, "No such Interface: %s%s", argv[4]->arg, VNL);
+ vty_out (vty, "No such Interface: %s%s", argv[idx_ifname]->arg, VNL);
return CMD_WARNING;
}
ospf6_interface_clear (vty, ifp);
"Specify border-router's router-id\n"
)
{
+ int idx_ipv4 = 4;
u_int32_t router_id;
- inet_pton (AF_INET, argv[4]->arg, &router_id);
+ inet_pton (AF_INET, argv[idx_ipv4]->arg, &router_id);
OSPF6_DEBUG_BROUTER_SPECIFIC_ROUTER_ON (router_id);
return CMD_SUCCESS;
}
"Specify Area-ID\n"
)
{
+ int idx_ipv4 = 4;
u_int32_t area_id;
- inet_pton (AF_INET, argv[4]->arg, &area_id);
+ inet_pton (AF_INET, argv[idx_ipv4]->arg, &area_id);
OSPF6_DEBUG_BROUTER_SPECIFIC_AREA_ON (area_id);
return CMD_SUCCESS;
}
"Specify LS type as Hexadecimal\n"
)
{
+ int idx_lsa = 3;
unsigned int i;
struct ospf6_lsa_handler *handler = NULL;
handler = vector_slot (ospf6_lsa_handler_vector, i);
if (handler == NULL)
continue;
- if (strncmp (argv[3]->arg, ospf6_lsa_handler_name(handler), strlen(argv[3]->arg)) == 0)
+ if (strncmp (argv[idx_lsa]->arg, ospf6_lsa_handler_name(handler), strlen(argv[idx_lsa]->arg)) == 0)
break;
- if (! strcasecmp (argv[3]->arg, handler->name))
+ if (! strcasecmp (argv[idx_lsa]->arg, handler->name))
break;
handler = NULL;
}
"Specify LS type as Hexadecimal\n"
)
{
+ int idx_lsa = 4;
u_int i;
struct ospf6_lsa_handler *handler = NULL;
handler = vector_slot (ospf6_lsa_handler_vector, i);
if (handler == NULL)
continue;
- if (strncmp (argv[4]->arg, ospf6_lsa_handler_name(handler), strlen(argv[4]->arg)) == 0)
+ if (strncmp (argv[idx_lsa]->arg, ospf6_lsa_handler_name(handler), strlen(argv[idx_lsa]->arg)) == 0)
break;
- if (! strcasecmp (argv[4]->arg, handler->name))
+ if (! strcasecmp (argv[idx_lsa]->arg, handler->name))
break;
}
"Debug All message\n"
)
{
+ int idx_packet = 3;
unsigned char level = 0;
int type = 0;
int i;
assert (argc > 0);
/* check type */
- if (! strncmp (argv[3]->arg, "u", 1))
+ if (! strncmp (argv[idx_packet]->arg, "u", 1))
type = OSPF6_MESSAGE_TYPE_UNKNOWN;
- else if (! strncmp (argv[3]->arg, "h", 1))
+ else if (! strncmp (argv[idx_packet]->arg, "h", 1))
type = OSPF6_MESSAGE_TYPE_HELLO;
- else if (! strncmp (argv[3]->arg, "d", 1))
+ else if (! strncmp (argv[idx_packet]->arg, "d", 1))
type = OSPF6_MESSAGE_TYPE_DBDESC;
- else if (! strncmp (argv[3]->arg, "lsr", 3))
+ else if (! strncmp (argv[idx_packet]->arg, "lsr", 3))
type = OSPF6_MESSAGE_TYPE_LSREQ;
- else if (! strncmp (argv[3]->arg, "lsu", 3))
+ else if (! strncmp (argv[idx_packet]->arg, "lsu", 3))
type = OSPF6_MESSAGE_TYPE_LSUPDATE;
- else if (! strncmp (argv[3]->arg, "lsa", 3))
+ else if (! strncmp (argv[idx_packet]->arg, "lsa", 3))
type = OSPF6_MESSAGE_TYPE_LSACK;
- else if (! strncmp (argv[3]->arg, "a", 1))
+ else if (! strncmp (argv[idx_packet]->arg, "a", 1))
type = OSPF6_MESSAGE_TYPE_ALL;
if (argc == 1)
"Debug All message\n"
)
{
+ int idx_packet = 4;
unsigned char level = 0;
int type = 0;
int i;
assert (argc > 0);
/* check type */
- if (! strncmp (argv[4]->arg, "u", 1))
+ if (! strncmp (argv[idx_packet]->arg, "u", 1))
type = OSPF6_MESSAGE_TYPE_UNKNOWN;
- else if (! strncmp (argv[4]->arg, "h", 1))
+ else if (! strncmp (argv[idx_packet]->arg, "h", 1))
type = OSPF6_MESSAGE_TYPE_HELLO;
- else if (! strncmp (argv[4]->arg, "d", 1))
+ else if (! strncmp (argv[idx_packet]->arg, "d", 1))
type = OSPF6_MESSAGE_TYPE_DBDESC;
- else if (! strncmp (argv[4]->arg, "lsr", 3))
+ else if (! strncmp (argv[idx_packet]->arg, "lsr", 3))
type = OSPF6_MESSAGE_TYPE_LSREQ;
- else if (! strncmp (argv[4]->arg, "lsu", 3))
+ else if (! strncmp (argv[idx_packet]->arg, "lsu", 3))
type = OSPF6_MESSAGE_TYPE_LSUPDATE;
- else if (! strncmp (argv[4]->arg, "lsa", 3))
+ else if (! strncmp (argv[idx_packet]->arg, "lsa", 3))
type = OSPF6_MESSAGE_TYPE_LSACK;
- else if (! strncmp (argv[4]->arg, "a", 1))
+ else if (! strncmp (argv[idx_packet]->arg, "a", 1))
type = OSPF6_MESSAGE_TYPE_ALL;
if (argc == 1)
"Specify Router-ID as IPv4 address notation\n"
)
{
+ int idx_ipv4 = 4;
struct ospf6_neighbor *on;
struct ospf6_interface *oi;
struct ospf6_area *oa;
OSPF6_CMD_CHECK_RUNNING ();
showfunc = ospf6_neighbor_show_detail;
- if ((inet_pton (AF_INET, argv[4]->arg, &router_id)) != 1)
+ if ((inet_pton (AF_INET, argv[idx_ipv4]->arg, &router_id)) != 1)
{
- vty_out (vty, "Router-ID is not parsable: %s%s", argv[4]->arg,
+ vty_out (vty, "Router-ID is not parsable: %s%s", argv[idx_ipv4]->arg,
VNL);
return CMD_SUCCESS;
}
"Debug route memory use\n"
)
{
+ int idx_type = 3;
unsigned char level = 0;
- if (! strncmp (argv[3]->arg, "table", 5))
+ if (! strncmp (argv[idx_type]->arg, "table", 5))
level = OSPF6_DEBUG_ROUTE_TABLE;
- else if (! strncmp (argv[3]->arg, "intra", 5))
+ else if (! strncmp (argv[idx_type]->arg, "intra", 5))
level = OSPF6_DEBUG_ROUTE_INTRA;
- else if (! strncmp (argv[3]->arg, "inter", 5))
+ else if (! strncmp (argv[idx_type]->arg, "inter", 5))
level = OSPF6_DEBUG_ROUTE_INTER;
- else if (! strncmp (argv[3]->arg, "memor", 5))
+ else if (! strncmp (argv[idx_type]->arg, "memor", 5))
level = OSPF6_DEBUG_ROUTE_MEMORY;
OSPF6_DEBUG_ROUTE_ON (level);
return CMD_SUCCESS;
"Debug intra-area route calculation\n"
"Debug route memory use\n")
{
+ int idx_type = 4;
unsigned char level = 0;
- if (! strncmp (argv[4]->arg, "table", 5))
+ if (! strncmp (argv[idx_type]->arg, "table", 5))
level = OSPF6_DEBUG_ROUTE_TABLE;
- else if (! strncmp (argv[4]->arg, "intra", 5))
+ else if (! strncmp (argv[idx_type]->arg, "intra", 5))
level = OSPF6_DEBUG_ROUTE_INTRA;
- else if (! strncmp (argv[4]->arg, "inter", 5))
+ else if (! strncmp (argv[idx_type]->arg, "inter", 5))
level = OSPF6_DEBUG_ROUTE_INTER;
- else if (! strncmp (argv[4]->arg, "memor", 5))
+ else if (! strncmp (argv[idx_type]->arg, "memor", 5))
level = OSPF6_DEBUG_ROUTE_MEMORY;
OSPF6_DEBUG_ROUTE_OFF (level);
return CMD_SUCCESS;
"Initial hold time (msec) between consecutive SPF calculations\n"
"Maximum hold time (msec)\n")
{
+ int idx_number = 3;
+ int idx_number_2 = 4;
+ int idx_number_3 = 5;
unsigned int delay, hold, max;
if (argc != 3)
return CMD_WARNING;
}
- VTY_GET_INTEGER_RANGE ("SPF delay timer", delay, argv[3]->arg, 0, 600000);
- VTY_GET_INTEGER_RANGE ("SPF hold timer", hold, argv[4]->arg, 0, 600000);
- VTY_GET_INTEGER_RANGE ("SPF max-hold timer", max, argv[5]->arg, 0, 600000);
+ VTY_GET_INTEGER_RANGE ("SPF delay timer", delay, argv[idx_number]->arg, 0, 600000);
+ VTY_GET_INTEGER_RANGE ("SPF hold timer", hold, argv[idx_number_2]->arg, 0, 600000);
+ VTY_GET_INTEGER_RANGE ("SPF max-hold timer", max, argv[idx_number_3]->arg, 0, 600000);
return ospf6_timers_spf_set (vty, delay, hold, max);
}
"Configure OSPF Router-ID\n"
V4NOTATION_STR)
{
+ int idx_ipv4 = 1;
int ret;
u_int32_t router_id;
struct ospf6 *o;
o = (struct ospf6 *) vty->index;
- ret = inet_pton (AF_INET, argv[1]->arg, &router_id);
+ ret = inet_pton (AF_INET, argv[idx_ipv4]->arg, &router_id);
if (ret == 0)
{
- vty_out (vty, "malformed OSPF Router-ID: %s%s", argv[1]->arg, VNL);
+ vty_out (vty, "malformed OSPF Router-ID: %s%s", argv[idx_ipv4]->arg, VNL);
return CMD_SUCCESS;
}
"Minimum delay in receiving new version of a LSA\n"
"Delay in milliseconds\n")
{
+ int idx_number = 3;
unsigned int minarrival;
struct ospf6 *ospf = vty->index;
return CMD_WARNING;
}
- VTY_GET_INTEGER ("LSA min-arrival", minarrival, argv[3]->arg);
+ VTY_GET_INTEGER ("LSA min-arrival", minarrival, argv[idx_number]->arg);
ospf->lsa_minarrival = minarrival;
"OSPF6 area ID in IPv4 address notation\n"
)
{
+ int idx_ifname = 1;
+ int idx_ipv4 = 3;
struct ospf6 *o;
struct ospf6_area *oa;
struct ospf6_interface *oi;
o = (struct ospf6 *) vty->index;
/* find/create ospf6 interface */
- ifp = if_get_by_name (argv[1]->arg);
+ ifp = if_get_by_name (argv[idx_ifname]->arg);
oi = (struct ospf6_interface *) ifp->info;
if (oi == NULL)
oi = ospf6_interface_create (ifp);
}
/* parse Area-ID */
- if (inet_pton (AF_INET, argv[3]->arg, &area_id) != 1)
+ if (inet_pton (AF_INET, argv[idx_ipv4]->arg, &area_id) != 1)
{
- vty_out (vty, "Invalid Area-ID: %s%s", argv[3]->arg, VNL);
+ vty_out (vty, "Invalid Area-ID: %s%s", argv[idx_ipv4]->arg, VNL);
return CMD_SUCCESS;
}
"OSPF6 area ID in IPv4 address notation\n"
)
{
+ int idx_ifname = 2;
+ int idx_ipv4 = 4;
struct ospf6_interface *oi;
struct ospf6_area *oa;
struct interface *ifp;
u_int32_t area_id;
- ifp = if_lookup_by_name (argv[2]->arg);
+ ifp = if_lookup_by_name (argv[idx_ifname]->arg);
if (ifp == NULL)
{
- vty_out (vty, "No such interface %s%s", argv[2]->arg, VNL);
+ vty_out (vty, "No such interface %s%s", argv[idx_ifname]->arg, VNL);
return CMD_SUCCESS;
}
}
/* parse Area-ID */
- if (inet_pton (AF_INET, argv[4]->arg, &area_id) != 1)
+ if (inet_pton (AF_INET, argv[idx_ipv4]->arg, &area_id) != 1)
{
- vty_out (vty, "Invalid Area-ID: %s%s", argv[4]->arg, VNL);
+ vty_out (vty, "Invalid Area-ID: %s%s", argv[idx_ipv4]->arg, VNL);
return CMD_SUCCESS;
}
/* Verify Area */
if (oi->area == NULL)
{
- vty_out (vty, "No such Area-ID: %s%s", argv[4]->arg, VNL);
+ vty_out (vty, "No such Area-ID: %s%s", argv[idx_ipv4]->arg, VNL);
return CMD_SUCCESS;
}
"Debug Receiving zebra\n"
)
{
+ int idx_send_recv = 3;
unsigned char level = 0;
if (argc)
{
- if (! strncmp (argv[3]->arg, "s", 1))
+ if (! strncmp (argv[idx_send_recv]->arg, "s", 1))
level = OSPF6_DEBUG_ZEBRA_SEND;
- else if (! strncmp (argv[3]->arg, "r", 1))
+ else if (! strncmp (argv[idx_send_recv]->arg, "r", 1))
level = OSPF6_DEBUG_ZEBRA_RECV;
}
else
"Debug Receiving zebra\n"
)
{
+ int idx_send_recv = 4;
unsigned char level = 0;
if (argc)
{
- if (! strncmp (argv[4]->arg, "s", 1))
+ if (! strncmp (argv[idx_send_recv]->arg, "s", 1))
level = OSPF6_DEBUG_ZEBRA_SEND;
- else if (! strncmp (argv[4]->arg, "r", 1))
+ else if (! strncmp (argv[idx_send_recv]->arg, "r", 1))
level = OSPF6_DEBUG_ZEBRA_RECV;
}
else
"Specify Link state ID as IPv4 address notation\n"
)
{
+ int idx_ipv4 = 5;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
OSPF6_CMD_CHECK_RUNNING ();
- if ((inet_pton (AF_INET, argv[5]->arg, &id)) != 1)
+ if ((inet_pton (AF_INET, argv[idx_ipv4]->arg, &id)) != 1)
{
vty_out (vty, "Link State ID is not parsable: %s%s",
- argv[5]->arg, VNL);
+ argv[idx_ipv4]->arg, VNL);
return CMD_SUCCESS;
}
"Specify Advertising Router as IPv4 address notation\n"
)
{
+ int idx_ipv4 = 6;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
OSPF6_CMD_CHECK_RUNNING ();
- if ((inet_pton (AF_INET, argv[6]->arg, &adv_router)) != 1)
+ if ((inet_pton (AF_INET, argv[idx_ipv4]->arg, &adv_router)) != 1)
{
vty_out (vty, "Advertising Router is not parsable: %s%s",
- argv[6]->arg, VNL);
+ argv[idx_ipv4]->arg, VNL);
return CMD_SUCCESS;
}
"Specify Link state ID as IPv4 address notation\n"
)
{
+ int idx_lsa = 4;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
argc--;
argv++;
- if ((inet_pton (AF_INET, argv[4]->arg, &id)) != 1)
+ if ((inet_pton (AF_INET, argv[idx_lsa]->arg, &id)) != 1)
{
vty_out (vty, "Link state ID is not parsable: %s%s",
- argv[4]->arg, VNL);
+ argv[idx_lsa]->arg, VNL);
return CMD_SUCCESS;
}
"Specify Advertising Router as IPv4 address notation\n"
)
{
+ int idx_lsa = 4;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
argc--;
argv++;
- if ((inet_pton (AF_INET, argv[4]->arg, &adv_router)) != 1)
+ if ((inet_pton (AF_INET, argv[idx_lsa]->arg, &adv_router)) != 1)
{
vty_out (vty, "Advertising Router is not parsable: %s%s",
- argv[4]->arg, VNL);
+ argv[idx_lsa]->arg, VNL);
return CMD_SUCCESS;
}
"Specify Advertising Router as IPv4 address notation\n"
)
{
+ int idx_ipv4 = 5;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
OSPF6_CMD_CHECK_RUNNING ();
- if ((inet_pton (AF_INET, argv[5]->arg, &id)) != 1)
+ if ((inet_pton (AF_INET, argv[idx_ipv4]->arg, &id)) != 1)
{
vty_out (vty, "Link state ID is not parsable: %s%s",
- argv[5]->arg, VNL);
+ argv[idx_ipv4]->arg, VNL);
return CMD_SUCCESS;
}
argc--;
argv++;
- if ((inet_pton (AF_INET, argv[5]->arg, &adv_router)) != 1)
+ if ((inet_pton (AF_INET, argv[idx_ipv4]->arg, &adv_router)) != 1)
{
vty_out (vty, "Advertising Router is not parsable: %s%s",
- argv[5]->arg, VNL);
+ argv[idx_ipv4]->arg, VNL);
return CMD_SUCCESS;
}
"Specify Link state ID as IPv4 address notation\n"
)
{
+ int idx_ipv4 = 5;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
OSPF6_CMD_CHECK_RUNNING ();
- if ((inet_pton (AF_INET, argv[5]->arg, &adv_router)) != 1)
+ if ((inet_pton (AF_INET, argv[idx_ipv4]->arg, &adv_router)) != 1)
{
vty_out (vty, "Advertising Router is not parsable: %s%s",
- argv[5]->arg, VNL);
+ argv[idx_ipv4]->arg, VNL);
return CMD_SUCCESS;
}
argc--;
argv++;
- if ((inet_pton (AF_INET, argv[5]->arg, &id)) != 1)
+ if ((inet_pton (AF_INET, argv[idx_ipv4]->arg, &id)) != 1)
{
vty_out (vty, "Link state ID is not parsable: %s%s",
- argv[5]->arg, VNL);
+ argv[idx_ipv4]->arg, VNL);
return CMD_SUCCESS;
}
"Specify Advertising Router as IPv4 address notation\n"
)
{
+ int idx_lsa = 4;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
argc--;
argv++;
- if ((inet_pton (AF_INET, argv[4]->arg, &id)) != 1)
+ if ((inet_pton (AF_INET, argv[idx_lsa]->arg, &id)) != 1)
{
vty_out (vty, "Link state ID is not parsable: %s%s",
- argv[4]->arg, VNL);
+ argv[idx_lsa]->arg, VNL);
return CMD_SUCCESS;
}
argc--;
argv++;
- if ((inet_pton (AF_INET, argv[4]->arg, &adv_router)) != 1)
+ if ((inet_pton (AF_INET, argv[idx_lsa]->arg, &adv_router)) != 1)
{
vty_out (vty, "Advertising Router is not parsable: %s%s",
- argv[4]->arg, VNL);
+ argv[idx_lsa]->arg, VNL);
return CMD_SUCCESS;
}
"Specify Link state ID as IPv4 address notation\n"
)
{
+ int idx_lsa = 4;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
argc--;
argv++;
- if ((inet_pton (AF_INET, argv[4]->arg, &adv_router)) != 1)
+ if ((inet_pton (AF_INET, argv[idx_lsa]->arg, &adv_router)) != 1)
{
vty_out (vty, "Advertising Router is not parsable: %s%s",
- argv[4]->arg, VNL);
+ argv[idx_lsa]->arg, VNL);
return CMD_SUCCESS;
}
argc--;
argv++;
- if ((inet_pton (AF_INET, argv[4]->arg, &id)) != 1)
+ if ((inet_pton (AF_INET, argv[idx_lsa]->arg, &id)) != 1)
{
vty_out (vty, "Link state ID is not parsable: %s%s",
- argv[4]->arg, VNL);
+ argv[idx_lsa]->arg, VNL);
return CMD_SUCCESS;
}
"Specify Link state ID as IPv4 address notation\n"
)
{
+ int idx_lsa = 4;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
argc--;
argv++;
- if ((inet_pton (AF_INET, argv[4]->arg, &id)) != 1)
+ if ((inet_pton (AF_INET, argv[idx_lsa]->arg, &id)) != 1)
{
vty_out (vty, "Link State ID is not parsable: %s%s",
- argv[4]->arg, VNL);
+ argv[idx_lsa]->arg, VNL);
return CMD_SUCCESS;
}
"Display Self-originated LSAs\n"
)
{
+ int idx_lsa = 4;
int level;
struct listnode *i, *j;
struct ospf6 *o = ospf6;
argc--;
argv++;
- if ((inet_pton (AF_INET, argv[4]->arg, &id)) != 1)
+ if ((inet_pton (AF_INET, argv[idx_lsa]->arg, &id)) != 1)
{
vty_out (vty, "Link State ID is not parsable: %s%s",
- argv[4]->arg, VNL);
+ argv[idx_lsa]->arg, VNL);
return CMD_SUCCESS;
}
elif token == 'confed|missing-as-worst':
return 'idx_med_knob'
- elif token == 'both|send|receive':
+ elif token == 'both|send|receive' or token == 'send|recv':
return 'idx_send_recv'
elif token == 'both|extended|standard':
elif token == 'md5|clear':
return 'idx_encryption'
+ elif token == 'type-1|type-2':
+ return 'idx_external'
+
+ elif token == 'table|intra-area|inter-area|memory':
+ return 'idx_type'
+
+ elif token == 'unknown|hello|dbdesc|lsreq|lsupdate|lsack|all':
+ return 'idx_packet'
+
+ elif token == 'router|network|inter-prefix|inter-router|as-external|link|intra-prefix|unknown' or token == 'intra-area|inter-area|external-1|external-2' or token == 'router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix':
+ return 'idx_lsa'
+
+ elif token == 'broadcast|point-to-point':
+ return 'idx_network'
+
+ elif token == 'A.B.C.D|(0-4294967295)':
+ return 'idx_ipv4_number'
+
elif token == 'narrow|transition|wide':
return 'idx_metric_style'