summaryrefslogtreecommitdiffstats
path: root/src/plugins/mactime/mactime.h
diff options
context:
space:
mode:
authorDave Barach <dave@barachs.net>2018-06-22 13:14:08 -0400
committerFlorin Coras <florin.coras@gmail.com>2018-06-23 23:49:33 +0000
commit2a8d02df15e71881754bab0bb16b85ccd65f8f74 (patch)
tree77f79c44c7d6f4b905a1f268ac6ba646bed255b8 /src/plugins/mactime/mactime.h
parente0d2bd6bd7fc59c0c6ac48195d7f825dc99bfd91 (diff)
Tx feature node, for accounting purposes
Switch to combined allow/drop counters Show matching ip4 neighbor address if known Add static-allow mactime entries for unknown mac addresses Add the "clear mactime" command Change-Id: Ib963981438dfb8a123df1b3c023bd5fcc27f888f Signed-off-by: Dave Barach <dbarach@cisco.com>
Diffstat (limited to 'src/plugins/mactime/mactime.h')
-rw-r--r--src/plugins/mactime/mactime.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/plugins/mactime/mactime.h b/src/plugins/mactime/mactime.h
index 6890ca286c3..2166d4a6735 100644
--- a/src/plugins/mactime/mactime.h
+++ b/src/plugins/mactime/mactime.h
@@ -21,6 +21,7 @@
#include <vnet/vnet.h>
#include <vnet/ip/ip.h>
#include <vnet/ethernet/ethernet.h>
+#include <vnet/ethernet/arp_packet.h>
#include <vlib/counter.h>
#include <vppinfra/hash.h>
@@ -72,8 +73,8 @@ typedef struct
mactime_device_t *devices;
/* Counters */
- vlib_simple_counter_main_t allow_counters;
- vlib_simple_counter_main_t drop_counters;
+ vlib_combined_counter_main_t allow_counters;
+ vlib_combined_counter_main_t drop_counters;
/* config parameters */
u32 lookup_table_num_buckets;
@@ -83,6 +84,9 @@ typedef struct
/* Once-only data structure create flag */
int feature_initialized;
+ /* arp cache copy, for "show mactime" */
+ ethernet_arp_ip4_entry_t *arp_cache_copy;
+
/* convenience */
vlib_main_t *vlib_main;
vnet_main_t *vnet_main;
@@ -96,6 +100,17 @@ typedef struct
extern mactime_main_t mactime_main;
extern vlib_node_registration_t mactime_node;
+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