aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/lb/lb_test.c
AgeCommit message (Expand)AuthorFilesLines
2020-01-17lb: fix that lb_add_del_vip and lb_add_del_as api doesn't work correctlyYulong Pei1-3/+4
2019-11-26lb: lb_add_del_vip and lb_add_del_as doesn't work.Hongjun Ni1-1/+1
2019-09-30lb: remove api boilerplateOle Troan1-109/+40
2019-09-16api: autogenerate api trace print/endianOle Troan1-0/+1
2019-08-02lb: fix usage of lb_main in testFlorin Coras1-2/+18
2019-07-31lb: vip and as dump/detail api'sHongjun Ni1-7/+126
2019-07-09vat: unload unused vat pluginsDave Barach1-21/+3
2019-06-07build: add -Wall and -fno-common, fix reported issuesBenoƮt Ganne1-3/+4
2019-03-22tests: update test_lb.py to use api call lb_conf.Paul Vinciguerra1-1/+1
2019-03-07Add VAT support for LBHongjun Ni1-54/+172
2018-08-31Support lb on both vip and per-port-vip caseHongjun Ni1-1/+1
2018-05-18Rework kube-proxy into LB pluginHongjun Ni1-1/+7
2018-02-02Add L3DSR feature in LB pluginHongjun Ni1-3/+5
2017-10-03Repair vlib API socket serverDave Barach1-1/+1
2017-02-02Refactor fragile msg macro W and W2 to not burry return control flow.Jon Loeliger1-10/+9
2017-02-02Localize the timeout variable within the W message macro.Jon Loeliger1-3/+0
2017-02-02Convert message macro S to accept a message pointer parameter;Jon Loeliger1-3/+3
2017-02-02Ensure all M() and M2() second parameters are the message pointer.Jon Loeliger1-3/+9
2017-01-25Repair plugin binary API message numberingDave Barach1-0/+2
2017-01-23binary-api debug CLI works with pluginsDave Barach1-31/+4
2017-01-01Move java,lua api and remaining plugins to src/Damjan Marion1-0/+293
h); _(u32x4, i32x4, rotate_left, vrlw); _(i32x4, i32x4, rotate_left, vrlw); #undef _ #define _(t,it,lr,f) \ always_inline t t##_word_shift_##lr (t x, int n_words) \ { \ i32x4 n_bits = {0,0,0,n_words * BITS (it)}; \ return (t) __builtin_altivec_##f ((i32x4) x, n_bits); \ } _(u32x4, u32, left, vslo) _(i32x4, i32, left, vslo) _(u32x4, u32, right, vsro) _(i32x4, i32, right, vsro) _(u16x8, u16, left, vslo) _(i16x8, i16, left, vslo) _(u16x8, u16, right, vsro) _(i16x8, i16, right, vsro) #undef _ /* Interleave. */ #define _(t,it,lh,f) \ always_inline t t##_interleave_##lh (t x, t y) \ { return (t) __builtin_altivec_##f ((it) x, (it) y); } _(u32x4, i32x4, lo, vmrglw) _(i32x4, i32x4, lo, vmrglw) _(u16x8, i16x8, lo, vmrglh) _(i16x8, i16x8, lo, vmrglh) _(u32x4, i32x4, hi, vmrghw) _(i32x4, i32x4, hi, vmrghw) _(u16x8, i16x8, hi, vmrghh) _(i16x8, i16x8, hi, vmrghh) #undef _ /* Unaligned loads/stores. */ #ifndef __cplusplus #define _(t) \ always_inline void t##_store_unaligned (t x, t * a) \ { clib_mem_unaligned (a, t) = x; } \ always_inline t t##_load_unaligned (t * a) \ { return clib_mem_unaligned (a, t); } _(u8x16) _(u16x8) _(u32x4) _(u64x2) _(i8x16) _(i16x8) _(i32x4) _(i64x2) #undef _ #endif #define _signed_binop(n,m,f,g) \ /* Unsigned */ \ always_inline u##n##x##m \ u##n##x##m##_##f (u##n##x##m x, u##n##x##m y) \ { return (u##n##x##m) __builtin_altivec_##g ((i##n##x##m) x, (i##n##x##m) y); } \ \ /* Signed */ \ always_inline i##n##x##m \ i##n##x##m##_##f (i##n##x##m x, i##n##x##m y) \ { return (i##n##x##m) __builtin_altivec_##g ((i##n##x##m) x, (i##n##x##m) y); } /* Compare operations. */ _signed_binop (16, 8, is_equal, vcmpequh) _signed_binop (32, 4, is_equal, vcmpequw) #undef _signed_binop always_inline u16x8 u16x8_is_zero (u16x8 x) { u16x8 zero = { 0 }; return u16x8_is_equal (x, zero); } #endif /* included_vector_altivec_h */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */