X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fip%2Fip.api;h=967f56cf9174d12f4f55c035ff46cb3cacb2acda;hb=HEAD;hp=aa3035003866cd411d40548b1d7c4e399db67445;hpb=e22a7041626cf1ebee7534d84068d48e8671a6ab;p=vpp.git diff --git a/src/vnet/ip/ip.api b/src/vnet/ip/ip.api index aa303500386..fc7d7582dec 100644 --- a/src/vnet/ip/ip.api +++ b/src/vnet/ip/ip.api @@ -57,6 +57,23 @@ autoreply define ip_table_add_del vl_api_ip_table_t table; }; +/** \brief Add / del table request - version 2 + A table can be added multiple times, but need be deleted only once. + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param table - the FIB table to add or del + @param create_mfib - whether to create mfib or not + @param is_add - add or del +*/ +autoreply define ip_table_add_del_v2 +{ + u32 client_index; + u32 context; + vl_api_ip_table_t table; + bool create_mfib [default=true]; + bool is_add [default=true]; +}; + /** \brief Allocate an unused table A table can be added multiple times. If a large number of tables are in use (millions), this API might @@ -366,6 +383,41 @@ autoreply define set_ip_flow_hash_v2 vl_api_ip_flow_hash_config_t flow_hash_config; }; +/** + @brief flow hash settings for an IP table + @param src - include src in flow hash + @param dst - include dst in flow hash + @param sport - include sport in flow hash + @param dport - include dport in flow hash + @param proto - include proto in flow hash + @param reverse - include reverse in flow hash + @param symmetric - include symmetry in flow hash + @param flowlabel - include flowlabel in flow hash + @param gtpv1teid - include gtpv1teid in flow hash +*/ +enumflag ip_flow_hash_config_v2 +{ + IP_API_V2_FLOW_HASH_SRC_IP = 0x01, + IP_API_V2_FLOW_HASH_DST_IP = 0x02, + IP_API_V2_FLOW_HASH_SRC_PORT = 0x04, + IP_API_V2_FLOW_HASH_DST_PORT = 0x08, + IP_API_V2_FLOW_HASH_PROTO = 0x10, + IP_API_V2_FLOW_HASH_REVERSE = 0x20, + IP_API_V2_FLOW_HASH_SYMETRIC = 0x40, + IP_API_V2_FLOW_HASH_FLOW_LABEL = 0x80, + IP_API_V2_FLOW_HASH_GTPV1_TEID = 0x100, +}; + +autoreply define set_ip_flow_hash_v3 +{ + u32 client_index; + u32 context; + u32 table_id; + vl_api_address_family_t af; + vl_api_ip_flow_hash_config_v2_t flow_hash_config; + option status="in_progress"; +}; + /** \brief Set the ip flow hash router ID @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -587,6 +639,7 @@ typedef punt_redirect autoreply define ip_punt_redirect { option deprecated; + u32 client_index; u32 context; vl_api_punt_redirect_t punt; @@ -595,6 +648,8 @@ autoreply define ip_punt_redirect define ip_punt_redirect_dump { + option deprecated; + u32 client_index; u32 context; vl_api_interface_index_t sw_if_index; @@ -603,6 +658,8 @@ define ip_punt_redirect_dump define ip_punt_redirect_details { + option deprecated; + u32 context; vl_api_punt_redirect_t punt; }; @@ -1020,6 +1077,12 @@ counters ip4 { units "packets"; description "ip4 ttl <= 1"; }; + hdr_too_short { + severity error; + type counter64; + units "packets"; + description "ip4 IHL < 5"; + }; /* Errors signalled by ip4-rewrite. */ mtu_exceeded { @@ -1450,6 +1513,240 @@ counters ip6 { }; }; +counters icmp4 { + none { + severity info; + type counter64; + units "packets"; + description "valid packets"; + }; + unknown_type { + severity error; + type counter64; + units "packets"; + description "unknown type"; + }; + invalid_code_for_type { + severity error; + type counter64; + units "packets"; + description "invalid code for type"; + }; + invalid_hop_limit_for_type { + severity error; + type counter64; + units "packets"; + description "hop_limit != 255"; + }; + length_too_small_for_type { + severity error; + type counter64; + units "packets"; + description "payload length too small for type"; + }; + options_with_odd_length { + severity error; + type counter64; + units "packets"; + description "total option length not multiple of 8 bytes"; + }; + option_with_zero_length { + severity error; + type counter64; + units "packets"; + description "option has zero length"; + }; + echo_replies_sent { + severity info; + type counter64; + units "packets"; + description "echo replies sent"; + }; + dst_lookup_miss { + severity error; + type counter64; + units "packets"; + description "icmp6 dst address lookup misses"; + }; + dest_unreach_sent { + severity info; + type counter64; + units "packets"; + description "destination unreachable response sent"; + }; + ttl_expire_sent { + severity info; + type counter64; + units "packets"; + description "hop limit exceeded response sent"; + }; + param_problem_sent { + severity info; + type counter64; + units "packets"; + description "parameter problem response sent"; + }; + drop { + severity error; + type counter64; + units "packets"; + description "error message dropped"; + }; +}; + +counters icmp6 { + none { + severity info; + type counter64; + units "packets"; + description "valid packets"; + }; + unknown_type { + severity error; + type counter64; + units "packets"; + description "unknown type"; + }; + invalid_code_for_type { + severity error; + type counter64; + units "packets"; + description "invalid code for type"; + }; + invalid_hop_limit_for_type { + severity error; + type counter64; + units "packets"; + description "hop_limit != 255"; + }; + length_too_small_for_type { + severity error; + type counter64; + units "packets"; + description "payload length too small for type"; + }; + options_with_odd_length { + severity error; + type counter64; + units "packets"; + description "total option length not multiple of 8 bytes"; + }; + option_with_zero_length { + severity error; + type counter64; + units "packets"; + description "option has zero length"; + }; + echo_replies_sent { + severity info; + type counter64; + units "packets"; + description "echo replies sent"; + }; + neighbor_solicitation_source_not_on_link { + severity error; + type counter64; + units "packets"; + description "neighbor solicitations from source not on link"; + }; + neighbor_solicitation_source_unknown { + severity error; + type counter64; + units "packets"; + description "neighbor solicitations for unknown targets"; + }; + neighbor_advertisements_tx { + severity info; + type counter64; + units "packets"; + description "neighbor advertisements sent"; + }; + neighbor_advertisements_rx { + severity info; + type counter64; + units "packets"; + description "neighbor advertisements received"; + }; + router_solicitation_source_not_on_link { + severity error; + type counter64; + units "packets"; + description "router solicitations from source not on link"; + }; + router_solicitation_unsupported_intf { + severity error; + type counter64; + units "packets"; + description "neighbor discovery unsupported interface"; + }; + router_solicitation_radv_not_config { + severity error; + type counter64; + units "packets"; + description "neighbor discovery not configured"; + }; + router_advertisement_source_not_link_local { + severity error; + type counter64; + units "packets"; + description "router advertisement source not link local"; + }; + router_advertisements_tx { + severity info; + type counter64; + units "packets"; + description "router advertisements sent"; + }; + router_advertisements_rx { + severity info; + type counter64; + units "packets"; + description "router advertisements received"; + }; + dst_lookup_miss { + severity error; + type counter64; + units "packets"; + description "icmp6 dst address lookup misses"; + }; + dest_unreach_sent { + severity info; + type counter64; + units "packets"; + description "destination unreachable response sent"; + }; + packet_too_big_sent { + severity info; + type counter64; + units "packets"; + description "packet too big response sent"; + }; + ttl_expire_sent { + severity info; + type counter64; + units "packets"; + description "hop limit exceeded response sent"; + }; + param_problem_sent { + severity info; + type counter64; + units "packets"; + description "parameter problem response sent"; + }; + drop { + severity error; + type counter64; + units "packets"; + description "error message dropped"; + }; + alloc_failure { + severity error; + type counter64; + units "packets"; + description "buffer allocation failure"; + }; +}; + paths { "/err/ip-frag" "ip_frag"; "/err/mpls-frag" "ip_frag"; @@ -1481,6 +1778,10 @@ paths { "/err/ip6-sv-reassembly-output-feature" "ip6"; "/err/ip6-sv-reassembly-custom-next" "ip6"; "/err/ip6-sv-reassembly-expire-walk" "ip6"; + "/err/ip4-icmp-input" "icmp4"; + "/err/ip4-icmp-error" "icmp4"; + "/err/ip6-icmp-input" "icmp6"; + "/err/ip6-icmp-error" "icmp6"; }; /*