* 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}
+ * SESSION APIs: .../vnet/session/{session.api session_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}
+ * DHCP APIs: see ... /src/vnet/dhcp/{dhcpk.api, dhcp_api.c}
+ * COP APIs: see ... /src/vnet/cop/{cop.api, cop_api.c}
+ * POLICER APIs: see ... /src/vnet/policer/{policer.api, policer_api.c}
*/
/** \brief Create a new subinterface with the given vlan id
vl_api_ip4_fib_counter_t c[count];
};
+typeonly manual_print manual_endian define ip4_nbr_counter
+{
+ u32 address;
+ u8 link_type;
+ u64 packets;
+ u64 bytes;
+};
+
+/**
+ * @brief Per-neighbour (i.e. per-adjacency) coutners
+ * @param count The size of the array of counters
+ * @param sw_if_index The interface the adjacency is on
+ * @param begin Flag to indicate this is the first set of stats for this
+ * interface. If this flag is not set the it is a continuation of
+ * stats for this interface
+ * @param c counters
+ */
+manual_print manual_endian define vnet_ip4_nbr_counters
+{
+ u32 count;
+ u32 sw_if_index;
+ u8 begin;
+ vl_api_ip4_nbr_counter_t c[count];
+};
+
typeonly manual_print manual_endian define ip6_fib_counter
{
u64 address[2];
vl_api_ip6_fib_counter_t c[count];
};
+typeonly manual_print manual_endian define ip6_nbr_counter
+{
+ u64 address[2];
+ u8 link_type;
+ u64 packets;
+ u64 bytes;
+};
+
+manual_print manual_endian define vnet_ip6_nbr_counters
+{
+ u32 count;
+ u32 sw_if_index;
+ u8 begin;
+ vl_api_ip6_nbr_counter_t c[count];
+};
+
/** \brief Request for a single block of summary stats
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
i32 retval;
};
-/** \brief DHCP Proxy config 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
- @param if_ipv6 - ipv6 if non-zero, else ipv4
- @param is_add - add the config if non-zero, else delete
- @param insert_circuit_id - option82 suboption 1 fib number
- @param dhcp_server[] - server address
- @param dhcp_src_address[] - <fix this, need details>
-*/
-define dhcp_proxy_config
-{
- u32 client_index;
- u32 context;
- u32 vrf_id;
- u8 is_ipv6;
- u8 is_add;
- u8 insert_circuit_id;
- u8 dhcp_server[16];
- u8 dhcp_src_address[16];
-};
-
-/** \brief DHCP Proxy config response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define dhcp_proxy_config_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief DHCP Proxy set / unset vss request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param tbl_id - table id
- @param oui - first part of vpn id
- @param fib_id - second part of vpn id
- @param is_ipv6 - ip6 if non-zero, else ip4
- @param is_add - set vss if non-zero, else delete
-*/
-define dhcp_proxy_set_vss
-{
- u32 client_index;
- u32 context;
- 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 Create loopback interface request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
u32 next_index;
};
-/** \brief DHCP Proxy config 2 add / del request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param rx_vrf_id - receive vrf id
- @param server_vrf_id - server vrf id
- @param if_ipv6 - ipv6 if non-zero, else ipv4
- @param is_add - add the config if non-zero, else delete
- @param insert_circuit_id - option82 suboption 1 fib number
- @param dhcp_server[] - server address
- @param dhcp_src_address[] - <fix this, need details>
-*/
-define dhcp_proxy_config_2
-{
- u32 client_index;
- u32 context;
- u32 rx_vrf_id;
- u32 server_vrf_id;
- u8 is_ipv6;
- u8 is_add;
- u8 insert_circuit_id;
- u8 dhcp_server[16];
- u8 dhcp_src_address[16];
-};
-
-/** \brief DHCP Proxy config 2 add / del response
- @param context - sender context, to match reply w/ request
- @param retval - return code for request
-*/
-define dhcp_proxy_config_2_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
i32 retval;
};
-/** \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
- @param sw_if_index - interface the operation is applied to
- @param vtr_op - Choose from l2_vtr_op_t enum values
- @param push_dot1q - first pushed flag dot1q id set, else dot1ad
- @param tag1 - Needed for any push or translate vtr op
- @param tag2 - Needed for any push 2 or translate x-2 vtr ops
-*/
-define l2_interface_vlan_tag_rewrite
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u32 vtr_op;
- u32 push_dot1q; // ethertype of first pushed tag is dot1q/dot1ad
- u32 tag1; // first pushed tag
- u32 tag2; // second pushed tag
-};
-
-/** \brief L2 interface vlan tag rewrite response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define l2_interface_vlan_tag_rewrite_reply
-{
- u32 context;
- i32 retval;
-};
-
define create_subif
{
u32 client_index;
u8 mac_ip;
};
-/** \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
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u8 hostname[64];
- u8 is_add;
- u8 want_dhcp_event;
- u32 pid;
-};
-
-/** \brief DHCP Client config response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define dhcp_client_config_reply
-{
- u32 context;
- i32 retval;
-};
-
/** \brief Set/unset input ACL interface
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
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 cop: enable/disable junk filtration features on an interface
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param sw_if_inded - desired interface
- @param enable_disable - 1 => enable, 0 => disable
-*/
-
-define cop_interface_enable_disable
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u8 enable_disable;
-};
-
-/** \brief cop: interface enable/disable junk filtration reply
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-
-define cop_interface_enable_disable_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief cop: enable/disable whitelist filtration features on an interface
- Note: the supplied fib_id must match in order to remove the feature!
-
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param sw_if_index - interface handle, physical interfaces only
- @param fib_id - fib identifier for the whitelist / blacklist fib
- @param ip4 - 1 => enable ip4 filtration, 0=> disable ip4 filtration
- @param ip6 - 1 => enable ip6 filtration, 0=> disable ip6 filtration
- @param default_cop - 1 => enable non-ip4, non-ip6 filtration 0=> disable it
-*/
-
-define cop_whitelist_enable_disable
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u32 fib_id;
- u8 ip4;
- u8 ip6;
- u8 default_cop;
-};
-
-/** \brief cop: interface enable/disable junk filtration reply
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-
-define cop_whitelist_enable_disable_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief get_node_graph - get a copy of the vpp node graph
- including the current set of graph arcs.
-
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-*/
-
define get_node_graph
{
u32 client_index;
i32 retval;
};
-/** \brief Add/del policer
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param is_add - add policer if non-zero, else delete
- @param name - policer name
- @param cir - CIR
- @param eir - EIR
- @param cb - Committed Burst
- @param eb - Excess or Peak Burst
- @param rate_type - rate type
- @param round_type - rounding type
- @param type - policer algorithm
- @param color_aware - 0=color-blind, 1=color-aware
- @param conform_action_type - conform action type
- @param conform_dscp - DSCP for conform mar-and-transmit action
- @param exceed_action_type - exceed action type
- @param exceed_dscp - DSCP for exceed mar-and-transmit action
- @param violate_action_type - violate action type
- @param violate_dscp - DSCP for violate mar-and-transmit action
-*/
-define policer_add_del
-{
- u32 client_index;
- u32 context;
-
- u8 is_add;
- u8 name[64];
- u32 cir;
- u32 eir;
- u64 cb;
- u64 eb;
- u8 rate_type;
- u8 round_type;
- u8 type;
- u8 color_aware;
- u8 conform_action_type;
- u8 conform_dscp;
- u8 exceed_action_type;
- u8 exceed_dscp;
- u8 violate_action_type;
- u8 violate_dscp;
-};
-
-/** \brief Add/del policer response
- @param context - sender context, to match reply w/ request
- @param retval - return value for request
- @param policer_index - for add, returned index of the new policer
-*/
-define policer_add_del_reply
-{
- u32 context;
- i32 retval;
- u32 policer_index;
-};
-
-/** \brief Get list of policers
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param match_name_valid - if 0 request all policers otherwise use match_name
- @param match_name - policer name
-*/
-define policer_dump
-{
- u32 client_index;
- u32 context;
-
- u8 match_name_valid;
- u8 match_name[64];
-};
-
-/** \brief Policer operational state response.
- @param context - sender context, to match reply w/ request
- @param name - policer name
- @param cir - CIR
- @param eir - EIR
- @param cb - Committed Burst
- @param eb - Excess or Peak Burst
- @param rate_type - rate type
- @param round_type - rounding type
- @param type - policer algorithm
- @param conform_action_type - conform action type
- @param conform_dscp - DSCP for conform mar-and-transmit action
- @param exceed_action_type - exceed action type
- @param exceed_dscp - DSCP for exceed mar-and-transmit action
- @param violate_action_type - violate action type
- @param violate_dscp - DSCP for violate mar-and-transmit action
- @param single_rate - 1 = single rate policer, 0 = two rate policer
- @param color_aware - for hierarchical policing
- @param scale - power-of-2 shift amount for lower rates
- @param cir_tokens_per_period - number of tokens for each period
- @param pir_tokens_per_period - number of tokens for each period for 2-rate policer
- @param current_limit - current limit
- @param current_bucket - current bucket
- @param extended_limit - extended limit
- @param extended_bucket - extended bucket
- @param last_update_time - last update time
-*/
-define policer_details
-{
- u32 context;
-
- u8 name[64];
- u32 cir;
- u32 eir;
- u64 cb;
- u64 eb;
- u8 rate_type;
- u8 round_type;
- u8 type;
- u8 conform_action_type;
- u8 conform_dscp;
- u8 exceed_action_type;
- u8 exceed_dscp;
- u8 violate_action_type;
- u8 violate_dscp;
- u8 single_rate;
- u8 color_aware;
- u32 scale;
- u32 cir_tokens_per_period;
- u32 pir_tokens_per_period;
- u32 current_limit;
- u32 current_bucket;
- u32 extended_limit;
- u32 extended_bucket;
- u64 last_update_time;
-};
-
/** \brief 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 L2 interface pbb tag rewrite configure request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param sw_if_index - interface the operation is applied to
- @param vtr_op - Choose from l2_vtr_op_t enum values
- @param inner_tag - needed for translate_qinq vtr op only
- @param outer_tag - needed for translate_qinq vtr op only
- @param b_dmac - B-tag remote mac address, needed for any push or translate_qinq vtr op
- @param b_smac - B-tag local mac address, needed for any push or translate qinq vtr op
- @param b_vlanid - B-tag vlanid, needed for any push or translate qinq vtr op
- @param i_sid - I-tag service id, needed for any push or translate qinq vtr op
-*/
-define l2_interface_pbb_tag_rewrite
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u32 vtr_op;
- u16 outer_tag;
- u8 b_dmac[6];
- u8 b_smac[6];
- u16 b_vlanid;
- u32 i_sid;
-};
-
-/** \brief L2 interface pbb tag rewrite response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define l2_interface_pbb_tag_rewrite_reply
-{
- u32 context;
- i32 retval;
-};
-
/** \brief Punt traffic to the host
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request