Go to the source code of this file.
|
enum | lb_next_t { LB_NEXT_DROP,
LB_N_NEXT
} |
|
enum | lb_vip_counter_t { LB_N_VIP_COUNTERS
} |
|
enum | lb_encap_type_t { LB_ENCAP_TYPE_GRE4,
LB_ENCAP_TYPE_GRE6,
LB_ENCAP_TYPE_L3DSR,
LB_ENCAP_N_TYPES
} |
|
enum | lb_vip_type_t {
LB_VIP_TYPE_IP6_GRE6,
LB_VIP_TYPE_IP6_GRE4,
LB_VIP_TYPE_IP4_GRE6,
LB_VIP_TYPE_IP4_GRE4,
LB_VIP_TYPE_IP4_L3DSR,
LB_VIP_N_TYPES
} |
| The load balancer supports IPv4 and IPv6 traffic and GRE4, GRE6 and L3DSR encap. More...
|
|
|
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, u8 dscp, 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) |
|
u32 | lb_hash_time_now (vlib_main_t *vm) |
|
void | lb_garbage_collection () |
|
#define LB_AS_FLAGS_USED 0x1 |
Definition at line 83 of file lb.h.
#define LB_DEFAULT_FLOW_TIMEOUT 40 |
Definition at line 45 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 44 of file lb.h.
#define lb_encap_is_ip4 |
( |
|
vip | ) |
|
Value:
Definition at line 240 of file lb.h.
#define lb_foreach_vip_counter |
Value:_(NEXT_PACKET, "packet from existing sessions", 0) \
_(FIRST_PACKET, "first session packet", 1) \
_(UNTRACKED_PACKET, "untracked packet", 2) \
_(NO_SERVER, "no server configured", 3)
Definition at line 119 of file lb.h.
#define LB_VIP_FLAGS_USED 0x1 |
Definition at line 221 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 350 of file lb.h.
#define lb_vip_is_gre4 |
( |
|
vip | ) |
|
Value:
Definition at line 234 of file lb.h.
#define lb_vip_is_gre6 |
( |
|
vip | ) |
|
Value:
Definition at line 236 of file lb.h.
#define lb_vip_is_ip4 |
( |
|
vip | ) |
|
Value:
Definition at line 230 of file lb.h.
Definition at line 238 of file lb.h.
Enumerator |
---|
LB_ENCAP_TYPE_GRE4 |
|
LB_ENCAP_TYPE_GRE6 |
|
LB_ENCAP_TYPE_L3DSR |
|
LB_ENCAP_N_TYPES |
|
Definition at line 132 of file lb.h.
Enumerator |
---|
LB_NEXT_DROP |
|
LB_N_NEXT |
|
Definition at line 47 of file lb.h.
Enumerator |
---|
LB_N_VIP_COUNTERS |
|
Definition at line 125 of file lb.h.
The load balancer supports IPv4 and IPv6 traffic and GRE4, GRE6 and L3DSR encap.
Enumerator |
---|
LB_VIP_TYPE_IP6_GRE6 |
|
LB_VIP_TYPE_IP6_GRE4 |
|
LB_VIP_TYPE_IP4_GRE6 |
|
LB_VIP_TYPE_IP4_GRE4 |
|
LB_VIP_TYPE_IP4_L3DSR |
|
LB_VIP_N_TYPES |
|
Definition at line 143 of file lb.h.
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 378 of file lb.c.
void lb_garbage_collection |
( |
| ) |
|
Definition at line 249 of file lb.c.
Definition at line 57 of file lb.c.
Definition at line 662 of file lb.c.
int lb_vip_add_ass |
( |
u32 |
vip_index, |
|
|
ip46_address_t * |
addresses, |
|
|
u32 |
n |
|
) |
| |
Definition at line 441 of file lb.c.
int lb_vip_del |
( |
u32 |
vip_index | ) |
|
Definition at line 733 of file lb.c.
int lb_vip_del_ass |
( |
u32 |
vip_index, |
|
|
ip46_address_t * |
addresses, |
|
|
u32 |
n |
|
) |
| |
Definition at line 598 of file lb.c.
int lb_vip_find_index |
( |
ip46_address_t * |
prefix, |
|
|
u8 |
plen, |
|
|
u32 * |
vip_index |
|
) |
| |
Definition at line 414 of file lb.c.
Definition at line 113 of file lb.h.
Definition at line 359 of file lb.h.
Definition at line 244 of file lb.h.
Definition at line 245 of file lb.h.
Definition at line 153 of file lb.h.
Definition at line 27 of file lb.c.
Definition at line 154 of file lb.h.