X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=vpp%2Fvpp-api%2Fvpe.api;h=6924aef9587337e9c307779f32a3ffae51d3df8f;hb=95300d19152877dca8dfbd574dc6da50620125e8;hp=1143c436d81454fa69fd86272597a7fe0f5484bb;hpb=c068179a6c8ce57428f4f8dda19fb2de6027fe8f;p=vpp.git diff --git a/vpp/vpp-api/vpe.api b/vpp/vpp-api/vpe.api index 1143c436d81..6924aef9587 100644 --- a/vpp/vpp-api/vpe.api +++ b/vpp/vpp-api/vpe.api @@ -215,6 +215,30 @@ define sw_interface_set_table_reply i32 retval; }; +/** \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 +*/ +define sw_interface_set_mpls_enable +{ + u32 client_index; + u32 context; + u32 sw_if_index; + u8 enable; +}; + +/** \brief Reply for MPLS state on an interface + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define sw_interface_set_mpls_enable_reply +{ + u32 context; + i32 retval; +}; + /** \brief Initialize a new tap interface with the given paramters @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -381,8 +405,10 @@ define ip_add_del_route u8 is_ipv6; u8 is_local; u8 is_classify; - /* Is last/not-last message in group of multiple add/del messages. */ u8 is_multipath; + u8 is_resolve_host; + u8 is_resolve_attached; + /* Is last/not-last message in group of multiple add/del messages. */ u8 not_last; u8 next_hop_weight; u8 dst_address_length; @@ -1148,30 +1174,6 @@ define control_ping_reply u32 vpe_pid; }; -/** \brief Control ping from client to api server request, no print json output - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request -*/ -define noprint_control_ping -{ - u32 client_index; - u32 context; -}; - -/** \brief Control ping from the client to the server response - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param retval - return code for the request - @param vpe_pid - the pid of the vpe, returned by the server -*/ -define noprint_control_ping_reply -{ - u32 context; - i32 retval; - u32 client_index; - u32 vpe_pid; -}; - /** \brief Process a vpe parser cli string request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -1183,6 +1185,13 @@ define cli_request u32 context; u64 cmd_in_shmem; }; +define cli_inband +{ + u32 client_index; + u32 context; + u32 length; + u8 cmd[length]; +}; /** \brief vpe parser cli string response @param context - sender context, to match reply w/ request @@ -1195,6 +1204,13 @@ define cli_reply i32 retval; u64 reply_in_shmem; }; +define cli_inband_reply +{ + u32 context; + i32 retval; + u32 length; + u8 reply[length]; +}; /** \brief Set max allowed ARP or ip6 neighbor entries request @param client_index - opaque cookie to identify the sender @@ -1731,6 +1747,7 @@ define classify_set_interface_l2_tables u32 ip4_table_index; u32 ip6_table_index; u32 other_table_index; + u8 is_input; }; /** \brief Set/unset l2 classification tables for an interface response @@ -2022,6 +2039,7 @@ define gre_add_del_tunnel u32 context; u8 is_add; u8 is_ipv6; + u8 teb; u8 src_address[16]; u8 dst_address[16]; u32 outer_fib_id; @@ -2046,6 +2064,7 @@ define gre_tunnel_details u32 context; u32 sw_if_index; u8 is_ipv6; + u8 teb; u8 src_address[16]; u8 dst_address[16]; u32 outer_fib_id; @@ -2347,7 +2366,14 @@ define vxlan_gpe_tunnel_details @param is_add - add address if non-zero, else delete @param locator_set_name - locator name @param locator_num - number of locators - @param locators - Lisp locator data + @param locators - LISP locator records + Structure of one locator record is as follows: + + define locator_t { + u32 sw_if_index; + u8 priority; + u8 weight; + } */ define lisp_add_del_locator_set { @@ -2356,7 +2382,7 @@ define lisp_add_del_locator_set u8 is_add; u8 locator_set_name[64]; u32 locator_num; - u8 locators[locator_num]; + u8 locators[0]; }; /** \brief Reply for locator_set add/del @@ -2602,6 +2628,53 @@ define lisp_pitr_set_locator_set_reply i32 retval; }; +/** \brief set LISP map-request mode. Based on configuration VPP will send + src/dest or just normal destination map requests. + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param mode - new map-request mode. Supported values are: + 0 - destination only + 1 - source/destaination +*/ +define lisp_map_request_mode +{ + u32 client_index; + u32 context; + u8 mode; +}; + +/** \brief Reply for lisp_map_request_mode + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define lisp_map_request_mode_reply +{ + u32 context; + i32 retval; +}; + +/** \brief Request for LISP map-request mode + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request +*/ +define show_lisp_map_request_mode +{ + u32 client_index; + u32 context; +}; + +/** \brief Reply for show_lisp_map_request_mode + @param context - returned sender context, to match reply w/ request + @param retval - return code + @param mode - map-request mode +*/ +define show_lisp_map_request_mode_reply +{ + u32 context; + i32 retval; + u8 mode; +}; + /** \brief add or delete remote static mapping @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -2617,7 +2690,15 @@ define lisp_pitr_set_locator_set_reply @param deid - dst EID @param seid - src EID, valid only if is_src_dst is enabled @param rloc_num - number of remote locators - @param rlocs - remote locator data + @param rlocs - remote locator records + Structure of remote locator: + + define rloc_t { + u8 is_ip4; + u8 priority; + u8 weight; + u8 addr[16]; + } */ define lisp_add_del_remote_mapping { @@ -2634,7 +2715,7 @@ define lisp_add_del_remote_mapping u8 seid[16]; u8 seid_len; u32 rloc_num; - u8 rlocs[rloc_num]; + u8 rlocs[0]; }; /** \brief Reply for lisp_add_del_remote_mapping @@ -2656,8 +2737,8 @@ define lisp_add_del_remote_mapping_reply 0 : ipv4 1 : ipv6 2 : mac - @param deid - destination EID - @param seid - source EID + @param reid - remote EID + @param leid - local EID */ define lisp_add_del_adjacency { @@ -2666,10 +2747,10 @@ define lisp_add_del_adjacency u8 is_add; u32 vni; u8 eid_type; - u8 deid[16]; - u8 seid[16]; - u8 deid_len; - u8 seid_len; + u8 reid[16]; + u8 leid[16]; + u8 reid_len; + u8 leid_len; }; /** \brief Reply for lisp_add_del_adjacency @@ -2738,18 +2819,16 @@ define lisp_eid_table_add_del_map_reply @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param locator_set_index - index of locator_set - @param filter - filter type; - Support value: - 0: all locator - 1: local locator - 2: remote locator + @param ls_name - locator set name + @param is_index_set - flag indicating whether ls_name or ls_index is set */ define lisp_locator_dump { u32 client_index; u32 context; - u32 locator_set_index; - u8 filter; + u32 ls_index; + u8 ls_name[64]; + u8 is_index_set; }; /** \brief LISP locator_set status @@ -2771,27 +2850,25 @@ define lisp_locator_details }; /** \brief LISP locator_set status - @param locator_set_name - name of the locator_set - @param local - if is set, then locator_set is local - @param locator_count - number of locator this stats block includes - @param locator - locator data + @param context - sender context, to match reply w/ request + @param ls_index - locator set index + @param ls_name - name of the locator set */ define lisp_locator_set_details { u32 context; - u8 local; - u32 locator_set_index; - u8 locator_set_name[64]; + u32 ls_index; + u8 ls_name[64]; }; /** \brief Request for locator_set summary status @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request - @param filter - filter type; - Support value: - 0: all locator_set - 1: local locator_set - 2: remote locator_set + @param filter - filter type + Supported values: + 0: all locator sets + 1: local locator sets + 2: remote locator sets */ define lisp_locator_set_dump { @@ -2803,14 +2880,19 @@ define lisp_locator_set_dump /** \brief Dump lisp eid-table @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request - @param locator_set_index - index of locator_set + @param locator_set_index - index of locator_set, if ~0 then the mapping + is negative + @param action - negative map request action @param is_local - local if non-zero, else remote @param eid_type: 0 : ipv4 1 : ipv6 2 : mac + @param is_src_dst - EID is type of source/destination @param eid - EID can be ip4, ip6 or mac - @param prefix_len - prefix len + @param eid_prefix_len - prefix length + @param seid - source EID can be ip4, ip6 or mac + @param seid_prefix_len - source prefix length @param vni - virtual network instance @param ttl - time to live @param authoritative - authoritative @@ -2820,11 +2902,15 @@ define lisp_eid_table_details { u32 context; u32 locator_set_index; + u8 action; u8 is_local; u8 eid_type; + u8 is_src_dst; u32 vni; u8 eid[16]; u8 eid_prefix_len; + u8 seid[16]; + u8 seid_prefix_len; u32 ttl; u8 authoritative; }; @@ -3068,6 +3154,7 @@ define want_ip4_arp_events_reply @param pid - client pid registered to receive notification @param sw_if_index - interface which received ARP packet @param new_mac - the new mac address + @param mac_ip - 0: resolution event, 1: mac/ip binding in bd */ define ip4_arp_event { @@ -3077,8 +3164,55 @@ define ip4_arp_event u32 pid; u32 sw_if_index; u8 new_mac[6]; + u8 mac_ip; }; +/** \brief Register for ip6 nd resolution events + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param enable_disable - 1 => register for events, 0 => cancel registration + @param pid - sender's pid + @param address - the exact ip6 address of interest +*/ +define want_ip6_nd_events +{ + u32 client_index; + u32 context; + u8 enable_disable; + u32 pid; + u8 address[16]; +}; + +/** \brief Reply for ip6 nd resolution events registration + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define want_ip6_nd_events_reply +{ + u32 context; + i32 retval; +}; + +/** \brief Tell client about an ip6 nd resolution or mac/ip event + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param pid - client pid registered to receive notification + @param sw_if_index - interface which received ARP packet + @param address - the exact ip6 address of interest + @param new_mac - the new mac address + @param mac_ip - 0: resolution event, 1: mac/ip binding in bd +*/ +define ip6_nd_event +{ + u32 client_index; + u32 context; + u32 pid; + u32 sw_if_index; + u8 address[16]; + u8 new_mac[6]; + u8 mac_ip; +}; + /** \brief L2 bridge domain add or delete request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -3896,87 +4030,50 @@ define sw_interface_clear_stats_reply i32 retval; }; -/** \brief IOAM Trace : Set TRACE profile +/** \brief IOAM enable : Enable in-band OAM @param id - profile id - @param trace_type - Trace type - @param trace_num_elt - Number of nodes in trace path @param trace_ppc - Trace PPC (none/encap/decap) - @param trace_tsp - Trace timestamp precision (0-sec,1-ms,2-us,3-ns) - @param trace_app_data - Trace application data, can be any 4 bytes @param pow_enable - Proof of Work enabled or not flag - @param node_id - Id of this node + @param trace_enable - iOAM Trace enabled or not flag */ -define trace_profile_add +define ioam_enable { u32 client_index; u32 context; u16 id; - u8 trace_type; - u8 trace_num_elt; u8 trace_ppc; - u8 trace_tsp; - u32 trace_app_data; u8 pow_enable; + u8 trace_enable; u32 node_id; }; -/** \brief Trace profile add / del response +/** \brief iOAM Trace profile add / del response @param context - sender context, to match reply w/ request @param retval - return value for request */ -define trace_profile_add_reply -{ - u32 context; - i32 retval; -}; - -/** \brief IOAM Trace enable trace profile for a flow - @param id - id of the trace profile to be applied - @param dest_ipv6 - Destination IPv6 address - @param prefix_length - prefix mask - @param vrf_id - VRF ID - @param trace_op - Trace operation (add/mod/del) - @param enable - apply/remove the trace profile for the flow -*/ -define trace_profile_apply -{ - u32 client_index; - u32 context; - u16 id; - u8 dest_ipv6[16]; - u32 prefix_length; - u32 vrf_id; - u8 trace_op; - u8 enable; -}; - -/** \brief Trace profile apply response - @param context - sender context, to match reply w/ request - @param retval - return value for request -*/ -define trace_profile_apply_reply +define ioam_enable_reply { u32 context; i32 retval; }; -/** \brief Delete Trace Profile +/** \brief iOAM disable @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param index - MAP Domain index */ -define trace_profile_del +define ioam_disable { u32 client_index; u32 context; u16 id; }; -/** \brief Trace profile add / del response +/** \brief iOAM disable response @param context - sender context, to match reply w/ request @param retval - return value for request */ -define trace_profile_del_reply +define ioam_disable_reply { u32 context; i32 retval; @@ -4541,17 +4638,18 @@ define classify_session_details u8 match[match_length]; }; -/** \brief Enable and configure IPFIX exporter process request +/** \brief Configure IPFIX exporter process request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param collector_address - address of IPFIX collector - @param collector_port - port of IPFIX IPFIX collector + @param collector_port - port of IPFIX collector @param src_address - address of IPFIX exporter @param vrf_id - VRF / fib table ID @param path_mtu - Path MTU between exporter and collector @param template_interval - number of seconds after which to resend template + @param udp_checksum - UDP checksum calculation enable flag */ -define ipfix_enable +define set_ipfix_exporter { u32 client_index; u32 context; @@ -4561,45 +4659,136 @@ define ipfix_enable u32 vrf_id; u32 path_mtu; u32 template_interval; + u8 udp_checksum; }; -/** \brief Reply to IPFIX enable and configure request +/** \brief Reply to IPFIX exporter configure request @param context - sender context which was passed in the request */ -define ipfix_enable_reply +define set_ipfix_exporter_reply { u32 context; i32 retval; }; -/** \brief IPFIX dump request +/** \brief IPFIX exporter dump request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request */ -define ipfix_dump +define ipfix_exporter_dump { u32 client_index; u32 context; }; -/** \brief Reply to IPFIX dump request +/** \brief Reply to IPFIX exporter dump request @param context - sender context which was passed in the request @param collector_address - address of IPFIX collector - @param collector_port - port of IPFIX IPFIX collector + @param collector_port - port of IPFIX collector @param src_address - address of IPFIX exporter @param fib_index - fib table index @param path_mtu - Path MTU between exporter and collector @param template_interval - number of seconds after which to resend template + @param udp_checksum - UDP checksum calculation enable flag */ -define ipfix_details +define ipfix_exporter_details { u32 context; u8 collector_address[16]; u16 collector_port; u8 src_address[16]; - u32 fib_index; + u32 vrf_id; u32 path_mtu; u32 template_interval; + u8 udp_checksum; +}; + +/** \brief IPFIX classify stream configure request + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param domain_id - domain ID reported in IPFIX messages for classify stream + @param src_port - source port of UDP session for classify stream +*/ +define set_ipfix_classify_stream { + u32 client_index; + u32 context; + u32 domain_id; + u16 src_port; +}; + +/** \brief IPFIX classify stream configure response + @param context - sender context, to match reply w/ request + @param retval - return value for request +*/ +define set_ipfix_classify_stream_reply { + u32 context; + i32 retval; +}; + +/** \brief IPFIX classify stream dump request + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request +*/ +define ipfix_classify_stream_dump { + u32 client_index; + u32 context; +}; + +/** \brief Reply to IPFIX classify stream dump request + @param context - sender context, to match reply w/ request + @param domain_id - domain ID reported in IPFIX messages for classify stream + @param src_port - source port of UDP session for classify stream +*/ +define ipfix_classify_stream_details { + u32 context; + u32 domain_id; + u16 src_port; +}; + +/** \brief IPFIX add or delete classifier table request + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param table_id - classifier table ID + @param ip_version - version of IP used in the classifier table + @param transport_protocol - transport protocol used in the classifier table or 255 for unspecified +*/ +define ipfix_classify_table_add_del { + u32 client_index; + u32 context; + u32 table_id; + u8 ip_version; + u8 transport_protocol; + u8 is_add; +}; + +/** \brief IPFIX add classifier table response + @param context - sender context which was passed in the request +*/ +define ipfix_classify_table_add_del_reply { + u32 context; + i32 retval; +}; + +/** \brief IPFIX classify tables dump request + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request +*/ +define ipfix_classify_table_dump { + u32 client_index; + u32 context; +}; + +/** \brief Reply to IPFIX classify tables dump request + @param context - sender context, to match reply w/ request + @param table_id - classifier table ID + @param ip_version - version of IP used in the classifier table + @param transport_protocol - transport protocol used in the classifier table or 255 for unspecified +*/ +define ipfix_classify_table_details { + u32 context; + u32 table_id; + u8 ip_version; + u8 transport_protocol; }; /** \brief Query relative index via node names @@ -4828,3 +5017,140 @@ define ipsec_gre_tunnel_details { u8 src_address[4]; u8 dst_address[4]; }; + +/** \brief Delete sub interface request + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param sw_if_index - sw index of the interface that was created by create_subif +*/ +define delete_subif { + u32 client_index; + u32 context; + u32 sw_if_index; +}; + +/** \brief Delete sub interface response + @param context - sender context, to match reply w/ request + @param retval - return code for the request +*/ +define delete_subif_reply { + u32 context; + i32 retval; +}; + +/** \brief DPDK interface HQoS pipe profile set request + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param sw_if_index - the interface + @param subport - subport ID + @param pipe - pipe ID within its subport + @param profile - pipe profile ID +*/ +define sw_interface_set_dpdk_hqos_pipe { + u32 client_index; + u32 context; + u32 sw_if_index; + u32 subport; + u32 pipe; + u32 profile; +}; + +/** \brief DPDK interface HQoS pipe profile set reply + @param context - sender context, to match reply w/ request + @param retval - request return code +*/ +define sw_interface_set_dpdk_hqos_pipe_reply { + u32 context; + i32 retval; +}; + +/** \brief DPDK interface HQoS subport parameters set request + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param sw_if_index - the interface + @param subport - subport ID + @param tb_rate - subport token bucket rate (measured in bytes/second) + @param tb_size - subport token bucket size (measured in credits) + @param tc_rate - subport traffic class 0 .. 3 rates (measured in bytes/second) + @param tc_period - enforcement period for rates (measured in milliseconds) +*/ +define sw_interface_set_dpdk_hqos_subport { + u32 client_index; + u32 context; + u32 sw_if_index; + u32 subport; + u32 tb_rate; + u32 tb_size; + u32 tc_rate[4]; + u32 tc_period; +}; + +/** \brief DPDK interface HQoS subport parameters set reply + @param context - sender context, to match reply w/ request + @param retval - request return code +*/ +define sw_interface_set_dpdk_hqos_subport_reply { + u32 context; + i32 retval; +}; + +/** \brief DPDK interface HQoS tctbl entry set request + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param sw_if_index - the interface + @param entry - entry index ID + @param tc - traffic class (0 .. 3) + @param queue - traffic class queue (0 .. 3) +*/ +define sw_interface_set_dpdk_hqos_tctbl { + u32 client_index; + u32 context; + u32 sw_if_index; + u32 entry; + u32 tc; + u32 queue; +}; + +/** \brief DPDK interface HQoS tctbl entry set reply + @param context - sender context, to match reply w/ request + @param retval - request return code +*/ +define sw_interface_set_dpdk_hqos_tctbl_reply { + u32 context; + i32 retval; +}; + +/** \brief L2 interface pbb tag rewrite configure request + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param sw_if_index - interface the operation is applied to + @param vtr_op - Choose from l2_vtr_op_t enum values + @param inner_tag - needed for translate_qinq vtr op only + @param outer_tag - needed for translate_qinq vtr op only + @param b_dmac - B-tag remote mac address, needed for any push or translate_qinq vtr op + @param b_smac - B-tag local mac address, needed for any push or translate qinq vtr op + @param b_vlanid - B-tag vlanid, needed for any push or translate qinq vtr op + @param i_sid - I-tag service id, needed for any push or translate qinq vtr op +*/ +define l2_interface_pbb_tag_rewrite +{ + u32 client_index; + u32 context; + u32 sw_if_index; + u32 vtr_op; + u16 outer_tag; + u8 b_dmac[6]; + u8 b_smac[6]; + u16 b_vlanid; + u32 i_sid; +}; + +/** \brief L2 interface pbb tag rewrite response + @param context - sender context, to match reply w/ request + @param retval - return code for the request +*/ +define l2_interface_pbb_tag_rewrite_reply +{ + u32 context; + i32 retval; +};