/*
* 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}
+ * see .../src/vnet/{interface.api,interface_api.c}
+ * IP APIs: see .../src/vnet/ip/{ip.api, ip_api.c}
+ * TAP APIs: see .../src/vnet/unix/{tap.api, tap_api.c}
+ * VXLAN APIs: see .../src/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 ... /src/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}
- * IPSEC APIs: see .../vnet/vnet/ipsec/{ipsec.api, ipsec_api.c}
- * IPSEC-GRE APIs: see .../vnet/vnet/ipsec-gre/{ipsec_gre.api, ipsec_gre_api.c}
- * LISP APIs: see .../vnet/vnet/lisp/{lisp.api, lisp_api.c}
- * LISP-GPE APIs: see .../vnet/vnet/lisp-gpe/{lisp_gpe.api, lisp_gpe_api.c}
+ * VXLAN GPE APIs: see .../src/vnet/vxlan-gpe/{vxlan_gpe.api, vxlan_gpe_api.c}
+ * GRE APIs: see .../src/vnet/gre/{gre.api, gre_api.c}
+ * L2 APIs: see .../src/vnet/l2/{l2.api, l2_api.c}
+ * L2TP APIs: see .../src/vnet/l2tp/{l2tp.api, l2tp_api.c}
+ * BFD APIs: see .../src/vnet/bfd/{bfd.api, bfd_api.c}
+ * IPSEC APIs: see .../src/vnet/ipsec/{ipsec.api, ipsec_api.c}
+ * IPSEC-GRE APIs: see .../src/vnet/ipsec-gre/{ipsec_gre.api, ipsec_gre_api.c}
+ * LISP APIs: see .../src/vnet/lisp/{lisp.api, lisp_api.c}
+ * LISP-GPE APIs: see .../src/vnet/lisp-gpe/{lisp_gpe.api, lisp_gpe_api.c}
+ * MPLS APIs: see .../src/vnet/mpls/{mpls.api, mpls_api.c}
+ * SR APIs: see .../src/vnet/sr/{sr.api, sr_api.c}
+ * DPDK APIs: see ... /src/vnet/devices/dpdk/{dpdk.api, dpdk_api.c}
+ * CLASSIFY APIs: see ... /src/vnet/classify/{classify.api, classify_api.c}
+ * FLOW APIs: see ... /src/vnet/flow/{flow.api, flow_api.c}
*/
/** \brief Create a new subinterface with the given vlan id
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
- @param mr_label - The MPLS label value
- @param mr_eos - The End of stack bit
- @param mr_table_id - The MPLS table-id the route is added in
- @param mr_classify_table_index - If this is a classify route,
- this is the classify table index
- @param mr_create_table_if_needed - If the MPLS or IP tables do not exist,
- create them
- @param mr_is_add - Is this a route add or delete
- @param mr_is_classify - Is this route result a classify
- @param mr_is_multipath - Is this route update a multipath - i.e. is this
- a path addition to an existing route
- @param mr_is_resolve_host - Recurse resolution constraint via a host prefix
- @param mr_is_resolve_attached - Recurse resolution constraint via attached prefix
- @param mr_next_hop_proto_is_ip4 - The next-hop is IPV4
- @param mr_next_hop_weight - The weight, for UCMP
- @param mr_next_hop[16] - the nextop address
- @param mr_next_hop_sw_if_index - the next-hop SW interface
- @param mr_next_hop_table_id - the next-hop table-id (if appropriate)
- @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
-{
- u32 client_index;
- u32 context;
- u32 mr_label;
- u8 mr_eos;
- u32 mr_table_id;
- u32 mr_classify_table_index;
- u8 mr_create_table_if_needed;
- u8 mr_is_add;
- u8 mr_is_classify;
- u8 mr_is_multipath;
- u8 mr_is_resolve_host;
- u8 mr_is_resolve_attached;
- 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_via_label;
- u32 mr_next_hop_out_label_stack[mr_next_hop_n_out_labels];
-};
-
-/** \brief Reply for MPLS route add / del request
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-define mpls_route_add_del_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief Dump MPLS fib table
- @param client_index - opaque cookie to identify the sender
-*/
-define mpls_fib_dump
-{
- u32 client_index;
- 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
-
- WARNING: this type is replicated, pending cleanup completion
-
-*/
-typeonly manual_print manual_endian define fib_path2
-{
- 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
-*/
-manual_endian manual_print define mpls_fib_details
-{
- u32 context;
- u32 table_id;
- u8 eos_bit;
- u32 label;
- u32 count;
- vl_api_fib_path2_t path[count];
-};
-
-/** \brief Bind/Unbind an MPLS local label to an IP prefix. i.e. create
- a per-prefix label entry.
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param mb_mpls_table_id - The MPLS table-id the MPLS entry will be added in
- @param mb_label - The MPLS label value to bind
- @param mb_ip_table_id - The IP table-id of the IP prefix to bind to.
- @param mb_create_table_if_needed - Create either/both tables if required.
- @param mb_is_bind - Bind or unbind
- @param mb_is_ip4 - The prefix to bind to is IPv4
- @param mb_address_length - Length of IP prefix
- @param mb_address[16] - IP prefix/
-*/
-define mpls_ip_bind_unbind
-{
- u32 client_index;
- u32 context;
- u32 mb_mpls_table_id;
- u32 mb_label;
- u32 mb_ip_table_id;
- u8 mb_create_table_if_needed;
- u8 mb_is_bind;
- u8 mb_is_ip4;
- u8 mb_address_length;
- u8 mb_address[16];
-};
-
-/** \brief Reply for MPLS IP bind/unbind request
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-define mpls_ip_bind_unbind_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief MPLS tunnel Add / del route
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @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 Proxy ARP add / del request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
i32 retval;
};
-/** \brief IPv6 segment routing tunnel add / del request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param is_add - add the tunnel if non-zero, else delete it
- @param name[] - tunnel name (len. 64)
- @param src_address[] -
- @param dst_address[] -
- @param dst_mask_width -
- @param inner_vrf_id -
- @param outer_vrf_id -
- @param flags_net_byte_order -
- @param n_segments -
- @param n_tags -
- @param segs_and_tags[] -
- @param policy_name[] - name of policy to associate this tunnel to (len. 64)
-*/
-define sr_tunnel_add_del
-{
- u32 client_index;
- u32 context;
- u8 is_add;
- u8 name[64];
- u8 src_address[16];
- u8 dst_address[16];
- u8 dst_mask_width;
- u32 inner_vrf_id;
- u32 outer_vrf_id;
- u16 flags_net_byte_order;
- u8 n_segments;
- u8 n_tags;
- u8 policy_name[64];
- u8 segs_and_tags[0];
-};
-
-/** \brief IPv6 segment routing tunnel add / del response
- @param context - sender context, to match reply w/ request
- @param retval - return value for request
-*/
-define sr_tunnel_add_del_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief IPv6 segment routing policy add / del request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param is_add - add the tunnel if non-zero, else delete it
- @param name[] - policy name (len. 64)
- @param tunnel_names[] -
-*/
-define sr_policy_add_del
-{
- u32 client_index;
- u32 context;
- u8 is_add;
- u8 name[64];
- u8 tunnel_names[0];
-};
-
-/** \brief IPv6 segment routing policy add / del response
- @param context - sender context, to match reply w/ request
- @param retval - return value for request
-*/
-define sr_policy_add_del_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief IPv6 segment routing multicast map to policy add / del request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param is_add - add the tunnel if non-zero, else delete it
- @param multicast_address[] - IP6 multicast address
- @param policy_name[] = policy name (len.64)
-*/
-define sr_multicast_map_add_del
-{
- u32 client_index;
- u32 context;
- u8 is_add;
- u8 multicast_address[16];
- u8 policy_name[64];
-};
-
-/** \brief IPv6 segment routing multicast map to policy add / del response
- @param context - sender context, to match reply w/ request
- @param retval - return value for request
-*/
-define sr_multicast_map_add_del_reply
-{
- u32 context;
- i32 retval;
-};
-
/** \brief Interface set vpath request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
i32 retval;
};
-/** \brief L2 FIB add entry request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param mac - the entry's mac address
- @param bd_id - the entry's bridge domain id
- @param sw_if_index - the interface
- @param is_add - If non zero add the entry, else delete it
- @param static_mac -
- @param filter_mac -
-*/
-define l2fib_add_del
-{
- u32 client_index;
- u32 context;
- u64 mac;
- u32 bd_id;
- u32 sw_if_index;
- u8 is_add;
- u8 static_mac;
- u8 filter_mac;
- u8 bvi_mac;
-};
-
-/** \brief L2 FIB add entry response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the add l2fib entry request
-*/
-define l2fib_add_del_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief Set L2 flags request !!! TODO - need more info, feature bits in l2_input.h
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param sw_if_index - interface
- @param is_set - if non-zero, set the bits, else clear them
- @param feature_bitmap - non-zero bits to set or clear
-*/
-define l2_flags
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u8 is_set;
- u32 feature_bitmap;
-};
-
-/** \brief Set L2 bits response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the set l2 bits request
-*/
-define l2_flags_reply
-{
- u32 context;
- i32 retval;
- u32 resulting_feature_bitmap;
-};
-
-/** \brief Set bridge flags (such as L2_LEARN, L2_FWD, L2_FLOOD,
- L2_UU_FLOOD, or L2_ARP_TERM) request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param bd_id - the bridge domain to set the flags for
- @param is_set - if non-zero, set the flags, else clear them
- @param feature_bitmap - bits that are non-zero to set or clear
-*/
-define bridge_flags
-{
- u32 client_index;
- u32 context;
- u32 bd_id;
- u8 is_set;
- u32 feature_bitmap;
-};
-
-/** \brief Set bridge flags response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the set bridge flags request
- @param resulting_feature_bitmap - the feature bitmap value after the request is implemented
-*/
-define bridge_flags_reply
-{
- u32 context;
- i32 retval;
- u32 resulting_feature_bitmap;
-};
-
/** \brief Set bridge domain ip to mac entry request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
i32 retval;
};
-/** \brief Add/Delete classification table request
- @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
- @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
-{
- u32 client_index;
- u32 context;
- u8 is_add;
- u8 del_chain;
- u32 table_index;
- u32 nbuckets;
- u32 memory_size;
- u32 skip_n_vectors;
- u32 match_n_vectors;
- u32 next_table_index;
- u32 miss_next_index;
- u32 current_data_flag;
- i32 current_data_offset;
- u8 mask[0];
-};
-
-/** \brief Add/Delete classification table response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the table add/del requst
- @param new_table_index - for add, returned index of the new table
- @param skip_n_vectors - for add, returned value of skip_n_vectors in table
- @param match_n_vectors -for add, returned value of match_n_vectors in table
-*/
-define classify_add_del_table_reply
-{
- u32 context;
- i32 retval;
- u32 new_table_index;
- u32 skip_n_vectors;
- u32 match_n_vectors;
-};
-
-/** \brief Classify add / del session request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param is_add - add session if non-zero, else delete
- @param table_index - index of the table to add/del the session, required
- @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
-{
- u32 client_index;
- u32 context;
- u8 is_add;
- u32 table_index;
- u32 hit_next_index;
- u32 opaque_index;
- i32 advance;
- u8 action;
- u32 metadata;
- u8 match[0];
-};
-
-/** \brief Classify add / del session response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the add/del session request
-*/
-define classify_add_del_session_reply
-{
- u32 context;
- i32 retval;
-};
-
/** \brief Set/unset the classification table for an interface request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
i32 retval;
};
-/** \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
-*/
-define l2_fib_clear_table
-{
- u32 client_index;
- u32 context;
-};
-
-/** \brief L2 fib clear table response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define l2_fib_clear_table_reply
-{
- u32 context;
- i32 retval;
-};
-
/** \brief L2 interface ethernet flow point filtering enable/disable request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
u8 build_directory[256];
};
-/** \brief l2 fib table entry structure
- @param bd_id - the l2 fib / bridge domain table id
- @param mac - the entry's mac address
- @param sw_if_index - index of the interface
- @param static_mac - the entry is statically configured.
- @param filter_mac - the entry is a mac filter entry.
- @param bvi_mac - the mac address is a bridge virtual interface
-*/
-define l2_fib_table_entry
-{
- u32 context;
- u32 bd_id;
- u64 mac;
- u32 sw_if_index;
- u8 static_mac;
- u8 filter_mac;
- u8 bvi_mac;
-};
-
-/** \brief Dump l2 fib (aka bridge domain) table
- @param client_index - opaque cookie to identify the sender
- @param bd_id - the l2 fib / bridge domain table identifier
-*/
-define l2_fib_table_dump
-{
- u32 client_index;
- u32 context;
- u32 bd_id;
-};
-
/* Gross kludge, DGMS */
define interface_name_renumber
{
u8 mac_ip;
};
-/** \brief L2 bridge domain add or delete request
+/** \brief DHCP Client config add / del request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
- @param bd_id - the bridge domain to create
- @param flood - enable/disable bcast/mcast flooding in the bd
- @param uu_flood - enable/disable uknown unicast flood in the bd
- @param forward - enable/disable forwarding on all interfaces in the bd
- @param learn - enable/disable learning on all interfaces in the bd
- @param arp_term - enable/disable arp termination in the bd
- @param mac_age - mac aging time in min, 0 for disabled
- @param is_add - add or delete flag
+ @param sw_if_index - index of the interface for DHCP client
+ @param hostname - hostname
+ @param is_add - add the config if non-zero, else delete
+ @param want_dhcp_event - DHCP event sent to the sender
+ via dhcp_compl_event API message if non-zero
+ @param pid - sender's pid
*/
-define bridge_domain_add_del
-{
- u32 client_index;
- u32 context;
- u32 bd_id;
- u8 flood;
- u8 uu_flood;
- u8 forward;
- u8 learn;
- u8 arp_term;
- u8 mac_age;
- u8 is_add;
-};
-
-/** \brief L2 bridge domain add or delete response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the set bridge flags request
-*/
-define bridge_domain_add_del_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief L2 bridge domain request operational state details
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param bd_id - the bridge domain id desired or ~0 to request all bds
-*/
-define bridge_domain_dump
-{
- u32 client_index;
- u32 context;
- u32 bd_id;
-};
-
-/** \brief L2 bridge domain operational state response
- @param bd_id - the bridge domain id
- @param flood - bcast/mcast flooding state on all interfaces in the bd
- @param uu_flood - uknown unicast flooding state on all interfaces in the bd
- @param forward - forwarding state on all interfaces in the bd
- @param learn - learning state on all interfaces in the bd
- @param arp_term - arp termination state on all interfaces in the bd
- @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
-{
- u32 context;
- u32 bd_id;
- u8 flood;
- u8 uu_flood;
- u8 forward;
- u8 learn;
- u8 arp_term;
- u8 mac_age;
- u32 bvi_sw_if_index;
- u32 n_sw_ifs;
-};
-
-/** \brief L2 bridge domain sw interface operational state response
- @param bd_id - the bridge domain id
- @param sw_if_index - sw_if_index in the domain
- @param shg - split horizon group for the interface
-*/
-define bridge_domain_sw_if_details
-{
- u32 context;
- u32 bd_id;
- u32 sw_if_index;
- u8 shg;
-};
-
-/** \brief DHCP Client config 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 - index of the interface for DHCP client
- @param hostname - hostname
- @param is_add - add the config if non-zero, else delete
- @param want_dhcp_event - DHCP event sent to the sender
- via dhcp_compl_event API message if non-zero
- @param pid - sender's pid
-*/
-define dhcp_client_config
+define dhcp_client_config
{
u32 client_index;
u32 context;
u64 last_update_time;
};
-/** \brief Set/unset policer classify interface
- @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/unset policer classify
- @param ip4_table_index - ip4 classify table index (~0 for skip)
- @param ip6_table_index - ip6 classify table index (~0 for skip)
- @param l2_table_index - l2 classify table index (~0 for skip)
- @param is_add - Set if non-zero, else unset
- Note: User is recommeneded to use just one valid table_index per call.
- (ip4_table_index, ip6_table_index, or l2_table_index)
-*/
-define policer_classify_set_interface
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u32 ip4_table_index;
- u32 ip6_table_index;
- u32 l2_table_index;
- u8 is_add;
-};
-
-/** \brief Set/unset policer classify interface response
- @param context - sender context, to match reply w/ request
- @param retval - return value for request
-*/
-define policer_classify_set_interface_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief Get list of policer classify interfaces and tables
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param type - classify table type
-*/
-define policer_classify_dump
-{
- u32 client_index;
- u32 context;
- u8 type;
-};
-
-/** \brief Policer iclassify operational state response.
- @param context - sender context, to match reply w/ request
- @param sw_if_index - software interface index
- @param table_index - classify table index
-*/
-define policer_classify_details
-{
- u32 context;
- u32 sw_if_index;
- u32 table_index;
-};
-
-/** \brief Classify get table IDs request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-*/
-define classify_table_ids
-{
- u32 client_index;
- u32 context;
-};
-
-/** \brief Reply for classify get table IDs request
- @param context - sender context which was passed in the request
- @param count - number of ids returned in response
- @param ids - array of classify table ids
-*/
-define classify_table_ids_reply
-{
- u32 context;
- i32 retval;
- u32 count;
- u32 ids[count];
-};
-
-/** \brief Classify table ids by interface index request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param sw_if_index - index of the interface
-*/
-define classify_table_by_interface
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
-};
-
-/** \brief Reply for classify table id by interface index request
- @param context - sender context which was passed in the request
- @param count - number of ids returned in response
- @param sw_if_index - index of the interface
- @param l2_table_id - l2 classify table index
- @param ip4_table_id - ip4 classify table index
- @param ip6_table_id - ip6 classify table index
-*/
-define classify_table_by_interface_reply
-{
- u32 context;
- i32 retval;
- u32 sw_if_index;
- u32 l2_table_id;
- u32 ip4_table_id;
- u32 ip6_table_id;
-};
-
-/** \brief Classify table info
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param table_id - classify table index
-*/
-define classify_table_info
-{
- u32 client_index;
- u32 context;
- u32 table_id;
-};
-
-/** \brief Reply for classify table info request
- @param context - sender context which was passed in the request
- @param count - number of ids returned in response
- @param table_id - classify table index
- @param nbuckets - number of buckets when adding a table
- @param match_n_vectors - number of match vectors
- @param skip_n_vectors - number of skip_n_vectors
- @param active_sessions - number of sessions (active entries)
- @param next_table_index - index of next table
- @param miss_next_index - index of miss table
- @param mask[] - match mask
-*/
-define classify_table_info_reply
-{
- u32 context;
- i32 retval;
- u32 table_id;
- u32 nbuckets;
- u32 match_n_vectors;
- u32 skip_n_vectors;
- u32 active_sessions;
- u32 next_table_index;
- u32 miss_next_index;
- u32 mask_length;
- u8 mask[mask_length];
-};
-
-/** \brief Classify sessions dump request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param table_id - classify table index
-*/
-define classify_session_dump
-{
- u32 client_index;
- u32 context;
- u32 table_id;
-};
-
-/** \brief Reply for classify table session dump request
- @param context - sender context which was passed in the request
- @param count - number of ids returned in response
- @param table_id - classify table index
- @param hit_next_index - hit_next_index of session
- @param opaque_index - for add, opaque_index of session
- @param advance - advance value of session
- @param match[] - match value for session
-*/
-define classify_session_details
-{
- u32 context;
- i32 retval;
- u32 table_id;
- u32 hit_next_index;
- i32 advance;
- u32 opaque_index;
- u32 match_length;
- u8 match[match_length];
-};
-
-/** \brief Configure IPFIX exporter process request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param collector_address - address of IPFIX collector
- @param collector_port - port of IPFIX collector
- @param src_address - address of IPFIX exporter
- @param vrf_id - VRF / fib table ID
- @param path_mtu - Path MTU between exporter and collector
- @param template_interval - number of seconds after which to resend template
- @param udp_checksum - UDP checksum calculation enable flag
-*/
-define set_ipfix_exporter
-{
- u32 client_index;
- u32 context;
- u8 collector_address[16];
- u16 collector_port;
- u8 src_address[16];
- u32 vrf_id;
- u32 path_mtu;
- u32 template_interval;
- u8 udp_checksum;
-};
-
-/** \brief Reply to IPFIX exporter configure request
- @param context - sender context which was passed in the request
-*/
-define set_ipfix_exporter_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief IPFIX exporter dump request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-*/
-define ipfix_exporter_dump
-{
- u32 client_index;
- u32 context;
-};
-
-/** \brief Reply to IPFIX exporter dump request
- @param context - sender context which was passed in the request
- @param collector_address - address of IPFIX collector
- @param collector_port - port of IPFIX collector
- @param src_address - address of IPFIX exporter
- @param fib_index - fib table index
- @param path_mtu - Path MTU between exporter and collector
- @param template_interval - number of seconds after which to resend template
- @param udp_checksum - UDP checksum calculation enable flag
-*/
-define ipfix_exporter_details
-{
- u32 context;
- u8 collector_address[16];
- u16 collector_port;
- u8 src_address[16];
- u32 vrf_id;
- u32 path_mtu;
- u32 template_interval;
- u8 udp_checksum;
-};
-
-/** \brief IPFIX classify stream configure request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param domain_id - domain ID reported in IPFIX messages for classify stream
- @param src_port - source port of UDP session for classify stream
-*/
-define set_ipfix_classify_stream {
- u32 client_index;
- u32 context;
- u32 domain_id;
- u16 src_port;
-};
-
-/** \brief IPFIX classify stream configure response
- @param context - sender context, to match reply w/ request
- @param retval - return value for request
-*/
-define set_ipfix_classify_stream_reply {
- u32 context;
- i32 retval;
-};
-
-/** \brief IPFIX classify stream dump request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-*/
-define ipfix_classify_stream_dump {
- u32 client_index;
- u32 context;
-};
-
-/** \brief Reply to IPFIX classify stream dump request
- @param context - sender context, to match reply w/ request
- @param domain_id - domain ID reported in IPFIX messages for classify stream
- @param src_port - source port of UDP session for classify stream
-*/
-define ipfix_classify_stream_details {
- u32 context;
- u32 domain_id;
- u16 src_port;
-};
-
-/** \brief IPFIX add or delete classifier table request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param table_id - classifier table ID
- @param ip_version - version of IP used in the classifier table
- @param transport_protocol - transport protocol used in the classifier table or 255 for unspecified
-*/
-define ipfix_classify_table_add_del {
- u32 client_index;
- u32 context;
- u32 table_id;
- u8 ip_version;
- u8 transport_protocol;
- u8 is_add;
-};
-
-/** \brief IPFIX add classifier table response
- @param context - sender context which was passed in the request
-*/
-define ipfix_classify_table_add_del_reply {
- u32 context;
- i32 retval;
-};
-
-/** \brief IPFIX classify tables dump request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-*/
-define ipfix_classify_table_dump {
- u32 client_index;
- u32 context;
-};
-
-/** \brief Reply to IPFIX classify tables dump request
- @param context - sender context, to match reply w/ request
- @param table_id - classifier table ID
- @param ip_version - version of IP used in the classifier table
- @param transport_protocol - transport protocol used in the classifier table or 255 for unspecified
-*/
-define ipfix_classify_table_details {
- u32 context;
- u32 table_id;
- u8 ip_version;
- u8 transport_protocol;
-};
-
-/** \brief Set/unset flow classify interface
- @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/unset flow classify
- @param ip4_table_index - ip4 classify table index (~0 for skip)
- @param ip6_table_index - ip6 classify table index (~0 for skip)
- @param l2_table_index - l2 classify table index (~0 for skip)
- @param is_add - Set if non-zero, else unset
- Note: User is recommeneded to use just one valid table_index per call.
- (ip4_table_index, ip6_table_index, or l2_table_index)
-*/
-define flow_classify_set_interface {
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u32 ip4_table_index;
- u32 ip6_table_index;
- u8 is_add;
-};
-
-/** \brief Set/unset flow classify interface response
- @param context - sender context, to match reply w/ request
- @param retval - return value for request
-*/
-define flow_classify_set_interface_reply {
- u32 context;
- i32 retval;
-};
-
-/** \brief Get list of flow classify interfaces and tables
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param type - classify table type
-*/
-define flow_classify_dump {
- u32 client_index;
- u32 context;
- u8 type;
-};
-
-/** \brief Flow classify operational state response.
- @param context - sender context, to match reply w/ request
- @param sw_if_index - software interface index
- @param table_index - classify table index
-*/
-define flow_classify_details {
- u32 context;
- u32 sw_if_index;
- u32 table_index;
-};
-
/** \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
i32 retval;
};
-/** \brief DPDK interface HQoS pipe profile set request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param sw_if_index - the interface
- @param subport - subport ID
- @param pipe - pipe ID within its subport
- @param profile - pipe profile ID
-*/
-define sw_interface_set_dpdk_hqos_pipe {
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u32 subport;
- u32 pipe;
- u32 profile;
-};
-
-/** \brief DPDK interface HQoS pipe profile set reply
- @param context - sender context, to match reply w/ request
- @param retval - request return code
-*/
-define sw_interface_set_dpdk_hqos_pipe_reply {
- u32 context;
- i32 retval;
-};
-
-/** \brief DPDK interface HQoS subport parameters set request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param sw_if_index - the interface
- @param subport - subport ID
- @param tb_rate - subport token bucket rate (measured in bytes/second)
- @param tb_size - subport token bucket size (measured in credits)
- @param tc_rate - subport traffic class 0 .. 3 rates (measured in bytes/second)
- @param tc_period - enforcement period for rates (measured in milliseconds)
-*/
-define sw_interface_set_dpdk_hqos_subport {
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u32 subport;
- u32 tb_rate;
- u32 tb_size;
- u32 tc_rate[4];
- u32 tc_period;
-};
-
-/** \brief DPDK interface HQoS subport parameters set reply
- @param context - sender context, to match reply w/ request
- @param retval - request return code
-*/
-define sw_interface_set_dpdk_hqos_subport_reply {
- u32 context;
- i32 retval;
-};
-
-/** \brief DPDK interface HQoS tctbl entry set request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param sw_if_index - the interface
- @param entry - entry index ID
- @param tc - traffic class (0 .. 3)
- @param queue - traffic class queue (0 .. 3)
-*/
-define sw_interface_set_dpdk_hqos_tctbl {
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u32 entry;
- u32 tc;
- u32 queue;
-};
-
-/** \brief DPDK interface HQoS tctbl entry set reply
- @param context - sender context, to match reply w/ request
- @param retval - request return code
-*/
-define sw_interface_set_dpdk_hqos_tctbl_reply {
- u32 context;
- i32 retval;
-};
-
/** \brief L2 interface pbb tag rewrite configure request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request