called through a shared memory interface.
*/
+vl_api_version 1.0.0
+
/*
* 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}
+ * GENEVE APIs: see .../src/vnet/geneve/{geneve.api, geneve_api.c}
+ * LLDP APIs: see .../src/vnet/lldp/{lldp.api, lldp_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}
- * DPDK APIs: ... see /src/vnet/devices/dpdk/{dpdk.api, dpdk_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}
+ * 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/srv6/{sr.api, sr_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}
+ * STATS APIs: see .../src/vpp/stats/{stats.api, stats.c}
*/
/** \brief Create a new subinterface with the given vlan id
@param sw_if_index - index of the interface
@param enable - if non-zero enable, else disable
*/
-define sw_interface_set_mpls_enable
+autoreply define sw_interface_set_mpls_enable
{
u32 client_index;
u32 context;
u8 enable;
};
-/** \brief Reply for MPLS state on an interface
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-define sw_interface_set_mpls_enable_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief MPLS Route Add / del route
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @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
@param low_address[4] - Low address of the Proxy ARP range
@param hi_address[4] - High address of the Proxy ARP range
*/
-define proxy_arp_add_del
+autoreply define proxy_arp_add_del
{
u32 client_index;
u32 context;
u8 hi_address[4];
};
-/** \brief Reply for proxy arp add / del request
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-define proxy_arp_add_del_reply
-{
- u32 context;
- i32 retval;
-};
-
/** \brief Proxy ARP add / del request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param sw_if_index - Which interface to enable / disable Proxy Arp on
@param enable_disable - 1 to enable Proxy ARP on interface, 0 to disable
*/
-define proxy_arp_intfc_enable_disable
+autoreply define proxy_arp_intfc_enable_disable
{
u32 client_index;
u32 context;
u8 enable_disable;
};
-/** \brief Reply for Proxy ARP interface enable / disable request
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-define proxy_arp_intfc_enable_disable_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
@param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4
@param vrf_id - ID of th FIB table / VRF to reset
*/
-define reset_vrf
+autoreply define reset_vrf
{
u32 client_index;
u32 context;
u32 vrf_id;
};
-/** \brief Reply for Reset VRF request
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-define reset_vrf_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief Is Address Reachable request - DISABLED
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param next_hop_sw_if_index - index of interface used to get to next hop
- @param is_ipv6 - 1 for IPv6, 0 for IPv4
- @param is_error - address not found or does not match intf
- @param address[] - Address in question
-*/
-define is_address_reachable
-{
- u32 client_index; /* (api_main_t *) am->my_client_index */
- u32 context;
- u32 next_hop_sw_if_index;
- u8 is_known; /* on reply, this is the answer */
- u8 is_ipv6;
- u8 is_error; /* address not found or does not match intf */
- u8 address[16];
-};
-
-/** \brief Want Stats, register for stats updates
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param enable_disable - 1 = enable stats, 0 = disable
- @param pid - pid of process requesting stats updates
-*/
-define want_stats
-{
- u32 client_index;
- u32 context;
- u32 enable_disable;
- u32 pid;
-};
-
-/** \brief Reply for Want Stats request
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-define want_stats_reply
-{
- u32 context;
- i32 retval;
-};
-
-typeonly manual_print manual_endian define ip4_fib_counter
-{
- u32 address;
- u8 address_length;
- u64 packets;
- u64 bytes;
-};
-
-manual_print manual_endian define vnet_ip4_fib_counters
-{
- u32 vrf_id;
- u32 count;
- vl_api_ip4_fib_counter_t c[count];
-};
-
-typeonly manual_print manual_endian define ip6_fib_counter
-{
- u64 address[2];
- u8 address_length;
- u64 packets;
- u64 bytes;
-};
-
-manual_print manual_endian define vnet_ip6_fib_counters
-{
- u32 vrf_id;
- u32 count;
- vl_api_ip6_fib_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
-*/
-define vnet_get_summary_stats
-{
- u32 client_index;
- u32 context;
-};
-
-/** \brief Reply for vnet_get_summary_stats request
- @param context - sender context, to match reply w/ request
- @param retval - return code for request
- @param total_pkts -
- @param total_bytes -
- @param vector_rate -
-*/
-define vnet_summary_stats_reply
-{
- u32 context;
- i32 retval;
- u64 total_pkts[2];
- u64 total_bytes[2];
- f64 vector_rate;
-};
-
/** \brief OAM event structure
@param dst_address[] -
@param state
@param enable_disable- enable if non-zero, else disable
@param pid - pid of the requesting process
*/
-define want_oam_events
+autoreply define want_oam_events
{
u32 client_index;
u32 context;
u32 pid;
};
-/** \brief Want OAM events response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the want oam stats request
-*/
-define want_oam_events_reply
-{
- u32 context;
- i32 retval;
-};
-
/** \brief OAM add / del target request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param dst_address[] - destination address of the target
@param is_add - add target if non-zero, else delete
*/
-define oam_add_del
+autoreply define oam_add_del
{
u32 client_index;
u32 context;
u8 is_add;
};
-/** \brief OAM add / del target response
- @param context - sender context, to match reply w/ request
- @param retval - return code of the request
-*/
-define oam_add_del_reply
-{
- u32 context;
- i32 retval;
-};
-
/** \brief Reset fib table request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param vrf_id - vrf/table id of the fib table to reset
@param is_ipv6 - an ipv6 fib to reset if non-zero, else ipv4
*/
-define reset_fib
-{
- u32 client_index;
- u32 context;
- u32 vrf_id;
- u8 is_ipv6;
-};
-
-/** \brief Reset fib response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the reset bfib request
-*/
-define reset_fib_reply
-{
- u32 context;
- 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
+autoreply define reset_fib
{
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
+/** \brief Create loopback interface 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
+ @param mac_address - mac addr to assign to the interface if none-zero
*/
-define dhcp_proxy_set_vss
+define create_loopback
{
u32 client_index;
u32 context;
- u32 tbl_id;
- u32 oui;
- u32 fib_id;
- u8 is_ipv6;
- u8 is_add;
+ u8 mac_address[6];
};
-/** \brief DHCP proxy set / unset vss response
+/** \brief Create loopback interface response
@param context - sender context, to match reply w/ request
+ @param sw_if_index - sw index of the interface that was created
@param retval - return code for the request
*/
-define dhcp_proxy_set_vss_reply
+define create_loopback_reply
{
u32 context;
i32 retval;
+ u32 sw_if_index;
};
-/** \brief Create loopback interface request
+/** \brief Create loopback interface instance request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param mac_address - mac addr to assign to the interface if none-zero
+ @param is_specified - if non-0, a specific user_instance is being requested
+ @param user_instance - requested instance, ~0 => dynamically allocate
*/
-define create_loopback
+define create_loopback_instance
{
u32 client_index;
u32 context;
u8 mac_address[6];
+ u8 is_specified;
+ u32 user_instance;
};
-/** \brief Create loopback interface response
+/** \brief Create loopback interface instance response
@param context - sender context, to match reply w/ request
@param sw_if_index - sw index of the interface that was created
@param retval - return code for the request
*/
-define create_loopback_reply
+define create_loopback_instance_reply
{
u32 context;
i32 retval;
@param context - sender context, to match reply w/ request
@param sw_if_index - sw index of the interface that was created
*/
-define delete_loopback
+autoreply define delete_loopback
{
u32 client_index;
u32 context;
u32 sw_if_index;
};
-/** \brief Delete loopback interface response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define delete_loopback_reply
-{
- u32 context;
- i32 retval;
-};
-
/** \brief Control ping from client to api server request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param context - sender context, to match reply w/ request
@param cmd_in_shmem - pointer to cli command string
*/
-define cli_request
+define cli
{
u32 client_index;
u32 context;
@param is_ipv6 - neighbor limit if non-zero, else ARP limit
@param arp_neighbor_limit - the new limit, defaults are ~ 50k
*/
-define set_arp_neighbor_limit
+autoreply define set_arp_neighbor_limit
{
u32 client_index;
u32 context;
u32 arp_neighbor_limit;
};
-/** \brief Set max allowed ARP or ip6 neighbor entries response
- @param context - sender context, to match reply w/ request
- @param retval - return code for request
-*/
-define set_arp_neighbor_limit_reply
-{
- u32 context;
- i32 retval;
-};
-
/** \brief L2 interface patch add / del request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param tx_sw_if_index - transmit side interface
@param is_add - if non-zero set up the interface patch, else remove it
*/
-define l2_patch_add_del
+autoreply define l2_patch_add_del
{
u32 client_index;
u32 context;
u8 is_add;
};
-/** \brief L2 interface patch add / del response
+/** \brief Interface set vpath request
+ @param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
- @param retval - return code for the request
+ @param sw_if_index - interface used to reach neighbor
+ @param enable - if non-zero enable, else disable
*/
-define l2_patch_add_del_reply
+autoreply define sw_interface_set_vpath
{
+ u32 client_index;
u32 context;
- i32 retval;
+ u32 sw_if_index;
+ u8 enable;
};
-/** \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
- @param sw_if_index - interface used to reach neighbor
- @param enable - if non-zero enable, else disable
-*/
-define sw_interface_set_vpath
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u8 enable;
-};
-
-/** \brief Interface set vpath response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define sw_interface_set_vpath_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief Set L2 XConnect between two interfaces request
+/** \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
@param rx_sw_if_index - Receive interface index
@param tx_sw_if_index - Transmit interface index
@param enable - enable xconnect if not 0, else set to L3 mode
*/
-define sw_interface_set_l2_xconnect
+autoreply define sw_interface_set_l2_xconnect
{
u32 client_index;
u32 context;
u8 enable;
};
-/** \brief Set L2 XConnect response
- @param context - sender context, to match reply w/ request
- @param retval - L2 XConnect request return code
-*/
-define sw_interface_set_l2_xconnect_reply
-{
- u32 context;
- i32 retval;
-};
-
/** \brief Interface bridge mode request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param shg - Shared horizon group, for bridge mode only
@param enable - Enable beige mode if not 0, else set to L3 mode
*/
-define sw_interface_set_l2_bridge
+autoreply define sw_interface_set_l2_bridge
{
u32 client_index;
u32 context;
u8 enable;
};
-/** \brief Interface bridge mode response
- @param context - sender context, to match reply w/ request
- @param retval - Bridge mode request return code
-*/
-define sw_interface_set_l2_bridge_reply
-{
- u32 context;
- 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
@param mac_address - MAC address
@param
*/
-define bd_ip_mac_add_del
+autoreply define bd_ip_mac_add_del
{
u32 client_index;
u32 context;
u8 mac_address[6];
};
-/** \brief Set bridge domain ip to mac entry response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the set bridge flags request
-*/
-define bd_ip_mac_add_del_reply
-{
- u32 context;
- 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
@param sw_if_index - interface to associate with the table
@param table_index - index of the table, if ~0 unset the table
*/
-define classify_set_interface_ip_table
+autoreply define classify_set_interface_ip_table
{
u32 client_index;
u32 context;
u32 table_index; /* ~0 => off */
};
-/** \brief Set/unset interface classification table response
- @param context - sender context, to match reply w/ request
- @param retval - return code
-*/
-define classify_set_interface_ip_table_reply
-{
- u32 context;
- i32 retval;
-};
-
/** \brief Set/unset l2 classification tables for an interface request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param ip6_table_index - ip6 index
@param other_table_index - other index
*/
-define classify_set_interface_l2_tables
+autoreply define classify_set_interface_l2_tables
{
u32 client_index;
u32 context;
u8 is_input;
};
-/** \brief Set/unset l2 classification tables for an interface response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define classify_set_interface_l2_tables_reply
-{
- u32 context;
- i32 retval;
-};
-
/** \brief Get node index using name 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 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
@param sw_if_index - interface to enable/disable filtering on
@param enable_disable - if non-zero enable filtering, else disable
*/
-define l2_interface_efp_filter
+autoreply define l2_interface_efp_filter
{
u32 client_index;
u32 context;
u32 enable_disable;
};
-/** \brief L2 interface ethernet flow point filtering response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define l2_interface_efp_filter_reply
-{
- u32 context;
- 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;
u16 inner_vlan_id;
};
-define create_subif_reply
-{
- u32 context;
- i32 retval;
- u32 sw_if_index;
-};
-
-/** \brief show version
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-*/
-define show_version
-{
- u32 client_index;
- u32 context;
-};
-
-/** \brief show version response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
- @param program - name of the program (vpe)
- @param version - version of the program
- @param build_directory - root of the workspace where the program was built
-*/
-define show_version_reply
-{
- u32 context;
- i32 retval;
- u8 program[32];
- u8 version[32];
- u8 build_date[32];
- 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
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u32 new_show_dev_instance;
-};
-
-define interface_name_renumber_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief Register for ip4 arp resolution events
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param enable_disable - 1 => register for events, 0 => cancel registration
- @param pid - sender's pid
- @param address - the exact ip4 address of interest
-*/
-define want_ip4_arp_events
-{
- u32 client_index;
- u32 context;
- u8 enable_disable;
- u32 pid;
- u32 address;
-};
-
-/** \brief Reply for interface events registration
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-define want_ip4_arp_events_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief Tell client about an ip4 arp resolution event
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param address - the exact ip4 address of interest
- @param pid - client pid registered to receive notification
- @param sw_if_index - interface which received ARP packet
- @param new_mac - the new mac address
- @param mac_ip - 0: resolution event, 1: mac/ip binding in bd
-*/
-define ip4_arp_event
-{
- u32 client_index;
- u32 context;
- u32 address;
- u32 pid;
- u32 sw_if_index;
- u8 new_mac[6];
- u8 mac_ip;
-};
-
-/** \brief Register for ip6 nd resolution events
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param enable_disable - 1 => register for events, 0 => cancel registration
- @param pid - sender's pid
- @param address - the exact ip6 address of interest
-*/
-define want_ip6_nd_events
-{
- u32 client_index;
- u32 context;
- u8 enable_disable;
- u32 pid;
- u8 address[16];
-};
-
-/** \brief Reply for ip6 nd resolution events registration
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-define want_ip6_nd_events_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief Tell client about an ip6 nd resolution or mac/ip 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 sw_if_index - interface which received ARP packet
- @param address - the exact ip6 address of interest
- @param new_mac - the new mac address
- @param mac_ip - 0: resolution event, 1: mac/ip binding in bd
-*/
-define ip6_nd_event
-{
- u32 client_index;
- u32 context;
- u32 pid;
- u32 sw_if_index;
- u8 address[16];
- u8 new_mac[6];
- u8 mac_ip;
-};
-
-/** \brief L2 bridge domain add or delete request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param bd_id - the bridge domain to create
- @param flood - enable/disable bcast/mcast flooding in the bd
- @param uu_flood - enable/disable uknown unicast flood in the bd
- @param forward - enable/disable forwarding on all interfaces in the bd
- @param learn - enable/disable learning on all interfaces in the bd
- @param arp_term - enable/disable arp termination in the bd
- @param mac_age - mac aging time in min, 0 for disabled
- @param is_add - add or delete flag
-*/
-define bridge_domain_add_del
-{
- u32 client_index;
- u32 context;
- u32 bd_id;
- u8 flood;
- u8 uu_flood;
- u8 forward;
- u8 learn;
- u8 arp_term;
- u8 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
-{
- 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
- @param sw_if_index - interface to set/unset input ACL
- @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 input ACL 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 input_acl_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 input ACL interface response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define input_acl_set_interface_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 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;
- u32 context;
-};
-
-/** \brief get_node_graph_reply
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
- @param reply_in_shmem - result from vlib_node_serialize, in shared
- memory. Process with vlib_node_unserialize, remember to switch
- heaps and free the result.
-*/
-
-define get_node_graph_reply
-{
- u32 context;
- i32 retval;
- u64 reply_in_shmem;
-};
-
-/** \brief IOAM enable : Enable in-band OAM
- @param id - profile id
- @param seqno - To enable Seqno Processing
- @param analyse - Enabling analysis of iOAM at decap node
- @param pow_enable - Proof of Work enabled or not flag
- @param trace_enable - iOAM Trace enabled or not flag
-*/
-define ioam_enable
-{
- u32 client_index;
- u32 context;
- u16 id;
- u8 seqno;
- u8 analyse;
- u8 pot_enable;
- u8 trace_enable;
- u32 node_id;
-};
-
-/** \brief iOAM Trace profile add / del response
- @param context - sender context, to match reply w/ request
- @param retval - return value for request
-*/
-define ioam_enable_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief iOAM disable
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param index - MAP Domain index
-*/
-define ioam_disable
-{
- u32 client_index;
- u32 context;
- u16 id;
-};
-
-/** \brief iOAM disable response
- @param context - sender context, to match reply w/ request
- @param retval - return value for request
-*/
-define ioam_disable_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief Add/del policer
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param is_add - add policer if non-zero, else delete
- @param name - policer name
- @param cir - CIR
- @param eir - EIR
- @param cb - Committed Burst
- @param eb - Excess or Peak Burst
- @param rate_type - rate type
- @param round_type - rounding type
- @param type - policer algorithm
- @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 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
+define create_subif_reply
{
u32 context;
i32 retval;
- u32 table_id;
- u32 hit_next_index;
- i32 advance;
- u32 opaque_index;
- u32 match_length;
- u8 match[match_length];
+ u32 sw_if_index;
};
-/** \brief Configure IPFIX exporter process request
+/** \brief show version
@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
+define show_version
{
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
+/** \brief show version response
+ @param context - sender context, to match reply w/ request
+ @param retval - return code for the request
+ @param program - name of the program (vpe)
+ @param version - version of the program
+ @param build_directory - root of the workspace where the program was built
*/
-define set_ipfix_exporter_reply
+define show_version_reply
{
u32 context;
i32 retval;
+ u8 program[32];
+ u8 version[32];
+ u8 build_date[32];
+ u8 build_directory[256];
};
-/** \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
+/* Gross kludge, DGMS */
+autoreply define interface_name_renumber
{
u32 client_index;
u32 context;
+ u32 sw_if_index;
+ u32 new_show_dev_instance;
};
-/** \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
+/** \brief Register for ip4 arp resolution events
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
- @param 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
+ @param enable_disable - 1 => register for events, 0 => cancel registration
+ @param pid - sender's pid
+ @param address - the exact ip4 address of interest
*/
-define set_ipfix_classify_stream_reply {
- u32 context;
- i32 retval;
+autoreply define want_ip4_arp_events
+{
+ u32 client_index;
+ u32 context;
+ u8 enable_disable;
+ u32 pid;
+ u32 address;
};
-/** \brief IPFIX classify stream dump request
+/** \brief Tell client about an ip4 arp resolution event
@param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-*/
-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
+ @param address - the exact ip4 address of interest
+ @param pid - client pid registered to receive notification
+ @param sw_if_index - interface which received ARP packet
+ @param new_mac - the new mac address
+ @param mac_ip - 0: resolution event, 1: mac/ip binding in bd
*/
-define ipfix_classify_stream_details {
- u32 context;
- u32 domain_id;
- u16 src_port;
+define ip4_arp_event
+{
+ u32 client_index;
+ u32 address;
+ u32 pid;
+ u32 sw_if_index;
+ u8 new_mac[6];
+ u8 mac_ip;
};
-/** \brief IPFIX add or delete classifier table request
+/** \brief Register for ip6 nd resolution events
@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
+ @param enable_disable - 1 => register for events, 0 => cancel registration
+ @param pid - sender's pid
+ @param address - the exact ip6 address of interest
*/
-define ipfix_classify_table_add_del_reply {
- u32 context;
- i32 retval;
+autoreply define want_ip6_nd_events
+{
+ u32 client_index;
+ u32 context;
+ u8 enable_disable;
+ u32 pid;
+ u8 address[16];
};
-/** \brief IPFIX classify tables dump request
+/** \brief Tell client about an ip6 nd resolution or mac/ip event
@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
+ @param pid - client pid registered to receive notification
+ @param sw_if_index - interface which received ARP packet
+ @param address - the exact ip6 address of interest
+ @param new_mac - the new mac address
+ @param mac_ip - 0: resolution event, 1: mac/ip binding in bd
*/
-define ipfix_classify_table_details {
- u32 context;
- u32 table_id;
- u8 ip_version;
- u8 transport_protocol;
+define ip6_nd_event
+{
+ u32 client_index;
+ u32 pid;
+ u32 sw_if_index;
+ u8 address[16];
+ u8 new_mac[6];
+ u8 mac_ip;
};
-
-/** \brief Set/unset flow classify interface
+
+/** \brief Set/unset input ACL 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 sw_if_index - interface to set/unset input ACL
@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
+ @param is_add - Set input ACL 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;
+autoreply define input_acl_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 flow classify interface response
- @param context - sender context, to match reply w/ request
- @param retval - return value for request
+define get_node_graph
+{
+ u32 client_index;
+ u32 context;
+};
+
+/** \brief get_node_graph_reply
+ @param context - returned sender context, to match reply w/ request
+ @param retval - return code
+ @param reply_in_shmem - result from vlib_node_serialize, in shared
+ memory. Process with vlib_node_unserialize, remember to switch
+ heaps and free the result.
*/
-define flow_classify_set_interface_reply {
- u32 context;
- i32 retval;
+
+define get_node_graph_reply
+{
+ u32 context;
+ i32 retval;
+ u64 reply_in_shmem;
};
-/** \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
+/** \brief IOAM enable : Enable in-band OAM
+ @param id - profile id
+ @param seqno - To enable Seqno Processing
+ @param analyse - Enabling analysis of iOAM at decap node
+ @param pow_enable - Proof of Work enabled or not flag
+ @param trace_enable - iOAM Trace enabled or not flag
*/
-define flow_classify_dump {
- u32 client_index;
- u32 context;
- u8 type;
+autoreply define ioam_enable
+{
+ u32 client_index;
+ u32 context;
+ u16 id;
+ u8 seqno;
+ u8 analyse;
+ u8 pot_enable;
+ u8 trace_enable;
+ u32 node_id;
};
-/** \brief Flow classify operational state response.
+/** \brief iOAM disable
+ @param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
- @param sw_if_index - software interface index
- @param table_index - classify table index
+ @param index - MAP Domain index
*/
-define flow_classify_details {
- u32 context;
- u32 sw_if_index;
- u32 table_index;
+autoreply define ioam_disable
+{
+ u32 client_index;
+ u32 context;
+ u16 id;
};
/** \brief Query relative index via node names
@param count - number of packets to be captured
@param pcap_file - pacp file name to store captured packets
*/
-define pg_capture
+autoreply define pg_capture
{
u32 client_index;
u32 context;
u8 pcap_file_name[pcap_name_length];
};
-/** \brief PacketGenerator capture packets response
- @param context - sender context, to match reply w/ request
- @param retval - return value for request
-*/
-define pg_capture_reply
-{
- u32 context;
- i32 retval;
-};
-
/** \brief Enable / disable packet generator request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param is_enabled - 1 if enabling streams, 0 if disabling
@param stream - stream name to be enable/disabled, if not specified handle all streams
*/
-define pg_enable_disable
+autoreply define pg_enable_disable
{
u32 client_index;
u32 context;
u8 stream_name[stream_name_length];
};
-/** \brief Reply for enable / disable packet generator
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-define pg_enable_disable_reply
-{
- u32 context;
- i32 retval;
-};
-
/** \brief Configure IP source and L4 port-range check
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param vrf_id - fib table/vrf id to associate the source and port-range check with
@note To specify a single port set low_port and high_port entry the same
*/
-define ip_source_and_port_range_check_add_del
+autoreply define ip_source_and_port_range_check_add_del
{
u32 client_index;
u32 context;
u32 vrf_id;
};
-/** \brief Configure IP source and L4 port-range check reply
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-define ip_source_and_port_range_check_add_del_reply
-{
- u32 context;
- i32 retval;
-};
-
/** \brief Set interface source and L4 port-range request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param tcp_vrf_id - VRF associated with source and TCP port-range check
@param udp_vrf_id - VRF associated with source and TCP port-range check
*/
-define ip_source_and_port_range_check_interface_add_del
+autoreply define ip_source_and_port_range_check_interface_add_del
{
u32 client_index;
u32 context;
u32 udp_out_vrf_id;
};
-/** \brief Set interface source and L4 port-range response
- @param context - sender context, to match reply w/ request
- @param retval - return value for request
-*/
-define ip_source_and_port_range_check_interface_add_del_reply
-{
- u32 context;
- i32 retval;
-};
-
/** \brief Delete sub interface request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param sw_if_index - sw index of the interface that was created by create_subif
*/
-define delete_subif {
- u32 client_index;
- u32 context;
- u32 sw_if_index;
-};
-
-/** \brief Delete sub interface response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define delete_subif_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
- @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
-{
+autoreply define delete_subif {
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 l4_protocol - L4 protocol to be punted, only UDP (0x11) is supported
@param l4_port - TCP/UDP port to be punted
*/
-define punt {
+autoreply define punt {
u32 client_index;
u32 context;
u8 is_add;
u16 l4_port;
};
-/** \brief Reply to the punt request
- @param context - sender context which was passed in the request
- @param retval - return code of punt request
+/** \brief Punt traffic to the host via socket
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+ @param header_version - expected meta data header version (currently 1)
+ @param is_ip4 - L3 protocol 1 - IPv4, 0 - IPv6
+ @param l4_protocol - L4 protocol to be punted, only UDP (0x11) is supported
+ @param l4_port - TCP/UDP port to be punted
*/
-define punt_reply
+define punt_socket_register {
+ u32 client_index;
+ u32 context;
+ u32 header_version;
+ u8 is_ip4;
+ u8 l4_protocol;
+ u16 l4_port;
+ u8 pathname[108]; /* Linux sun_path defined to be 108 bytes, see unix(7) */
+};
+
+define punt_socket_register_reply
{
+ u32 context;
+ i32 retval;
+ u8 pathname[64];
+};
+
+autoreply define punt_socket_deregister {
+ u32 client_index;
u32 context;
- i32 retval;
+ u8 is_ip4;
+ u8 l4_protocol;
+ u16 l4_port;
};
/** \brief Feature path enable/disable request
@param sw_if_index - the interface
@param enable - 1 = on, 0 = off
*/
-define feature_enable_disable {
+autoreply define feature_enable_disable {
u32 client_index;
u32 context;
u32 sw_if_index;
u8 feature_name[64];
};
-/** \brief Reply to the eature path enable/disable request
- @param context - sender context which was passed in the request
- @param retval - return code for the request
-*/
-define feature_enable_disable_reply
-{
- u32 context;
- i32 retval;
-};
-
/*
* Local Variables:
* eval: (c-set-style "gnu")