+static int api_get_next_index (vat_main_t * vam)
+{
+ unformat_input_t * i = vam->input;
+ vl_api_get_next_index_t * mp;
+ f64 timeout;
+ u8 * node_name = 0, * next_node_name = 0;
+
+ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) {
+ if (unformat (i, "node-name %s", &node_name))
+ ;
+ else if (unformat (i, "next-node-name %s", &next_node_name))
+ break;
+ }
+
+ if (node_name == 0) {
+ errmsg ("node name required\n");
+ return -99;
+ }
+ if (vec_len (node_name) >= ARRAY_LEN(mp->node_name)) {
+ errmsg ("node name too long, max %d\n", ARRAY_LEN(mp->node_name));
+ return -99;
+ }
+
+ if (next_node_name == 0) {
+ errmsg ("next node name required\n");
+ return -99;
+ }
+ if (vec_len (next_node_name) >= ARRAY_LEN(mp->next_name)) {
+ errmsg ("next node name too long, max %d\n", ARRAY_LEN(mp->next_name));
+ return -99;
+ }
+
+ M(GET_NEXT_INDEX, get_next_index);
+ clib_memcpy (mp->node_name, node_name, vec_len(node_name));
+ clib_memcpy (mp->next_name, next_node_name, vec_len(next_node_name));
+ vec_free(node_name);
+ vec_free(next_node_name);
+
+ S; W;
+ /* NOTREACHED */
+ return 0;
+}
+