Source Lookup progammable via API
[vpp.git] / src / vnet / ip / ip.api
index 4b7019f..f534166 100644 (file)
@@ -19,6 +19,8 @@
     called through a shared memory interface. 
 */
 
+vl_api_version 1.0.0
+
 /** \brief Add / del table request
            A table can be added multiple times, but need be deleted only once.
     @param client_index - opaque cookie to identify the sender
@@ -360,7 +362,6 @@ autoreply define sw_interface_ip6_set_link_local_address
     @param vrf_id - fib table /vrf associated with the route
     @param lookup_in_vrf - 
     @param classify_table_index - 
-    @param create_vrf_if_needed - 
     @param is_add - 1 if adding the route, 0 if deleting
     @param is_drop - Drop the packet
     @param is_unreach - Drop the packet and rate limit send ICMP unreachable
@@ -369,6 +370,9 @@ autoreply define sw_interface_ip6_set_link_local_address
     @param is_local - 
     @param is_classify - 
     @param is_multipath - Set to 1 if this is a multipath route, else 0
+    @param is_source_lookup - The the path is a deaggregate path (i.e. a lookup
+                             in another table) is the lookup on the packet's
+                             source address or destination.
     @param not_last - Is last or not last msg in group of multiple add/del msgs
     @param next_hop_weight - 
     @param dst_address_length - 
@@ -386,7 +390,6 @@ autoreply define ip_add_del_route
   u32 table_id;
   u32 classify_table_index;
   u32 next_hop_table_id;
-  u8 create_vrf_if_needed;
   u8 is_add;
   u8 is_drop;
   u8 is_unreach;
@@ -398,6 +401,7 @@ autoreply define ip_add_del_route
   u8 is_resolve_host;
   u8 is_resolve_attached;
   u8 is_l2_bridged;
+  u8 is_source_lookup;
   /* Is last/not-last message in group of multiple add/del messages. */
   u8 not_last;
   u8 next_hop_weight;
@@ -428,7 +432,6 @@ autoreply define ip_mroute_add_del
   u32 itf_flags;
   u32 rpf_id;
   u16 grp_address_length;
-  u8 create_vrf_if_needed;
   u8 is_add;
   u8 is_ipv6;
   u8 is_local;
@@ -545,6 +548,42 @@ define mfib_signal_details
   u8 ip_packet_data[256];
 };
 
+/** \brief IP punt policer
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param is_add - 1 to add neighbor, 0 to delete
+    @param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4
+    @param policer_index - Index of policer to use
+*/
+autoreply define ip_punt_police
+{
+  u32 client_index;
+  u32 context;
+  u32 policer_index;
+  u8 is_add;
+  u8 is_ip6;
+};
+
+/** \brief IP punt redirect
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param is_add - 1 to add neighbor, 0 to delete
+    @param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4
+    @param tx_sw_if_index - the TX interface to which traffic shoulde be
+                            redirected.
+    @param nh - The next-hop to redirect the traffic to.
+*/
+autoreply define ip_punt_redirect
+{
+  u32 client_index;
+  u32 context;
+  u32 rx_sw_if_index;
+  u32 tx_sw_if_index;
+  u8 is_add;
+  u8 is_ip6;
+  u8 nh[16];
+};
+
 /*
  * Local Variables:
  * eval: (c-set-style "gnu")