summaryrefslogtreecommitdiffstats
path: root/src/vnet/ip/ip6_neighbor.h
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2018-08-10 05:30:06 -0700
committerDamjan Marion <dmarion@me.com>2019-01-30 19:47:53 +0000
commit37029305c671f4e2d091d6f6c22142634e409043 (patch)
treef47257c77b860213fcd1901686874dee43ad1f73 /src/vnet/ip/ip6_neighbor.h
parent13b2ba2ad5527c8185dce368993a3877e7daf7a2 (diff)
Use IP and MAC API types for neighbors
use address_t and mac_address_t for IPv6 and ARP entries and all other API calls in ip.api aprat from the route ones, that will follow in a separate commit Change-Id: I67161737c2184d3f8fc1e79ebd2b55121c5b0191 Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/vnet/ip/ip6_neighbor.h')
-rw-r--r--src/vnet/ip/ip6_neighbor.h26
1 files changed, 9 insertions, 17 deletions
diff --git a/src/vnet/ip/ip6_neighbor.h b/src/vnet/ip/ip6_neighbor.h
index e273a10799f..0707a2a8d21 100644
--- a/src/vnet/ip/ip6_neighbor.h
+++ b/src/vnet/ip/ip6_neighbor.h
@@ -20,6 +20,8 @@
#define included_ip6_neighbor_h
#include <vnet/fib/fib_types.h>
+#include <vnet/ethernet/mac_address.h>
+#include <vnet/ip/ip_neighbor.h>
typedef struct
{
@@ -28,18 +30,11 @@ typedef struct
u32 pad;
} ip6_neighbor_key_t;
-typedef enum ip6_neighbor_flags_t_
-{
- IP6_NEIGHBOR_FLAG_STATIC = (1 << 0),
- IP6_NEIGHBOR_FLAG_DYNAMIC = (1 << 1),
- IP6_NEIGHBOR_FLAG_NO_FIB_ENTRY = (1 << 2),
-} __attribute__ ((packed)) ip6_neighbor_flags_t;
-
typedef struct
{
ip6_neighbor_key_t key;
- u8 link_layer_address[8];
- ip6_neighbor_flags_t flags;
+ mac_address_t mac;
+ ip_neighbor_flags_t flags;
f64 time_last_updated;
fib_node_index_t fib_entry_index;
} ip6_neighbor_t;
@@ -81,10 +76,8 @@ extern void vnet_register_ip6_neighbor_resolution_event (vnet_main_t * vnm,
extern int vnet_set_ip6_ethernet_neighbor (vlib_main_t * vm,
u32 sw_if_index,
const ip6_address_t * a,
- const u8 * link_layer_address,
- uword n_bytes_link_layer_address,
- int is_static,
- int is_no_fib_entry);
+ const mac_address_t * mac,
+ ip_neighbor_flags_t flags);
extern int vnet_unset_ip6_ethernet_neighbor (vlib_main_t * vm,
u32 sw_if_index,
@@ -99,7 +92,7 @@ typedef struct
{
u32 sw_if_index;
ip6_address_t ip6;
- u8 mac[6];
+ mac_address_t mac;
} wc_nd_report_t;
void wc_nd_set_publisher_node (uword node_index, uword event_type);
@@ -119,8 +112,7 @@ void icmp6_send_router_solicitation (vlib_main_t * vm, u32 sw_if_index,
typedef struct
{
- ip6_address_t dst_address;
- u8 dst_address_length;
+ fib_prefix_t prefix;
u8 flags;
u32 valid_time;
u32 preferred_time;
@@ -129,7 +121,7 @@ typedef struct
typedef struct
{
u32 sw_if_index;
- u8 router_address[16];
+ ip6_address_t router_address;
u8 current_hop_limit;
u8 flags;
u16 router_lifetime_in_sec;