X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=vpp%2Fapi%2Fvpe.api;h=a1ea1b2fe0bee1040b888e7bdc6164cf22734fe9;hb=20c90f765dd0350892421e1dea544752108f4ce9;hp=29cd1badcbc3ec9c6852295799c06d2d17b7efcd;hpb=00bbf276be22fa0458366d4dd3f4daf4e55d13e7;p=vpp.git diff --git a/vpp/api/vpe.api b/vpp/api/vpe.api index 29cd1badcbc..a1ea1b2fe0b 100644 --- a/vpp/api/vpe.api +++ b/vpp/api/vpe.api @@ -67,6 +67,7 @@ define want_interface_events_reply { @param vtr_tag2 */ manual_java define sw_interface_details { + u32 context; u32 sw_if_index; /* index of sup interface (e.g. hw interface). @@ -642,7 +643,7 @@ typeonly manual_print manual_endian define ip4_fib_counter { manual_java manual_print manual_endian define vnet_ip4_fib_counters { u32 vrf_id; u32 count; - vl_api_ip4_fib_counter_t c[0]; + vl_api_ip4_fib_counter_t c[count]; }; typeonly manual_print manual_endian define ip6_fib_counter { @@ -655,7 +656,7 @@ typeonly manual_print manual_endian define ip6_fib_counter { manual_java manual_print manual_endian define vnet_ip6_fib_counters { u32 vrf_id; u32 count; - vl_api_ip6_fib_counter_t c[0]; + vl_api_ip6_fib_counter_t c[count]; }; /** \brief Request for a single block of summary stats @@ -819,85 +820,6 @@ define dhcp_proxy_set_vss_reply { i32 retval; }; -/* - * These messages bounce off the dataplane and are not otherwise - * interpreted; each has its own publish / subscribe API. - * If the dataplane receives one of these and doesn't have an - * active subscription for it, the message will be silently freed. - */ - -define from_netconf_server { - u32 client_index; - u32 context; - u8 data[0]; -}; - -define want_from_netconf_server { - u32 client_index; - u32 context; - u32 enable_disable; - u32 pid; -}; - -define want_from_netconf_server_reply { - u32 context; - i32 retval; -}; - -define to_netconf_server { - u32 client_index; - u32 context; - u8 data[0]; -}; - -define want_to_netconf_server { - u32 client_index; - u32 context; - u32 enable_disable; - u32 pid; -}; - -define want_to_netconf_server_reply { - u32 context; - i32 retval; -}; - -define from_netconf_client { - u32 client_index; - u32 context; - u8 data[0]; -}; - -define want_from_netconf_client { - u32 client_index; - u32 context; - u32 enable_disable; - u32 pid; -}; - -define want_from_netconf_client_reply { - u32 context; - i32 retval; -}; - -define to_netconf_client { - u32 client_index; - u32 context; - u8 data[0]; -}; - -define want_to_netconf_client { - u32 client_index; - u32 context; - u32 enable_disable; - u32 pid; -}; - -define want_to_netconf_client_reply { - u32 context; - i32 retval; -}; - /** \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 @@ -1223,6 +1145,7 @@ define l2_patch_add_del_reply { @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param is_add - add the tunnel if non-zero, else delete it + @param name[] - tunnel name (len. 64) @param src_address[] - @param dst_address[] - @param dst_mask_width - @@ -1232,11 +1155,13 @@ define l2_patch_add_del_reply { @param n_segments - @param n_tags - @param segs_and_tags[] - + @param policy_name[] - name of policy to associate this tunnel to (len. 64) */ define sr_tunnel_add_del { u32 client_index; u32 context; u8 is_add; + u8 name[64]; u8 src_address[16]; u8 dst_address[16]; u8 dst_mask_width; @@ -1246,6 +1171,7 @@ define sr_tunnel_add_del { u8 n_segments; u8 n_tags; u8 segs_and_tags[0]; + u8 policy_name[64]; }; /** \brief IPv6 segment routing tunnel add / del response @@ -1257,6 +1183,54 @@ define sr_tunnel_add_del_reply { i32 retval; }; +/** \brief IPv6 segment routing policy add / del request + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param is_add - add the tunnel if non-zero, else delete it + @param name[] - policy name (len. 64) + @param tunnel_names[] - +*/ +define sr_policy_add_del { + u32 client_index; + u32 context; + u8 is_add; + u8 name[64]; + u8 tunnel_names[0]; +}; + +/** \brief IPv6 segment routing policy add / del response + @param context - sender context, to match reply w/ request + @param retval - return value for request +*/ +define sr_policy_add_del_reply { + u32 context; + i32 retval; +}; + +/** \brief IPv6 segment routing multicast map to policy add / del request + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param is_add - add the tunnel if non-zero, else delete it + @param multicast_address[] - IP6 multicast address + @param policy_name[] = policy name (len.64) +*/ +define sr_multicast_map_add_del { + u32 client_index; + u32 context; + u8 is_add; + u8 multicast_address[16]; + u8 policy_name[64]; +}; + +/** \brief IPv6 segment routing multicast map to policy add / del response + @param context - sender context, to match reply w/ request + @param retval - return value for request +*/ +define sr_multicast_map_add_del_reply { + u32 context; + i32 retval; +}; + /** \brief Interface set vpath request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -1762,6 +1736,7 @@ define l2tpv3_set_tunnel_cookies_reply { }; manual_java define sw_if_l2tpv3_tunnel_details { + u32 context; u32 sw_if_index; u8 interface_name[64]; u8 client_address [16]; @@ -1846,8 +1821,9 @@ define vxlan_add_del_tunnel { u32 client_index; u32 context; u8 is_add; - u32 src_address; - u32 dst_address; + u8 is_ipv6; + u8 src_address[16]; + u8 dst_address[16]; u32 encap_vrf_id; u32 decap_next_index; u32 vni; @@ -1868,11 +1844,41 @@ manual_java define vxlan_tunnel_dump { manual_java define vxlan_tunnel_details { u32 context; u32 sw_if_index; - u32 src_address; - u32 dst_address; + u8 src_address[16]; + u8 dst_address[16]; u32 encap_vrf_id; u32 decap_next_index; u32 vni; + u8 is_ipv6; +}; + +define gre_add_del_tunnel { + u32 client_index; + u32 context; + u8 is_add; + u32 src_address; + u32 dst_address; + u32 outer_table_id; +}; + +define gre_add_del_tunnel_reply { + u32 context; + i32 retval; + u32 sw_if_index; +}; + +manual_java define gre_tunnel_dump { + u32 client_index; + u32 context; + u32 sw_if_index; +}; + +manual_java define gre_tunnel_details { + u32 context; + u32 sw_if_index; + u32 src_address; + u32 dst_address; + u32 outer_table_id; }; /** \brief L2 interface vlan tag rewrite configure request @@ -2024,35 +2030,6 @@ manual_java define show_version_reply { u8 build_directory[256]; }; -define nsh_gre_add_del_tunnel { - u32 client_index; - u32 context; - u32 src; - u32 dst; - u32 encap_vrf_id; - u32 decap_vrf_id; - u32 decap_next_index; - u8 tlv_len_in_words; - u8 is_add; - u8 ver_o_c; - u8 length; - u8 md_type; - u8 next_protocol; - /* in network byte order */ - u32 spi_si; - u32 c1; - u32 c2; - u32 c3; - u32 c4; - u32 tlvs[0]; -}; - -define nsh_gre_add_del_tunnel_reply { - u32 context; - i32 retval; - u32 sw_if_index; -}; - /** \brief Vhost-user interface details structure (fix this) @param sw_if_index - index of the interface @param interface_name - name of interface @@ -2063,6 +2040,7 @@ define nsh_gre_add_del_tunnel_reply { @param num_regions - number of used memory regions */ manual_java define sw_interface_vhost_user_details { + u32 context; u32 sw_if_index; u8 interface_name[64]; u32 virtio_net_hdr_sz; @@ -2113,6 +2091,7 @@ define ip_dump { @param bvi_mac - the mac address is a bridge virtual interface */ manual_java define l2_fib_table_entry { + u32 context; u32 bd_id; u64 mac; u32 sw_if_index; @@ -2131,160 +2110,602 @@ manual_java define l2_fib_table_dump { u32 bd_id; }; -define nsh_vxlan_gpe_add_del_tunnel { +define vxlan_gpe_add_del_tunnel { u32 client_index; u32 context; - u32 src; - u32 dst; + u8 is_ipv6; + u8 local[16]; + u8 remote[16]; u32 encap_vrf_id; u32 decap_vrf_id; - u32 decap_next_index; + u8 protocol; u32 vni; - u8 tlv_len_in_words; u8 is_add; - u8 ver_o_c; - u8 length; - u8 md_type; - u8 next_protocol; - /* in network byte order */ - u32 spi_si; - u32 c1; - u32 c2; - u32 c3; - u32 c4; - u32 tlvs[0]; }; -define nsh_vxlan_gpe_add_del_tunnel_reply { +define vxlan_gpe_add_del_tunnel_reply { u32 context; i32 retval; u32 sw_if_index; }; -define lisp_gpe_add_del_tunnel { +manual_java define vxlan_gpe_tunnel_dump { u32 client_index; u32 context; - u32 src; - u32 dst; + u32 sw_if_index; +}; + +manual_java define vxlan_gpe_tunnel_details { + u32 context; + u32 sw_if_index; + u8 local[16]; + u8 remote[16]; + u32 vni; + u8 protocol; u32 encap_vrf_id; u32 decap_vrf_id; - u32 decap_next_index; - u8 is_add; - u8 flags; - u8 ver_res; - u8 res; - u8 next_protocol; - /* in network byte order */ - u32 iid; + u8 is_ipv6; +}; + +/** \brief add or delete locator_set + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param is_add - add address if non-zero, else delete + @param locator_set_name - locator name +*/ +define lisp_add_del_locator_set { + u32 client_index; + u32 context; + u8 is_add; + u8 locator_set_name[64]; }; -define lisp_gpe_add_del_tunnel_reply { +/** \brief Reply for locator_set add/del + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define lisp_add_del_locator_set_reply { u32 context; i32 retval; - u32 sw_if_index; }; -/* Gross kludge, DGMS */ -define interface_name_renumber { +/** \brief add or delete locator for locator_set + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param is_add - add address if non-zero, else delete + @param locator_set_name - name of locator_set to add/del locator + @param sw_if_index - index of the interface + @param priority - priority of the lisp locator + @param weight - weight of the lisp locator +*/ +define lisp_add_del_locator { u32 client_index; u32 context; + u8 is_add; + u8 locator_set_name[64]; u32 sw_if_index; - u32 new_show_dev_instance; + u8 priority; + u8 weight; }; -define interface_name_renumber_reply { +/** \brief Reply for locator add/del + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define lisp_add_del_locator_reply { u32 context; i32 retval; }; -/** \brief Register for ip4 arp resolution events +/** \brief add or delete lisp eid-table @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 ip4 address of interest + @param is_add - add address if non-zero, else delete + @param is_ipv6 - if non-zero the address is ipv6, else ipv4 + @param ip_address - array of address bytes + @param prefix_len - prefix len + @param locator_set_name - name of locator_set to add/del eid-table + @param vni - vitual network instance */ -define want_ip4_arp_events { +define lisp_add_del_local_eid { u32 client_index; u32 context; - u8 enable_disable; - u32 pid; - u32 address; + u8 is_add; + u8 is_ipv6; + u8 ip_address[16]; + u8 prefix_len; + u8 locator_set_name[64]; + u32 vni; }; -/** \brief Reply for interface events registration +/** \brief Reply for local_eid add/del @param context - returned sender context, to match reply w/ request @param retval - return code */ -define want_ip4_arp_events_reply { +define lisp_add_del_local_eid_reply { u32 context; i32 retval; }; -/** \brief Tell client about an ip4 arp resolution event +/** \brief add or delete lisp gpe maptunel @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request - @param address - the exact ip4 address of interest - @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 is_add - add address if non-zero, else delete + @param eid_is_ipv6 - if non-zero the address is ipv6, else ipv4 + @param eid_ip_address - array of address bytes + @param eid_prefix_len - prefix len + @param address_is_ipv6 - if non-zero the address is ipv6, else ipv4 + @param source_ip_address - array of address bytes + @param destination_ip_address - array of address bytes */ -define ip4_arp_event { +define lisp_gpe_add_del_fwd_entry { u32 client_index; u32 context; - u32 address; - u32 pid; - u32 sw_if_index; - u8 new_mac[6]; + u8 is_add; + u8 eid_is_ipv6; + u8 eid_ip_address[16]; + u8 eid_prefix_len; + u8 address_is_ipv6; + u8 source_ip_address[16]; + u8 destination_ip_address[16]; }; - -/** \brief L2 bridge domain add or delete request + +/** \brief Reply for gpe_fwd_entry add/del + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define lisp_gpe_add_del_fwd_entry_reply { + u32 context; + i32 retval; +}; + +/** \brief add or delete map-resolver @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request - @param bd_id - the bridge domain to create - @param flood - enable/disable bcast/mcast flooding in the bd - @param uu_flood - enable/disable uknown unicast flood in the bd - @param forward - enable/disable forwarding on all interfaces in the bd - @param learn - enable/disable learning on all interfaces in the bd - @param arp_term - enable/disable arp termination in the bd - @param is_add - add or delete flag + @param is_add - add address if non-zero, else delete + @param is_ipv6 - if non-zero the address is ipv6, else ipv4 + @param ip_address - array of address bytes */ -define bridge_domain_add_del { +define lisp_add_del_map_resolver { u32 client_index; u32 context; - u32 bd_id; - u8 flood; - u8 uu_flood; - u8 forward; - u8 learn; - u8 arp_term; - u8 is_add; + u8 is_add; + u8 is_ipv6; + u8 ip_address[16]; }; -/** \brief L2 bridge domain add or delete response - @param context - sender context, to match reply w/ request - @param retval - return code for the set bridge flags request +/** \brief Reply for map_resolver add/del + @param context - returned sender context, to match reply w/ request + @param retval - return code */ -define bridge_domain_add_del_reply { +define lisp_add_del_map_resolver_reply { u32 context; - u32 retval; + i32 retval; }; -/** \brief L2 bridge domain request operational state details +/** \brief enable or disable lisp-gpe protocol @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request - @param bd_id - the bridge domain id desired or ~0 to request all bds + @param is_en - enable protocol if non-zero, else disable */ -manual_java define bridge_domain_dump { +define lisp_gpe_enable_disable { u32 client_index; u32 context; - u32 bd_id; + u8 is_en; }; -/** \brief L2 bridge domain operational state response - @param bd_id - the bridge domain id - @param flood - bcast/mcast flooding state on all interfaces in the bd - @param uu_flood - uknown unicast flooding state on all interfaces in the bd +/** \brief Reply for gpe enable/disable + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define lisp_gpe_enable_disable_reply { + u32 context; + i32 retval; +}; + +/** \brief enable or disable LISP feature + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param is_en - enable protocol if non-zero, else disable +*/ +define lisp_enable_disable { + u32 client_index; + u32 context; + u8 is_en; +}; + +/** \brief Reply for gpe enable/disable + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define lisp_enable_disable_reply { + u32 context; + i32 retval; +}; + +/** \brief add or delete gpe_iface + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param is_add - add address if non-zero, else delete +*/ +define lisp_gpe_add_del_iface { + u32 client_index; + u32 context; + u8 is_add; + u32 table_id; + u32 vni; +}; + +/** \brief Reply for gpe_iface add/del + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define lisp_gpe_add_del_iface_reply { + u32 context; + i32 retval; +}; + +/** \brief configure or disable LISP PITR node + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param ls_name - locator set name + @param is_add - add locator set if non-zero, else disable pitr +*/ +define lisp_pitr_set_locator_set { + u32 client_index; + u32 context; + u8 is_add; + u8 ls_name[64]; +}; + +/** \brief Reply for lisp_pitr_set_locator_set + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define lisp_pitr_set_locator_set_reply { + u32 context; + i32 retval; +}; + +/** \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 + @param is_add - add address if non-zero, else delete + @param del_all - if set, delete all remote mappings + @param vni - virtual network instance + @param action - negative map-reply action + @param eid_is_ip4 - ipv4/6 of source and destination EIDs + @param deid - destination EID + @param seid - source EID + @param rloc_num - number of remote locators + @param rlocs - remote locator data +*/ +define lisp_add_del_remote_mapping { + u32 client_index; + u32 context; + u8 is_add; + u8 del_all; + u32 vni; + u8 action; + u8 eid_is_ip4; + u8 deid[16]; + u8 seid[16]; + u8 deid_len; + u8 seid_len; + u32 rloc_num; + u8 rlocs[0]; +}; + +/** \brief Reply for lisp_add_del_remote_mapping + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ + +define lisp_add_del_remote_mapping_reply { + u32 context; + i32 retval; +}; + +/** \brief add or delete map request itr rlocs + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param is_add - add address if non-zero, else delete + @param locator_set_name - locator set name +*/ +define lisp_add_del_map_request_itr_rlocs { + u32 client_index; + u32 context; + u8 is_add; + u8 locator_set_name[64]; +}; + +/** \brief Reply for lisp_add_del_map_request_itr_rlocs + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ + +define lisp_add_del_map_request_itr_rlocs_reply { + u32 context; + i32 retval; +}; + +/** \brief map/unmap vni to vrf + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param is_add - add or delete mapping + @param vni - virtual network id + @param vrf - vrf +*/ +define lisp_eid_table_add_del_map { + u32 client_index; + u32 context; + u8 is_add; + u32 vni; + u32 vrf; +}; + +/** \brief Reply for lisp_eid_table_add_del_map + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define lisp_eid_table_add_del_map_reply { + u32 context; + i32 retval; +}; + +/** \brief LISP locator_set status + @param locator_set_name - name of the locator_set + @param sw_if_index - sw_if_index of the locator + @param priority - locator priority + @param weight - locator weight + */ +manual_java define lisp_locator_set_details { + u32 context; + u8 local; + u8 locator_set_name[64]; + u32 sw_if_index; + u8 is_ipv6; + u8 ip_address[16]; + u8 prefix_len; + u8 priority; + u8 weight; +}; + +/** \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 + */ +define lisp_locator_set_dump { + u32 client_index; + u32 context; +}; + +/** \brief LISP local eid table status + @param locator_set_name - name of the locator_set + @param eid_is_ipv6 - if non-zero the address is ipv6, else ipv4 + @param eid_ip_address - array of address bytes + @param eid_prefix_len - prefix len + */ +manual_java define lisp_local_eid_table_details { + u32 context; + u8 locator_set_name[64]; + u8 eid_is_ipv6; + u32 vni; + u8 eid_ip_address[16]; + u8 eid_prefix_len; +}; + +/** \brief Request for local eid table summary status + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + */ +define lisp_local_eid_table_dump { + u32 client_index; + u32 context; +}; + +/** \brief Shows relationship between vni and vrf + @param vrf - VRF index + @param vni - vitual network instance + */ +manual_java define lisp_eid_table_map_details { + u32 context; + u32 vni; + u32 vrf; +}; + +/** \brief Request for lisp_eid_table_map_details + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + */ +define lisp_eid_table_map_dump { + u32 client_index; + u32 context; +}; + +manual_java define lisp_gpe_tunnel_details { + u32 context; + u32 tunnels; + u8 is_ipv6; + u8 source_ip[16]; + u8 destination_ip[16]; + u32 encap_fib_id; + u32 decap_fib_id; + u32 dcap_next; + u8 lisp_ver; + u8 next_protocol; + u8 flags; + u8 ver_res; + u8 res; + u32 iid; +}; + +/** \brief Request for gpe tunnel summary status + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + */ +define lisp_gpe_tunnel_dump { + u32 client_index; + u32 context; +}; + +/** \brief LISP map resolver status + @param locator_set_name - name of the locator_set + @param is_ipv6 - if non-zero the address is ipv6, else ipv4 + @param ip_address - array of address bytes + */ +manual_java define lisp_map_resolver_details { + u32 context; + u8 is_ipv6; + u8 ip_address[16]; +}; + +/** \brief Request for map resolver summary status + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + */ +define lisp_map_resolver_dump { + u32 client_index; + u32 context; +}; + +/** \brief Status of lisp-gpe protocol, enable or disable + @param context - sender context, to match reply w/ request + @param is_en - enable protocol if non-zero, else disable +*/ +manual_java define lisp_enable_disable_status_details { + u32 context; + u8 feature_status; + u8 gpe_status; +}; + +/** \brief Request for lisp-gpe protocol status + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request +*/ +define lisp_enable_disable_status_dump { + u32 client_index; + u32 context; +}; + +/** \brief Get LISP map request itr rlocs status + @param context - sender context, to match reply w/ request + @param locator_set_name - name of the locator_set + */ +define lisp_get_map_request_itr_rlocs { + u32 client_index; + u32 context; +}; + +/** \brief Request for map request itr rlocs summary status + */ +define lisp_get_map_request_itr_rlocs_reply { + u32 context; + i32 retval; + u8 locator_set_name[64]; +}; + +/* Gross kludge, DGMS */ +define interface_name_renumber { + u32 client_index; + u32 context; + u32 sw_if_index; + u32 new_show_dev_instance; +}; + +define interface_name_renumber_reply { + u32 context; + i32 retval; +}; + +/** \brief Register for ip4 arp 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 ip4 address of interest +*/ +define want_ip4_arp_events { + u32 client_index; + u32 context; + u8 enable_disable; + u32 pid; + u32 address; +}; + +/** \brief Reply for interface events registration + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define want_ip4_arp_events_reply { + u32 context; + i32 retval; +}; + +/** \brief Tell client about an ip4 arp resolution event + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param address - the exact ip4 address of interest + @param pid - client pid registered to receive notification + @param sw_if_index - interface which received ARP packet + @param new_mac - the new mac address +*/ +define ip4_arp_event { + u32 client_index; + u32 context; + u32 address; + u32 pid; + u32 sw_if_index; + u8 new_mac[6]; +}; + +/** \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 + @param bd_id - the bridge domain to create + @param flood - enable/disable bcast/mcast flooding in the bd + @param uu_flood - enable/disable uknown unicast flood in the bd + @param forward - enable/disable forwarding on all interfaces in the bd + @param learn - enable/disable learning on all interfaces in the bd + @param arp_term - enable/disable arp termination in the bd + @param is_add - add or delete flag +*/ +define bridge_domain_add_del { + u32 client_index; + u32 context; + u32 bd_id; + u8 flood; + u8 uu_flood; + u8 forward; + u8 learn; + u8 arp_term; + u8 is_add; +}; + +/** \brief L2 bridge domain add or delete response + @param context - sender context, to match reply w/ request + @param retval - return code for the set bridge flags request +*/ +define bridge_domain_add_del_reply { + u32 context; + u32 retval; +}; + +/** \brief L2 bridge domain request operational state details + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param bd_id - the bridge domain id desired or ~0 to request all bds +*/ +manual_java define bridge_domain_dump { + u32 client_index; + u32 context; + u32 bd_id; +}; + +/** \brief L2 bridge domain operational state response + @param bd_id - the bridge domain id + @param flood - bcast/mcast flooding state on all interfaces in the bd + @param uu_flood - uknown unicast flooding state on all interfaces in the bd @param forward - forwarding state on all interfaces in the bd @param learn - learning state on all interfaces in the bd @param arp_term - arp termination state on all interfaces in the bd @@ -2580,16 +3001,156 @@ define ipsec_sa_set_key { u8 crypto_key_length; u8 crypto_key[128]; - u8 integrity_key_length; - u8 integrity_key[128]; + u8 integrity_key_length; + u8 integrity_key[128]; +}; + +/** \brief Reply for IPsec: Update Security Association keys + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ + +define ipsec_sa_set_key_reply { + u32 context; + i32 retval; +}; + +/** \brief IKEv2: Add/delete profile + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + + @param name - IKEv2 profile name + @param is_add - Add IKEv2 profile if non-zero, else delete +*/ +define ikev2_profile_add_del { + u32 client_index; + u32 context; + + u8 name[64]; + u8 is_add; +}; + +/** \brief Reply for IKEv2: Add/delete profile + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define ikev2_profile_add_del_reply { + u32 context; + i32 retval; +}; + +/** \brief IKEv2: Set IKEv2 profile authentication method + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + + @param name - IKEv2 profile name + @param auth_method - IKEv2 authentication method (shared-key-mic/rsa-sig) + @param is_hex - Authentication data in hex format if non-zero, else string + @param data_len - Authentication data length + @param data - Authentication data (for rsa-sig cert file path) +*/ +define ikev2_profile_set_auth { + u32 client_index; + u32 context; + + u8 name[64]; + u8 auth_method; + u8 is_hex; + u32 data_len; + u8 data[0]; +}; + +/** \brief Reply for IKEv2: Set IKEv2 profile authentication method + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define ikev2_profile_set_auth_reply { + u32 context; + i32 retval; +}; + +/** \brief IKEv2: Set IKEv2 profile local/remote identification + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + + @param name - IKEv2 profile name + @param is_local - Identification is local if non-zero, else remote + @param id_type - Identification type + @param data_len - Identification data length + @param data - Identification data +*/ +define ikev2_profile_set_id { + u32 client_index; + u32 context; + + u8 name[64]; + u8 is_local; + u8 id_type; + u32 data_len; + u8 data[0]; +}; + +/** \brief Reply for IKEv2: + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define ikev2_profile_set_id_reply { + u32 context; + i32 retval; +}; + +/** \brief IKEv2: Set IKEv2 profile traffic selector parameters + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + + @param name - IKEv2 profile name + @param is_local - Traffic selector is local if non-zero, else remote + @param proto - Traffic selector IP protocol (if zero not relevant) + @param start_port - The smallest port number allowed by traffic selector + @param end_port - The largest port number allowed by traffic selector + @param start_addr - The smallest address included in traffic selector + @param end_addr - The largest address included in traffic selector +*/ +define ikev2_profile_set_ts { + u32 client_index; + u32 context; + + u8 name[64]; + u8 is_local; + u8 proto; + u16 start_port; + u16 end_port; + u32 start_addr; + u32 end_addr; +}; + +/** \brief Reply for IKEv2: Set IKEv2 profile traffic selector parameters + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define ikev2_profile_set_ts_reply { + u32 context; + i32 retval; +}; + +/** \brief IKEv2: Set IKEv2 local RSA private key + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + + @param key_file - Key file absolute path +*/ +define ikev2_set_local_key { + u32 client_index; + u32 context; + + u8 key_file[256]; }; -/** \brief Reply for IPsec: Update Security Association keys +/** \brief Reply for IKEv2: Set IKEv2 local key @param context - returned sender context, to match reply w/ request @param retval - return code */ - -define ipsec_sa_set_key_reply { +define ikev2_set_local_key_reply { u32 context; i32 retval; }; @@ -2708,6 +3269,7 @@ define map_domain_dump { }; manual_java define map_domain_details { + u32 context; u32 domain_index; u8 ip6_prefix[16]; u8 ip4_prefix[4]; @@ -2730,6 +3292,7 @@ define map_rule_dump { }; manual_java define map_rule_details { + u32 context; u8 ip6_dst[16]; u16 psid; }; @@ -2862,3 +3425,530 @@ define sw_interface_clear_stats_reply { u32 context; i32 retval; }; + +/** \brief IOAM Trace : Set TRACE profile + @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 +*/ +define trace_profile_add { + 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; + u32 node_id; +}; + +/** \brief 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 { + u32 context; + i32 retval; +}; + +/** \brief Delete Trace Profile + @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 { + u32 client_index; + u32 context; + u16 id; +}; + +/** \brief Trace profile add / del response + @param context - sender context, to match reply w/ request + @param retval - return value for request +*/ +define trace_profile_del_reply { + u32 context; + i32 retval; +}; + +/** \brief Create host-interface + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param host_if_name - interface name + @param hw_addr - interface MAC + @param use_random_hw_addr - use random generated MAC +*/ +define af_packet_create { + u32 client_index; + u32 context; + + u8 host_if_name[64]; + u8 hw_addr[6]; + u8 use_random_hw_addr; +}; + +/** \brief Create host-interface response + @param context - sender context, to match reply w/ request + @param retval - return value for request +*/ +define af_packet_create_reply { + u32 context; + i32 retval; + u32 sw_if_index; +}; + +/** \brief Delete host-interface + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param host_if_name - interface name +*/ +define af_packet_delete { + u32 client_index; + u32 context; + + u8 host_if_name[64]; +}; + +/** \brief Delete host-interface response + @param context - sender context, to match reply w/ request + @param retval - return value for request +*/ +define af_packet_delete_reply { + u32 context; + i32 retval; +}; + +/** \brief Add/del policer + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param is_add - add policer if non-zero, else delete + @param name - policer name + @param cir - CIR + @param eir - EIR + @param cb - Committed Burst + @param eb - Excess or Peak Burst + @param rate_type - rate type + @param round_type - rounding type + @param type - policer algorithm +*/ +define policer_add_del { + u32 client_index; + u32 context; + + u8 is_add; + u8 name[64]; + u32 cir; + u32 eir; + u64 cb; + u64 eb; + u8 rate_type; + u8 round_type; + u8 type; +}; + +/** \brief Add/del policer response + @param context - sender context, to match reply w/ request + @param retval - return value for request +*/ +define policer_add_del_reply { + u32 context; + i32 retval; +}; + +/** \brief Get list of policers + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param match_name_valid - if 0 request all policers otherwise use match_name + @param match_name - policer name +*/ +define policer_dump { + u32 client_index; + u32 context; + + u8 match_name_valid; + u8 match_name[64]; +}; + +/** \brief Policer operational state response. + @param context - sender context, to match reply w/ request + @param name - policer name + @param cir - CIR + @param eir - EIR + @param cb - Committed Burst + @param eb - Excess or Peak Burst + @param rate_type - rate type + @param round_type - rounding type + @param type - policer algorithm + @param single_rate - 1 = single rate policer, 0 = two rate policer + @param color_aware - for hierarchical policing + @param scale - power-of-2 shift amount for lower rates + @param cir_tokens_per_period - number of tokens for each period + @param pir_tokens_per_period - number of tokens for each period for 2-rate policer + @param current_limit - current limit + @param current_bucket - current bucket + @param extended_limit - extended limit + @param extended_bucket - extended bucket + @param last_update_time - last update time +*/ +manual_java define policer_details { + u32 context; + + u8 name[64]; + u32 cir; + u32 eir; + u64 cb; + u64 eb; + u8 rate_type; + u8 round_type; + u8 type; + u8 single_rate; + u8 color_aware; + u32 scale; + u32 cir_tokens_per_period; + u32 pir_tokens_per_period; + u32 current_limit; + u32 current_bucket; + u32 extended_limit; + u32 extended_bucket; + u64 last_update_time; +}; + +/** \brief Create netmap + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param netmap_if_name - interface name + @param hw_addr - interface MAC + @param use_random_hw_addr - use random generated MAC + @param is_pipe - is pipe + @param is_master - 0=slave, 1=master +*/ +define netmap_create { + u32 client_index; + u32 context; + + u8 netmap_if_name[64]; + u8 hw_addr[6]; + u8 use_random_hw_addr; + u8 is_pipe; + u8 is_master; +}; + +/** \brief Create netmap response + @param context - sender context, to match reply w/ request + @param retval - return value for request +*/ +define netmap_create_reply { + u32 context; + i32 retval; +}; + +/** \brief Delete netmap + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param netmap_if_name - interface name +*/ +define netmap_delete { + u32 client_index; + u32 context; + + u8 netmap_if_name[64]; +}; + +/** \brief Delete netmap response + @param context - sender context, to match reply w/ request + @param retval - return value for request +*/ +define netmap_delete_reply { + u32 context; + i32 retval; +}; + +/** \brief Dump mpls gre tunnel table + @param client_index - opaque cookie to identify the sender + @param tunnel_index - gre tunnel identifier or -1 in case of all tunnels +*/ +define mpls_gre_tunnel_dump { + u32 client_index; + u32 context; + i32 tunnel_index; +}; + +/** \brief mpls gre tunnel operational state response + @param tunnel_index - gre tunnel identifier + @param intfc_address - interface ipv4 addr + @param mask_width - interface ipv4 addr mask + @param hw_if_index - interface id + @param l2_only - + @param tunnel_src - tunnel source ipv4 addr + @param tunnel_dst - tunnel destination ipv4 addr + @param outer_fib_index - gre tunnel identifier + @param encap_index - reference to mpls label table + @param nlabels - number of resolved labels + @param labels - resolved labels +*/ +manual_java define mpls_gre_tunnel_details { + u32 context; + u32 tunnel_index; + + u32 intfc_address; + u32 inner_fib_index; + u32 mask_width; + u32 encap_index; + u32 hw_if_index; + u8 l2_only; + u32 tunnel_src; + u32 tunnel_dst; + u32 outer_fib_index; + u32 nlabels; + u32 labels[0]; +}; + +/** \brief Dump mpls eth tunnel table + @param client_index - opaque cookie to identify the sender + @param tunnel_index - eth tunnel identifier or -1 in case of all tunnels +*/ +define mpls_eth_tunnel_dump { + u32 client_index; + u32 context; + i32 tunnel_index; +}; + +/** \brief mpls eth tunnel operational state response + @param tunnel_index - eth tunnel identifier + @param intfc_address - interface ipv4 addr + @param mask_width - interface ipv4 addr mask + @param hw_if_index - interface id + @param l2_only - + @param tunnel_dst_mac - + @param tx_sw_if_index - + @param encap_index - reference to mpls label table + @param nlabels - number of resolved labels + @param labels - resolved labels +*/ +manual_java define mpls_eth_tunnel_details { + u32 context; + u32 tunnel_index; + + u32 intfc_address; + u32 inner_fib_index; + u32 mask_width; + u32 encap_index; + u32 hw_if_index; + u8 l2_only; + u8 tunnel_dst_mac[6]; + u32 tx_sw_if_index; + u32 nlabels; + u32 labels[0]; +}; + +/** \brief Dump mpls fib table + @param client_index - opaque cookie to identify the sender + @param fib_index - mpls fib entry identifier or -1 in case of all entries +*/ +define mpls_fib_encap_dump { + u32 client_index; + u32 context; +}; + +/** \brief mpls fib encap table response + @param fib_index - fib table id + @param dest - destination ipv4 addr + @param s_bit - + @param entry_index - reference to mpls label table + @param nlabels - number of resolved labels + @param labels - resolved labels +*/ +manual_java define mpls_fib_encap_details { + u32 context; + + u32 fib_index; + u32 entry_index; + u32 dest; + u32 s_bit; + u32 nlabels; + u32 labels[0]; +}; + +/** \brief Dump mpls fib decap table + @param client_index - opaque cookie to identify the sender + @param fib_index - mpls fib entry identifier or -1 in case of all entries +*/ +define mpls_fib_decap_dump { + u32 client_index; + u32 context; +}; + +/** \brief mpls fib decap table response + @param fib_index - fib table id + @param entry_index - reference to mpls label table + @param dest - destination ipv4 addr + @param s_bit - + @param label - mpls labels + @param rx_table_id - rx fib id + @param tx_table_id - tx fib id + @param swif_tag - +*/ +manual_java define mpls_fib_decap_details { + u32 context; + + u32 fib_index; + u32 entry_index; + u32 dest; + u32 s_bit; + u32 label; + u32 rx_table_id; + u32 tx_table_id; + u8 swif_tag[8]; +}; + +/** \brief Classify get table IDs request + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request +*/ +define classify_table_ids { + u32 client_index; + u32 context; +}; + +/** \brief Reply for classify get table IDs request + @param context - sender context which was passed in the request + @param count - number of ids returned in response + @param ids - array of classify table ids +*/ +manual_java define classify_table_ids_reply { + u32 context; + u32 retval; + u32 count; + u32 ids[0]; +}; + +/** \brief Classify table ids by interface index request + @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 +*/ +define classify_table_by_interface { + u32 client_index; + u32 context; + u32 sw_if_index; +}; + +/** \brief Reply for classify table id by interface index request + @param context - sender context which was passed in the request + @param count - number of ids returned in response + @param sw_if_index - index of the interface + @param l2_table_id - l2 classify table index + @param ip4_table_id - ip4 classify table index + @param ip6_table_id - ip6 classify table index +*/ +manual_java define classify_table_by_interface_reply { + u32 context; + u32 retval; + u32 sw_if_index; + u32 l2_table_id; + u32 ip4_table_id; + u32 ip6_table_id; +}; + +/** \brief Classify table info + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param table_id - classify table index +*/ +define classify_table_info { + u32 client_index; + u32 context; + u32 table_id; +}; + +/** \brief Reply for classify table info request + @param context - sender context which was passed in the request + @param count - number of ids returned in response + @param table_id - classify table index + @param nbuckets - number of buckets when adding a table + @param match_n_vectors - number of match vectors + @param skip_n_vectors - number of skip_n_vectors + @param active_sessions - number of sessions (active entries) + @param next_table_index - index of next table + @param miss_next_index - index of miss table + @param mask[] - match mask +*/ +manual_java define classify_table_info_reply { + u32 context; + i32 retval; + u32 table_id; + u32 nbuckets; + u32 match_n_vectors; + u32 skip_n_vectors; + u32 active_sessions; + u32 next_table_index; + u32 miss_next_index; + u32 mask_length; + u8 mask[0]; +}; + +/** \brief Classify sessions dump request + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param table_id - classify table index +*/ +define classify_session_dump { + u32 client_index; + u32 context; + u32 table_id; +}; + +/** \brief Reply for classify table session dump request + @param context - sender context which was passed in the request + @param count - number of ids returned in response + @param table_id - classify table index + @param hit_next_index - hit_next_index of session + @param opaque_index - for add, opaque_index of session + @param advance - advance value of session + @param match[] - match value for session +*/ +manual_java define classify_session_details { + u32 context; + i32 retval; + u32 table_id; + u32 hit_next_index; + i32 advance; + u32 opaque_index; + u32 match_length; + u8 match[0]; +};