mactime: add a "top" command to watch device stats
[vpp.git] / src / plugins / mactime / mactime.h
index 2166d4a..2ce1cf9 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>
 #include <vppinfra/time_range.h>
 #include <vppinfra/bihash_8_8.h>
 
-#define MACTIME_RANGE_TYPE_DROP 0
-#define MACTIME_RANGE_TYPE_ALLOW 1
-
-typedef struct
-{
-  u8 *device_name;
-  u8 mac_address[6];
-  u32 flags;
-  clib_timebase_range_t *ranges;
-} mactime_device_t;
-
-/** Always drop packets from this device */
-#define MACTIME_DEVICE_FLAG_STATIC_DROP                (1<<0)
-#define MACTIME_DEVICE_FLAG_STATIC_ALLOW       (1<<1)
-#define MACTIME_DEVICE_FLAG_DYNAMIC_DROP       (1<<2)
-#define MACTIME_DEVICE_FLAG_DYNAMIC_ALLOW      (1<<3)
+#include <mactime/mactime_device.h>
 
 typedef struct
 {
@@ -71,6 +56,7 @@ typedef struct
 
   /* Device table */
   mactime_device_t *devices;
+  u32 device_table_epoch;
 
   /* Counters */
   vlib_combined_counter_main_t allow_counters;
@@ -104,14 +90,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