X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fip%2Fip.api;h=b37530ef955fed962d51022a69ea38d88ae8d32d;hb=9db6ada779794779158163f6293b479ae7f6ad5e;hp=2dae43856026208779a960c899820e08f36f61dd;hpb=097fa66b986f06281f603767d321ab13ab6c88c3;p=vpp.git diff --git a/src/vnet/ip/ip.api b/src/vnet/ip/ip.api index 2dae4385602..b37530ef955 100644 --- a/src/vnet/ip/ip.api +++ b/src/vnet/ip/ip.api @@ -29,13 +29,13 @@ import "vnet/mfib/mfib_types.api"; /** \brief An IP table @param is_ipv6 - V4 or V6 table @param table_id - table ID associated with the route - This table ID will apply to both the unicats + This table ID will apply to both the unicats and mlticast FIBs @param name - A client provided name/tag for the table. If this is not set by the client, then VPP will generate something meaningfull. */ -typeonly define ip_table +typedef ip_table { u32 table_id; u8 is_ip6; @@ -65,6 +65,59 @@ define ip_table_dump u32 context; }; +/** \brief IP table replace being + + The use-case is that, for some unspecified reason, the control plane + has a very different set of entries it wants in the table than VPP + currently has. The CP would thus like to 'replace' VPP's current table + only by specifying what the new set of entries shall be, i.e. it is not + going to delete anything that already eixts. + the CP delcartes the start of this procedure with this begin_replace + API Call, and when it has populated all the entries it wants, it calls + the below end_replace API. From this point on it is of coursce free + to add and delete entries as usual. + The underlying mechanism by which VPP implements this replace is + purposefully left unspecified. + + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param table - The table to resync +*/ +autoreply define ip_table_replace_begin +{ + u32 client_index; + u32 context; + vl_api_ip_table_t table; +}; + +/** \brief IP table replace end + + see replace start/ + + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param table - The table that has converged +*/ +autoreply define ip_table_replace_end +{ + u32 client_index; + u32 context; + vl_api_ip_table_t table; +}; + +/** \brief IP table flush + Flush a table of all routes + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param table - The table to flush +*/ +autoreply define ip_table_flush +{ + u32 client_index; + u32 context; + vl_api_ip_table_t table; +}; + /** \brief IP FIB table response @param context - sender context @param table - description of the table @@ -82,7 +135,7 @@ manual_endian manual_print define ip_table_details @param n_paths The number of paths the route has @param paths The paths of the route */ -typeonly define ip_route +typedef ip_route { u32 table_id; u32 stats_index; @@ -496,7 +549,7 @@ define ip_address_details { u32 context; u32 sw_if_index; - vl_api_prefix_t prefix; + vl_api_address_with_prefix_t prefix; }; define ip_address_dump @@ -582,7 +635,7 @@ autoreply define ip_punt_police @param nh - the next-hop to redirect the traffic to. @param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4 */ -typeonly define punt_redirect +typedef punt_redirect { u32 rx_sw_if_index; u32 tx_sw_if_index; @@ -841,7 +894,7 @@ autoreply define want_ip6_ra_events @param valid_time - RA prefix info valid time @param preferred_time - RA prefix info preferred time */ -typeonly define ip6_ra_prefix_info +typedef ip6_ra_prefix_info { vl_api_prefix_t prefix; u8 flags; @@ -887,7 +940,7 @@ service { @param low - Low address of the Proxy ARP range @param hi - High address of the Proxy ARP range */ -typeonly define proxy_arp +typedef proxy_arp { u32 table_id; vl_api_ip4_address_t low; @@ -957,20 +1010,6 @@ define proxy_arp_intfc_details u32 sw_if_index; }; -/** \brief Reset fib table request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param vrf_id - vrf/table id of the fib table to reset - @param is_ipv6 - an ipv6 fib to reset if non-zero, else ipv4 -*/ -autoreply define reset_fib -{ - u32 client_index; - u32 context; - u32 vrf_id; - u8 is_ipv6; -}; - /** \brief Set max allowed ARP or ip6 neighbor entries request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -1016,6 +1055,12 @@ autoreply define ioam_disable u16 id; }; +enum ip_reass_type +{ + IP_REASS_TYPE_FULL = 0, + IP_REASS_TYPE_SHALLOW_VIRTUAL = 0x1, +}; + autoreply define ip_reassembly_set { u32 client_index; @@ -1025,6 +1070,7 @@ autoreply define ip_reassembly_set u32 max_reassembly_length; u32 expire_walk_interval_ms; u8 is_ip6; + vl_api_ip_reass_type_t type; }; define ip_reassembly_get @@ -1032,6 +1078,7 @@ define ip_reassembly_get u32 client_index; u32 context; u8 is_ip6; + vl_api_ip_reass_type_t type; }; define ip_reassembly_get_reply @@ -1059,6 +1106,7 @@ autoreply define ip_reassembly_enable_disable u32 sw_if_index; u8 enable_ip4; u8 enable_ip6; + vl_api_ip_reass_type_t type; }; /*