X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fmpls%2Fmpls.api;h=572ac915a4a55700aeb2c610fd5f66d1b4c78903;hb=9d42087149a6870965896be74dc6260f72d2cac9;hp=a1e1270a8535b6fc74b18853807be174b8e8855f;hpb=0f26c5a0138ac86d7ebd197c31a09d8d624c35fe;p=vpp.git diff --git a/src/vnet/mpls/mpls.api b/src/vnet/mpls/mpls.api index a1e1270a853..572ac915a4a 100644 --- a/src/vnet/mpls/mpls.api +++ b/src/vnet/mpls/mpls.api @@ -13,6 +13,8 @@ * limitations under the License. */ +option version = "1.0.1"; + /** \brief Bind/Unbind an MPLS local label to an IP prefix. i.e. create a per-prefix label entry. @param client_index - opaque cookie to identify the sender @@ -20,36 +22,24 @@ @param mb_mpls_table_id - The MPLS table-id the MPLS entry will be added in @param mb_label - The MPLS label value to bind @param mb_ip_table_id - The IP table-id of the IP prefix to bind to. - @param mb_create_table_if_needed - Create either/both tables if required. @param mb_is_bind - Bind or unbind @param mb_is_ip4 - The prefix to bind to is IPv4 @param mb_address_length - Length of IP prefix @param mb_address[16] - IP prefix/ */ -define mpls_ip_bind_unbind +autoreply define mpls_ip_bind_unbind { u32 client_index; u32 context; u32 mb_mpls_table_id; u32 mb_label; u32 mb_ip_table_id; - u8 mb_create_table_if_needed; u8 mb_is_bind; u8 mb_is_ip4; u8 mb_address_length; u8 mb_address[16]; }; -/** \brief Reply for MPLS IP bind/unbind request - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ -define mpls_ip_bind_unbind_reply -{ - u32 context; - i32 retval; -}; - /** \brief MPLS tunnel Add / del route @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -58,6 +48,7 @@ define mpls_ip_bind_unbind_reply @param mt_is_multicast - Is the tunnel's underlying LSP multicast @param mt_next_hop_proto_is_ip4 - The next-hop is IPV4 @param mt_next_hop_weight - The weight, for UCMP + @param mt_next_hop_preference - The preference @param mt_next_hop[16] - the nextop address @param mt_next_hop_sw_if_index - the next-hop SW interface @param mt_next_hop_table_id - the next-hop table-id (if appropriate) @@ -74,6 +65,7 @@ define mpls_tunnel_add_del u8 mt_is_multicast; u8 mt_next_hop_proto_is_ip4; u8 mt_next_hop_weight; + u8 mt_next_hop_preference; u8 mt_next_hop[16]; u8 mt_next_hop_n_out_labels; u32 mt_next_hop_sw_if_index; @@ -120,7 +112,9 @@ define mpls_tunnel_dump typeonly manual_print manual_endian define fib_path2 { u32 sw_if_index; - u32 weight; + u32 table_id; + u8 weight; + u8 preference; u8 is_local; u8 is_drop; u8 is_unreach; @@ -143,6 +137,24 @@ manual_endian manual_print define mpls_tunnel_details vl_api_fib_path2_t mt_paths[mt_count]; }; +/** \brief MPLS Route Add / del route + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param mt_table_id - The MPLS table-id the route is added in + @param mt_is_add - Is this a route add or delete + @param mt_name - A client provided name/tag for the table. If this + is not set by the client, then VPP will generate + something meaningfull. +*/ +autoreply define mpls_table_add_del +{ + u32 client_index; + u32 context; + u32 mt_table_id; + u8 mt_is_add; + u8 mt_name[64]; +}; + /** \brief MPLS Route Add / del route @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -151,7 +163,6 @@ manual_endian manual_print define mpls_tunnel_details @param mr_table_id - The MPLS table-id the route is added in @param mr_classify_table_index - If this is a classify route, this is the classify table index - @param mr_create_table_if_needed - If the MPLS or IP tables do not exist, create them @param mr_is_add - Is this a route add or delete @param mr_is_classify - Is this route result a classify @@ -163,7 +174,7 @@ manual_endian manual_print define mpls_tunnel_details @param mr_is_interface_rx - Interface Receive path @param mr_is_interface_rx - RPF-ID Receive path. The next-hop interface is used as the RPF-ID - @param mr_next_hop_proto_is_ip4 - The next-hop is IPV4 + @param mr_next_hop_proto - The next-hop protocol, of type dpo_proto_t @param mr_next_hop_weight - The weight, for UCMP @param mr_next_hop[16] - the nextop address @param mr_next_hop_sw_if_index - the next-hop SW interface @@ -172,7 +183,7 @@ manual_endian manual_print define mpls_tunnel_details @param mr_next_hop_out_label_stack - the next-hop output label stack, outer most first @param next_hop_via_label - The next-hop is a resolved via a local label */ -define mpls_route_add_del +autoreply define mpls_route_add_del { u32 client_index; u32 context; @@ -180,7 +191,6 @@ define mpls_route_add_del u8 mr_eos; u32 mr_table_id; u32 mr_classify_table_index; - u8 mr_create_table_if_needed; u8 mr_is_add; u8 mr_is_classify; u8 mr_is_multicast; @@ -189,8 +199,9 @@ define mpls_route_add_del u8 mr_is_resolve_attached; u8 mr_is_interface_rx; u8 mr_is_rpf_id; - u8 mr_next_hop_proto_is_ip4; + u8 mr_next_hop_proto; u8 mr_next_hop_weight; + u8 mr_next_hop_preference; u8 mr_next_hop[16]; u8 mr_next_hop_n_out_labels; u32 mr_next_hop_sw_if_index; @@ -199,16 +210,6 @@ define mpls_route_add_del u32 mr_next_hop_out_label_stack[mr_next_hop_n_out_labels]; }; -/** \brief Reply for MPLS route add / del request - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ -define mpls_route_add_del_reply -{ - u32 context; - i32 retval; -}; - /** \brief Dump MPLS fib table @param client_index - opaque cookie to identify the sender */ @@ -229,15 +230,30 @@ manual_endian manual_print define mpls_fib_details { u32 context; u32 table_id; + u8 table_name[64]; u8 eos_bit; u32 label; u32 count; vl_api_fib_path2_t path[count]; }; +/** \brief Enable or Disable MPLS on and interface + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param sw_if_index - index of the interface + @param enable - if non-zero enable, else disable +*/ +autoreply define sw_interface_set_mpls_enable +{ + u32 client_index; + u32 context; + u32 sw_if_index; + u8 enable; +}; + /* * Local Variables: * eval: (c-set-style "gnu") * End: */ - \ No newline at end of file +