X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=vpp%2Fvpp-api%2Fvpe.api;h=7556a2232190539c32a496feb38320feedc18b55;hb=20d1232532e6f6c94c77a125b6c17680e14785b5;hp=934c4d830d4f01c0cfb476828985b1becef02e03;hpb=7490a752814187ed03c0deca4d836b0dca09fb4b;p=vpp.git diff --git a/vpp/vpp-api/vpe.api b/vpp/vpp-api/vpe.api index 934c4d830d4..7556a223219 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,199 +19,46 @@ called through a shared memory interface. */ +/* + * Note: API placement cleanup in progress + * If you're looking for interface APIs, please + * see .../vnet/vnet/{interface.api,interface_api.c} + * IP APIs: see .../vnet/vnet/ip/{ip.api, ip_api.c} + * TAP APIs: see .../vnet/vnet/unix/{tap.api, tap_api.c} + * VXLAN APIs: see .../vnet/vnet/vxlan/{vxlan.api, vxlan_api.c} + * AF-PACKET APIs: ... see /vnet/devices/af_packet/{af_packet.api, af_packet_api.c} + * NETMAP APIs: see ... /vnet/vnet/devices/netmap/{netmap.api, netmap_api.c} + * VHOST-USER APIs: see .../vnet/devices/virtio/{vhost_user.api, vhost_user_api.c} + * VXLAN GPE APIs: see .../vnet/vnet/vxlan-gpe/{vxlan_gpe.api, vxlan_gpe_api.c} + * GRE APIs: see .../vnet/vnet/gre/{gre.api, gre_api.c} + * L2TP APIs: see .../vnet/vnet/l2tp/{l2tp.api, l2tp_api.c} + * BFD APIs: see .../vnet/vnet/bfd/{bfd.api, bfd_api.c} + */ -/** \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 +/** \brief Create a new subinterface with the given vlan id @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 + @param sw_if_index - software index of the new vlan's parent interface + @param vlan_id - vlan tag of the new interface */ -define sw_interface_add_del_address +define create_vlan_subif { u32 client_index; u32 context; u32 sw_if_index; - u8 is_add; - u8 is_ipv6; - u8 del_all; - u8 address_length; - u8 address[16]; + u32 vlan_id; }; -/** \brief Reply for interface events registration +/** \brief Reply for the vlan subinterface create request @param context - returned sender context, to match reply w/ request @param retval - return code + @param sw_if_index - software index allocated for the new subinterface */ -define sw_interface_add_del_address_reply +define create_vlan_subif_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 @@ -239,134 +85,6 @@ define sw_interface_set_mpls_enable_reply 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 - @param use_random_mac - let the system generate a unique mac address - @param tap_name - name to associate with the new interface - @param mac_address - mac addr to assign to the interface if use_radom not set -*/ -define tap_connect -{ - u32 client_index; - u32 context; - u8 use_random_mac; - u8 tap_name[64]; - u8 mac_address[6]; - u8 renumber; - u32 custom_dev_instance; -}; - -/** \brief Reply for tap connect request - @param context - returned sender context, to match reply w/ request - @param retval - return code - @param sw_if_index - software index allocated for the new tap interface -*/ -define tap_connect_reply -{ - u32 context; - i32 retval; - u32 sw_if_index; -}; - -/** \brief Modify a tap interface with the given paramters - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param sw_if_index - interface index of existing tap interface - @param use_random_mac - let the system generate a unique mac address - @param tap_name - name to associate with the new interface - @param mac_address - mac addr to assign to the interface if use_radom not set -*/ -define tap_modify -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u8 use_random_mac; - u8 tap_name[64]; - u8 mac_address[6]; - u8 renumber; - u32 custom_dev_instance; -}; - -/** \brief Reply for tap modify request - @param context - returned sender context, to match reply w/ request - @param retval - return code - @param sw_if_index - software index if the modified tap interface -*/ -define tap_modify_reply -{ - u32 context; - i32 retval; - u32 sw_if_index; -}; - -/** \brief Delete tap interface - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param sw_if_index - interface index of existing tap interface -*/ -define tap_delete -{ - u32 client_index; - u32 context; - u32 sw_if_index; -}; - -/** \brief Reply for tap delete request - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ -define tap_delete_reply -{ - u32 context; - i32 retval; -}; - -/** \brief Dump tap interfaces request */ -define sw_interface_tap_dump -{ - u32 client_index; - u32 context; -}; - -/** \brief Reply for tap dump request - @param sw_if_index - software index of tap interface - @param dev_name - Linux tap device name -*/ -define sw_interface_tap_details -{ - u32 context; - u32 sw_if_index; - u8 dev_name[64]; -}; - -/** \brief Create a new subinterface with the given vlan id - @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 vlan_id - vlan tag of the new interface -*/ -define create_vlan_subif -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u32 vlan_id; -}; - -/** \brief Reply for the vlan subinterface create request - @param context - returned sender context, to match reply w/ request - @param retval - return code - @param sw_if_index - software index allocated for the new subinterface -*/ -define create_vlan_subif_reply -{ - u32 context; - i32 retval; - u32 sw_if_index; -}; - /** \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 +106,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 +127,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 @@ -440,8 +162,11 @@ define mpls_fib_dump @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 + + WARNING: this type is replicated, pending cleanup completion + */ -typeonly manual_print manual_endian define fib_path +typeonly manual_print manual_endian define fib_path2 { u32 sw_if_index; u32 weight; @@ -467,59 +192,7 @@ manual_endian manual_print define mpls_fib_details 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]; + vl_api_fib_path2_t path[count]; }; /** \brief Bind/Unbind an MPLS local label to an IP prefix. i.e. create @@ -559,99 +232,82 @@ define mpls_ip_bind_unbind_reply i32 retval; }; -/** \brief Add / del route request +/** \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 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 - @param is_prohibit - Drop the packet and rate limit send ICMP prohibited - @param is_ipv6 - 0 if an ip4 route, else ip6 - @param is_local - - @param is_classify - - @param is_multipath - Set to 1 if this is a multipath route, else 0 - @param not_last - Is last or not last msg in group of multiple add/del msgs - @param next_hop_weight - - @param dst_address_length - - @param dst_address[16] - - @param next_hop_address[16] - -*/ -define ip_add_del_route + @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 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; - u8 is_prohibit; - u8 is_ipv6; - u8 is_local; - u8 is_classify; - 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; - u8 dst_address[16]; - u8 next_hop_address[16]; + 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 add / del route request +/** \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 ip_add_del_route_reply +define mpls_tunnel_add_del_reply { u32 context; i32 retval; + u32 sw_if_index; }; -/** \brief Add / del MPLS encapsulation request +/** \brief Dump mpls eth tunnel table @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 + @param tunnel_index - eth tunnel identifier or -1 in case of all tunnels */ -define mpls_add_del_encap +define mpls_tunnel_dump { u32 client_index; u32 context; - u32 vrf_id; - u8 dst_address[4]; - /* 1 = add, 0 = delete */ - u8 is_add; - u8 nlabels; - u32 labels[0]; + i32 tunnel_index; }; -/** \brief Reply for add / del encapsulation request - @param context - returned sender context, to match reply w/ request - @param retval - return code +/** \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_add_del_encap_reply +define mpls_tunnel_details { u32 context; - i32 retval; + 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 Proxy ARP add / del request @@ -707,41 +363,6 @@ define proxy_arp_intfc_enable_disable_reply i32 retval; }; -/** \brief IP neighbor add / del 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 - 1 to add neighbor, 0 to delete - @param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4 - @param is_static - - @param mac_address - l2 address of the neighbor - @param dst_address - ip4 or ip6 address of the neighbor -*/ -define ip_neighbor_add_del -{ - u32 client_index; - u32 context; - u32 vrf_id; /* only makes sense for ip4 */ - u32 sw_if_index; - /* 1 = add, 0 = delete */ - u8 is_add; - u8 is_ipv6; - u8 is_static; - u8 mac_address[6]; - u8 dst_address[16]; -}; - -/** \brief Reply for IP Neighbor add / delete request - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ -define ip_neighbor_add_del_reply -{ - u32 context; - i32 retval; -}; - /** \brief Reset VRF (remove all routes etc) request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -809,23 +430,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; @@ -1016,216 +620,15 @@ define dhcp_proxy_set_vss u32 tbl_id; u32 oui; u32 fib_id; - u8 is_ipv6; - u8 is_add; -}; - -/** \brief DHCP proxy set / unset vss response - @param context - sender context, to match reply w/ request - @param retval - return code for the request -*/ -define dhcp_proxy_set_vss_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 - @param vrf_id - vrf/fib id - @param is_ipv6 - if non-zero the fib is ip6, else ip4 - @param src - if non-zero include src in flow hash - @param dst - if non-zero include dst in flow hash - @param sport - if non-zero include sport in flow hash - @param dport - if non-zero include dport in flow hash - @param proto -if non-zero include proto in flow hash - @param reverse - if non-zero include reverse in flow hash -*/ -define set_ip_flow_hash -{ - u32 client_index; - u32 context; - u32 vrf_id; - u8 is_ipv6; - u8 src; - u8 dst; - u8 sport; - u8 dport; - u8 proto; - u8 reverse; -}; - -/** \brief Set the ip flow hash config for a fib response - @param context - sender context, to match reply w/ request - @param retval - return code for the request -*/ -define set_ip_flow_hash_reply -{ - u32 context; - i32 retval; -}; - -/** \brief IPv6 router advertisement config request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param suppress - - @param managed - - @param other - - @param ll_option - - @param send_unicast - - @param cease - - @param is_no - - @param default_router - - @param max_interval - - @param min_interval - - @param lifetime - - @param initial_count - - @param initial_interval - -*/ -define sw_interface_ip6nd_ra_config -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u8 suppress; - u8 managed; - u8 other; - u8 ll_option; - u8 send_unicast; - u8 cease; - u8 is_no; - u8 default_router; - u32 max_interval; - u32 min_interval; - u32 lifetime; - u32 initial_count; - u32 initial_interval; -}; - -/** \brief IPv6 router advertisement config response - @param context - sender context, to match reply w/ request - @param retval - return code for the request -*/ -define sw_interface_ip6nd_ra_config_reply -{ - u32 context; - i32 retval; -}; - -/** \brief IPv6 router advertisement prefix config request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param sw_if_index - - @param address[] - - @param address_length - - @param use_default - - @param no_advertise - - @param off_link - - @param no_autoconfig - - @param no_onlink - - @param is_no - - @param val_lifetime - - @param pref_lifetime - -*/ -define sw_interface_ip6nd_ra_prefix -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u8 address[16]; - u8 address_length; - u8 use_default; - u8 no_advertise; - u8 off_link; - u8 no_autoconfig; - u8 no_onlink; - u8 is_no; - u32 val_lifetime; - u32 pref_lifetime; -}; - -/** \brief IPv6 router advertisement prefix config response - @param context - sender context, to match reply w/ request - @param retval - return code for the request -*/ -define sw_interface_ip6nd_ra_prefix_reply -{ - u32 context; - i32 retval; -}; - -/** \brief IPv6 interface 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 - interface used to reach neighbor - @param enable - if non-zero enable ip6 on interface, else disable -*/ -define sw_interface_ip6_enable_disable -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u8 enable; /* set to true if enable */ -}; - -/** \brief IPv6 interface enable / disable response - @param context - sender context, to match reply w/ request - @param retval - return code for the request -*/ -define sw_interface_ip6_enable_disable_reply -{ - u32 context; - i32 retval; -}; - -/** \brief IPv6 set link local address on interface request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param sw_if_index - interface to set link local on - @param address[] - the new link local address - @param address_length - link local address length -*/ -define sw_interface_ip6_set_link_local_address -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u8 address[16]; - u8 address_length; -}; - -/** \brief IPv6 set link local address on interface response - @param context - sender context, to match reply w/ request - @param retval - error code for the request -*/ -define sw_interface_ip6_set_link_local_address_reply -{ - u32 context; - 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_ipv6; u8 is_add; }; -/** \brief Set unnumbered interface add / del response +/** \brief DHCP proxy set / unset vss response @param context - sender context, to match reply w/ request @param retval - return code for the request */ -define sw_interface_set_unnumbered_reply +define dhcp_proxy_set_vss_reply { u32 context; i32 retval; @@ -1419,8 +822,8 @@ define sr_tunnel_add_del u16 flags_net_byte_order; u8 n_segments; u8 n_tags; - u8 segs_and_tags[0]; u8 policy_name[64]; + u8 segs_and_tags[0]; }; /** \brief IPv6 segment routing tunnel add / del response @@ -1509,78 +912,6 @@ define sw_interface_set_vpath_reply i32 retval; }; -/** \brief MPLS Ethernet add / del tunnel 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 - -*/ -define mpls_ethernet_add_del_tunnel -{ - 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; -}; - -/** \brief Reply for MPLS Ethernet add / delete tunnel request - @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 -{ - u32 context; - i32 retval; -}; - /** \brief Set L2 XConnect between two interfaces request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -1760,6 +1091,7 @@ define bd_ip_mac_add_del_reply @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param is_add- if non-zero add the table, else delete it + @param del_chain - if non-zero delete the whole chain of tables @param table_index - if add, reuturns index of the created table, else specifies the table to delete @param nbuckets - number of buckets when adding a table @param memory_size - memory size when adding a table @@ -1784,6 +1116,7 @@ define classify_add_del_table u32 client_index; u32 context; u8 is_add; + u8 del_chain; u32 table_index; u32 nbuckets; u32 memory_size; @@ -1997,84 +1330,6 @@ define dhcp_proxy_config_2_reply i32 retval; }; -/** \brief l2tpv3 tunnel interface create request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param client_address - remote client tunnel ip address - @param client_address - local tunnel ip address - @param is_ipv6 - ipv6 if non-zero, else ipv4 - @param local_session_id - local tunnel session id - @param remote_session_id - remote tunnel session id - @param local_cookie - local tunnel cookie - @param l2_sublayer_present - l2 sublayer is present in packets if non-zero - @param encap_vrf_id - fib identifier used for outgoing encapsulated packets -*/ -define l2tpv3_create_tunnel -{ - u32 client_index; - u32 context; - u8 client_address[16]; - u8 our_address[16]; - u8 is_ipv6; - u32 local_session_id; - u32 remote_session_id; - u64 local_cookie; - u64 remote_cookie; - u8 l2_sublayer_present; - u32 encap_vrf_id; -}; - -/** \brief l2tpv3 tunnel interface create response - @param context - sender context, to match reply w/ request - @param retval - return code for the request - @param sw_if_index - index of the new tunnel interface -*/ -define l2tpv3_create_tunnel_reply -{ - u32 context; - i32 retval; - u32 sw_if_index; -}; - -define l2tpv3_set_tunnel_cookies -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u64 new_local_cookie; - u64 new_remote_cookie; -}; - -/** \brief L2TP tunnel set cookies response - @param context - sender context, to match reply w/ request - @param retval - return code for the request -*/ -define l2tpv3_set_tunnel_cookies_reply -{ - u32 context; - i32 retval; -}; - -define sw_if_l2tpv3_tunnel_details -{ - u32 context; - u32 sw_if_index; - u8 interface_name[64]; - u8 client_address[16]; - u8 our_address[16]; - u32 local_session_id; - u32 remote_session_id; - u64 local_cookie[2]; - u64 remote_cookie; - u8 l2_sublayer_present; -}; - -define sw_if_l2tpv3_tunnel_dump -{ - u32 client_index; - u32 context; -}; - /** \brief L2 fib clear table request, clear all mac entries in the l2 fib @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -2119,110 +1374,6 @@ define l2_interface_efp_filter_reply i32 retval; }; -define l2tpv3_interface_enable_disable -{ - u32 client_index; - u32 context; - u8 enable_disable; - u32 sw_if_index; -}; - -define l2tpv3_interface_enable_disable_reply -{ - u32 context; - i32 retval; -}; - -define l2tpv3_set_lookup_key -{ - u32 client_index; - u32 context; - /* 0 = ip6 src_address, 1 = ip6 dst_address, 2 = session_id */ - u8 key; -}; - -define l2tpv3_set_lookup_key_reply -{ - u32 context; - i32 retval; -}; - -define vxlan_add_del_tunnel -{ - u32 client_index; - u32 context; - u8 is_add; - u8 is_ipv6; - u8 src_address[16]; - u8 dst_address[16]; - u32 encap_vrf_id; - u32 decap_next_index; - u32 vni; -}; - -define vxlan_add_del_tunnel_reply -{ - u32 context; - i32 retval; - u32 sw_if_index; -}; - -define vxlan_tunnel_dump -{ - u32 client_index; - u32 context; - u32 sw_if_index; -}; - -define vxlan_tunnel_details -{ - u32 context; - u32 sw_if_index; - 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; - u8 is_ipv6; - u8 teb; - u8 src_address[16]; - u8 dst_address[16]; - u32 outer_fib_id; -}; - -define gre_add_del_tunnel_reply -{ - u32 context; - i32 retval; - u32 sw_if_index; -}; - -define gre_tunnel_dump -{ - u32 client_index; - u32 context; - u32 sw_if_index; -}; - -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; -}; - /** \brief L2 interface vlan tag rewrite configure request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -2253,83 +1404,6 @@ define l2_interface_vlan_tag_rewrite_reply i32 retval; }; -/** \brief vhost-user interface create request - @param client_index - opaque cookie to identify the sender - @param is_server - our side is socket server - @param sock_filename - unix socket filename, used to speak with frontend - @param use_custom_mac - enable or disable the use of the provided hardware address - @param mac_address - hardware address to use if 'use_custom_mac' is set -*/ -define create_vhost_user_if -{ - u32 client_index; - u32 context; - u8 is_server; - u8 sock_filename[256]; - u8 renumber; - u32 custom_dev_instance; - u8 use_custom_mac; - u8 mac_address[6]; -}; - -/** \brief vhost-user interface create response - @param context - sender context, to match reply w/ request - @param retval - return code for the request - @param sw_if_index - interface the operation is applied to -*/ -define create_vhost_user_if_reply -{ - u32 context; - i32 retval; - u32 sw_if_index; -}; - -/** \brief vhost-user interface modify request - @param client_index - opaque cookie to identify the sender - @param is_server - our side is socket server - @param sock_filename - unix socket filename, used to speak with frontend -*/ -define modify_vhost_user_if -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u8 is_server; - u8 sock_filename[256]; - u8 renumber; - u32 custom_dev_instance; -}; - -/** \brief vhost-user interface modify response - @param context - sender context, to match reply w/ request - @param retval - return code for the request -*/ -define modify_vhost_user_if_reply -{ - u32 context; - i32 retval; -}; - -/** \brief vhost-user interface delete request - @param client_index - opaque cookie to identify the sender -*/ -define delete_vhost_user_if -{ - u32 client_index; - u32 context; - u32 sw_if_index; -}; - -/** \brief vhost-user interface delete response - @param context - sender context, to match reply w/ request - @param retval - return code for the request -*/ -define delete_vhost_user_if_reply -{ - u32 context; - i32 retval; -}; - define create_subif { u32 client_index; @@ -2379,67 +1453,9 @@ define show_version_reply u32 context; i32 retval; u8 program[32]; - u8 version[32]; - u8 build_date[32]; - u8 build_directory[256]; -}; - -/** \brief Vhost-user interface details structure (fix this) - @param sw_if_index - index of the interface - @param interface_name - name of interface - @param virtio_net_hdr_sz - net header size - @param features - interface features - @param is_server - vhost-user server socket - @param sock_filename - socket filename - @param num_regions - number of used memory regions -*/ -define sw_interface_vhost_user_details -{ - u32 context; - u32 sw_if_index; - u8 interface_name[64]; - u32 virtio_net_hdr_sz; - u64 features; - u8 is_server; - u8 sock_filename[256]; - u32 num_regions; - i32 sock_errno; -}; - -/* works */ -define sw_interface_vhost_user_dump -{ - u32 client_index; - u32 context; -}; - -define ip_address_details -{ - u32 client_index; - u32 context; - u8 ip[16]; - u8 prefix_length; -}; - -define ip_address_dump -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u8 is_ipv6; -}; - -define ip_details -{ - u32 sw_if_index; - u32 context; -}; - -define ip_dump -{ - u32 client_index; - u32 context; - u8 is_ipv6; + u8 version[32]; + u8 build_date[32]; + u8 build_directory[256]; }; /** \brief l2 fib table entry structure @@ -2472,47 +1488,6 @@ define l2_fib_table_dump u32 bd_id; }; -define vxlan_gpe_add_del_tunnel -{ - u32 client_index; - u32 context; - u8 is_ipv6; - u8 local[16]; - u8 remote[16]; - u32 encap_vrf_id; - u32 decap_vrf_id; - u8 protocol; - u32 vni; - u8 is_add; -}; - -define vxlan_gpe_add_del_tunnel_reply -{ - u32 context; - i32 retval; - u32 sw_if_index; -}; - -define vxlan_gpe_tunnel_dump -{ - u32 client_index; - u32 context; - u32 sw_if_index; -}; - -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; - 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 @@ -2592,6 +1567,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 { @@ -2603,6 +1583,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 @@ -2662,6 +1644,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 @@ -2781,6 +1789,93 @@ define lisp_pitr_set_locator_set_reply 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 show_lisp_rloc_probe_state_reply +{ + u32 context; + i32 retval; + u8 is_enabled; +}; + +/** \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_enable - enable if non-zero; disable otherwise +*/ +define lisp_rloc_probe_enable_disable +{ + u32 client_index; + u32 context; + u8 is_enabled; +}; + +/** \brief Reply for lisp_rloc_probe_enable_disable + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define lisp_rloc_probe_enable_disable_reply +{ + u32 context; + i32 retval; +}; + +/** \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_enable - enable if non-zero; disable otherwise +*/ +define lisp_map_register_enable_disable +{ + u32 client_index; + u32 context; + u8 is_enabled; +}; + +/** \brief Reply for lisp_map_register_enable_disable + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define lisp_map_register_enable_disable_reply +{ + u32 context; + i32 retval; +}; + +/** \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 +*/ +define show_lisp_map_register_state +{ + u32 client_index; + u32 context; +}; + +/** \brief Reply for show_lisp_map_register_state + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +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 src/dest or just normal destination map requests. @param client_index - opaque cookie to identify the sender @@ -3049,6 +2144,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 @@ -3066,6 +2166,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 @@ -3216,7 +2318,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 */ @@ -3237,6 +2338,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 @@ -3418,6 +2540,7 @@ define ip6_nd_event @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 mac_age - mac aging time in min, 0 for disabled @param is_add - add or delete flag */ define bridge_domain_add_del @@ -3430,6 +2553,7 @@ define bridge_domain_add_del u8 forward; u8 learn; u8 arp_term; + u8 mac_age; u8 is_add; }; @@ -3462,6 +2586,7 @@ define bridge_domain_dump @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 + @param mac_age - mac aging time in min, 0 for disabled @param n_sw_ifs - number of sw_if_index's in the domain */ define bridge_domain_details @@ -3473,6 +2598,7 @@ define bridge_domain_details u8 forward; u8 learn; u8 arp_term; + u8 mac_age; u32 bvi_sw_if_index; u32 n_sw_ifs; }; @@ -3858,262 +2984,99 @@ define ikev2_profile_set_id 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 IKEv2: Set IKEv2 local key - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ -define ikev2_set_local_key_reply -{ - u32 context; - i32 retval; -}; - -/** \brief Tell client about a DHCP completion event - @param client_index - opaque cookie to identify the sender - @param pid - client pid registered to receive notification - @param is_ipv6 - if non-zero the address is ipv6, else ipv4 - @param host_address - Host IP address - @param router_address - Router IP address - @param host_mac - Host MAC address -*/ -define dhcp_compl_event -{ - u32 client_index; - u32 pid; - u8 hostname[64]; - u8 is_ipv6; - u8 host_address[16]; - u8 router_address[16]; - 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; + u8 is_local; + u8 id_type; + u32 data_len; + u8 data[0]; }; -/** \brief Reply for MAP domain del +/** \brief Reply for IKEv2: @param context - returned sender context, to match reply w/ request @param retval - return code */ -define map_del_domain_reply +define ikev2_profile_set_id_reply { u32 context; i32 retval; }; -/** \brief Add or Delete MAP rule from a domain (Only used for shared IPv4 per subscriber) +/** \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 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 + + @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 map_add_del_rule +define ikev2_profile_set_ts { u32 client_index; u32 context; - u32 index; - u32 is_add; - u8 ip6_dst[16]; - u16 psid; + + u8 name[64]; + u8 is_local; + u8 proto; + u16 start_port; + u16 end_port; + u32 start_addr; + u32 end_addr; }; -/** \brief Reply for MAP rule add/del +/** \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 map_add_del_rule_reply +define ikev2_profile_set_ts_reply { u32 context; i32 retval; }; -/** \brief Get list of map domains +/** \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 map_domain_dump +define ikev2_set_local_key { 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; + u8 key_file[256]; }; -define map_rule_details +/** \brief Reply for IKEv2: Set IKEv2 local key + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define ikev2_set_local_key_reply { u32 context; - u8 ip6_dst[16]; - u16 psid; + i32 retval; }; -/** \brief Request for a single block of summary stats +/** \brief Tell client about a DHCP completion 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 is_ipv6 - if non-zero the address is ipv6, else ipv4 + @param host_address - Host IP address + @param router_address - Router IP address + @param host_mac - Host MAC address */ -define map_summary_stats +define dhcp_compl_event { 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]; + u32 pid; + u8 hostname[64]; + u8 is_ipv6; + u8 host_address[16]; + u8 router_address[16]; + u8 host_mac[6]; }; /** \brief cop: enable/disable junk filtration features on an interface @@ -4204,28 +3167,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 @@ -4277,57 +3218,6 @@ define ioam_disable_reply 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 @@ -4511,172 +3401,6 @@ define policer_classify_details u32 table_index; }; -/** \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 -*/ -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 @@ -5006,49 +3730,6 @@ define flow_classify_details { u32 table_index; }; -/** \brief Enable/Disable span to mirror traffic from one interface to another - @param client_index - opaque cookie to identify the sender - @param context - sender context which was passed in the request - @param sw_if_index_from - interface to be mirorred - @param sw_if_index_to - interface where the traffic is mirrored - @param enable - 1 enable SPAN, 0 SPAN on given interface -*/ -define sw_interface_span_enable_disable{ - u32 client_index; - u32 context; - u32 sw_if_index_from; - u32 sw_if_index_to; - u8 enable; -}; - -/** \brief Reply to SPAN enable/disable request - @param context - sender context which was passed in the request -*/ -define sw_interface_span_enable_disable_reply { - u32 context; - i32 retval; -}; - -/** \brief SPAN dump request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request -*/ -define sw_interface_span_dump { - u32 client_index; - u32 context; -}; - -/** \brief Reply to SPAN dump request - @param context - sender context which was passed in the request - @param sw_if_index_from - mirorred interface - @param sw_if_index_to - interface where the traffic is mirrored -*/ -define sw_interface_span_details { - u32 context; - u32 sw_if_index_from; - u32 sw_if_index_to; -}; - /** \brief Query relative index via node names @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -5519,3 +4200,9 @@ define feature_enable_disable_reply u32 context; i32 retval; }; + +/* + * Local Variables: + * eval: (c-set-style "gnu") + * End: + */