X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvat%2Fapi_format.c;h=d6af698446726372d2cb310ec70609519eca3e3e;hb=cf5e848d69a4f14464c1e2d56896bc9f7e586951;hp=35b46f49fb0f90dc70af749ecf6771237c6e2bd6;hpb=75d856096f644837e0da9fda011f0c419fa9414e;p=vpp.git diff --git a/src/vat/api_format.c b/src/vat/api_format.c index 35b46f49fb0..d6af6984467 100644 --- a/src/vat/api_format.c +++ b/src/vat/api_format.c @@ -2137,6 +2137,7 @@ static void vl_api_memfd_segment_create_reply_t_handler vam->client_index_invalid = 1; + /* Note: this closes memfd.fd */ retval = memfd_slave_init (&memfd); if (retval) clib_warning ("WARNING: segment map returned %d", retval); @@ -2152,8 +2153,6 @@ static void vl_api_memfd_segment_create_reply_t_handler vl_client_connect_to_vlib_no_map ("pvt", "vpp_api_test(p)", 32 /* input_queue_length */ ); - if (close (my_fd) < 0) - clib_unix_warning ("close memfd fd pivot"); vam->vl_input_queue = am->shmem_hdr->vl_input_queue; vl_socket_client_enable_disable (&vam->socket_client_main, @@ -5885,7 +5884,7 @@ exec_inband (vat_main_t * vam) W (ret); /* json responses may or may not include a useful reply... */ if (vec_len (vam->cmd_reply)) - print (vam->ofp, (char *) (vam->cmd_reply)); + print (vam->ofp, "%v", (char *) (vam->cmd_reply)); return ret; } @@ -7562,6 +7561,7 @@ api_ip_add_del_route (vat_main_t * vam) u8 is_ipv6 = 0; u8 is_local = 0, is_drop = 0; u8 is_unreach = 0, is_prohibit = 0; + u8 create_vrf_if_needed = 0; u8 is_add = 1; u32 next_hop_weight = 1; u8 not_last = 0; @@ -7658,6 +7658,8 @@ api_ip_add_del_route (vat_main_t * vam) is_multipath = 1; else if (unformat (i, "vrf %d", &vrf_id)) ; + else if (unformat (i, "create-vrf")) + create_vrf_if_needed = 1; else if (unformat (i, "count %d", &count)) ; else if (unformat (i, "lookup-in-vrf %d", &next_hop_table_id)) @@ -7744,6 +7746,7 @@ api_ip_add_del_route (vat_main_t * vam) mp->next_hop_sw_if_index = ntohl (sw_if_index); mp->table_id = ntohl (vrf_id); + mp->create_vrf_if_needed = create_vrf_if_needed; mp->is_add = is_add; mp->is_drop = is_drop; @@ -7857,6 +7860,7 @@ api_ip_mroute_add_del (vat_main_t * vam) u32 sw_if_index = ~0, vrf_id = 0; u8 is_ipv6 = 0; u8 is_local = 0; + u8 create_vrf_if_needed = 0; u8 is_add = 1; u8 address_set = 0; u32 grp_address_length = 0; @@ -7913,6 +7917,8 @@ api_ip_mroute_add_del (vat_main_t * vam) is_add = 1; else if (unformat (i, "vrf %d", &vrf_id)) ; + else if (unformat (i, "create-vrf")) + create_vrf_if_needed = 1; else if (unformat (i, "%U", unformat_mfib_itf_flags, &iflags)) ; else if (unformat (i, "%U", unformat_mfib_entry_flags, &eflags)) @@ -7935,6 +7941,7 @@ api_ip_mroute_add_del (vat_main_t * vam) mp->next_hop_sw_if_index = ntohl (sw_if_index); mp->table_id = ntohl (vrf_id); + mp->create_vrf_if_needed = create_vrf_if_needed; mp->is_add = is_add; mp->is_ipv6 = is_ipv6; @@ -7975,12 +7982,12 @@ api_mpls_table_add_del (vat_main_t * vam) /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { - if (unformat (i, "del")) + if (unformat (i, "table %d", &table_id)) + ; + else if (unformat (i, "del")) is_add = 0; else if (unformat (i, "add")) is_add = 1; - else if (unformat (i, "table-id %d", &table_id)) - ; else { clib_warning ("parse error '%U'", format_unformat_error, i); @@ -8015,6 +8022,7 @@ api_mpls_route_add_del (vat_main_t * vam) unformat_input_t *i = vam->input; vl_api_mpls_route_add_del_t *mp; u32 sw_if_index = ~0, table_id = 0; + u8 create_table_if_needed = 0; u8 is_add = 1; u32 next_hop_weight = 1; u8 is_multipath = 0; @@ -8064,6 +8072,8 @@ api_mpls_route_add_del (vat_main_t * vam) } else if (unformat (i, "weight %d", &next_hop_weight)) ; + else if (unformat (i, "create-table")) + create_table_if_needed = 1; else if (unformat (i, "classify %d", &classify_table_index)) { is_classify = 1; @@ -8131,6 +8141,7 @@ api_mpls_route_add_del (vat_main_t * vam) mp->mr_next_hop_sw_if_index = ntohl (sw_if_index); mp->mr_table_id = ntohl (table_id); + mp->mr_create_table_if_needed = create_table_if_needed; mp->mr_is_add = is_add; mp->mr_next_hop_proto = next_hop_proto; @@ -8236,6 +8247,7 @@ api_mpls_ip_bind_unbind (vat_main_t * vam) unformat_input_t *i = vam->input; vl_api_mpls_ip_bind_unbind_t *mp; u32 ip_table_id = 0; + u8 create_table_if_needed = 0; u8 is_bind = 1; u8 is_ip4 = 1; ip4_address_t v4_address; @@ -8262,6 +8274,8 @@ api_mpls_ip_bind_unbind (vat_main_t * vam) } else if (unformat (i, "%d", &local_label)) ; + else if (unformat (i, "create-table")) + create_table_if_needed = 1; else if (unformat (i, "table-id %d", &ip_table_id)) ; else if (unformat (i, "unbind")) @@ -8290,6 +8304,7 @@ api_mpls_ip_bind_unbind (vat_main_t * vam) /* Construct the API message */ M (MPLS_IP_BIND_UNBIND, mp); + mp->mb_create_table_if_needed = create_table_if_needed; mp->mb_is_bind = is_bind; mp->mb_is_ip4 = is_ip4; mp->mb_ip_table_id = ntohl (ip_table_id); @@ -20902,16 +20917,12 @@ api_app_namespace_add_del (vat_main_t * vam) static int api_memfd_segment_create (vat_main_t * vam) { +#if VPP_API_TEST_BUILTIN == 0 unformat_input_t *i = vam->input; vl_api_memfd_segment_create_t *mp; u64 size = 64 << 20; int ret; -#if VPP_API_TEST_BUILTIN == 1 - errmsg ("memfd_segment_create (builtin) not supported"); - return -99; -#endif - while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { if (unformat (i, "size %U", unformat_memory_size, &size)) @@ -20925,6 +20936,11 @@ api_memfd_segment_create (vat_main_t * vam) S (mp); W (ret); return ret; + +#else + errmsg ("memfd_segment_create (builtin) not supported"); + return -99; +#endif } static int