IP6 SR multicast replicator
[vpp.git] / vpp / api / vpe.api
index dd20a0b..9d0f6b7 100644 (file)
@@ -67,6 +67,7 @@ define want_interface_events_reply {
     @param vtr_tag2
 */
 manual_java define sw_interface_details {
+    u32 context;
     u32 sw_if_index;
 
     /* index of sup interface (e.g. hw interface).
@@ -819,85 +820,6 @@ define dhcp_proxy_set_vss_reply {
     i32 retval;
 };
 
-/* 
- * These messages bounce off the dataplane and are not otherwise
- * interpreted; each has its own publish / subscribe API.
- * If the dataplane receives one of these and doesn't have an 
- * active subscription for it, the message will be silently freed.
- */
-
-define from_netconf_server {
-    u32 client_index;
-    u32 context;
-    u8 data[0];
-};
-
-define want_from_netconf_server {
-    u32 client_index;
-    u32 context;
-    u32 enable_disable;
-    u32 pid;
-};
-
-define want_from_netconf_server_reply {
-    u32 context;
-    i32 retval;
-};
-
-define to_netconf_server {
-    u32 client_index;
-    u32 context;
-    u8 data[0];
-};
-
-define want_to_netconf_server {
-    u32 client_index;
-    u32 context;
-    u32 enable_disable;
-    u32 pid;
-};
-
-define want_to_netconf_server_reply {
-    u32 context;
-    i32 retval;
-};
-
-define from_netconf_client {
-    u32 client_index;
-    u32 context;
-    u8 data[0];
-};
-
-define want_from_netconf_client {
-    u32 client_index;
-    u32 context;
-    u32 enable_disable;
-    u32 pid;
-};
-
-define want_from_netconf_client_reply {
-    u32 context;
-    i32 retval;
-};
-
-define to_netconf_client {
-    u32 client_index;
-    u32 context;
-    u8 data[0];
-};
-
-define want_to_netconf_client {
-    u32 client_index;
-    u32 context;
-    u32 enable_disable;
-    u32 pid;
-};
-
-define want_to_netconf_client_reply {
-    u32 context;
-    i32 retval;
-};
-
 /** \brief Set the ip flow hash config for a fib request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -1223,6 +1145,7 @@ define l2_patch_add_del_reply {
     @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 -
@@ -1232,11 +1155,13 @@ define l2_patch_add_del_reply {
     @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;
@@ -1246,6 +1171,7 @@ define sr_tunnel_add_del {
     u8 n_segments;
     u8 n_tags;
     u8 segs_and_tags[0];
+    u8 policy_name[64];
 };
 
 /** \brief IPv6 segment routing tunnel add / del response
@@ -1257,6 +1183,54 @@ define sr_tunnel_add_del_reply {
     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
@@ -1762,6 +1736,7 @@ define l2tpv3_set_tunnel_cookies_reply {
 };
 
 manual_java define sw_if_l2tpv3_tunnel_details {
+    u32 context;
     u32 sw_if_index;
     u8 interface_name[64];
     u8 client_address [16];
@@ -1846,8 +1821,9 @@ define vxlan_add_del_tunnel {
     u32 client_index;
     u32 context;
     u8 is_add;
-    u32 src_address;
-    u32 dst_address;
+    u8 is_ipv6;
+    u8 src_address[16];
+    u8 dst_address[16];
     u32 encap_vrf_id;
     u32 decap_next_index;
     u32 vni;
@@ -1868,11 +1844,41 @@ manual_java define vxlan_tunnel_dump {
 manual_java define vxlan_tunnel_details {
     u32 context;
     u32 sw_if_index;
-    u32 src_address;
-    u32 dst_address;
+    u8 src_address[16];
+    u8 dst_address[16];
     u32 encap_vrf_id;
     u32 decap_next_index;
     u32 vni;
+    u8 is_ipv6;
+};
+
+define gre_add_del_tunnel {
+    u32 client_index;
+    u32 context;
+    u8 is_add;
+    u32 src_address;
+    u32 dst_address;
+    u32 outer_table_id;
+};
+
+define gre_add_del_tunnel_reply {
+    u32 context;
+    i32 retval;
+    u32 sw_if_index;
+};
+
+manual_java define gre_tunnel_dump {
+    u32 client_index;
+    u32 context;
+    u32 sw_if_index;
+};
+
+manual_java define gre_tunnel_details {
+    u32 context;
+    u32 sw_if_index;
+    u32 src_address;
+    u32 dst_address;
+    u32 outer_table_id;
 };
   
 /** \brief L2 interface vlan tag rewrite configure request
@@ -2063,6 +2069,7 @@ define nsh_gre_add_del_tunnel_reply {
     @param num_regions - number of used memory regions
 */
 manual_java define sw_interface_vhost_user_details {
+    u32 context;
     u32 sw_if_index;
     u8 interface_name[64];
     u32 virtio_net_hdr_sz;
@@ -2113,6 +2120,7 @@ define ip_dump {
     @param bvi_mac - the mac address is a bridge virtual interface
 */
 manual_java define l2_fib_table_entry {
+    u32 context;
     u32 bd_id;
     u64 mac;
     u32 sw_if_index;
@@ -2184,6 +2192,274 @@ define lisp_gpe_add_del_tunnel_reply {
     u32 sw_if_index;
 };
 
+/** \brief add or delete locator_set
+    @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 name
+*/
+define lisp_add_del_locator_set {
+    u32 client_index;
+    u32 context;
+    u8  is_add;
+    u8  locator_set_name[64];
+};
+
+/** \brief Reply for locator_set add/del
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+*/
+define lisp_add_del_locator_set_reply {
+    u32 context;
+    i32 retval;
+};
+
+/** \brief add or delete locator for locator_set
+    @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 - name of locator_set to add/del locator
+    @param sw_if_index - index of the interface
+    @param priority - priority of the lisp locator
+    @param weight - weight of the lisp locator
+*/
+define lisp_add_del_locator {
+    u32 client_index;
+    u32 context;
+    u8  is_add;
+    u8  locator_set_name[64];
+    u32 sw_if_index;
+    u8  priority;
+    u8  weight;
+};
+
+/** \brief Reply for locator add/del
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+*/
+define lisp_add_del_locator_reply {
+    u32 context;
+    i32 retval;
+};
+
+/** \brief add or delete lisp eid-table
+    @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_ipv6 - if non-zero the address is ipv6, else ipv4
+    @param ip_address - array of address bytes
+    @param prefix_len - prefix len
+    @param locator_set_name - name of locator_set to add/del eid-table
+*/
+define lisp_add_del_local_eid {
+    u32 client_index;
+    u32 context;
+    u8  is_add;
+    u8  is_ipv6;
+    u8  ip_address[16];
+    u8  prefix_len;
+    u8  locator_set_name[64];
+};
+
+/** \brief Reply for local_eid add/del
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+*/
+define lisp_add_del_local_eid_reply {
+    u32 context;
+    i32 retval;
+};
+
+/** \brief add or delete lisp gpe maptunel
+    @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 eid_is_ipv6 - if non-zero the address is ipv6, else ipv4
+    @param eid_ip_address - array of address bytes
+    @param eid_prefix_len - prefix len
+    @param address_is_ipv6 - if non-zero the address is ipv6, else ipv4
+    @param source_ip_address - array of address bytes
+    @param destination_ip_address - array of address bytes
+*/
+define lisp_gpe_add_del_fwd_entry {
+    u32 client_index;
+    u32 context;
+    u8  is_add;
+    u8  eid_is_ipv6;
+    u8  eid_ip_address[16];
+    u8  eid_prefix_len;
+    u8  address_is_ipv6;
+    u8  source_ip_address[16];
+    u8  destination_ip_address[16];
+};
+
+/** \brief Reply for gpe_fwd_entry add/del
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+*/
+define lisp_gpe_add_del_fwd_entry_reply {
+    u32 context;
+    i32 retval;
+};
+
+/** \brief add or delete map-resolver
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param is_add - add address if non-zero, else delete
+    @param is_ipv6 - if non-zero the address is ipv6, else ipv4
+    @param ip_address - array of address bytes
+*/
+define lisp_add_del_map_resolver {
+    u32 client_index;
+    u32 context;
+    u8  is_add;
+    u8  is_ipv6;
+    u8  ip_address[16];
+};
+
+/** \brief Reply for map_resolver add/del
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+*/
+define lisp_add_del_map_resolver_reply {
+    u32 context;
+    i32 retval;
+};
+
+/** \brief enable or disable lisp-gpe protocol
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param is_en - enable protocol if non-zero, else disable
+*/
+define lisp_gpe_enable_disable {
+    u32 client_index;
+    u32 context;
+    u8  is_en;
+};
+
+/** \brief Reply for gpe enable/disable
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+*/
+define lisp_gpe_enable_disable_reply {
+    u32 context;
+    i32 retval;
+};
+
+/** \brief add or delete gpe_iface
+    @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
+*/
+define lisp_gpe_add_del_iface {
+    u32 client_index;
+    u32 context;
+    u8  is_add;
+    u32 table_id;
+    u32 vni;
+};
+
+/** \brief Reply for gpe_iface add/del
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+*/
+define lisp_gpe_add_del_iface_reply {
+    u32 context;
+    i32 retval;
+};
+
+/** \brief LISP locator_set status
+    @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
+ */
+manual_java define lisp_locator_set_details {
+    u32 context;
+    u8  locator_set_name[64];
+    u32 sw_if_index;
+    u8  priority;
+    u8  weight;
+};
+
+/** \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
+ */
+define lisp_locator_set_dump {
+    u32 client_index;
+    u32 context;
+};
+
+/** \brief LISP local eid table status
+    @param locator_set_name - name of the locator_set
+    @param eid_is_ipv6 - if non-zero the address is ipv6, else ipv4
+    @param eid_ip_address - array of address bytes
+    @param eid_prefix_len - prefix len
+ */
+manual_java define lisp_local_eid_table_details {
+    u32 context;
+    u8  locator_set_name[64];
+    u8  eid_is_ipv6;
+    u8  eid_ip_address[16];
+    u8  eid_prefix_len;
+};
+
+/** \brief Request for local eid table summary status
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+ */
+define lisp_local_eid_table_dump {
+    u32 client_index;
+    u32 context;
+};
+
+manual_java 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 locator_set_name - name of the locator_set
+    @param is_ipv6 - if non-zero the address is ipv6, else ipv4
+    @param ip_address - array of address bytes
+ */
+manual_java 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;
+};
+
 /* Gross kludge, DGMS */
 define interface_name_renumber {
     u32 client_index;
@@ -2594,6 +2870,146 @@ define ipsec_sa_set_key_reply {
     i32 retval;
 };
 
+/** \brief IKEv2: Add/delete profile
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+
+    @param name - IKEv2 profile name
+    @param is_add - Add IKEv2 profile if non-zero, else delete
+*/
+define ikev2_profile_add_del {
+    u32 client_index;
+    u32 context;
+
+    u8 name[64];
+    u8 is_add;
+};
+
+/** \brief Reply for IKEv2: Add/delete profile
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+*/
+define ikev2_profile_add_del_reply {
+    u32 context;
+    i32 retval;
+};
+
+/** \brief IKEv2: Set IKEv2 profile authentication method
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+
+    @param name - IKEv2 profile name
+    @param auth_method - IKEv2 authentication method (shared-key-mic/rsa-sig)
+    @param is_hex - Authentication data in hex format if non-zero, else string
+    @param data_len - Authentication data length
+    @param data - Authentication data (for rsa-sig cert file path)
+*/
+define ikev2_profile_set_auth {
+    u32 client_index;
+    u32 context;
+
+    u8 name[64];
+    u8 auth_method;
+    u8 is_hex;
+    u32 data_len;
+    u8 data[0];
+};
+
+/** \brief Reply for IKEv2: Set IKEv2 profile authentication method
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+*/
+define ikev2_profile_set_auth_reply {
+    u32 context;
+    i32 retval;
+};
+
+/** \brief IKEv2: Set IKEv2 profile local/remote identification
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+
+    @param name - IKEv2 profile name
+    @param is_local - Identification is local if non-zero, else remote
+    @param id_type - Identification type
+    @param data_len - Identification data length
+    @param data - Identification data
+*/
+define ikev2_profile_set_id {
+    u32 client_index;
+    u32 context;
+
+    u8 name[64];
+    u8 is_local;
+    u8 id_type;
+    u32 data_len;
+    u8 data[0];
+};
+
+/** \brief Reply for IKEv2:
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+*/
+define ikev2_profile_set_id_reply {
+    u32 context;
+    i32 retval;
+};
+
+/** \brief IKEv2: Set IKEv2 profile traffic selector parameters
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+
+    @param name - IKEv2 profile name
+    @param is_local - Traffic selector is local if non-zero, else remote
+    @param proto - Traffic selector IP protocol (if zero not relevant)
+    @param start_port - The smallest port number allowed by traffic selector
+    @param end_port - The largest port number allowed by traffic selector
+    @param start_addr - The smallest address included in traffic selector
+    @param end_addr - The largest address included in traffic selector
+*/
+define ikev2_profile_set_ts {
+    u32 client_index;
+    u32 context;
+
+    u8 name[64];
+    u8 is_local;
+    u8 proto;
+    u16 start_port;
+    u16 end_port;
+    u32 start_addr;
+    u32 end_addr;
+};
+
+/** \brief Reply for IKEv2: Set IKEv2 profile traffic selector parameters
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+*/
+define ikev2_profile_set_ts_reply {
+    u32 context;
+    i32 retval;
+};
+
+/** \brief IKEv2: Set IKEv2 local RSA private key
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+
+    @param key_file - Key file absolute path
+*/
+define ikev2_set_local_key {
+    u32 client_index;
+    u32 context;
+
+    u8 key_file[256];
+};
+
+/** \brief Reply for IKEv2: Set IKEv2 local key
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+*/
+define ikev2_set_local_key_reply {
+    u32 context;
+    i32 retval;
+};
+
 /** \brief Tell client about a DHCP completion event
     @param client_index - opaque cookie to identify the sender
     @param pid - client pid registered to receive notification
@@ -2708,6 +3124,7 @@ define map_domain_dump {
 };
 
 manual_java define map_domain_details {
+  u32 context;
   u32 domain_index;
   u8 ip6_prefix[16];
   u8 ip4_prefix[4];
@@ -2730,6 +3147,7 @@ define map_rule_dump {
 };
 
 manual_java define map_rule_details {
+  u32 context;
   u8 ip6_dst[16];
   u16 psid;
 };