![]() |
FD.io VPP
v17.01-9-ge7dcee4
Vector Packet Processing
|
Definitions for all things IP (v4|v6) unicast and multicast lookup related. More...
Include dependency graph for lookup.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Data Structures | |
| struct | ip_adjacency_t_ |
| IP unicast adjacency. More... | |
| struct | ip_multicast_rewrite_t |
| struct | ip_multicast_rewrite_string_t |
| struct | ip_multicast_lookup_main_t |
| struct | ip_interface_address_t |
| struct | ip_lookup_main_t |
Macros | |
| #define | IP4_LOOKUP_NEXT_NODES |
| #define | IP6_LOOKUP_NEXT_NODES |
| #define | IP_FLOW_HASH_SRC_ADDR (1<<0) |
| Flow hash configuration. More... | |
| #define | IP_FLOW_HASH_DST_ADDR (1<<1) |
| #define | IP_FLOW_HASH_PROTO (1<<2) |
| #define | IP_FLOW_HASH_SRC_PORT (1<<3) |
| #define | IP_FLOW_HASH_DST_PORT (1<<4) |
| #define | IP_FLOW_HASH_REVERSE_SRC_DST (1<<5) |
| #define | IP_FLOW_HASH_DEFAULT (0x1F) |
| Default: 5-tuple without the "reverse" bit. More... | |
| #define | foreach_flow_hash_bit |
| #define | ip_prefetch_adjacency(lm, adj_index, type) |
| #define | foreach_ip_interface_address(lm, a, sw_if_index, loop, body) |
Typedefs | |
| typedef u32 | flow_hash_config_t |
| A flow hash configuration is a mask of the flow hash options. More... | |
| typedef void(* | adj_midchain_fixup_t) (vlib_main_t *vm, struct ip_adjacency_t_ *adj, vlib_buffer_t *b0) |
| A function type for post-rewrite fixups on midchain adjacency. More... | |
| typedef enum ip_adjacency_flags_t_ | ip_adjacency_flags_t |
| Flags on an IP adjacency. More... | |
| typedef struct ip_adjacency_t_ | ip_adjacency_t |
| IP unicast adjacency. More... | |
| typedef struct ip_lookup_main_t | ip_lookup_main_t |
Enumerations | |
| enum | ip_lookup_next_t { IP_LOOKUP_NEXT_DROP, IP_LOOKUP_NEXT_PUNT, IP_LOOKUP_NEXT_LOCAL, IP_LOOKUP_NEXT_ARP, IP_LOOKUP_NEXT_GLEAN, IP_LOOKUP_NEXT_REWRITE, IP_LOOKUP_NEXT_LOAD_BALANCE, IP_LOOKUP_NEXT_MIDCHAIN, IP_LOOKUP_NEXT_ICMP_ERROR, IP_LOOKUP_N_NEXT } |
| Common (IP4/IP6) next index stored in adjacency. More... | |
| enum | ip4_lookup_next_t { IP4_LOOKUP_N_NEXT = IP_LOOKUP_N_NEXT } |
| enum | ip6_lookup_next_t { IP6_LOOKUP_NEXT_HOP_BY_HOP = IP_LOOKUP_N_NEXT, IP6_LOOKUP_NEXT_ADD_HOP_BY_HOP, IP6_LOOKUP_NEXT_POP_HOP_BY_HOP, IP6_LOOKUP_N_NEXT } |
| enum | ip_adjacency_flags_t_ { IP_ADJ_SYNC_WALK_ACTIVE = (1 << 0) } |
| Flags on an IP adjacency. More... | |
| enum | ip_local_next_t { IP_LOCAL_NEXT_DROP, IP_LOCAL_NEXT_PUNT, IP_LOCAL_NEXT_UDP_LOOKUP, IP_LOCAL_NEXT_ICMP, IP_LOCAL_N_NEXT } |
Functions | |
| STATIC_ASSERT ((STRUCT_OFFSET_OF(ip_adjacency_t, cacheline0)==0),"IP adjacency cachline 0 is not offset") | |
| STATIC_ASSERT ((STRUCT_OFFSET_OF(ip_adjacency_t, cacheline1)==CLIB_CACHE_LINE_BYTES),"IP adjacency cachline 1 is more than one cachline size offset") | |
| static ip_adjacency_t * | ip_get_adjacency (ip_lookup_main_t *lm, u32 adj_index) |
| ip_adjacency_t * | ip_add_adjacency (ip_lookup_main_t *lm, ip_adjacency_t *adj, u32 n_adj, u32 *adj_index_result) |
| clib_error_t * | ip_interface_address_add_del (ip_lookup_main_t *lm, u32 sw_if_index, void *address, u32 address_length, u32 is_del, u32 *result_index) |
| u8 * | format_ip_flow_hash_config (u8 *s, va_list *args) |
| static ip_interface_address_t * | ip_get_interface_address (ip_lookup_main_t *lm, void *addr_fib) |
| u32 | fib_table_id_find_fib_index (fib_protocol_t proto, u32 table_id) |
| static void * | ip_interface_address_get_address (ip_lookup_main_t *lm, ip_interface_address_t *a) |
| void | ip_lookup_init (ip_lookup_main_t *lm, u32 ip_lookup_node_index) |
Variables | |
| const ip46_address_t | zero_addr |
Definitions for all things IP (v4|v6) unicast and multicast lookup related.
Definition in file lookup.h.
| #define foreach_flow_hash_bit |
| #define foreach_ip_interface_address | ( | lm, | |
| a, | |||
| sw_if_index, | |||
| loop, | |||
| body | |||
| ) |
| #define IP4_LOOKUP_NEXT_NODES |
| #define IP6_LOOKUP_NEXT_NODES |
| #define IP_FLOW_HASH_DEFAULT (0x1F) |
| #define IP_FLOW_HASH_SRC_ADDR (1<<0) |
| #define ip_prefetch_adjacency | ( | lm, | |
| adj_index, | |||
| type | |||
| ) |
| typedef void(* adj_midchain_fixup_t) (vlib_main_t *vm, struct ip_adjacency_t_ *adj, vlib_buffer_t *b0) |
| typedef u32 flow_hash_config_t |
| typedef enum ip_adjacency_flags_t_ ip_adjacency_flags_t |
Flags on an IP adjacency.
| typedef struct ip_adjacency_t_ ip_adjacency_t |
IP unicast adjacency.
| typedef struct ip_lookup_main_t ip_lookup_main_t |
| enum ip4_lookup_next_t |
| enum ip6_lookup_next_t |
| enum ip_local_next_t |
| enum ip_lookup_next_t |
Common (IP4/IP6) next index stored in adjacency.
| u32 fib_table_id_find_fib_index | ( | fib_protocol_t | proto, |
| u32 | table_id | ||
| ) |
| ip_adjacency_t* ip_add_adjacency | ( | ip_lookup_main_t * | lm, |
| ip_adjacency_t * | adj, | ||
| u32 | n_adj, | ||
| u32 * | adj_index_result | ||
| ) |
|
inlinestatic |
|
inlinestatic |
| clib_error_t* ip_interface_address_add_del | ( | ip_lookup_main_t * | lm, |
| u32 | sw_if_index, | ||
| void * | address, | ||
| u32 | address_length, | ||
| u32 | is_del, | ||
| u32 * | result_index | ||
| ) |
|
inlinestatic |
| void ip_lookup_init | ( | ip_lookup_main_t * | lm, |
| u32 | ip_lookup_node_index | ||
| ) |
| STATIC_ASSERT | ( | (STRUCT_OFFSET_OF(ip_adjacency_t, cacheline0)==0) | , |
| "IP adjacency cachline 0 is not offset" | |||
| ) |
| STATIC_ASSERT | ( | (STRUCT_OFFSET_OF(ip_adjacency_t, cacheline1)==CLIB_CACHE_LINE_BYTES) | , |
| "IP adjacency cachline 1 is more than one cachline size offset" | |||
| ) |