#include <vppinfra/hash.h>
#include <vppinfra/heap.h> /* adjacency heap */
+#include <vppinfra/ptclosure.h>
#include <vnet/vnet.h>
#include <vnet/ip/ip4.h>
#include <vnet/ip/ip4_error.h>
#include <vnet/ip/ip4_packet.h>
+#include <vnet/ip/icmp4.h>
#include <vnet/ip/ip6.h>
#include <vnet/ip/ip6_packet.h>
#include <vnet/ip/ip6_error.h>
#include <vnet/ip/icmp6.h>
-#include <vnet/ip/tcp.h>
-
#if DPDK > 0
#include <vnet/devices/dpdk/dpdk.h>
#endif
#include <vnet/classify/vnet_classify.h>
-typedef union {
- ip4_address_t ip4;
- ip6_address_t ip6;
-} ip46_address_t;
-
/* Per protocol info. */
typedef struct {
/* Protocol name (also used as hash key). */
#if DPDK > 0
{
u32 n_bytes_left = n_bytes_to_checksum;
- struct rte_mbuf * mb = ((struct rte_mbuf *)first_buffer)-1;
+ struct rte_mbuf * mb = rte_mbuf_from_vlib_buffer(first_buffer);
u8 nb_segs = mb->nb_segs;
ASSERT(mb->data_len >= first_buffer_offset);
void * h;
void ip_del_all_interface_addresses (vlib_main_t *vm, u32 sw_if_index);
+extern vlib_node_registration_t ip4_inacl_node;
+extern vlib_node_registration_t ip6_inacl_node;
+
+void
+vnet_config_update_tx_feature_count (ip_lookup_main_t * lm,
+ ip_config_main_t * tx_cm,
+ u32 sw_if_index,
+ int is_add);
+
#endif /* included_ip_main_h */