aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/lb/lb.c
AgeCommit message (Expand)AuthorFilesLines
2019-07-31lb: vip and as dump/detail api'sHongjun Ni1-1/+1
2019-07-31vppinfra: refactor test_and_set spinlocks to use clib_spinlock_tjaszha031-8/+10
2019-06-06lb: crashed with some specific commit under heavy trafficHongjun Ni1-3/+10
2019-05-03plugins: clean up plugin descriptionsDave Wallace1-1/+1
2019-01-21Fix LB lookup table failed issueHongjun Ni1-5/+11
2018-10-23c11 safe string handling supportDave Barach1-1/+1
2018-10-19vppinfra: add atomic macros for __sync builtinsSirshak Das1-2/+2
2018-09-24LB: fix flush flow table issueHongjun Ni1-15/+22
2018-09-12Fix LB memory leak and remove useless codePierre Pfister1-11/+1
2018-09-07Add flush flag on del as commandHongjun Ni1-7/+43
2018-09-04Fixed showing negative count in stats show CLINaoyuki Mori1-2/+2
2018-08-31Support lb on both vip and per-port-vip caseHongjun Ni1-97/+357
2018-05-28add missing lb_put_writer_lock() to lb_vip_add() invalid args casesAndrey "Zed" Zaikin1-2/+7
2018-05-18Rework kube-proxy into LB pluginHongjun Ni1-55/+305
2018-04-12Fixes for 'make UNATTENDED=yes CC=clang CXX=clang verify'Neale Ranns1-2/+2
2018-02-02Add L3DSR feature in LB pluginHongjun Ni1-7/+53
2017-10-16lb plugin - fix format() type mismatchesGabriel Ganne1-2/+3
2017-10-04[aarch64] Fixes CLI crashes on dpaa2 platform.Christophe Fontaine1-1/+1
2017-04-13Remove unsed parameter from fib_table_entry_special_add() (only used in FIB t...Neale Ranns1-2/+1
2017-04-06Use thread local storage for thread indexDamjan Marion1-4/+4
2017-03-22vlib: add description field in plugin registrationDamjan Marion1-0/+1
2017-02-03Plugin infrastructure improvementsDamjan Marion1-9/+6
2017-01-01Move java,lua api and remaining plugins to src/Damjan Marion1-0/+844
an>) { clib_ring_header_t *h = clib_ring_header (v); u32 slot; if (enqueue) { if (h->n_enq == _vec_len (v)) return 0; slot = h->next; h->n_enq++; h->next++; if (h->next == _vec_len (v)) h->next = 0; } else { if (h->n_enq == 0) return 0; slot = h->next == 0 ? _vec_len (v) - 1 : h->next - 1; } return (void *) ((u8 *) v + elt_bytes * slot); } #define clib_ring_enq(ring) \ clib_ring_get_last_inline (ring, sizeof(ring[0]), 1) #define clib_ring_get_last(ring) \ clib_ring_get_last_inline (ring, sizeof(ring[0]), 0) always_inline void * clib_ring_get_first_inline (void *v, u32 elt_bytes, int dequeue) { clib_ring_header_t *h = clib_ring_header (v); u32 slot; if (h->n_enq == 0) return 0; if (h->n_enq > h->next) slot = _vec_len (v) + h->next - h->n_enq; else slot = h->next - h->n_enq; if (dequeue) h->n_enq--; return (void *) ((u8 *) v + elt_bytes * slot); } #define clib_ring_deq(ring) \ clib_ring_get_first_inline (ring, sizeof(ring[0]), 1) #define clib_ring_get_first(ring) \ clib_ring_get_first_inline (ring, sizeof(ring[0]), 0) #endif /* included_ring_h */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */