X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvat%2Fapi_format.c;h=8ab47c9aa00d9354db13e6ba590a2ed3a4091b95;hb=0938eba153ed20b8a32b7278ed6301b45ce257cc;hp=a18eb91dae57becf4b185e92c2685b4eb776a9d9;hpb=cd01fb4237b78a1805e1dd4b018bd03eb342580c;p=vpp.git diff --git a/src/vat/api_format.c b/src/vat/api_format.c index a18eb91dae5..8ab47c9aa00 100644 --- a/src/vat/api_format.c +++ b/src/vat/api_format.c @@ -9325,10 +9325,8 @@ api_sr_localsid_add_del (vat_main_t * vam) u8 behavior = ~0; u32 sw_if_index; u32 fib_table = ~(u32) 0; - ip6_address_t nh_addr6; - ip4_address_t nh_addr4; - clib_memset (&nh_addr6, 0, sizeof (ip6_address_t)); - clib_memset (&nh_addr4, 0, sizeof (ip4_address_t)); + ip46_address_t nh_addr; + clib_memset (&nh_addr, 0, sizeof (ip46_address_t)); bool nexthop_set = 0; @@ -9339,9 +9337,7 @@ api_sr_localsid_add_del (vat_main_t * vam) if (unformat (i, "del")) is_del = 1; else if (unformat (i, "address %U", unformat_ip6_address, &localsid)); - else if (unformat (i, "next-hop %U", unformat_ip4_address, &nh_addr4)) - nexthop_set = 1; - else if (unformat (i, "next-hop %U", unformat_ip6_address, &nh_addr6)) + else if (unformat (i, "next-hop %U", unformat_ip46_address, &nh_addr)) nexthop_set = 1; else if (unformat (i, "behavior %u", &behavior)); else if (unformat (i, "sw_if_index %u", &sw_if_index)); @@ -9353,12 +9349,11 @@ api_sr_localsid_add_del (vat_main_t * vam) M (SR_LOCALSID_ADD_DEL, mp); - clib_memcpy (mp->localsid.addr, &localsid, sizeof (mp->localsid)); + clib_memcpy (mp->localsid, &localsid, sizeof (mp->localsid)); if (nexthop_set) { - clib_memcpy (mp->nh_addr6, &nh_addr6, sizeof (mp->nh_addr6)); - clib_memcpy (mp->nh_addr4, &nh_addr4, sizeof (mp->nh_addr4)); + clib_memcpy (&mp->nh_addr.un, &nh_addr, sizeof (mp->nh_addr.un)); } mp->behavior = behavior; mp->sw_if_index = ntohl (sw_if_index); @@ -11733,14 +11728,16 @@ api_vxlan_add_del_tunnel (vat_main_t * vam) if (ipv6_set) { - clib_memcpy (mp->src_address, &src.ip6, sizeof (src.ip6)); - clib_memcpy (mp->dst_address, &dst.ip6, sizeof (dst.ip6)); + clib_memcpy (mp->src_address.un.ip6, &src.ip6, sizeof (src.ip6)); + clib_memcpy (mp->dst_address.un.ip6, &dst.ip6, sizeof (dst.ip6)); } else { - clib_memcpy (mp->src_address, &src.ip4, sizeof (src.ip4)); - clib_memcpy (mp->dst_address, &dst.ip4, sizeof (dst.ip4)); + clib_memcpy (mp->src_address.un.ip4, &src.ip4, sizeof (src.ip4)); + clib_memcpy (mp->dst_address.un.ip4, &dst.ip4, sizeof (dst.ip4)); } + mp->src_address.af = ipv6_set; + mp->dst_address.af = ipv6_set; mp->instance = htonl (instance); mp->encap_vrf_id = ntohl (encap_vrf_id); @@ -11748,7 +11745,6 @@ api_vxlan_add_del_tunnel (vat_main_t * vam) mp->mcast_sw_if_index = ntohl (mcast_sw_if_index); mp->vni = ntohl (vni); mp->is_add = is_add; - mp->is_ipv6 = ipv6_set; S (mp); W (ret); @@ -11759,8 +11755,10 @@ static void vl_api_vxlan_tunnel_details_t_handler (vl_api_vxlan_tunnel_details_t * mp) { vat_main_t *vam = &vat_main; - ip46_address_t src = to_ip46 (mp->is_ipv6, mp->dst_address); - ip46_address_t dst = to_ip46 (mp->is_ipv6, mp->src_address); + ip46_address_t src = + to_ip46 (mp->dst_address.af, (u8 *) & mp->dst_address.un); + ip46_address_t dst = + to_ip46 (mp->dst_address.af, (u8 *) & mp->src_address.un); print (vam->ofp, "%11d%11d%24U%24U%14d%18d%13d%19d", ntohl (mp->sw_if_index), @@ -11790,29 +11788,28 @@ static void vl_api_vxlan_tunnel_details_t_handler_json vat_json_object_add_uint (node, "instance", ntohl (mp->instance)); - if (mp->is_ipv6) + if (mp->src_address.af) { struct in6_addr ip6; - clib_memcpy (&ip6, mp->src_address, sizeof (ip6)); + clib_memcpy (&ip6, mp->src_address.un.ip6, sizeof (ip6)); vat_json_object_add_ip6 (node, "src_address", ip6); - clib_memcpy (&ip6, mp->dst_address, sizeof (ip6)); + clib_memcpy (&ip6, mp->dst_address.un.ip6, sizeof (ip6)); vat_json_object_add_ip6 (node, "dst_address", ip6); } else { struct in_addr ip4; - clib_memcpy (&ip4, mp->src_address, sizeof (ip4)); + clib_memcpy (&ip4, mp->src_address.un.ip4, sizeof (ip4)); vat_json_object_add_ip4 (node, "src_address", ip4); - clib_memcpy (&ip4, mp->dst_address, sizeof (ip4)); + clib_memcpy (&ip4, mp->dst_address.un.ip4, sizeof (ip4)); vat_json_object_add_ip4 (node, "dst_address", ip4); } vat_json_object_add_uint (node, "encap_vrf_id", ntohl (mp->encap_vrf_id)); vat_json_object_add_uint (node, "decap_next_index", ntohl (mp->decap_next_index)); vat_json_object_add_uint (node, "vni", ntohl (mp->vni)); - vat_json_object_add_uint (node, "is_ipv6", mp->is_ipv6 ? 1 : 0); vat_json_object_add_uint (node, "mcast_sw_if_index", ntohl (mp->mcast_sw_if_index)); } @@ -17552,7 +17549,7 @@ format_fib_api_path_nh_proto (u8 * s, va_list * args) static u8 * format_vl_api_ip_address_union (u8 * s, va_list * args) { - vl_api_address_family_t af = va_arg (*args, vl_api_address_family_t); + vl_api_address_family_t af = va_arg (*args, int); const vl_api_address_union_t *u = va_arg (*args, vl_api_address_union_t *); switch (af)