-/** \brief Reply for show_lisp_map_register_state
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-define show_lisp_map_register_state_reply
-{
- u32 context;
- i32 retval;
- u8 is_enabled;
-};
-
-/** \brief set LISP map-request mode. Based on configuration VPP will send
- src/dest or just normal destination map requests.
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param mode - new map-request mode. Supported values are:
- 0 - destination only
- 1 - source/destaination
-*/
-define lisp_map_request_mode
-{
- u32 client_index;
- u32 context;
- u8 mode;
-};
-
-/** \brief Reply for lisp_map_request_mode
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-define lisp_map_request_mode_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief Request for LISP map-request mode
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-*/
-define show_lisp_map_request_mode
-{
- u32 client_index;
- u32 context;
-};
-
-/** \brief Reply for show_lisp_map_request_mode
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
- @param mode - map-request mode
-*/
-define show_lisp_map_request_mode_reply
-{
- u32 context;
- i32 retval;
- u8 mode;
-};
-
-/** \brief add or delete remote static mapping
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param is_add - add address if non-zero, else delete
- @param is_src_dst - flag indicating src/dst based routing policy
- @param del_all - if set, delete all remote mappings
- @param vni - virtual network instance
- @param action - negative map-reply action
- @param eid_type -
- 0 : ipv4
- 1 : ipv6
- 2 : mac
- @param deid - dst EID
- @param seid - src EID, valid only if is_src_dst is enabled
- @param rloc_num - number of remote locators
- @param rlocs - remote locator records
- Structure of remote locator:
-
- define rloc_t {
- u8 is_ip4;
- u8 priority;
- u8 weight;
- u8 addr[16];
- }
-*/
-define lisp_add_del_remote_mapping
-{
- u32 client_index;
- u32 context;
- u8 is_add;
- u8 is_src_dst;
- u8 del_all;
- u32 vni;
- u8 action;
- u8 eid_type;
- u8 eid[16];
- u8 eid_len;
- u8 seid[16];
- u8 seid_len;
- u32 rloc_num;
- u8 rlocs[0];
-};
-
-/** \brief Reply for lisp_add_del_remote_mapping
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-define lisp_add_del_remote_mapping_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief add or delete LISP adjacency adjacency
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param is_add - add address if non-zero, else delete
- @param vni - virtual network instance
- @param eid_type -
- 0 : ipv4
- 1 : ipv6
- 2 : mac
- @param reid - remote EID
- @param leid - local EID
-*/
-define lisp_add_del_adjacency
-{
- u32 client_index;
- u32 context;
- u8 is_add;
- u32 vni;
- u8 eid_type;
- u8 reid[16];
- u8 leid[16];
- u8 reid_len;
- u8 leid_len;
-};
-
-/** \brief Reply for lisp_add_del_adjacency
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-define lisp_add_del_adjacency_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief add or delete map request itr rlocs
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param is_add - add address if non-zero, else delete
- @param locator_set_name - locator set name
-*/
-define lisp_add_del_map_request_itr_rlocs
-{
- u32 client_index;
- u32 context;
- u8 is_add;
- u8 locator_set_name[64];
-};
-
-/** \brief Reply for lisp_add_del_map_request_itr_rlocs
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-
-define lisp_add_del_map_request_itr_rlocs_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief map/unmap vni/bd_index to vrf
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param is_add - add or delete mapping
- @param dp_table - virtual network id/bridge domain index
- @param vrf - vrf
-*/
-define lisp_eid_table_add_del_map
-{
- u32 client_index;
- u32 context;
- u8 is_add;
- u32 vni;
- u32 dp_table;
- u8 is_l2;
-};
-
-/** \brief Reply for lisp_eid_table_add_del_map
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-define lisp_eid_table_add_del_map_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief Request for map lisp locator status
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param locator_set_index - index of locator_set
- @param ls_name - locator set name
- @param is_index_set - flag indicating whether ls_name or ls_index is set
- */
-define lisp_locator_dump
-{
- u32 client_index;
- u32 context;
- u32 ls_index;
- u8 ls_name[64];
- u8 is_index_set;
-};
-
-/** \brief LISP locator_set status
- @param local - if is set, then locator is local
- @param locator_set_name - name of the locator_set
- @param sw_if_index - sw_if_index of the locator
- @param priority - locator priority
- @param weight - locator weight
- */
-define lisp_locator_details
-{
- u32 context;
- u8 local;
- u32 sw_if_index;
- u8 is_ipv6;
- u8 ip_address[16];
- u8 priority;
- u8 weight;
-};
-
-/** \brief LISP locator_set status
- @param context - sender context, to match reply w/ request
- @param ls_index - locator set index
- @param ls_name - name of the locator set
- */
-define lisp_locator_set_details
-{
- u32 context;
- u32 ls_index;
- u8 ls_name[64];
-};
-
-/** \brief Request for locator_set summary status
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param filter - filter type
- Supported values:
- 0: all locator sets
- 1: local locator sets
- 2: remote locator sets
- */
-define lisp_locator_set_dump
-{
- u32 client_index;
- u32 context;
- u8 filter;
-};
-
-/** \brief Dump lisp eid-table
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param locator_set_index - index of locator_set, if ~0 then the mapping
- is negative
- @param action - negative map request action
- @param is_local - local if non-zero, else remote
- @param eid_type:
- 0 : ipv4
- 1 : ipv6
- 2 : mac
- @param is_src_dst - EID is type of source/destination
- @param eid - EID can be ip4, ip6 or mac
- @param eid_prefix_len - prefix length
- @param seid - source EID can be ip4, ip6 or mac
- @param seid_prefix_len - source prefix length
- @param vni - virtual network instance
- @param ttl - time to live
- @param authoritative - authoritative
- @param key_id
- HMAC_NO_KEY 0
- HMAC_SHA_1_96 1
- HMAC_SHA_256_128 2
- @param key - secret key
-*/
-
-define lisp_eid_table_details
-{
- u32 context;
- u32 locator_set_index;
- u8 action;
- u8 is_local;
- u8 eid_type;
- u8 is_src_dst;
- u32 vni;
- u8 eid[16];
- u8 eid_prefix_len;
- u8 seid[16];
- u8 seid_prefix_len;
- u32 ttl;
- u8 authoritative;
- u16 key_id;
- u8 key[64];
-};
-
-/** \brief Request for eid table summary status
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param eid_set - if non-zero request info about specific mapping
- @param vni - virtual network instance; valid only if eid_set != 0
- @param prefix_length - prefix length if EID is IP address;
- valid only if eid_set != 0
- @param eid_type - EID type; valid only if eid_set != 0
- Supported values:
- 0: EID is IPv4
- 1: EID is IPv6
- 2: EID is ethernet address
- @param eid - endpoint identifier
- @param filter - filter type;
- Support values:
- 0: all eid
- 1: local eid
- 2: remote eid
- */
-define lisp_eid_table_dump
-{
- u32 client_index;
- u32 context;
- u8 eid_set;
- u8 prefix_length;
- u32 vni;
- u8 eid_type;
- u8 eid[16];
- u8 filter;
-};
-
-/** \brief LISP adjacency
- @param eid_type -
- 0 : ipv4
- 1 : ipv6
- 2 : mac
- @param reid - remote EID
- @param leid - local EID
- @param reid_prefix_len - remote EID IP prefix length
- @param leid_prefix_len - local EID IP prefix length
- */
-typeonly manual_print manual_endian define lisp_adjacency
-{
- u8 eid_type;
- u8 reid[16];
- u8 leid[16];
- u8 reid_prefix_len;
- u8 leid_prefix_len;
-};
-
-/** \brief LISP adjacency reply
- @param count - number of adjacencies
- @param adjacencies - array of adjacencies
- */
-manual_endian manual_print define lisp_adjacencies_get_reply
-{
- u32 context;
- i32 retval;
- u32 count;
- vl_api_lisp_adjacency_t adjacencies[count];
-};
-
-/** \brief Request for LISP adjacencies
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param vni - filter adjacencies by VNI
- */
-define lisp_adjacencies_get
-{
- u32 client_index;
- u32 context;
- u32 vni;
-};
-
-/** \brief Shows relationship between vni and vrf/bd
- @param dp_table - VRF index or bridge domain index
- @param vni - vitual network instance
- */
-define lisp_eid_table_map_details
-{
- u32 context;
- u32 vni;
- u32 dp_table;
-};
-
-/** \brief Request for lisp_eid_table_map_details
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param is_l2 - if set dump vni/bd mappings else vni/vrf
- */
-define lisp_eid_table_map_dump
-{
- u32 client_index;
- u32 context;
- u8 is_l2;
-};
-
-/** \brief Dumps all VNIs used in mappings
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- */
-define lisp_eid_table_vni_dump
-{
- u32 client_index;
- u32 context;
-};
-
-/** \brief reply to lisp_eid_table_vni_dump
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param vni - virtual network instance
- */
-define lisp_eid_table_vni_details
-{
- u32 client_index;
- u32 context;
- u32 vni;
-};
-
-define lisp_gpe_tunnel_details
-{
- u32 context;
- u32 tunnels;
- u8 is_ipv6;
- u8 source_ip[16];
- u8 destination_ip[16];
- u32 encap_fib_id;
- u32 decap_fib_id;
- u32 dcap_next;
- u8 lisp_ver;
- u8 next_protocol;
- u8 flags;
- u8 ver_res;
- u8 res;
- u32 iid;
-};
-
-/** \brief Request for gpe tunnel summary status
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- */
-define lisp_gpe_tunnel_dump
-{
- u32 client_index;
- u32 context;
-};
-
-/** \brief LISP map resolver status
- @param is_ipv6 - if non-zero the address is ipv6, else ipv4
- @param ip_address - array of address bytes
- */
-define lisp_map_resolver_details
-{
- u32 context;
- u8 is_ipv6;
- u8 ip_address[16];
-};
-
-/** \brief Request for map resolver summary status
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- */
-define lisp_map_resolver_dump
-{
- u32 client_index;
- u32 context;
-};
-
-/** \brief LISP map server details
- @param is_ipv6 - if non-zero the address is ipv6, else ipv4
- @param ip_address - array of address bytes
- */
-define lisp_map_server_details
-{
- u32 context;
- u8 is_ipv6;
- u8 ip_address[16];
-};
-
-/** \brief Request for map server summary status
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- */
-define lisp_map_server_dump
-{
- u32 client_index;
- u32 context;
-};
-
-/** \brief Request for lisp-gpe protocol status
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-*/
-define show_lisp_status
-{
- u32 client_index;
- u32 context;
-};
-
-/** \brief Status of lisp, enable or disable
- @param context - sender context, to match reply w/ request
- @param feature_status - lisp enable if non-zero, else disable
- @param gpe_status - lisp enable if non-zero, else disable
-*/
-define show_lisp_status_reply
-{
- u32 context;
- i32 retval;
- u8 feature_status;
- u8 gpe_status;
-};
-
-/** \brief Get LISP map request itr rlocs status
- @param context - sender context, to match reply w/ request
- @param locator_set_name - name of the locator_set
- */
-define lisp_get_map_request_itr_rlocs
-{
- u32 client_index;
- u32 context;
-};
-
-/** \brief Request for map request itr rlocs summary status
- */
-define lisp_get_map_request_itr_rlocs_reply
-{
- u32 context;
- i32 retval;
- u8 locator_set_name[64];
-};
-
-/** \brief Request for lisp pitr status
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-*/
-define show_lisp_pitr
-{
- u32 client_index;
- u32 context;
-};
-
-/** \brief Status of lisp pitr, enable or disable
- @param context - sender context, to match reply w/ request
- @param status - lisp pitr enable if non-zero, else disable
- @param locator_set_name - name of the locator_set
-*/
-define show_lisp_pitr_reply
-{
- u32 context;
- i32 retval;
- u8 status;
- u8 locator_set_name[64];
-};
-
-/* 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 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 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 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;
- 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