mactime: add per-mac allow-with-quota feature
[vpp.git] / src / plugins / mactime / mactime.h
index 2166d4a..11e33c1 100644 (file)
@@ -21,7 +21,7 @@
 #include <vnet/vnet.h>
 #include <vnet/ip/ip.h>
 #include <vnet/ethernet/ethernet.h>
-#include <vnet/ethernet/arp_packet.h>
+#include <vnet/ethernet/arp.h>
 #include <vlib/counter.h>
 
 #include <vppinfra/hash.h>
@@ -36,6 +36,8 @@ typedef struct
 {
   u8 *device_name;
   u8 mac_address[6];
+  u64 data_quota;
+  u64 data_used_in_range;
   u32 flags;
   clib_timebase_range_t *ranges;
 } mactime_device_t;
@@ -45,6 +47,8 @@ typedef struct
 #define MACTIME_DEVICE_FLAG_STATIC_ALLOW       (1<<1)
 #define MACTIME_DEVICE_FLAG_DYNAMIC_DROP       (1<<2)
 #define MACTIME_DEVICE_FLAG_DYNAMIC_ALLOW      (1<<3)
+#define MACTIME_DEVICE_FLAG_DYNAMIC_ALLOW_QUOTA        (1<<4)
+#define MACTIME_DEVICE_FLAG_DROP_UDP_10001      (1<<5)
 
 typedef struct
 {
@@ -104,14 +108,6 @@ extern vlib_node_registration_t mactime_tx_node;
 
 void mactime_send_create_entry_message (u8 * mac_address);
 
-static inline u8 *
-format_mac_address (u8 * s, va_list * args)
-{
-  u8 *a = va_arg (*args, u8 *);
-  return format (s, "%02x:%02x:%02x:%02x:%02x:%02x",
-                a[0], a[1], a[2], a[3], a[4], a[5]);
-}
-
 /* Periodic function events */
 #define MACTIME_EVENT1 1
 #define MACTIME_EVENT2 2