diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/http_static/http_static.c | 16 | ||||
-rw-r--r-- | src/plugins/http_static/http_static_test.c | 1 | ||||
-rw-r--r-- | src/plugins/map/map.c | 21 | ||||
-rw-r--r-- | src/plugins/map/map.h | 4 | ||||
-rw-r--r-- | src/plugins/map/map_api.c | 16 | ||||
-rw-r--r-- | src/plugins/nat/nat_api.c | 1 |
6 files changed, 28 insertions, 31 deletions
diff --git a/src/plugins/http_static/http_static.c b/src/plugins/http_static/http_static.c index 41601f96321..d380665f1e2 100644 --- a/src/plugins/http_static/http_static.c +++ b/src/plugins/http_static/http_static.c @@ -22,6 +22,7 @@ #include <vlibapi/api.h> #include <vlibmemory/api.h> #include <vpp/app/version.h> +#include <vlibapi/api_types_inlines.h> /* define message IDs */ #include <http_static/http_static_msg_enum.h> @@ -66,16 +67,13 @@ static void vl_api_http_static_enable_t_handler vl_api_http_static_enable_reply_t *rmp; http_static_main_t *hmp = &http_static_main; int rv; - u8 *www_root; - u8 *uri; + u8 *www_root = 0; + u8 *uri = 0; char *p = (char *) &mp->www_root; - www_root = - format (0, "%s%c", vl_api_from_api_string_c ((vl_api_string_t *) p), 0), - p += vl_api_string_len ((vl_api_string_t *) p) + sizeof (vl_api_string_t); - uri = - format (0, "%s%c", vl_api_from_api_string_c ((vl_api_string_t *) p), 0); - + www_root = vl_api_from_api_to_vec ((vl_api_string_t *) p); + p += vl_api_string_len ((vl_api_string_t *) p) + sizeof (vl_api_string_t); + uri = vl_api_from_api_to_vec ((vl_api_string_t *) p); rv = http_static_server_enable_api (ntohl (mp->fifo_size), @@ -83,6 +81,8 @@ static void vl_api_http_static_enable_t_handler ntohl (mp->prealloc_fifos), ntohl (mp->private_segment_size), www_root, uri); + vec_free (www_root); + vec_free (uri); REPLY_MACRO (VL_API_HTTP_STATIC_ENABLE_REPLY); } diff --git a/src/plugins/http_static/http_static_test.c b/src/plugins/http_static/http_static_test.c index 0720463cf63..ec715725148 100644 --- a/src/plugins/http_static/http_static_test.c +++ b/src/plugins/http_static/http_static_test.c @@ -18,6 +18,7 @@ #include <vlibapi/api.h> #include <vlibmemory/api.h> #include <vppinfra/error.h> +#include <vlibapi/api_types_inlines.h> uword unformat_sw_if_index (unformat_input_t * input, va_list * args); diff --git a/src/plugins/map/map.c b/src/plugins/map/map.c index c2e821aa2e0..9d89382ad17 100644 --- a/src/plugins/map/map.c +++ b/src/plugins/map/map.c @@ -60,15 +60,14 @@ map_main_t map_main; /* - * Save usre-assigned MAP domain names ("tags") in a vector of + * Save user-assigned MAP domain names ("tags") in a vector of * extra domain information. */ static void -map_save_extras (u32 map_domain_index, char *tag) +map_save_extras (u32 map_domain_index, u8 * tag) { map_main_t *mm = &map_main; map_domain_extra_t *de; - u32 len; if (map_domain_index == ~0) return; @@ -80,9 +79,7 @@ map_save_extras (u32 map_domain_index, char *tag) if (!tag) return; - len = strlen (tag) + 1; - de->tag = clib_mem_alloc (len); - clib_memcpy (de->tag, tag, len); + de->tag = vec_dup (tag); } @@ -91,7 +88,7 @@ map_free_extras (u32 map_domain_index) { map_main_t *mm = &map_main; map_domain_extra_t *de; - char *tag; + u8 *tag; if (map_domain_index == ~0) return; @@ -101,7 +98,7 @@ map_free_extras (u32 map_domain_index) if (!tag) return; - clib_mem_free (tag); + vec_free (tag); de->tag = 0; } @@ -116,7 +113,7 @@ map_create_domain (ip4_address_t * ip4_prefix, u8 ea_bits_len, u8 psid_offset, u8 psid_length, - u32 * map_domain_index, u16 mtu, u8 flags, char *tag) + u32 * map_domain_index, u16 mtu, u8 flags, u8 * tag) { u8 suffix_len, suffix_shift; map_main_t *mm = &map_main; @@ -566,7 +563,7 @@ map_add_domain_command_fn (vlib_main_t * vm, num_m_args++; else if (unformat (line_input, "mtu %d", &mtu)) num_m_args++; - else if (unformat (line_input, "tag %s", &tag)) + else if (unformat (line_input, "tag %v", &tag)) ; else { @@ -585,7 +582,7 @@ map_add_domain_command_fn (vlib_main_t * vm, map_create_domain (&ip4_prefix, ip4_prefix_len, &ip6_prefix, ip6_prefix_len, &ip6_src, ip6_src_len, ea_bits_len, psid_offset, psid_length, &map_domain_index, - mtu, flags, (char *) tag); + mtu, flags, tag); done: unformat_free (line_input); @@ -938,7 +935,7 @@ format_map_domain (u8 * s, va_list * args) de = vec_elt_at_index (mm->domain_extras, map_domain_index); s = format (s, - "[%d] tag {%s} ip4-pfx %U/%d ip6-pfx %U/%d ip6-src %U/%d " + "[%d] tag {%v} ip4-pfx %U/%d ip6-pfx %U/%d ip6-src %U/%d " "ea-bits-len %d psid-offset %d psid-len %d mtu %d %s", map_domain_index, de->tag, format_ip4_address, &d->ip4_prefix, d->ip4_prefix_len, diff --git a/src/plugins/map/map.h b/src/plugins/map/map.h index a692b641768..abafb4e21fe 100644 --- a/src/plugins/map/map.h +++ b/src/plugins/map/map.h @@ -36,7 +36,7 @@ int map_create_domain (ip4_address_t * ip4_prefix, u8 ip4_prefix_len, ip6_address_t * ip6_prefix, u8 ip6_prefix_len, ip6_address_t * ip6_src, u8 ip6_src_len, u8 ea_bits_len, u8 psid_offset, u8 psid_length, - u32 * map_domain_index, u16 mtu, u8 flags, char *tag); + u32 * map_domain_index, u16 mtu, u8 flags, u8 * tag); int map_delete_domain (u32 map_domain_index); int map_add_del_psid (u32 map_domain_index, u16 psid, ip6_address_t * tep, bool is_add); @@ -137,7 +137,7 @@ STATIC_ASSERT ((sizeof (map_domain_t) <= CLIB_CACHE_LINE_BYTES), */ typedef struct { - char *tag; /* Probably a user-assigned domain name. */ + u8 *tag; /* Probably a user-assigned domain name. */ } map_domain_extra_t; #define MAP_REASS_INDEX_NONE ((u16)0xffff) diff --git a/src/plugins/map/map_api.c b/src/plugins/map/map_api.c index a6b461db107..5619b24c9aa 100644 --- a/src/plugins/map/map_api.c +++ b/src/plugins/map/map_api.c @@ -22,6 +22,7 @@ #include <vnet/ip/ip.h> #include <vnet/fib/fib_table.h> #include <vlibmemory/api.h> +#include <vlibapi/api_types_inlines.h> #define vl_typedefs /* define message structures */ #include <map/map_all_api_h.h> @@ -53,7 +54,8 @@ vl_api_map_add_domain_t_handler (vl_api_map_add_domain_t * mp) int rv = 0; u32 index; u8 flags = 0; - + u8 *vtag = 0; + vtag = vl_api_from_api_to_vec (&mp->tag); rv = map_create_domain ((ip4_address_t *) & mp->ip4_prefix.prefix, mp->ip4_prefix.len, @@ -61,8 +63,8 @@ vl_api_map_add_domain_t_handler (vl_api_map_add_domain_t * mp) mp->ip6_prefix.len, (ip6_address_t *) & mp->ip6_src.prefix, mp->ip6_src.len, mp->ea_bits_len, mp->psid_offset, - mp->psid_length, &index, ntohs (mp->mtu), flags, - vl_api_from_api_string_c (&mp->tag)); + mp->psid_length, &index, ntohs (mp->mtu), flags, vtag); + vec_free (vtag); /* *INDENT-OFF* */ REPLY_MACRO2(VL_API_MAP_ADD_DOMAIN_REPLY, @@ -118,15 +120,11 @@ vl_api_map_domain_dump_t_handler (vl_api_map_domain_dump_t * mp) /* *INDENT-OFF* */ pool_foreach(d, mm->domains, ({ - u32 len; - map_domain_index = d - mm->domains; de = vec_elt_at_index(mm->domain_extras, map_domain_index); - len = strnlen_s(de->tag, 64); - /* Make sure every field is initiated (or don't skip the clib_memset()) */ - rmp = vl_msg_api_alloc (sizeof (*rmp) + len); + rmp = vl_msg_api_alloc (sizeof (*rmp) + vec_len(de->tag)); rmp->_vl_msg_id = htons(VL_API_MAP_DOMAIN_DETAILS + mm->msg_id_base); rmp->context = mp->context; @@ -143,7 +141,7 @@ vl_api_map_domain_dump_t_handler (vl_api_map_domain_dump_t * mp) rmp->flags = d->flags; rmp->mtu = htons(d->mtu); - vl_api_to_api_string (len, de->tag, &rmp->tag ); + vl_api_vec_to_api_string (de->tag, &rmp->tag ); vl_api_send_msg (reg, (u8 *) rmp); })); diff --git a/src/plugins/nat/nat_api.c b/src/plugins/nat/nat_api.c index 1dad4e42728..7c1445f90c8 100644 --- a/src/plugins/nat/nat_api.c +++ b/src/plugins/nat/nat_api.c @@ -32,6 +32,7 @@ #include <nat/nat_msg_enum.h> #include <vnet/fib/fib_table.h> #include <vnet/ip/ip_types_api.h> +#include <vlibapi/api_types_inlines.h> #define vl_api_nat44_lb_addr_port_t_endian vl_noop_handler #define vl_api_nat44_add_del_lb_static_mapping_t_endian vl_noop_handler |