* 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
{
/* 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,
};
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
*/
{
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
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
autoreply define set_punt {
u32 client_index;
u32 context;
- u8 is_add;
+ bool is_add;
vl_api_punt_t punt;
};
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
{
u32 context;
vl_api_punt_t punt;
- u8 pathname[108];
+ string pathname[108];
};
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