X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=blobdiff_plain;f=src%2Fvat%2Fapi_format.c;h=009a0a47301e9bfb520d3eddfca60c93bb98abf5;hp=ea24aef2652652f59b9fe85c838c084ca7e09631;hb=7c0eb56f4;hpb=b49bc1ae6404f0dff373578786a9fd95d961e5cd diff --git a/src/vat/api_format.c b/src/vat/api_format.c index ea24aef2652..009a0a47301 100644 --- a/src/vat/api_format.c +++ b/src/vat/api_format.c @@ -4555,18 +4555,18 @@ vl_api_policer_details_t_handler (vl_api_policer_details_t * mp) vat_main_t *vam = &vat_main; u8 *conform_dscp_str, *exceed_dscp_str, *violate_dscp_str; - if (mp->conform_action_type == SSE2_QOS_ACTION_MARK_AND_TRANSMIT) - conform_dscp_str = format (0, "%U", format_dscp, mp->conform_dscp); + if (mp->conform_action.type == SSE2_QOS_ACTION_API_MARK_AND_TRANSMIT) + conform_dscp_str = format (0, "%U", format_dscp, mp->conform_action.dscp); else conform_dscp_str = format (0, ""); - if (mp->exceed_action_type == SSE2_QOS_ACTION_MARK_AND_TRANSMIT) - exceed_dscp_str = format (0, "%U", format_dscp, mp->exceed_dscp); + if (mp->exceed_action.type == SSE2_QOS_ACTION_API_MARK_AND_TRANSMIT) + exceed_dscp_str = format (0, "%U", format_dscp, mp->exceed_action.dscp); else exceed_dscp_str = format (0, ""); - if (mp->violate_action_type == SSE2_QOS_ACTION_MARK_AND_TRANSMIT) - violate_dscp_str = format (0, "%U", format_dscp, mp->violate_dscp); + if (mp->violate_action.type == SSE2_QOS_ACTION_API_MARK_AND_TRANSMIT) + violate_dscp_str = format (0, "%U", format_dscp, mp->violate_action.dscp); else violate_dscp_str = format (0, ""); @@ -4593,11 +4593,11 @@ vl_api_policer_details_t_handler (vl_api_policer_details_t * mp) ntohl (mp->extended_limit), ntohl (mp->extended_bucket), clib_net_to_host_u64 (mp->last_update_time), - format_policer_action_type, mp->conform_action_type, + format_policer_action_type, mp->conform_action.type, conform_dscp_str, - format_policer_action_type, mp->exceed_action_type, + format_policer_action_type, mp->exceed_action.type, exceed_dscp_str, - format_policer_action_type, mp->violate_action_type, + format_policer_action_type, mp->violate_action.type, violate_dscp_str); vec_free (conform_dscp_str); @@ -4618,11 +4618,11 @@ static void vl_api_policer_details_t_handler_json format (0, "%U", format_policer_round_type, mp->round_type); type_str = format (0, "%U", format_policer_type, mp->type); conform_action_str = format (0, "%U", format_policer_action_type, - mp->conform_action_type); + mp->conform_action.type); exceed_action_str = format (0, "%U", format_policer_action_type, - mp->exceed_action_type); + mp->exceed_action.type); violate_action_str = format (0, "%U", format_policer_action_type, - mp->violate_action_type); + mp->violate_action.type); if (VAT_JSON_ARRAY != vam->json_tree.type) { @@ -4658,24 +4658,24 @@ static void vl_api_policer_details_t_handler_json ntohl (mp->last_update_time)); vat_json_object_add_string_copy (node, "conform_action", conform_action_str); - if (mp->conform_action_type == SSE2_QOS_ACTION_MARK_AND_TRANSMIT) + if (mp->conform_action.type == SSE2_QOS_ACTION_API_MARK_AND_TRANSMIT) { - u8 *dscp_str = format (0, "%U", format_dscp, mp->conform_dscp); + u8 *dscp_str = format (0, "%U", format_dscp, mp->conform_action.dscp); vat_json_object_add_string_copy (node, "conform_dscp", dscp_str); vec_free (dscp_str); } vat_json_object_add_string_copy (node, "exceed_action", exceed_action_str); - if (mp->exceed_action_type == SSE2_QOS_ACTION_MARK_AND_TRANSMIT) + if (mp->exceed_action.type == SSE2_QOS_ACTION_API_MARK_AND_TRANSMIT) { - u8 *dscp_str = format (0, "%U", format_dscp, mp->exceed_dscp); + u8 *dscp_str = format (0, "%U", format_dscp, mp->exceed_action.dscp); vat_json_object_add_string_copy (node, "exceed_dscp", dscp_str); vec_free (dscp_str); } vat_json_object_add_string_copy (node, "violate_action", violate_action_str); - if (mp->violate_action_type == SSE2_QOS_ACTION_MARK_AND_TRANSMIT) + if (mp->violate_action.type == SSE2_QOS_ACTION_API_MARK_AND_TRANSMIT) { - u8 *dscp_str = format (0, "%U", format_dscp, mp->violate_dscp); + u8 *dscp_str = format (0, "%U", format_dscp, mp->violate_action.dscp); vat_json_object_add_string_copy (node, "violate_dscp", dscp_str); vec_free (dscp_str); } @@ -11733,14 +11733,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 +11750,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 +11760,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 +11793,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)); } @@ -17382,12 +17384,12 @@ api_policer_add_del (vat_main_t * vam) mp->rate_type = rate_type; mp->round_type = round_type; mp->type = type; - mp->conform_action_type = conform_action.action_type; - mp->conform_dscp = conform_action.dscp; - mp->exceed_action_type = exceed_action.action_type; - mp->exceed_dscp = exceed_action.dscp; - mp->violate_action_type = violate_action.action_type; - mp->violate_dscp = violate_action.dscp; + mp->conform_action.type = conform_action.action_type; + mp->conform_action.dscp = conform_action.dscp; + mp->exceed_action.type = exceed_action.action_type; + mp->exceed_action.dscp = exceed_action.dscp; + mp->violate_action.type = violate_action.action_type; + mp->violate_action.dscp = violate_action.dscp; mp->color_aware = color_aware; S (mp); @@ -19699,8 +19701,7 @@ api_app_namespace_add_del (vat_main_t * vam) } M (APP_NAMESPACE_ADD_DEL, mp); - clib_memcpy (mp->namespace_id, ns_id, vec_len (ns_id)); - mp->namespace_id_len = vec_len (ns_id); + vl_api_vec_to_api_string (ns_id, &mp->namespace_id); mp->secret = clib_host_to_net_u64 (secret); mp->sw_if_index = clib_host_to_net_u32 (sw_if_index); mp->ip4_fib_id = clib_host_to_net_u32 (ip4_fib_id); @@ -19774,15 +19775,20 @@ static void vl_api_session_rules_details_t_handler (vl_api_session_rules_details_t * mp) { vat_main_t *vam = &vat_main; + fib_prefix_t lcl, rmt; - if (mp->is_ip4) + ip_prefix_decode (&mp->lcl, &lcl); + ip_prefix_decode (&mp->rmt, &rmt); + + if (lcl.fp_proto == FIB_PROTOCOL_IP4) { print (vam->ofp, "appns %u tp %u scope %d %U/%d %d %U/%d %d action: %d tag: %s", clib_net_to_host_u32 (mp->appns_index), mp->transport_proto, - mp->scope, format_ip4_address, &mp->lcl_ip, mp->lcl_plen, + mp->scope, format_ip4_address, &lcl.fp_addr.ip4, lcl.fp_len, clib_net_to_host_u16 (mp->lcl_port), format_ip4_address, - &mp->rmt_ip, mp->rmt_plen, clib_net_to_host_u16 (mp->rmt_port), + &rmt.fp_addr.ip4, rmt.fp_len, + clib_net_to_host_u16 (mp->rmt_port), clib_net_to_host_u32 (mp->action_index), mp->tag); } else @@ -19790,9 +19796,10 @@ vl_api_session_rules_details_t_handler (vl_api_session_rules_details_t * mp) print (vam->ofp, "appns %u tp %u scope %d %U/%d %d %U/%d %d action: %d tag: %s", clib_net_to_host_u32 (mp->appns_index), mp->transport_proto, - mp->scope, format_ip6_address, &mp->lcl_ip, mp->lcl_plen, + mp->scope, format_ip6_address, &lcl.fp_addr.ip6, lcl.fp_len, clib_net_to_host_u16 (mp->lcl_port), format_ip6_address, - &mp->rmt_ip, mp->rmt_plen, clib_net_to_host_u16 (mp->rmt_port), + &rmt.fp_addr.ip6, rmt.fp_len, + clib_net_to_host_u16 (mp->rmt_port), clib_net_to_host_u32 (mp->action_index), mp->tag); } } @@ -19806,6 +19813,11 @@ vl_api_session_rules_details_t_handler_json (vl_api_session_rules_details_t * struct in6_addr ip6; struct in_addr ip4; + fib_prefix_t lcl, rmt; + + ip_prefix_decode (&mp->lcl, &lcl); + ip_prefix_decode (&mp->rmt, &rmt); + if (VAT_JSON_ARRAY != vam->json_tree.type) { ASSERT (VAT_JSON_NONE == vam->json_tree.type); @@ -19814,7 +19826,6 @@ vl_api_session_rules_details_t_handler_json (vl_api_session_rules_details_t * node = vat_json_array_add (&vam->json_tree); vat_json_init_object (node); - vat_json_object_add_uint (node, "is_ip4", mp->is_ip4 ? 1 : 0); vat_json_object_add_uint (node, "appns_index", clib_net_to_host_u32 (mp->appns_index)); vat_json_object_add_uint (node, "transport_proto", mp->transport_proto); @@ -19825,21 +19836,21 @@ vl_api_session_rules_details_t_handler_json (vl_api_session_rules_details_t * clib_net_to_host_u16 (mp->lcl_port)); vat_json_object_add_uint (node, "rmt_port", clib_net_to_host_u16 (mp->rmt_port)); - vat_json_object_add_uint (node, "lcl_plen", mp->lcl_plen); - vat_json_object_add_uint (node, "rmt_plen", mp->rmt_plen); + vat_json_object_add_uint (node, "lcl_plen", lcl.fp_len); + vat_json_object_add_uint (node, "rmt_plen", rmt.fp_len); vat_json_object_add_string_copy (node, "tag", mp->tag); - if (mp->is_ip4) + if (lcl.fp_proto == FIB_PROTOCOL_IP4) { - clib_memcpy (&ip4, mp->lcl_ip, sizeof (ip4)); + clib_memcpy (&ip4, &lcl.fp_addr.ip4, sizeof (ip4)); vat_json_object_add_ip4 (node, "lcl_ip", ip4); - clib_memcpy (&ip4, mp->rmt_ip, sizeof (ip4)); + clib_memcpy (&ip4, &rmt.fp_addr.ip4, sizeof (ip4)); vat_json_object_add_ip4 (node, "rmt_ip", ip4); } else { - clib_memcpy (&ip6, mp->lcl_ip, sizeof (ip6)); + clib_memcpy (&ip6, &lcl.fp_addr.ip6, sizeof (ip6)); vat_json_object_add_ip6 (node, "lcl_ip", ip6); - clib_memcpy (&ip6, mp->rmt_ip, sizeof (ip6)); + clib_memcpy (&ip6, &rmt.fp_addr.ip6, sizeof (ip6)); vat_json_object_add_ip6 (node, "rmt_ip", ip6); } } @@ -19856,6 +19867,7 @@ api_session_rule_add_del (vat_main_t * vam) u8 is_ip4 = 1, conn_set = 0; u8 is_add = 1, *tag = 0; int ret; + fib_prefix_t lcl, rmt; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -19910,26 +19922,34 @@ api_session_rule_add_del (vat_main_t * vam) M (SESSION_RULE_ADD_DEL, mp); - mp->is_ip4 = is_ip4; - mp->transport_proto = proto; - mp->lcl_port = clib_host_to_net_u16 ((u16) lcl_port); - mp->rmt_port = clib_host_to_net_u16 ((u16) rmt_port); - mp->lcl_plen = lcl_plen; - mp->rmt_plen = rmt_plen; - mp->action_index = clib_host_to_net_u32 (action); - mp->appns_index = clib_host_to_net_u32 (appns_index); - mp->scope = scope; - mp->is_add = is_add; + clib_memset (&lcl, 0, sizeof (lcl)); + clib_memset (&rmt, 0, sizeof (rmt)); if (is_ip4) { - clib_memcpy (mp->lcl_ip, &lcl_ip4, sizeof (lcl_ip4)); - clib_memcpy (mp->rmt_ip, &rmt_ip4, sizeof (rmt_ip4)); + ip_set (&lcl.fp_addr, &lcl_ip4, 1); + ip_set (&rmt.fp_addr, &rmt_ip4, 1); + lcl.fp_len = lcl_plen; + rmt.fp_len = rmt_plen; } else { - clib_memcpy (mp->lcl_ip, &lcl_ip6, sizeof (lcl_ip6)); - clib_memcpy (mp->rmt_ip, &rmt_ip6, sizeof (rmt_ip6)); + ip_set (&lcl.fp_addr, &lcl_ip6, 0); + ip_set (&rmt.fp_addr, &rmt_ip6, 0); + lcl.fp_len = lcl_plen; + rmt.fp_len = rmt_plen; } + + + ip_prefix_encode (&lcl, &mp->lcl); + ip_prefix_encode (&rmt, &mp->rmt); + mp->lcl_port = clib_host_to_net_u16 ((u16) lcl_port); + mp->rmt_port = clib_host_to_net_u16 ((u16) rmt_port); + mp->transport_proto = + proto ? TRANSPORT_PROTO_API_UDP : TRANSPORT_PROTO_API_TCP; + mp->action_index = clib_host_to_net_u32 (action); + mp->appns_index = clib_host_to_net_u32 (appns_index); + mp->scope = scope; + mp->is_add = is_add; if (tag) { clib_memcpy (mp->tag, tag, vec_len (tag));