ip: Replace Sematics for Interface IP addresses
[vpp.git] / src / vnet / ip / punt.api
index cedddc5..6d99668 100644 (file)
@@ -13,7 +13,7 @@
  * limitations under the License.
  */
 
-option version = "2.1.0";
+option version = "2.2.1";
 import "vnet/ip/ip_types.api";
 
 /** \brief The types of packets to be punted
@@ -22,6 +22,8 @@ enum punt_type
 {
     /* L4 (UDP) packets */
     PUNT_API_TYPE_L4,
+    /* IP proto (i.e. OSPF, RIP, etc) packets */
+    PUNT_API_TYPE_IP_PROTO,
     /* Exception packets handled by the VLIB punt infra */
     PUNT_API_TYPE_EXCEPTION,
 };
@@ -38,6 +40,16 @@ typedef punt_l4
     u16 port;
 };
 
+/** \brief Punt IP protocol traffic definition
+    @param af - Address Family, IPv4 or IPV6
+    @param protocol - IP protocol to be punted
+*/
+typedef punt_ip_proto
+{
+    vl_api_address_family_t af;
+    vl_api_ip_proto_t protocol;
+};
+
 /** \brief The ID of the punt exception reason
            Dump all the reasons to obtain this
 */
@@ -52,6 +64,7 @@ union punt_union
 {
     vl_api_punt_exception_t exception;
     vl_api_punt_l4_t l4;
+    vl_api_punt_ip_proto_t ip_proto;
 };
 
 /** \brief Full description of which packets are requested to be punted
@@ -61,7 +74,7 @@ union punt_union
 typedef punt
 {
     vl_api_punt_type_t type;
-    vl_api_punt_union_t punt; 
+    vl_api_punt_union_t punt;
 };
 
 /** \brief Punt traffic to the host
@@ -73,7 +86,7 @@ typedef punt
 autoreply define set_punt {
     u32 client_index;
     u32 context;
-    u8 is_add;
+    bool is_add;
     vl_api_punt_t punt;
 };
 
@@ -88,14 +101,14 @@ define punt_socket_register {
     u32 context;
     u32 header_version;
     vl_api_punt_t punt;
-    u8 pathname[108]; /* Linux sun_path defined to be 108 bytes, see unix(7) */
+    string 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];
+    string pathname[108];
 };
 
 define punt_socket_dump
@@ -109,7 +122,7 @@ define punt_socket_details
 {
     u32 context;
     vl_api_punt_t punt;
-    u8 pathname[108];
+    string pathname[108];
 };
 
 autoreply define punt_socket_deregister {
@@ -118,18 +131,21 @@ autoreply define punt_socket_deregister {
     vl_api_punt_t punt;
 };
 
-/** \brief Dump all of the excpetion punt reasons
+typedef punt_reason
+{
+    u32 id;
+    string name[];
+};
+
+/** \brief Dump all or one of the exception punt reasons
+*   @param - If the string is not set punt dump all reasons
+*            else dump only the one specified
 */
 define punt_reason_dump
 {
     u32 client_index;
     u32 context;
-};
-
-typedef punt_reason
-{
-    u32 id;
-    string name;
+    vl_api_punt_reason_t reason;
 };
 
 define punt_reason_details