X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fip%2Fip.api;h=f49fc16bc1d567a9de16bddc13a2175a4db4f820;hb=8f5fef2c78b95de1a636ce27111722b71702212a;hp=5624bcfaf6a71e299d2334021328a1fac405917a;hpb=c0e9441e79b63ea09d5b282910d104960d45026d;p=vpp.git diff --git a/src/vnet/ip/ip.api b/src/vnet/ip/ip.api index 5624bcfaf6a..f49fc16bc1d 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.0.3"; 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; @@ -184,12 +184,38 @@ define ip_route_dump /** \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; }; +/** \brief Lookup IP route from a table + @param client_index - opaque cookie to identify the sender + @param table_id - The IP table to look the route up in + @param exact - 0 for normal route lookup, 1 for exact match only + @param prefix - The prefix (or host) for route lookup. +*/ +define ip_route_lookup +{ + 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 + @param route - The route entry in the table if found +*/ +define ip_route_lookup_reply +{ + u32 context; + i32 retval; + vl_api_ip_route_t route; +}; + /** \brief Set the ip flow hash config for a fib request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -205,6 +231,7 @@ manual_endian manual_print define ip_route_details */ autoreply define set_ip_flow_hash { + option deprecated; u32 client_index; u32 context; u32 vrf_id; @@ -218,6 +245,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 @@ -278,7 +351,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; @@ -313,7 +386,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; @@ -523,6 +596,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 @@ -608,6 +704,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")