ipsec: Support MPLS over IPSec[46] interface
[vpp.git] / src / vnet / ip / ip_types.api
index 4929458..30cb75a 100644 (file)
@@ -18,11 +18,22 @@ option version = "3.0.0";
 manual_print typedef u8 ip4_address[4];
 manual_print typedef u8 ip6_address[16];
 
-enum address_family {
+enum address_family : u8 {
   ADDRESS_IP4 = 0,
   ADDRESS_IP6,
 };
 
+/**
+ * @brief The location at which to apply a feature
+ */
+enum ip_feature_location: u8 {
+  IP_API_FEATURE_INPUT = 0,
+  IP_API_FEATURE_OUTPUT,
+  IP_API_FEATURE_LOCAL,
+  IP_API_FEATURE_PUNT,
+  IP_API_FEATURE_DROP,
+};
+
 /* ECN code points - RFC 3168
    https://tools.ietf.org/html/rfc3168
 */
@@ -61,15 +72,16 @@ enum ip_dscp : u8 {
   IP_API_DSCP_CS7 =  50,
 };
 
-enum ip_proto {
+enum ip_proto : u8 {
   IP_API_PROTO_HOPOPT = 0,
   IP_API_PROTO_ICMP = 1,
   IP_API_PROTO_IGMP = 2,
   IP_API_PROTO_TCP = 6,
   IP_API_PROTO_UDP = 17,
   IP_API_PROTO_GRE = 47,
-  IP_API_PROTO_AH = 50,
-  IP_API_PROTO_ESP = 51,
+  IP_API_PROTO_ESP = 50,
+  IP_API_PROTO_AH = 51,
+  IP_API_PROTO_ICMP6 = 58,
   IP_API_PROTO_EIGRP = 88,
   IP_API_PROTO_OSPF = 89,
   IP_API_PROTO_SCTP = 132,
@@ -91,6 +103,18 @@ manual_print typedef prefix {
   u8 len;
 };
 
+typedef ip4_address_and_mask
+{
+  vl_api_ip4_address_t addr;
+  vl_api_ip4_address_t mask;
+};
+
+typedef ip6_address_and_mask
+{
+  vl_api_ip6_address_t addr;
+  vl_api_ip6_address_t mask;
+};
+
 typedef mprefix {
   vl_api_address_family_t af;
   u16 grp_address_length;