|
FD.io VPP
v21.10.1-2-g0a485f517
Vector Packet Processing
|
Go to the documentation of this file.
19 #ifndef __IP6_ND_INLINE_H__
20 #define __IP6_ND_INLINE_H__
36 icmp6_neighbor_solicitation_or_advertisement_header_t *icmp6_nsa,
37 icmp6_neighbor_discovery_ethernet_link_layer_address_option_t
52 IP6_MULTICAST_SCOPE_link_local,
53 IP6_MULTICAST_GROUP_ID_all_hosts);
57 icmp6_nsa->icmp.type = ICMP6_neighbor_advertisement;
62 if (eth_if && icmp6_nd_ell_addr)
65 icmp6_nd_ell_addr->header.type =
66 ICMP6_NEIGHBOR_DISCOVERY_OPTION_target_link_layer_address;
69 icmp6_nsa->advertisement_flags =
73 icmp6_nsa->icmp.checksum = 0;
74 icmp6_nsa->icmp.checksum =
76 ASSERT (bogus_length == 0);
vnet_sw_interface_type_t type
#define ICMP6_NEIGHBOR_ADVERTISEMENT_FLAG_OVERRIDE
u16 ip6_tcp_udp_icmp_compute_checksum(vlib_main_t *vm, vlib_buffer_t *p0, ip6_header_t *ip0, int *bogus_lengthp)
#define clib_memcpy(d, s, n)
icmp6_neighbor_solicitation_or_advertisement_next_t
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
static uword ip6_address_is_unspecified(const ip6_address_t *a)
static void vlib_buffer_advance(vlib_buffer_t *b, word l)
Advance current data pointer by the supplied (signed!) amount.
vnet_main_t * vnet_get_main(void)
#define static_always_inline
#define ethernet_buffer_header_size(b)
Determine the size of the Ethernet headers of the current frame in the buffer.
@ ICMP6_NEIGHBOR_SOLICITATION_NEXT_REPLY
#define ICMP6_NEIGHBOR_ADVERTISEMENT_FLAG_SOLICITED
ethernet_interface_t * ethernet_get_interface(ethernet_main_t *em, u32 hw_if_index)
static_always_inline void icmp6_send_neighbor_advertisement(vlib_main_t *vm, vlib_buffer_t *b, ip6_header_t *ip6_h, icmp6_neighbor_solicitation_or_advertisement_header_t *icmp6_nsa, icmp6_neighbor_discovery_ethernet_link_layer_address_option_t *icmp6_nd_ell_addr, u32 sw_if_index0)
static void ip6_set_reserved_multicast_address(ip6_address_t *a, ip6_multicast_address_scope_t scope, u16 id)
u32 local_interface_sw_if_index
ethernet_main_t ethernet_main
@ ICMP6_NEIGHBOR_SOLICITATION_N_NEXT
static void * vlib_buffer_get_current(vlib_buffer_t *b)
Get pointer to current data to process.
@ VNET_SW_INTERFACE_TYPE_HARDWARE
static vnet_sw_interface_t * vnet_get_sup_sw_interface(vnet_main_t *vnm, u32 sw_if_index)
vl_api_interface_index_t sw_if_index
ethernet_interface_address_t address
@ ICMP6_NEIGHBOR_SOLICITATION_NEXT_DROP
VLIB buffer representation.