Improve Load-Balance MAPs 05/6305/2
authorNeale Ranns <nranns@cisco.com>
Tue, 18 Apr 2017 16:09:40 +0000 (09:09 -0700)
committerDave Barach <openvpp@barachs.net>
Mon, 24 Apr 2017 12:06:48 +0000 (12:06 +0000)
commitf12a83f54ff2239d70494d577af3e1bb253692e1
treebd1983c3cd93c5f50f2a8a7ce5da78e059bc16ed
parenta5464817522c7a7dc760af4612f1d6a68ed0afc8
Improve Load-Balance MAPs

- only build them for popular path-lists (where popular means more than 64 children)
   the reason to have a map is to improve convergence speed for recursive prefixes - if there are only a few this technique is not needed
- only build them when there is at least one path that has recursive constraints, i.e. a path that can 'fail' in a PIC scenario.
- Use the MAPS in the switch path.
- PIC test cases for functionality (not convergence performance)

Change-Id: I70705444c8469d22b07ae34be82cfb6a01358e10
Signed-off-by: Neale Ranns <nranns@cisco.com>
18 files changed:
src/vnet/dpo/load_balance.c
src/vnet/dpo/load_balance_map.h
src/vnet/fib/fib_entry_src.c
src/vnet/fib/fib_entry_src_rr.c
src/vnet/fib/fib_path.c
src/vnet/fib/fib_path.h
src/vnet/fib/fib_path_list.c
src/vnet/fib/fib_path_list.h
src/vnet/fib/fib_table.c
src/vnet/fib/fib_test.c
src/vnet/fib/fib_walk.c
src/vnet/fib/fib_walk.h
src/vnet/ip/ip4_forward.c
src/vnet/ip/ip6_forward.c
src/vnet/ip/ip6_neighbor.c
src/vnet/mpls/mpls_lookup.c
test/test_mpls.py
test/vpp_ip_route.py