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
*/
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,
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;