Go to the source code of this file.
|
#define | LB_DBG(_p, _fmt, _args...) |
|
|
f64 | load_balance_get_multipath_tolerance (void) |
|
static index_t | load_balance_get_index (const load_balance_t *lb) |
|
static dpo_id_t * | load_balance_get_buckets (load_balance_t *lb) |
|
static load_balance_t * | load_balance_alloc_i (void) |
|
static u8 * | load_balance_format (index_t lbi, load_balance_format_flags_t flags, u32 indent, u8 *s) |
|
u8 * | format_load_balance (u8 *s, va_list *args) |
|
static u8 * | format_load_balance_dpo (u8 *s, va_list *args) |
|
static load_balance_t * | load_balance_create_i (u32 num_buckets, dpo_proto_t lb_proto, flow_hash_config_t fhc) |
|
index_t | load_balance_create (u32 n_buckets, dpo_proto_t lb_proto, flow_hash_config_t fhc) |
|
static void | load_balance_set_bucket_i (load_balance_t *lb, u32 bucket, dpo_id_t *buckets, const dpo_id_t *next) |
|
void | load_balance_set_bucket (index_t lbi, u32 bucket, const dpo_id_t *next) |
|
int | load_balance_is_drop (const dpo_id_t *dpo) |
|
void | load_balance_set_urpf (index_t lbi, index_t urpf) |
|
index_t | load_balance_get_urpf (index_t lbi) |
|
const dpo_id_t * | load_balance_get_bucket (index_t lbi, u32 bucket) |
|
static int | next_hop_sort_by_weight (load_balance_path_t *n1, load_balance_path_t *n2) |
|
u32 | ip_multipath_normalize_next_hops (load_balance_path_t *raw_next_hops, load_balance_path_t **normalized_next_hops, u32 *sum_weight_in, f64 multipath_next_hop_error_tolerance) |
|
static load_balance_path_t * | load_balance_multipath_next_hop_fixup (load_balance_path_t *nhs, dpo_proto_t drop_proto) |
|
static void | load_balance_fill_buckets (load_balance_t *lb, load_balance_path_t *nhs, dpo_id_t *buckets, u32 n_buckets) |
|
static void | load_balance_set_n_buckets (load_balance_t *lb, u32 n_buckets) |
|
void | load_balance_multipath_update (const dpo_id_t *dpo, load_balance_path_t *raw_next_hops, load_balance_flags_t flags) |
|
static void | load_balance_lock (dpo_id_t *dpo) |
|
static void | load_balance_destroy (load_balance_t *lb) |
|
static void | load_balance_unlock (dpo_id_t *dpo) |
|
static void | load_balance_mem_show (void) |
|
void | load_balance_module_init (void) |
|
static clib_error_t * | load_balance_show (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static u32 | ip_flow_hash (void *data) |
|
static u64 | mac_to_u64 (u8 *m) |
|
static u32 | l2_flow_hash (vlib_buffer_t *b0) |
|
static uword | l2_load_balance (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
|
static u8 * | format_load_balance_trace (u8 *s, va_list *args) |
|
#define LB_DBG |
( |
|
_p, |
|
|
|
_fmt, |
|
|
|
_args... |
|
) |
| |
u8* format_load_balance |
( |
u8 * |
s, |
|
|
va_list * |
args |
|
) |
| |
static u8* format_load_balance_dpo |
( |
u8 * |
s, |
|
|
va_list * |
args |
|
) |
| |
|
static |
static u8* format_load_balance_trace |
( |
u8 * |
s, |
|
|
va_list * |
args |
|
) |
| |
|
static |
static u32 ip_flow_hash |
( |
void * |
data | ) |
|
|
inlinestatic |
f64 load_balance_get_multipath_tolerance |
( |
void |
| ) |
|
int load_balance_is_drop |
( |
const dpo_id_t * |
dpo | ) |
|
static void load_balance_lock |
( |
dpo_id_t * |
dpo | ) |
|
|
static |
static void load_balance_mem_show |
( |
void |
| ) |
|
|
static |
void load_balance_module_init |
( |
void |
| ) |
|
static void load_balance_unlock |
( |
dpo_id_t * |
dpo | ) |
|
|
static |
static u64 mac_to_u64 |
( |
u8 * |
m | ) |
|
|
inlinestatic |
Initial value:= {
.name = "l2-load-balance",
.vector_size =
sizeof (
u32),
.n_next_nodes = 1,
.next_nodes = {
[0] = "error-drop",
},
}
static u8 * format_load_balance_trace(u8 *s, va_list *args)
static uword l2_load_balance(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
(constructor) VLIB_REGISTER_NODE (l2_load_balance_node)
Definition at line 940 of file load_balance.c.
Initial value:= {
}
static u8 * format_load_balance_dpo(u8 *s, va_list *args)
static void load_balance_mem_show(void)
static void load_balance_lock(dpo_id_t *dpo)
static void load_balance_unlock(dpo_id_t *dpo)
Definition at line 718 of file load_balance.c.
const char* const load_balance_ip4_nodes[] |
|
static |
Initial value:
The per-protocol VLIB graph nodes that are assigned to a load-balance object.
this means that these graph nodes are ones from which a load-balance is the parent object in the DPO-graph.
We do not list all the load-balance nodes, such as the *-lookup. instead we are relying on the correct use of the .sibling_of field when setting up these sibling nodes.
Definition at line 736 of file load_balance.c.
const char* const load_balance_ip6_nodes[] |
|
static |
const char* const load_balance_l2_nodes[] |
|
static |
The one instance of load-balance main.
Definition at line 55 of file load_balance.c.
const char* const load_balance_mpls_nodes[] |
|
static |
Initial value:=
{
}
static const char *const load_balance_ip6_nodes[]
static const char *const load_balance_mpls_nodes[]
static const char *const load_balance_ip4_nodes[]
The per-protocol VLIB graph nodes that are assigned to a load-balance object.
static const char *const load_balance_l2_nodes[]
Definition at line 756 of file load_balance.c.
Pool of all DPOs.
The encapsulation breakages are for fast DP access.
It's not static so the DP can have fast access
Definition at line 50 of file load_balance.c.
Initial value:= {
.path = "show load-balance",
.short_help = "show load-balance [<index>]",
}
static clib_error_t * load_balance_show(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
(constructor) VLIB_CLI_COMMAND (load_balance_show_command)
Definition at line 807 of file load_balance.c.
const f64 multipath_next_hop_error_tolerance = 0.1 |