aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/dpo
AgeCommit message (Expand)AuthorFilesLines
2017-12-09BIER in non-MPLS netowrksNeale Ranns2-0/+11
2017-12-06Label stack size exceeded fixNeale Ranns2-1/+19
2017-11-14NULL-terminate load_balance_nsh_nodes[]Gabriel Ganne1-0/+1
2017-11-09BIERNeale Ranns5-12/+86
2017-11-03NAT64: Input feature arc on virtual interface via interface RX DPO.Ole Troan2-2/+2
2017-10-31Refactor IP input checks for re-use at MPLS dispositionNeale Ranns1-20/+54
2017-10-25L3 proxy FIB source for container networkingAndrew Yourtchenko4-3/+270
2017-10-14change format_get_indent() to use u32 instead of uwordGabriel Ganne1-1/+1
2017-10-14Source Lookup progammable via APINeale Ranns1-2/+2
2017-10-05Distributed Virtual Router SupportNeale Ranns4-1/+436
2017-10-04[aarch64] Fixes CLI crashes on dpaa2 platform.Christophe Fontaine5-8/+8
2017-09-11FIB table add/delete APINeale Ranns2-8/+24
2017-08-21PPPoE usses a midchain adjacency stack on an interface-tx DPONeale Ranns7-506/+670
2017-08-08L2 over MPLSNeale Ranns4-9/+96
2017-06-30VPP debug image with worker threads hit assert on adding IP route with traffi...Neale Ranns1-1/+16
2017-05-26MPLS lookup DPO does not pop the label (nor does it handle replicate)Neale Ranns1-6/+41
2017-05-25MPLS hash function improvementsNeale Ranns1-1/+1
2017-05-24Missing VLIB node for IPv6 disposition from mcast MPLS LSPNeale Ranns1-1/+23
2017-05-23Labelled attached paths via an MPLS tunnelNeale Ranns1-0/+3
2017-05-10completelly deprecate os_get_cpu_number, replace new occurencesDamjan Marion1-4/+4
2017-05-05First commit SR MPLSPablo Camarillo1-1/+1
2017-04-24Improve Load-Balance MAPsNeale Ranns2-1/+33
2017-04-18Memory leak in load-balance mapsNeale Ranns1-3/+10
2017-04-07MPLS McastNeale Ranns11-24/+1213
2017-04-06Use thread local storage for thread indexDamjan Marion2-16/+16
2017-04-01MTRIE Optimisations 2Neale Ranns2-5/+5
2017-03-29Mtrie optimisationsNeale Ranns2-12/+11
2017-03-17MPLS performance improvments.Neale Ranns2-31/+119
2017-02-28vlib: add buffer cloning supportDamjan Marion2-44/+35
2017-02-24VPP-650: handle buffer failure in vlib_buffer_copy(...)Dave Barach1-1/+31
2017-02-21dhcp: multiple additionsNeale Ranns1-0/+5
2017-02-16Add NSH load-balance and drop DPOFlorin Coras2-2/+104
2017-02-13Basic support for LISP-GPE encapsulated NSH packetsFlorin Coras2-2/+6
2017-02-03Next node frame over-flow after replicationNeale Ranns1-2/+16
2017-02-02Fix SR multicast post mfib commitNeale Ranns1-9/+5
2017-01-27IP Multicast FIB (mfib)Neale Ranns6-2/+931
2017-01-05FIB memory leaks (VPP-578)Neale Ranns2-16/+19
2016-12-28Reorganize source tree to use single autotools instanceDamjan Marion20-0/+5848
p">("1234567.0", "%.1f", 1234567.); ret |= expectation ("foo", "%.*s", 3, "food"); ret |= expectation ("food ", "%.*s", 10, "food "); ret |= expectation ("(nil)", "%.*s", 3, (void *) 0); ret |= expectation ("foo", "%.*v", 3, food); ret |= expectation ("foobar", "%.*v%s", 3, food, "bar"); ret |= expectation ("foo bar", "%S", "foo_bar"); vec_free (food); vec_free (test_vec); return ret; } typedef struct { int a, b; } foo_t; static u8 * format_foo (u8 * s, va_list * va) { foo_t *foo = va_arg (*va, foo_t *); return format (s, "{a %d, b %d}", foo->a, foo->b); } static uword unformat_foo (unformat_input_t * i, va_list * va) { foo_t *foo = va_arg (*va, foo_t *); return unformat (i, "{%D,%D}", sizeof (foo->a), &foo->a, sizeof (foo->b), &foo->b); } int test_unformat_main (unformat_input_t * input) { u32 v[8]; long l; long long ll; f64 f; u8 *s; foo_t foo = {.a = ~0,.b = ~0 }; v[0] = v[1] = 0; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { if (unformat (input, "01 %d %d", &v[0], &v[1])) fformat (stdout, "got 01 %d %d\n", v[0], v[1]); else if (unformat (input, "d %d", &v[0])) fformat (stdout, "got it d %d\n", v[0]); else if (unformat (input, "ld %ld", &l)) fformat (stdout, "got it ld %ld\n", l); else if (unformat (input, "lld %lld", &ll)) fformat (stdout, "got it lld %lld\n", ll); else if (unformat (input, "string %s", &s)) fformat (stdout, "got string `%s'\n", s); else if (unformat (input, "float %f", &f)) fformat (stdout, "got float `%.4f'\n", f); else if (unformat (input, "foo %U", unformat_foo, &foo)) fformat (stdout, "got a foo `%U'\n", format_foo, &foo); else if (unformat (input, "ignore-me1")) fformat (stdout, "got an `ignore-me1'\n"); else if (unformat (input, "ignore-me2")) fformat (stdout, "got an `ignore-me2'\n"); else if (unformat (input, "gi%d_%d@-", &v[0], &v[1])) fformat (stdout, "got `gi%d_%d@-'\n", v[0], v[1]); else if (unformat (input, "%_%d.%d.%d.%d%_->%_%d.%d.%d.%d%_", &v[0], &v[1], &v[2], &v[3], &v[4], &v[5], &v[6], &v[7])) fformat (stdout, "got %d.%d.%d.%d -> %d.%d.%d.%d", v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7]); else { clib_warning ("unknown input `%U'\n", format_unformat_error, input); return 1; } } return 0; } #ifdef CLIB_UNIX int main (int argc, char *argv[]) { unformat_input_t i; clib_mem_init (0, 3ULL << 30); verbose = (argc > 1); unformat_init_command_line (&i, argv); if (unformat (&i, "unformat")) return test_unformat_main (&i); else return test_format_main (&i); } #endif /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */