#ifndef included_ip_ip6_h
#define included_ip_ip6_h
-#include <vlib/mc.h>
#include <vlib/buffer.h>
#include <vnet/ethernet/packet.h>
#include <vnet/ip/ip6_packet.h>
#include <vppinfra/bihash_24_8.h>
#include <vppinfra/bihash_template.h>
#include <vnet/util/radix.h>
+#include <vnet/util/throttle.h>
/*
* Default size of the ip6 fib hash table
/* HBH processing enabled? */
u8 hbh_enabled;
+
+ /** ND throttling */
+ throttle_t nd_throttle;
} ip6_main_t;
+#define ND_THROTTLE_BITS 512
+
/* Global ip6 main structure. */
extern ip6_main_t ip6_main;
ip6h->hop_limit = 0xff;
ip6h->protocol = proto;
- clib_memcpy (ip6h->src_address.as_u8, src->as_u8,
- sizeof (ip6h->src_address));
- clib_memcpy (ip6h->dst_address.as_u8, dst->as_u8,
- sizeof (ip6h->src_address));
+ clib_memcpy_fast (ip6h->src_address.as_u8, src->as_u8,
+ sizeof (ip6h->src_address));
+ clib_memcpy_fast (ip6h->dst_address.as_u8, dst->as_u8,
+ sizeof (ip6h->src_address));
b->flags |= VNET_BUFFER_F_IS_IP6;
return ip6h;