aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/ip-neighbor/ip_neighbor_types.h
diff options
context:
space:
mode:
authorNeale Ranns <neale.ranns@cisco.com>2020-11-20 13:05:59 +0000
committerNeale Ranns <nranns@cisco.com>2020-11-25 12:57:16 +0000
commit4ac36bcb190b85e6541d27072157fdcee42bee23 (patch)
tree8c3da48e217bcef492b56deacd2e3c333ff5a683 /src/vnet/ip-neighbor/ip_neighbor_types.h
parent38340fa32c96e9c6cb1593f03117dd504efbd5f4 (diff)
ip-neighbor: Send API event when neighbor is removed
Type: fix Signed-off-by: Neale Ranns <neale.ranns@cisco.com> Change-Id: I9952497a108bac26445af95c28d4eed46099c2fc
Diffstat (limited to 'src/vnet/ip-neighbor/ip_neighbor_types.h')
-rw-r--r--src/vnet/ip-neighbor/ip_neighbor_types.h35
1 files changed, 18 insertions, 17 deletions
diff --git a/src/vnet/ip-neighbor/ip_neighbor_types.h b/src/vnet/ip-neighbor/ip_neighbor_types.h
index 8dfc438e7ad..2eb8fd0841f 100644
--- a/src/vnet/ip-neighbor/ip_neighbor_types.h
+++ b/src/vnet/ip-neighbor/ip_neighbor_types.h
@@ -22,21 +22,6 @@
#include <vnet/ethernet/mac_address.h>
#include <vnet/fib/fib_types.h>
-#define IP_SCAN_DISABLED 0
-#define IP_SCAN_V4_NEIGHBORS (1 << 0)
-#define IP_SCAN_V6_NEIGHBORS (1 << 1)
-#define IP_SCAN_V46_NEIGHBORS (IP_SCAN_V4_NEIGHBORS | IP_SCAN_V6_NEIGHBORS)
-
-typedef struct
-{
- u8 mode; /* 0: disable, 1: ip4, 2: ip6, 3: both */
- u8 scan_interval; /* neighbor scan interval in minutes */
- u8 max_proc_time; /* max processing time per run, in usecs */
- u8 max_update; /* max probe/delete operations per run */
- u8 scan_int_delay; /* delay in msecs, to resume scan on max */
- u8 stale_threshold; /* Threshold in minutes to delete nei entry */
-} ip_neighbor_scan_arg_t;
-
#define foreach_ip_neighbor_flag \
_(STATIC, 1 << 0, "static", "S") \
_(DYNAMIC, 1 << 1, "dynamic", "D") \
@@ -50,12 +35,13 @@ typedef enum ip_neighbor_flags_t_
#define _(a,b,c,d) IP_NEIGHBOR_FLAG_##a = b,
foreach_ip_neighbor_flag
#undef _
-} __attribute__ ((packed)) ip_neighbor_flags_t;
+} __clib_packed ip_neighbor_flags_t;
typedef struct ip_neighbor_watcher_t_
{
u32 ipw_pid;
u32 ipw_client;
+ int ipw_api_version;
} ip_neighbor_watcher_t;
extern u8 *format_ip_neighbor_watcher (u8 * s, va_list * args);
@@ -115,12 +101,27 @@ typedef struct ip_neighbor_learn_t_
u32 sw_if_index;
} ip_neighbor_learn_t;
+
+typedef enum ip_neighbor_event_flags_t_
+{
+ IP_NEIGHBOR_EVENT_ADDED = (1 << 0),
+ IP_NEIGHBOR_EVENT_REMOVED = (1 << 1),
+} ip_neighbor_event_flags_t;
+
typedef struct ip_neighbor_event_t_
{
ip_neighbor_watcher_t ipne_watch;
- index_t ipne_index;
+ ip_neighbor_event_flags_t ipne_flags;
+ ip_neighbor_t ipne_nbr;
} ip_neighbor_event_t;
+extern void ip_neighbor_clone (const ip_neighbor_t * ipn,
+ ip_neighbor_t * clone);
+
+extern void ip_neighbor_free (ip_neighbor_t * ipn);
+
+
+
#endif /* __INCLUDE_IP_NEIGHBOR_H__ */
/*