Go to the source code of this file.
|
int | lb_conf (ip4_address_t *ip4_address, ip6_address_t *ip6_address, u32 sticky_buckets, u32 flow_timeout) |
| Fix global load-balancer parameters. More...
|
|
int | lb_vip_add (ip46_address_t *prefix, u8 plen, lb_vip_type_t type, u32 new_length, u32 *vip_index) |
|
int | lb_vip_del (u32 vip_index) |
|
int | lb_vip_find_index (ip46_address_t *prefix, u8 plen, u32 *vip_index) |
|
int | lb_vip_add_ass (u32 vip_index, ip46_address_t *addresses, u32 n) |
|
int | lb_vip_del_ass (u32 vip_index, ip46_address_t *addresses, u32 n) |
|
int | lb_as_lookup_bypass (u32 vip_index, ip46_address_t *address, u8 is_disable) |
| Updates the adjacency index stored in the AS such that the second IP lookup (after encap) can be bypassed. More...
|
|
u32 | lb_hash_time_now (vlib_main_t *vm) |
|
void | lb_garbage_collection () |
|
#define LB_AS_FLAGS_USED 0x1 |
Definition at line 77 of file lb.h.
#define LB_DEFAULT_FLOW_TIMEOUT 40 |
Definition at line 42 of file lb.h.
#define LB_DEFAULT_PER_CPU_STICKY_BUCKETS 1 << 10 |
lb-plugin implements a MagLev-like load balancer.
http://research.google.com/pubs/pub44824.html
It hasn't been tested for interoperability with the original MagLev but intends to provide similar functionality. The load-balancer receives traffic destined to VIP (Virtual IP) addresses from one or multiple(ECMP) routers. The load-balancer tunnels the traffic toward many application servers ensuring session stickyness (i.e. that a single sessions is tunneled towards a single application server).
Definition at line 41 of file lb.h.
#define lb_foreach_vip_counter |
Value:_(TRACKED_SESSION, "tracked session", 0) \
_(UNTRACKED_PACKET, "untracked packet", 1)
Definition at line 97 of file lb.h.
#define LB_VIP_FLAGS_USED 0x1 |
Definition at line 190 of file lb.h.
#define lb_vip_get_by_index |
( |
|
index | ) |
(pool_is_free_index(lb_main.vips, index)?NULL:pool_elt_at_index(lb_main.vips, index)) |
Definition at line 300 of file lb.h.
Definition at line 195 of file lb.h.
Definition at line 194 of file lb.h.
Enumerator |
---|
LB_N_VIP_COUNTERS |
|
Definition at line 101 of file lb.h.
The load balancer supports IPv4 and IPv6 traffic and GRE4 and GRE6 encap.
Enumerator |
---|
LB_VIP_TYPE_IP6_GRE6 |
|
LB_VIP_TYPE_IP6_GRE4 |
|
LB_VIP_TYPE_IP4_GRE6 |
|
LB_VIP_TYPE_IP4_GRE4 |
|
LB_VIP_N_TYPES |
|
Definition at line 112 of file lb.h.
int lb_as_lookup_bypass |
( |
u32 |
vip_index, |
|
|
ip46_address_t * |
address, |
|
|
u8 |
is_disable |
|
) |
| |
Updates the adjacency index stored in the AS such that the second IP lookup (after encap) can be bypassed.
Definition at line 538 of file lb.c.
Fix global load-balancer parameters.
- Parameters
-
ip4_address | IPv4 source address used for encapsulated traffic |
ip6_address | IPv6 source address used for encapsulated traffic |
- Returns
- 0 on success. VNET_LB_ERR_XXX on error
Definition at line 335 of file lb.c.
void lb_garbage_collection |
( |
| ) |
|
Definition at line 206 of file lb.c.
Definition at line 31 of file lb.c.
Definition at line 665 of file lb.c.
int lb_vip_add_ass |
( |
u32 |
vip_index, |
|
|
ip46_address_t * |
addresses, |
|
|
u32 |
n |
|
) |
| |
Definition at line 398 of file lb.c.
int lb_vip_del |
( |
u32 |
vip_index | ) |
|
Definition at line 723 of file lb.c.
int lb_vip_del_ass |
( |
u32 |
vip_index, |
|
|
ip46_address_t * |
addresses, |
|
|
u32 |
n |
|
) |
| |
Definition at line 530 of file lb.c.
int lb_vip_find_index |
( |
ip46_address_t * |
prefix, |
|
|
u8 |
plen, |
|
|
u32 * |
vip_index |
|
) |
| |
Definition at line 371 of file lb.c.
Definition at line 91 of file lb.h.
Definition at line 315 of file lb.h.
Definition at line 196 of file lb.h.
Definition at line 197 of file lb.h.
Definition at line 120 of file lb.h.
Definition at line 26 of file lb.c.
Definition at line 121 of file lb.h.