X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fip%2Fip.api;h=c8d4c39718251918217a8c463648c6b3e6d4189c;hb=976b259be;hp=42371c492acd8f78a889f1b45449874e11b42410;hpb=f5d38e05ac6c9c56311eb4d75ca2644d592ae535;p=vpp.git diff --git a/src/vnet/ip/ip.api b/src/vnet/ip/ip.api index 42371c492ac..c8d4c397182 100644 --- a/src/vnet/ip/ip.api +++ b/src/vnet/ip/ip.api @@ -20,7 +20,7 @@ called through a shared memory interface. */ -option version = "3.0.1"; +option version = "3.1.0"; import "vnet/interface_types.api"; import "vnet/fib/fib_types.api"; @@ -124,7 +124,7 @@ autoreply define ip_table_flush @param context - sender context @param table - description of the table */ -manual_endian manual_print define ip_table_details +define ip_table_details { u32 context; vl_api_ip_table_t table; @@ -135,6 +135,8 @@ manual_endian manual_print define ip_table_details @param stats_index The index of the route in the stats segment @param prefix the prefix for the route @param n_paths The number of paths the route has + @param src The entity adding the route. either 0 for default + or a value returned from fib_source_sdd. @param paths The paths of the route */ typedef ip_route @@ -145,6 +147,15 @@ typedef ip_route u8 n_paths; vl_api_fib_path_t paths[n_paths]; }; +typedef ip_route_v2 +{ + u32 table_id; + u32 stats_index; + vl_api_prefix_t prefix; + u8 n_paths; + u8 src; + vl_api_fib_path_t paths[n_paths]; +}; /** \brief Add / del route request @param client_index - opaque cookie to identify the sender @@ -163,15 +174,33 @@ define ip_route_add_del bool is_multipath; vl_api_ip_route_t route; }; +define ip_route_add_del_v2 +{ + option in_progress; + u32 client_index; + u32 context; + bool is_add [default=true]; + bool is_multipath; + vl_api_ip_route_v2_t route; +}; define ip_route_add_del_reply { u32 context; i32 retval; u32 stats_index; }; +define ip_route_add_del_v2_reply +{ + option in_progress; + u32 context; + i32 retval; + u32 stats_index; +}; /** \brief Dump IP routes from a table @param client_index - opaque cookie to identify the sender + @param src The entity adding the route. either 0 for default + or a value returned from fib_source_sdd. @param table - The table from which to dump routes (ony ID an AF are needed) */ define ip_route_dump @@ -180,15 +209,30 @@ define ip_route_dump u32 context; vl_api_ip_table_t table; }; +define ip_route_v2_dump +{ + option in_progress; + u32 client_index; + u32 context; + /* vl_api_fib_source_t src; */ + u8 src; + vl_api_ip_table_t table; +}; /** \brief IP FIB table entry response @param route The route entry in the table */ -manual_endian manual_print define ip_route_details +define ip_route_details { u32 context; vl_api_ip_route_t route; }; +define ip_route_v2_details +{ + option in_progress; + u32 context; + vl_api_ip_route_v2_t route; +}; /** \brief Lookup IP route from a table @param client_index - opaque cookie to identify the sender @@ -204,6 +248,15 @@ define ip_route_lookup u8 exact; vl_api_prefix_t prefix; }; +define ip_route_lookup_v2 +{ + option in_progress; + u32 client_index; + u32 context; + u32 table_id; + u8 exact; + vl_api_prefix_t prefix; +}; /** \brief IP FIB table lookup response @param retval - return code of the lookup @@ -215,6 +268,13 @@ define ip_route_lookup_reply i32 retval; vl_api_ip_route_t route; }; +define ip_route_lookup_v2_reply +{ + option in_progress; + u32 context; + i32 retval; + vl_api_ip_route_v2_t route; +}; /** \brief Set the ip flow hash config for a fib request @param client_index - opaque cookie to identify the sender @@ -231,6 +291,7 @@ define ip_route_lookup_reply */ autoreply define set_ip_flow_hash { + option deprecated; u32 client_index; u32 context; u32 vrf_id; @@ -244,6 +305,52 @@ autoreply define set_ip_flow_hash bool symmetric; }; +/** + @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 +*/ +enumflag ip_flow_hash_config +{ + IP_API_FLOW_HASH_SRC_IP = 0x01, + IP_API_FLOW_HASH_DST_IP = 0x02, + IP_API_FLOW_HASH_SRC_PORT = 0x04, + IP_API_FLOW_HASH_DST_PORT = 0x08, + IP_API_FLOW_HASH_PROTO = 0x10, + IP_API_FLOW_HASH_REVERSE = 0x20, + IP_API_FLOW_HASH_SYMETRIC = 0x40, + IP_API_FLOW_HASH_FLOW_LABEL = 0x80, +}; + +autoreply define set_ip_flow_hash_v2 +{ + u32 client_index; + u32 context; + u32 table_id; + vl_api_address_family_t af; + vl_api_ip_flow_hash_config_t flow_hash_config; +}; + +/** \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 + @param router_id - The ID of the router. Mixed into the hash. + Used to prevent polarisation across a network, + since each router is assumed to have a different ID +*/ +autoreply define set_ip_flow_hash_router_id +{ + u32 client_index; + u32 context; + u32 router_id; +}; + /** \brief IPv6 interface enable / disable request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -304,7 +411,7 @@ define ip_mtable_details typedef ip_mroute { u32 table_id; - u32 entry_flags; + vl_api_mfib_entry_flags_t entry_flags; u32 rpf_id; vl_api_mprefix_t prefix; u8 n_paths; @@ -339,7 +446,7 @@ define ip_mroute_dump /** \brief IP Multicast Route Details @param route - Details of the route */ -manual_endian manual_print define ip_mroute_details +define ip_mroute_details { u32 context; vl_api_ip_mroute_t route; @@ -549,6 +656,29 @@ autoreply define sw_interface_ip6_set_link_local_address vl_api_ip6_address_t ip; }; +/** \brief IPv6 get link local address on interface request + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param sw_if_index - interface to set link local on +*/ +define sw_interface_ip6_get_link_local_address +{ + u32 client_index; + u32 context; + vl_api_interface_index_t sw_if_index; +}; + +/** \brief IPv6 link local address detail + @param context - sender context, to match reply w/ request + @param ip - the link local address +*/ +define sw_interface_ip6_get_link_local_address_reply +{ + u32 context; + i32 retval; + vl_api_ip6_address_t ip; +}; + /** \brief IOAM enable : Enable in-band OAM @param id - profile id @param seqno - To enable Seqno Processing @@ -634,6 +764,63 @@ autoreply define ip_reassembly_enable_disable vl_api_ip_reass_type_t type; }; +/** + @brief Set a Path MTU value. i.e. a MTU value for a given neighbour. + The neighbour can be described as attached (w/ interface and next-hop) + or remote (w/ table_id and next-hop); + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param table_id - table-ID for next-hop + @param nh - Next hop + @param path_mtu - value to set, 0 is disable. +*/ +typedef ip_path_mtu +{ + u32 client_index; + u32 context; + u32 table_id; + vl_api_address_t nh; + u16 path_mtu; +}; +autoreply define ip_path_mtu_update +{ + u32 client_index; + u32 context; + vl_api_ip_path_mtu_t pmtu; +}; +define ip_path_mtu_get +{ + u32 client_index; + u32 context; + u32 cursor; +}; +define ip_path_mtu_get_reply +{ + u32 context; + i32 retval; + u32 cursor; +}; +define ip_path_mtu_details +{ + u32 context; + vl_api_ip_path_mtu_t pmtu; +}; +service { + rpc ip_path_mtu_get returns ip_path_mtu_get_reply + stream ip_path_mtu_details; +}; + +autoreply define ip_path_mtu_replace_begin +{ + u32 client_index; + u32 context; +}; +autoreply define ip_path_mtu_replace_end +{ + u32 client_index; + u32 context; +}; + /* * Local Variables: * eval: (c-set-style "gnu")