-DEFUN (ospf_area_vlink_intervals,
- ospf_area_vlink_intervals_cmd,
- "area <A.B.C.D|(0-4294967295)> virtual-link A.B.C.D"
- "<hello-interval|retransmit-interval|transmit-delay|dead-interval> (1-65535)"
- "[<hello-interval|retransmit-interval|transmit-delay|dead-interval> (1-65535)"
- "[<hello-interval|retransmit-interval|transmit-delay|dead-interval> (1-65535)"
- "[<hello-interval|retransmit-interval|transmit-delay|dead-interval> (1-65535)"
- "]]]",
- VLINK_HELPSTR_IPADDR
- VLINK_HELPSTR_TIME_PARAM
- VLINK_HELPSTR_TIME_PARAM
- VLINK_HELPSTR_TIME_PARAM
- VLINK_HELPSTR_TIME_PARAM)
-{
- VTY_DECLVAR_CONTEXT(ospf, ospf);
- struct ospf_vl_config_data vl_config;
- int ret = 0;
-
- ospf_vl_config_data_init(&vl_config, vty);
-
- char *area_id = argv[1]->arg;
- char *router_id = argv[3]->arg;
-
- ret = str2area_id (area_id, &vl_config.area_id, &vl_config.area_id_fmt);
- if (ret < 0)
- {
- vty_out (vty, "OSPF area ID is invalid%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
-
- ret = inet_aton (router_id, &vl_config.vl_peer);
- if (! ret)
- {
- vty_out (vty, "Please specify valid Router ID as a.b.c.d%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
- for (unsigned int i = 0; i < 4; i++)
- {
- int idx = 0;
- if (argv_find (argv, argc, "hello-interval", &idx))
- vl_config.hello_interval = strtol(argv[idx+1]->arg, NULL, 10);
- else if (argv_find (argv, argc, "retransmit-interval", &idx))
- vl_config.retransmit_interval = strtol(argv[idx+1]->arg, NULL, 10);
- else if (argv_find (argv, argc, "transmit-delay", &idx))
- vl_config.transmit_delay = strtol(argv[idx+1]->arg, NULL, 10);
- else if (argv_find (argv, argc, "dead-interval", &idx))
- vl_config.dead_interval = strtol(argv[idx+1]->arg, NULL, 10);
- }
-
- /* Action configuration */
- return ospf_vl_set (ospf, &vl_config);
-}
-