Proxy ND (RFC4389 - or a sub-set thereof). This allows the 'emulation' of bridging...
[vpp.git] / src / vnet / ip / ip.api
index 5371696..b5e730f 100644 (file)
@@ -125,7 +125,6 @@ define ip_neighbor_details {
 /** \brief IP neighbor 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, only for IP4
     @param sw_if_index - interface used to reach neighbor
     @param is_add - 1 to add neighbor, 0 to delete
     @param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4
@@ -137,7 +136,6 @@ define ip_neighbor_add_del
 {
   u32 client_index;
   u32 context;
-  u32 vrf_id;                  /* only makes sense for ip4 */
   u32 sw_if_index;
   /* 1 = add, 0 = delete */
   u8 is_add;
@@ -243,17 +241,31 @@ define sw_interface_ip6nd_ra_config_reply
 /** \brief IPv6 router advertisement prefix config request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
-    @param sw_if_index - 
-    @param address[] -
-    @param address_length -
-    @param use_default -
-    @param no_advertise -
-    @param off_link -
-    @param no_autoconfig -
-    @param no_onlink -
-    @param is_no -
-    @param val_lifetime -
-    @param pref_lifetime -
+    @param sw_if_index - The interface the RA prefix information is for
+    @param address[] - The prefix to advertise
+    @param address_length - the prefix length
+    @param use_default - Revert to default settings
+    @param no_advertise - Do not advertise this prefix
+    @param off_link - The prefix is off link (it is not configured on the interface)
+                      Configures the L-flag, When set, indicates that this
+                     prefix can be used for on-link determination.
+    @param no_autoconfig - Setting for the A-flag. When
+                           set indicates that this prefix can be used for
+                          stateless address configuration.
+    @param no_onlink - The prefix is not on link. Make sure this is consistent
+                       with the off_link parameter else YMMV
+    @param is_no - add/delete
+    @param val_lifetime - The length of time in
+                     seconds (relative to the time the packet is sent)
+                     that the prefix is valid for the purpose of on-link
+                     determination.  A value of all one bits
+                     (0xffffffff) represents infinity
+    @param pref_lifetime - The length of time in
+                     seconds (relative to the time the packet is sent)
+                     that addresses generated from the prefix via
+                     stateless address autoconfiguration remain
+                     preferred [ADDRCONF].  A value of all one bits
+                     (0xffffffff) represents infinity.
 */
 define sw_interface_ip6nd_ra_prefix
 {
@@ -282,6 +294,56 @@ define sw_interface_ip6nd_ra_prefix_reply
   i32 retval;
 };
 
+/** \brief IPv6 ND proxy config
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param sw_if_index - The interface the host is on
+    @param address - The address of the host for which to proxy for
+    @param is_add - Adding or deleting
+*/
+define ip6nd_proxy_add_del
+{
+  u32 client_index;
+  u32 context;
+  u32 sw_if_index;
+  u8 is_del;
+  u8 address[16];
+};
+
+/** \brief IPv6 ND proxy response
+    @param context - sender context, to match reply w/ request
+    @param retval - return code for the request
+*/
+define ip6nd_proxy_add_del_reply
+{
+  u32 context;
+  i32 retval;
+};
+
+/** \brief IPv6 ND proxy details returned after request
+    @param context - sender context, to match reply w/ request
+    @param retval - return code for the request
+*/
+define ip6nd_proxy_details
+{
+  u32 client_index;
+  u32 context;
+  u32 sw_if_index;
+  u8 address[16];
+};
+
+/** \brief IPv6 ND proxy dump request
+    @param context - sender context, to match reply w/ request
+    @param retval - return code for the request
+    @param sw_if_index - The interface the host is on
+    @param address - The address of the host for which to proxy for
+*/
+define ip6nd_proxy_dump
+{
+  u32 client_index;
+  u32 context;
+};
+
 /** \brief IPv6 interface enable / disable request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -395,12 +457,105 @@ define ip_add_del_route_reply
   i32 retval;
 };
 
+/** \brief Add / del route request
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param sw_if_index - software index of the new vlan's parent interface
+    @param vrf_id - fib table /vrf associated with the route
+
+    FIXME
+*/
+define ip_mroute_add_del
+{
+  u32 client_index;
+  u32 context;
+  u32 next_hop_sw_if_index;
+  u32 table_id;
+  u32 entry_flags;
+  u32 itf_flags;
+  u16 grp_address_length;
+  u8 create_vrf_if_needed;
+  u8 is_add;
+  u8 is_ipv6;
+  u8 is_local;
+  u8 grp_address[16];
+  u8 src_address[16];
+};
+
+/** \brief Reply for add / del mroute request
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+*/
+define ip_mroute_add_del_reply
+{
+  u32 context;
+  i32 retval;
+};
+
+/** \brief Dump IP multicast fib table
+    @param client_index - opaque cookie to identify the sender
+*/
+define ip_mfib_dump
+{
+  u32 client_index;
+  u32 context;
+};
+
+/** \brief IP Multicast FIB table response
+    @param table_id - IP fib table id
+    @address_length - mask length
+    @grp_address - Group address/prefix
+    @src_address - Source address
+    @param count - the number of fib_path in path
+    @param path  - array of of fib_path structures
+*/
+manual_endian manual_print define ip_mfib_details
+{
+  u32 context;
+  u32 table_id;
+  u8  address_length;
+  u8  grp_address[4];
+  u8  src_address[4];
+  u32 count;
+  vl_api_fib_path_t path[count];
+};
+
+/** \brief Dump IP6 multicast fib table
+    @param client_index - opaque cookie to identify the sender
+*/
+define ip6_mfib_dump
+{
+  u32 client_index;
+  u32 context;
+};
+
+/** \brief IP6 Multicast FIB table response
+    @param table_id - IP fib table id
+    @address_length - mask length
+    @grp_address - Group address/prefix
+    @src_address - Source address
+    @param count - the number of fib_path in path
+    @param path  - array of of fib_path structures
+*/
+manual_endian manual_print define ip6_mfib_details
+{
+  u32 context;
+  u32 table_id;
+  u8  address_length;
+  u8  grp_address[16];
+  u8  src_address[16];
+  u32 count;
+  vl_api_fib_path_t path[count];
+};
+
 define ip_address_details
 {
   u32 client_index;
   u32 context;
   u8 ip[16];
   u8 prefix_length;
+  u32 sw_if_index;
+  u8 is_ipv6;
 };
 
 define ip_address_dump
@@ -415,6 +570,7 @@ define ip_details
 {
   u32 sw_if_index;
   u32 context;
+  u8 is_ipv6;
 };
 
 define ip_dump
@@ -424,6 +580,24 @@ define ip_dump
   u8 is_ipv6;
 };
 
+define mfib_signal_dump
+{
+  u32 client_index;
+  u32 context;
+};
+
+define mfib_signal_details
+{
+  u32 client_index;
+  u32 context;
+  u32 sw_if_index;
+  u32 table_id;
+  u16 grp_address_len;
+  u8 grp_address[16];
+  u8 src_address[16];
+  u16 ip_packet_len;
+  u8 ip_packet_data[256];
+};
 
 /*
  * Local Variables: