|
#define | ip46_address_is_ip4(ip46) (((ip46)->pad[0] | (ip46)->pad[1] | (ip46)->pad[2]) == 0) |
|
#define | ip46_address_mask_ip4(ip46) ((ip46)->pad[0] = (ip46)->pad[1] = (ip46)->pad[2] = 0) |
|
#define | ip46_address_set_ip4(ip46, ip) (ip46_address_mask_ip4(ip46), (ip46)->ip4 = (ip)[0]) |
|
#define | ip46_address_reset(ip46) ((ip46)->as_u64[0] = (ip46)->as_u64[1] = 0) |
|
#define | ip46_address_cmp(ip46_1, ip46_2) (memcmp(ip46_1, ip46_2, sizeof(*ip46_1))) |
|
#define | ip46_address_is_zero(ip46) (((ip46)->as_u64[0] == 0) && ((ip46)->as_u64[1] == 0)) |
|
#define | ip46_address_is_equal(a1, a2) |
|
#define | foreach_ip6_multicast_address_scope |
|
#define | foreach_ip6_multicast_link_local_group_id |
|
#define | IP6_MLDP_ALERT_TYPE 0x5 |
|
#define | ip6_ext_header_len(p) ((((ip6_ext_header_t *)(p))->n_data_u64s+1) << 3) |
|
#define | ip6_ext_authhdr_len(p) ((((ip6_ext_header_t *)(p))->n_data_u64s+2) << 2) |
|
#define | ip6_ext_header_find_t(i, p, m, t) |
|
#define | ip6_frag_hdr_offset(hdr) (clib_net_to_host_u16((hdr)->fragment_offset_and_more) >> 3) |
|
#define | ip6_frag_hdr_more(hdr) (clib_net_to_host_u16((hdr)->fragment_offset_and_more) & 0x1) |
|
#define | ip6_frag_hdr_offset_and_more(offset, more) clib_host_to_net_u16(((offset) << 3) + !!(more)) |
|
|
typedef | CLIB_PACKED (struct{ip6_address_t ip6_addr;u32 fib_index;}) ip6_address_fib_t |
|
typedef | CLIB_PACKED (union{struct{u32 pad[3];ip4_address_t ip4;};ip6_address_t ip6;u8 as_u8[16];u64 as_u64[2];}) ip46_address_t |
|
static ip46_address_t | to_ip46 (u32 is_ipv6, u8 *buf) |
|
static void | ip6_addr_fib_init (ip6_address_fib_t *addr_fib, ip6_address_t *address, u32 fib_index) |
|
static uword | ip6_address_is_multicast (ip6_address_t *a) |
|
static uword | ip46_address_is_multicast (ip46_address_t *a) |
|
static void | ip6_set_reserved_multicast_address (ip6_address_t *a, ip6_multicast_address_scope_t scope, u16 id) |
|
static void | ip6_set_solicited_node_multicast_address (ip6_address_t *a, u32 id) |
|
static void | ip6_link_local_address_from_ethernet_address (ip6_address_t *a, u8 *ethernet_address) |
|
static void | ip6_multicast_ethernet_address (u8 *ethernet_address, u32 group_id) |
|
static uword | ip6_address_is_equal (ip6_address_t *a, ip6_address_t *b) |
|
static uword | ip6_address_is_equal_masked (ip6_address_t *a, ip6_address_t *b, ip6_address_t *mask) |
|
static void | ip6_address_mask (ip6_address_t *a, ip6_address_t *mask) |
|
static void | ip6_address_set_zero (ip6_address_t *a) |
|
static void | ip6_address_mask_from_width (ip6_address_t *a, u32 width) |
|
static uword | ip6_address_is_zero (ip6_address_t *a) |
|
static uword | ip6_address_is_unspecified (ip6_address_t *a) |
|
static uword | ip6_address_is_loopback (ip6_address_t *a) |
|
static uword | ip6_address_is_link_local_unicast (ip6_address_t *a) |
|
static uword | ip6_address_is_local_unicast (ip6_address_t *a) |
|
static uword | ip6_address_is_global_unicast (ip6_address_t *a) |
|
static uword | ip6_is_solicited_node_multicast_address (ip6_address_t *a) |
|
static u8 | ip6_traffic_class (ip6_header_t *i) |
|
static void * | ip6_next_header (ip6_header_t *i) |
|
static void | ip6_copy_header (ip6_header_t *dst, const ip6_header_t *src) |
|
static void | ip6_tcp_reply_x1 (ip6_header_t *ip0, tcp_header_t *tcp0) |
|
static void | ip6_tcp_reply_x2 (ip6_header_t *ip0, ip6_header_t *ip1, tcp_header_t *tcp0, tcp_header_t *tcp1) |
|
typedef | CLIB_PACKED (struct{u8 data;}) ip6_pad1_option_t |
|
typedef | CLIB_PACKED (struct{u8 type;u8 len;u8 data[0];}) ip6_padN_option_t |
|
typedef | CLIB_PACKED (struct{#define IP6_MLDP_ALERT_TYPE u8 type;u8 len;u16 value;}) ip6_router_alert_option_t |
|
typedef | CLIB_PACKED (struct{u8 next_hdr;u8 n_data_u64s;}) ip6_ext_header_t |
|
static u8 | ip6_ext_hdr (u8 nexthdr) |
|
static void * | ip6_ext_next_header (ip6_ext_header_t *ext_hdr) |
|
typedef | CLIB_PACKED (struct{u8 next_hdr;u8 n_data_u64s;u8 data[0];}) ip6_hop_by_hop_ext_t |
|
typedef | CLIB_PACKED (struct{u8 next_hdr;u8 rsv;u16 fragment_offset_and_more;u32 identification;}) ip6_frag_hdr_t |
|