X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=vpp%2Fvpp-api%2Fvpe.api;h=6d20dabc5151c193acb41b2aa743ab4c8ab9664d;hb=3a2a1c47bc1f319d1f46abd2a364b3cf82404405;hp=67d95034bcc84f11aa007d16e1479aa17ae53c40;hpb=dea606321942132521effe5a3a1bfdaa77d41ebf;p=vpp.git diff --git a/vpp/vpp-api/vpe.api b/vpp/vpp-api/vpe.api index 67d95034bcc..6d20dabc515 100644 --- a/vpp/vpp-api/vpe.api +++ b/vpp/vpp-api/vpe.api @@ -1,4 +1,3 @@ -/* Hey Emacs use -*- mode: C -*- */ /* * Copyright (c) 2015-2016 Cisco and/or its affiliates. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -20,224 +19,11 @@ called through a shared memory interface. */ - -/** \brief Register for interface 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 -*/ -define want_interface_events -{ - u32 client_index; - u32 context; - u32 enable_disable; - u32 pid; -}; - -/** \brief Reply for interface events registration - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ -define want_interface_events_reply -{ - u32 context; - i32 retval; -}; - -/** \brief Interface details structure (fix this) - @param sw_if_index - index of the interface - @param sup_sw_if_index - index of parent interface if any, else same as sw_if_index - @param l2_address_length - length of the interface's l2 address - @param pid - the interface's l2 address - @param interface_name - name of the interface - @param link_duplex - 1 if half duplex, 2 if full duplex - @param link_speed - 1 = 10M, 2 = 100M, 4 = 1G, 8 = 10G, 16 = 40G, 32 = 100G - @param link_MTU - max. transmittion unit - @param sub_if_id - A number 0-N to uniquely identify this subif on super if - @param sub_dot1ad - 0 = dot1q, 1=dot1ad - @param sub_number_of_tags - Number of tags (0 - 2) - @param sub_outer_vlan_id - @param sub_inner_vlan_id - @param sub_exact_match - @param sub_default - @param sub_outer_vlan_id_any - @param sub_inner_vlan_id_any - @param vtr_op - vlan tag rewrite operation - @param vtr_push_dot1q - @param vtr_tag1 - @param vtr_tag2 -*/ -define sw_interface_details -{ - u32 context; - u32 sw_if_index; - - /* index of sup interface (e.g. hw interface). - equal to sw_if_index for super hw interface. */ - u32 sup_sw_if_index; - - /* Layer 2 address, if applicable */ - u32 l2_address_length; - u8 l2_address[8]; - - /* Interface name */ - u8 interface_name[64]; - - /* 1 = up, 0 = down */ - u8 admin_up_down; - u8 link_up_down; - - /* 1 = half duplex, 2 = full duplex */ - u8 link_duplex; - - /* 1 = 10M, 2 = 100M, 4 = 1G, 8 = 10G, 16 = 40G, 32 = 100G */ - u8 link_speed; - - /* MTU */ - u16 link_mtu; - - /* Subinterface ID. A number 0-N to uniquely identify this subinterface under the super interface */ - u32 sub_id; - - /* 0 = dot1q, 1=dot1ad */ - u8 sub_dot1ad; - - /* Number of tags 0-2 */ - u8 sub_number_of_tags; - u16 sub_outer_vlan_id; - u16 sub_inner_vlan_id; - u8 sub_exact_match; - u8 sub_default; - u8 sub_outer_vlan_id_any; - u8 sub_inner_vlan_id_any; - - /* vlan tag rewrite state */ - u32 vtr_op; - u32 vtr_push_dot1q; // ethertype of first pushed tag is dot1q/dot1ad - u32 vtr_tag1; // first pushed tag - u32 vtr_tag2; // second pushed tag -}; - -/** \brief Set flags on the 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 to set flags on - @param admin_up_down - set the admin state, 1 = up, 0 = down - @param link_up_down - Oper state sent on change event, not used in config. - @param deleted - interface was deleted -*/ -define sw_interface_set_flags -{ - u32 client_index; - u32 context; - u32 sw_if_index; - /* 1 = up, 0 = down */ - u8 admin_up_down; - u8 link_up_down; - u8 deleted; -}; - -/** \brief Reply to sw_interface_set_flags - @param context - sender context which was passed in the request - @param retval - return code of the set flags request -*/ -define sw_interface_set_flags_reply -{ - u32 context; - i32 retval; -}; - -/* works */ -define sw_interface_dump -{ - u32 client_index; - u32 context; - u8 name_filter_valid; - u8 name_filter[49]; -}; - -/** \brief Set or delete one or all ip addresses on a specified 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 to add/del addresses - @param is_add - add address if non-zero, else delete - @param is_ipv6 - if non-zero the address is ipv6, else ipv4 - @param del_all - if non-zero delete all addresses on the interface - @param address_length - address length in bytes, 4 for ip4, 16 for ip6 - @param address - array of address bytes -*/ -define sw_interface_add_del_address -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u8 is_add; - u8 is_ipv6; - u8 del_all; - u8 address_length; - u8 address[16]; -}; - -/** \brief Reply for interface events registration - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ -define sw_interface_add_del_address_reply -{ - u32 context; - i32 retval; -}; - -/** \brief Associate the specified interface with a fib table - @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 is_ipv6 - if non-zero ipv6, else ipv4 - @param vrf_id - fib table/vrd id to associate the interface with -*/ -define sw_interface_set_table -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u8 is_ipv6; - u32 vrf_id; -}; - -/** \brief Reply for interface events registration - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ -define sw_interface_set_table_reply -{ - u32 context; - 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; -}; +/* + * Note: API placement cleanup in progress + * If you're looking for interface APIs, please + * see .../vnet/vnet/{interface.api,interface_api.c} + */ /** \brief Initialize a new tap interface with the given paramters @param client_index - opaque cookie to identify the sender @@ -255,6 +41,7 @@ define tap_connect u8 mac_address[6]; u8 renumber; u32 custom_dev_instance; + u8 tag[64]; }; /** \brief Reply for tap connect request @@ -367,6 +154,30 @@ define create_vlan_subif_reply u32 sw_if_index; }; +/** \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 MPLS Route Add / del route @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -388,7 +199,9 @@ define create_vlan_subif_reply @param mr_next_hop[16] - the nextop address @param mr_next_hop_sw_if_index - the next-hop SW interface @param mr_next_hop_table_id - the next-hop table-id (if appropriate) - @param mr_next_hop_out_label - the next-hop output label + @param mr_next_hop_n_out_labels - the number of labels in the label stack + @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 { @@ -407,9 +220,11 @@ define mpls_route_add_del u8 mr_next_hop_proto_is_ip4; u8 mr_next_hop_weight; u8 mr_next_hop[16]; + u8 mr_next_hop_n_out_labels; u32 mr_next_hop_sw_if_index; u32 mr_next_hop_table_id; - u32 mr_next_hop_out_label; + u32 mr_next_hop_via_label; + u32 mr_next_hop_out_label_stack[mr_next_hop_n_out_labels]; }; /** \brief Reply for MPLS route add / del request @@ -431,17 +246,95 @@ define mpls_fib_dump u32 context; }; +/** \brief FIB path + @param sw_if_index - index of the interface + @param weight - The weight, for UCMP + @param is_local - local if non-zero, else remote + @param is_drop - Drop the packet + @param is_unreach - Drop the packet and rate limit send ICMP unreachable + @param is_prohibit - Drop the packet and rate limit send ICMP prohibited + @param afi - the afi of the next hop, IP46_TYPE_IP4=1, IP46_TYPE_IP6=2 + @param next_hop[16] - the next hop address +*/ +typeonly manual_print manual_endian define fib_path +{ + u32 sw_if_index; + u32 weight; + u8 is_local; + u8 is_drop; + u8 is_unreach; + u8 is_prohibit; + u8 afi; + u8 next_hop[16]; +}; + /** \brief mpls FIB table response @param table_id - MPLS fib table id @param s_bit - End-of-stack bit @param label - MPLS label value + @param count - the number of fib_path in path + @param path - array of of fib_path structures */ -define mpls_fib_details +manual_endian manual_print define mpls_fib_details { u32 context; u32 table_id; u8 eos_bit; u32 label; + u32 count; + vl_api_fib_path_t path[count]; +}; + +/** \brief Dump IP6 fib table + @param client_index - opaque cookie to identify the sender +*/ +define ip6_fib_dump +{ + u32 client_index; + u32 context; +}; + +/** \brief IP6 FIB table response + @param table_id - IP6 fib table id + @address_length - mask length + @address - ip6 prefix + @param count - the number of fib_path in path + @param path - array of of fib_path structures +*/ +manual_endian manual_print define ip6_fib_details +{ + u32 context; + u32 table_id; + u8 address_length; + u8 address[16]; + u32 count; + vl_api_fib_path_t path[count]; +}; + +/** \brief Dump IP fib table + @param client_index - opaque cookie to identify the sender +*/ +define ip_fib_dump +{ + u32 client_index; + u32 context; +}; + +/** \brief IP FIB table response + @param table_id - IP fib table id + @address_length - mask length + @address - ip4 prefix + @param count - the number of fib_path in path + @param path - array of of fib_path structures +*/ +manual_endian manual_print define ip_fib_details +{ + u32 context; + u32 table_id; + u8 address_length; + u8 address[4]; + u32 count; + vl_api_fib_path_t path[count]; }; /** \brief Bind/Unbind an MPLS local label to an IP prefix. i.e. create @@ -481,16 +374,92 @@ define mpls_ip_bind_unbind_reply 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 + @param mt_is_add - Is this a route add or delete + @param mt_sw_if_index - The SW interface index of the tunnel to delete + @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[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) + @param mt_next_hop_n_out_labels - the number of next-hop output labels + @param mt_next_hop_out_label_stack - the next-hop output label stack, outer most first +*/ +define mpls_tunnel_add_del +{ + u32 client_index; + u32 context; + u32 mt_sw_if_index; + u8 mt_is_add; + u8 mt_l2_only; + u8 mt_next_hop_proto_is_ip4; + u8 mt_next_hop_weight; + u8 mt_next_hop[16]; + u8 mt_next_hop_n_out_labels; + u32 mt_next_hop_sw_if_index; + u32 mt_next_hop_table_id; + u32 mt_next_hop_out_label_stack[mt_next_hop_n_out_labels]; +}; + +/** \brief Reply for MPLS tunnel add / del request + @param context - returned sender context, to match reply w/ request + @param retval - return code + @param sw_if_index - SW interface index of the tunnel created +*/ +define mpls_tunnel_add_del_reply +{ + u32 context; + i32 retval; + u32 sw_if_index; +}; + +/** \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_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 +*/ +define mpls_tunnel_details +{ + u32 context; + u32 tunnel_index; + u8 mt_l2_only; + u8 mt_sw_if_index; + u8 mt_next_hop_proto_is_ip4; + u8 mt_next_hop[16]; + u32 mt_next_hop_sw_if_index; + u32 mt_next_hop_table_id; + u32 mt_next_hop_n_labels; + u32 mt_next_hop_out_labels[mt_next_hop_n_labels]; +}; + /** \brief Add / del route request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param sw_if_index - software index of the new vlan's parent interface @param vrf_id - fib table /vrf associated with the route @param lookup_in_vrf - - @param resolve_attempts - @param classify_table_index - @param create_vrf_if_needed - - @param resolve_if_needed - @param is_add - 1 if adding the route, 0 if deleting @param is_drop - Drop the packet @param is_unreach - Drop the packet and rate limit send ICMP unreachable @@ -504,6 +473,9 @@ define mpls_ip_bind_unbind_reply @param dst_address_length - @param dst_address[16] - @param next_hop_address[16] - + @param next_hop_n_out_labels - the number of labels in the label stack + @param 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 ip_add_del_route { @@ -511,12 +483,9 @@ define ip_add_del_route u32 context; u32 next_hop_sw_if_index; u32 table_id; - u32 resolve_attempts; u32 classify_table_index; - u32 next_hop_out_label; u32 next_hop_table_id; u8 create_vrf_if_needed; - u8 resolve_if_needed; u8 is_add; u8 is_drop; u8 is_unreach; @@ -533,6 +502,9 @@ define ip_add_del_route u8 dst_address_length; u8 dst_address[16]; u8 next_hop_address[16]; + u8 next_hop_n_out_labels; + u32 next_hop_via_label; + u32 next_hop_out_label_stack[next_hop_n_out_labels]; }; /** \brief Reply for add / del route request @@ -545,37 +517,6 @@ define ip_add_del_route_reply i32 retval; }; -/** \brief Add / del MPLS encapsulation request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param vrf_id - vrf id - @param dst_address[4] - - @param is_add - 1 if adding the encap, 0 if deleting - @param nlabels - number of labels - @param labels - array of labels -*/ -define mpls_add_del_encap -{ - u32 client_index; - u32 context; - u32 vrf_id; - u8 dst_address[4]; - /* 1 = add, 0 = delete */ - u8 is_add; - u8 nlabels; - u32 labels[0]; -}; - -/** \brief Reply for add / del encapsulation request - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ -define mpls_add_del_encap_reply -{ - u32 context; - i32 retval; -}; - /** \brief Proxy ARP add / del request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -731,23 +672,6 @@ define want_stats_reply i32 retval; }; -/** \brief Want stats counters structure - @param vnet_counter_type- such as ip4, ip6, punts, etc - @param is_combined - rx & tx total (all types) counts - @param first_sw_if_index - first sw index in block of index, counts - @param count - number of interfaces this stats block includes counters for - @param data - contiguous block of vlib_counter_t structures -*/ -define vnet_interface_counters -{ - /* enums - plural - in vnet/interface.h */ - u8 vnet_counter_type; - u8 is_combined; - u32 first_sw_if_index; - u32 count; - u8 data[count]; -}; - typeonly manual_print manual_endian define ip4_fib_counter { u32 address; @@ -1127,32 +1051,6 @@ define sw_interface_ip6_set_link_local_address_reply i32 retval; }; -/** \brief Set unnumbered interface add / del request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param sw_if_index - interface with an IP address - @param unnumbered_sw_if_index - interface which will use the address - @param is_add - if non-zero set the association, else unset it -*/ -define sw_interface_set_unnumbered -{ - u32 client_index; - u32 context; - u32 sw_if_index; /* use this intfc address */ - u32 unnumbered_sw_if_index; /* on this interface */ - u8 is_add; -}; - -/** \brief Set unnumbered interface add / del response - @param context - sender context, to match reply w/ request - @param retval - return code for the request -*/ -define sw_interface_set_unnumbered_reply -{ - u32 context; - i32 retval; -}; - /** \brief Create loopback interface request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -1431,73 +1329,27 @@ define sw_interface_set_vpath_reply i32 retval; }; -/** \brief MPLS Ethernet add / del tunnel request +/** \brief Interface set vxlan-bypass request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request - @param vrf_id - vrf_id, only for IP4 @param sw_if_index - interface used to reach neighbor - @param is_add - add if set, tunnel delete if 0 - @param dst_mac_address - - @param adj_address - - @param adj_address_length - + @param is_ipv6 - if non-zero, enable ipv6-vxlan-bypass, else ipv4-vxlan-bypass + @param enable - if non-zero enable, else disable */ -define mpls_ethernet_add_del_tunnel +define sw_interface_set_vxlan_bypass { u32 client_index; u32 context; - u32 vrf_id; - u32 tx_sw_if_index; - u8 is_add; - u8 l2_only; - u8 dst_mac_address[6]; - u8 adj_address[4]; - u8 adj_address_length; + u32 sw_if_index; + u8 is_ipv6; + u8 enable; }; -/** \brief Reply for MPLS Ethernet add / delete tunnel request +/** \brief Interface set vxlan-bypass response @param context - sender context, to match reply w/ request @param retval - return code for the request */ -define mpls_ethernet_add_del_tunnel_reply -{ - u32 context; - i32 retval; - u32 tunnel_sw_if_index; -}; -/** \brief MPLS Ethernet add/ del tunnel 2 - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param inner_vrf_id - - @param outer_vrf_id - - @param resolve_attempts - - @param resolve_opaque - - @param resolve_if_needed - - @param is_add - - @param adj_address - - @param adj_address_length - - @param next_hop_ip4_address_in_outer_vrf - -*/ -define mpls_ethernet_add_del_tunnel_2 -{ - u32 client_index; - u32 context; - u32 inner_vrf_id; - u32 outer_vrf_id; - u32 resolve_attempts; - u32 resolve_opaque; /* no need to set this */ - u8 resolve_if_needed; - u8 is_add; - u8 l2_only; - u8 adj_address[4]; - u8 adj_address_length; - u8 next_hop_ip4_address_in_outer_vrf[4]; -}; - -/** \brief MPLS Ethernet add/ del tunnel 2 - @param context - sender context, to match reply w/ request - @param retval - return code for add /del request -*/ -define mpls_ethernet_add_del_tunnel_2_reply +define sw_interface_set_vxlan_bypass_reply { u32 context; i32 retval; @@ -1688,6 +1540,17 @@ define bd_ip_mac_add_del_reply @param match_n_vectors - number of match vectors @param next_table_index - index of next table @param miss_next_index - index of miss table + @param current_data_flag - option to use current node's packet payload + as the starting point from where packets are classified, + This option is only valid for L2/L3 input ACL for now. + 0: by default, classify data from the buffer's start location + 1: classify packets from VPP node’s current data pointer + @param current_data_offset - a signed value to shift the start location of + the packet to be classified + For example, if input IP ACL node is used, L2 header’s first byte + can be accessible by configuring current_data_offset to -14 + if there is no vlan tag. + This is valid only if current_data_flag is set to 1. @param mask[] - match mask */ define classify_add_del_table @@ -1702,6 +1565,8 @@ define classify_add_del_table u32 match_n_vectors; u32 next_table_index; u32 miss_next_index; + u32 current_data_flag; + i32 current_data_offset; u8 mask[0]; }; @@ -1729,6 +1594,17 @@ define classify_add_del_table_reply @param hit_next_index - for add, hit_next_index of new session, required @param opaque_index - for add, opaque_index of new session @param advance -for add, advance value for session + @param action - + 0: no action (by default) + metadata is not used. + 1: Classified IP packets will be looked up from the + specified ipv4 fib table (configured by metadata as VRF id). + Only valid for L3 input ACL node + 2: Classified IP packets will be looked up from the + specified ipv6 fib table (configured by metadata as VRF id). + Only valid for L3 input ACL node + @param metadata - valid only if action != 0 + VRF id if action is 1 or 2. @param match[] - for add, match value for session, required */ define classify_add_del_session @@ -1740,6 +1616,8 @@ define classify_add_del_session u32 hit_next_index; u32 opaque_index; i32 advance; + u8 action; + u32 metadata; u8 match[0]; }; @@ -2051,6 +1929,7 @@ define vxlan_add_del_tunnel u8 is_ipv6; u8 src_address[16]; u8 dst_address[16]; + u32 mcast_sw_if_index; u32 encap_vrf_id; u32 decap_next_index; u32 vni; @@ -2076,6 +1955,7 @@ define vxlan_tunnel_details u32 sw_if_index; u8 src_address[16]; u8 dst_address[16]; + u32 mcast_sw_if_index; u32 encap_vrf_id; u32 decap_next_index; u32 vni; @@ -2166,6 +2046,7 @@ define create_vhost_user_if u32 custom_dev_instance; u8 use_custom_mac; u8 mac_address[6]; + u8 tag[64]; }; /** \brief vhost-user interface create response @@ -2488,6 +2369,11 @@ define lisp_add_del_locator_reply @param prefix_len - prefix len @param locator_set_name - name of locator_set to add/del eid-table @param vni - virtual network instance + @param key_id + HMAC_NO_KEY 0 + HMAC_SHA_1_96 1 + HMAC_SHA_256_128 2 + @param key - secret key */ define lisp_add_del_local_eid { @@ -2499,6 +2385,8 @@ define lisp_add_del_local_eid u8 prefix_len; u8 locator_set_name[64]; u32 vni; + u16 key_id; + u8 key[64]; }; /** \brief Reply for local_eid add/del @@ -2558,6 +2446,32 @@ define lisp_gpe_add_del_fwd_entry_reply i32 retval; }; +/** \brief Add/delete map server + @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; delete otherwise + @param is_ipv6 - if non-zero the address is ipv6, else ipv4 + @param ip_address - map server IP address +*/ +define lisp_add_del_map_server +{ + u32 client_index; + u32 context; + u8 is_add; + u8 is_ipv6; + u8 ip_address[16]; +}; + +/** \brief Reply for lisp_add_del_map_server + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define lisp_add_del_map_server_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 @@ -2596,85 +2510,172 @@ define lisp_gpe_enable_disable u8 is_en; }; -/** \brief Reply for gpe enable/disable +/** \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; + u8 is_l2; + u32 dp_table; + 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 Get state of LISP RLOC probing + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request +*/ +define show_lisp_rloc_probe_state +{ + u32 client_index; + u32 context; +}; + +/** \brief Reply for show_lisp_rloc_probe_state @param context - returned sender context, to match reply w/ request @param retval - return code + @param is_enabled - state of RLOC probing */ -define lisp_gpe_enable_disable_reply +define show_lisp_rloc_probe_state_reply { u32 context; i32 retval; + u8 is_enabled; }; -/** \brief enable or disable LISP feature +/** \brief enable/disable LISP RLOC probing @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 + @param is_enable - enable if non-zero; disable otherwise */ -define lisp_enable_disable +define lisp_rloc_probe_enable_disable { u32 client_index; u32 context; - u8 is_en; + u8 is_enabled; }; -/** \brief Reply for gpe enable/disable +/** \brief Reply for lisp_rloc_probe_enable_disable @param context - returned sender context, to match reply w/ request @param retval - return code */ -define lisp_enable_disable_reply +define lisp_rloc_probe_enable_disable_reply { u32 context; i32 retval; }; -/** \brief add or delete gpe_iface +/** \brief enable/disable LISP map-register @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 is_enable - enable if non-zero; disable otherwise */ -define lisp_gpe_add_del_iface +define lisp_map_register_enable_disable { u32 client_index; u32 context; - u8 is_add; - u8 is_l2; - u32 dp_table; - u32 vni; + u8 is_enabled; }; -/** \brief Reply for gpe_iface add/del +/** \brief Reply for lisp_map_register_enable_disable @param context - returned sender context, to match reply w/ request @param retval - return code */ -define lisp_gpe_add_del_iface_reply +define lisp_map_register_enable_disable_reply { u32 context; i32 retval; }; -/** \brief configure or disable LISP PITR node +/** \brief Get state of LISP map-register @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 +define show_lisp_map_register_state { u32 client_index; u32 context; - u8 is_add; - u8 ls_name[64]; }; -/** \brief Reply for lisp_pitr_set_locator_set +/** \brief Reply for show_lisp_map_register_state @param context - returned sender context, to match reply w/ request @param retval - return code */ -define lisp_pitr_set_locator_set_reply +define show_lisp_map_register_state_reply { u32 context; i32 retval; + u8 is_enabled; }; /** \brief set LISP map-request mode. Based on configuration VPP will send @@ -2945,6 +2946,11 @@ define lisp_locator_set_dump @param vni - virtual network instance @param ttl - time to live @param authoritative - authoritative + @param key_id + HMAC_NO_KEY 0 + HMAC_SHA_1_96 1 + HMAC_SHA_256_128 2 + @param key - secret key */ define lisp_eid_table_details @@ -2962,6 +2968,8 @@ define lisp_eid_table_details u8 seid_prefix_len; u32 ttl; u8 authoritative; + u16 key_id; + u8 key[64]; }; /** \brief Request for eid table summary status @@ -3112,7 +3120,6 @@ define lisp_gpe_tunnel_dump }; /** \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 */ @@ -3133,6 +3140,27 @@ define lisp_map_resolver_dump u32 context; }; +/** \brief LISP map server details + @param is_ipv6 - if non-zero the address is ipv6, else ipv4 + @param ip_address - array of address bytes + */ +define lisp_map_server_details +{ + u32 context; + u8 is_ipv6; + u8 ip_address[16]; +}; + +/** \brief Request for map server summary status + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + */ +define lisp_map_server_dump +{ + u32 client_index; + u32 context; +}; + /** \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 @@ -3849,169 +3877,6 @@ define dhcp_compl_event u8 host_mac[6]; }; -/** \brief Add MAP domains - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param ip6_prefix - Rule IPv6 prefix - @param ip4_prefix - Rule IPv4 prefix - @param ip6_src - MAP domain IPv6 BR address / Tunnel source - @param ip6_prefix_len - Rule IPv6 prefix length - @param ip4_prefix_len - Rule IPv4 prefix length - @param ea_bits_len - Embedded Address bits length - @param psid_offset - Port Set Identifider (PSID) offset - @param psid_length - PSID length - @param is_translation - MAP-E / MAP-T - @param mtu - MTU -*/ -define map_add_domain -{ - u32 client_index; - u32 context; - u8 ip6_prefix[16]; - u8 ip4_prefix[4]; - u8 ip6_src[16]; - u8 ip6_prefix_len; - u8 ip4_prefix_len; - u8 ip6_src_prefix_len; - u8 ea_bits_len; - u8 psid_offset; - u8 psid_length; - u8 is_translation; - u16 mtu; -}; - -/** \brief Reply for MAP domain add - @param context - returned sender context, to match reply w/ request - @param index - MAP domain index - @param retval - return code -*/ -define map_add_domain_reply -{ - u32 context; - u32 index; - i32 retval; -}; - -/** \brief Delete MAP domain - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param index - MAP Domain index -*/ -define map_del_domain -{ - u32 client_index; - u32 context; - u32 index; -}; - -/** \brief Reply for MAP domain del - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ -define map_del_domain_reply -{ - u32 context; - i32 retval; -}; - -/** \brief Add or Delete MAP rule from a domain (Only used for shared IPv4 per subscriber) - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param index - MAP Domain index - @param is_add - If 1 add rule, if 0 delete rule - @param ip6_dst - MAP CE IPv6 address - @param psid - Rule PSID -*/ -define map_add_del_rule -{ - u32 client_index; - u32 context; - u32 index; - u32 is_add; - u8 ip6_dst[16]; - u16 psid; -}; - -/** \brief Reply for MAP rule add/del - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ -define map_add_del_rule_reply -{ - u32 context; - i32 retval; -}; - -/** \brief Get list of map domains - @param client_index - opaque cookie to identify the sender -*/ -define map_domain_dump -{ - u32 client_index; - u32 context; -}; - -define map_domain_details -{ - u32 context; - u32 domain_index; - u8 ip6_prefix[16]; - u8 ip4_prefix[4]; - u8 ip6_src[16]; - u8 ip6_prefix_len; - u8 ip4_prefix_len; - u8 ip6_src_len; - u8 ea_bits_len; - u8 psid_offset; - u8 psid_length; - u8 flags; - u16 mtu; - u8 is_translation; -}; - -define map_rule_dump -{ - u32 client_index; - u32 context; - u32 domain_index; -}; - -define map_rule_details -{ - u32 context; - u8 ip6_dst[16]; - u16 psid; -}; - -/** \brief Request for a single block of summary stats - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request -*/ -define map_summary_stats -{ - u32 client_index; - u32 context; -}; - -/** \brief Reply for map_summary_stats request - @param context - sender context, to match reply w/ request - @param retval - return code for request - @param total_bindings - - @param total_pkts - - @param total_ip4_fragments - - @param total_security_check - -*/ -define map_summary_stats_reply -{ - u32 context; - i32 retval; - u64 total_bindings; - u64 total_pkts[2]; - u64 total_bytes[2]; - u64 total_ip4_fragments; - u64 total_security_check[2]; -}; - /** \brief cop: enable/disable junk filtration features on an interface @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -4100,28 +3965,6 @@ define get_node_graph_reply u64 reply_in_shmem; }; -/** \brief Clear interface statistics - @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 to clear statistics -*/ -define sw_interface_clear_stats -{ - u32 client_index; - u32 context; - u32 sw_if_index; -}; - -/** \brief Reply to sw_interface_clear_stats - @param context - sender context which was passed in the request - @param retval - return code of the set flags request -*/ -define sw_interface_clear_stats_reply -{ - u32 context; - i32 retval; -}; - /** \brief IOAM enable : Enable in-band OAM @param id - profile id @param seqno - To enable Seqno Processing @@ -4461,118 +4304,6 @@ define netmap_delete_reply 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 -*/ -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[nlabels]; -}; - -/** \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 -*/ -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[nlabels]; -}; - -/** \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 -*/ -define mpls_fib_encap_details -{ - u32 context; - - u32 fib_index; - u32 entry_index; - u32 dest; - u32 s_bit; - u32 nlabels; - u32 labels[nlabels]; -}; - /** \brief Classify get table IDs request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -5348,3 +5079,60 @@ define ipsec_spd_details { u64 packets; }; +/** \brief Feature path enable/disable 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 enable - 1 = on, 0 = off +*/ +define feature_enable_disable { + u32 client_index; + u32 context; + u32 sw_if_index; + u8 enable; + u8 arc_name[64]; + u8 feature_name[64]; +}; + +/** \brief Reply to the eature path enable/disable request + @param context - sender context which was passed in the request + @param retval - return code for the request +*/ +define feature_enable_disable_reply +{ + u32 context; + i32 retval; +}; + +/** \brief Dump IP neighboors + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param sw_if_index - the interface to dump neighboors + @param is_ipv6 - [1|0] to indicate if address family is ipv[6|4] +*/ +define ip_neighbor_dump +{ + u32 client_index; + u32 context; + u32 sw_if_index; + u8 is_ipv6; +}; + +/** \brief IP neighboors dump response + @param context - sender context which was passed in the request + @param is_static - [1|0] to indicate if neighbor is statically configured + @param is_ipv6 - [1|0] to indicate if address family is ipv[6|4] +*/ +define ip_neighbor_details { + u32 context; + u32 is_static; + u8 is_ipv6; + u8 mac_address[6]; + u8 ip_address[16]; +}; + +/* + * Local Variables: + * eval: (c-set-style "gnu") + * End: + */ \ No newline at end of file