From 84517cfd1508f6da24937f310f7fffe752f22584 Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Sat, 25 Nov 2017 15:20:26 -0800 Subject: FIB: optimise for src memory allocations Most FIB entries will only ever have one source providing forwarding information. Currently the source infom is stored in a vector of sources on the FIB entry. Change this to a union of one source inline and a vector. This saves the need to alloc a vector of sources for each FIB entry. before: vpp# ip route add count 1500000 1.0.0.1/32 via 10.10.10.2 loop0 4.392857e5 routes/sec vpp# ip route del count 1500000 1.0.0.1/32 via 10.10.10.2 loop0 9.175464e5 routes/sec vpp# ip route add count 1500000 1.0.0.1/32 via 10.10.10.2 loop0 5.193375e5 routes/sec vpp# sh fib mem FIB memory Name Size in-use /allocated totals Entry 72 1500011/ 1500011 108000792/108000792 Entry Source 32 1500011/ 1500011 48000352/48000352 after: vpp# ip route add count 1500000 1.0.0.1/32 via 10.10.10.2 loop0 4.726560e5 routes/sec vpp# ip route del count 1500000 1.0.0.1/32 via 10.10.10.2 loop0 1.041629e6 routes/sec vpp# ip route add count 1500000 1.0.0.1/32 via 10.10.10.2 loop0 5.702895e5 routes/sec vpp# sh fib mem FIB memory Name Size in-use /allocated totals Entry 96 1500011/ 1500011 144001056/144001056 Entry Source 32 0 / 0 0/0 Change-Id: Ic71e413eaff1ec152656beda3b94186f7894ea49 Signed-off-by: Neale Ranns --- src/vnet/fib/fib_entry_src_mpls.c | 7 ------- 1 file changed, 7 deletions(-) (limited to 'src/vnet/fib/fib_entry_src_mpls.c') diff --git a/src/vnet/fib/fib_entry_src_mpls.c b/src/vnet/fib/fib_entry_src_mpls.c index f80d42afbb0..f95ca657705 100644 --- a/src/vnet/fib/fib_entry_src_mpls.c +++ b/src/vnet/fib/fib_entry_src_mpls.c @@ -181,13 +181,6 @@ const static fib_entry_src_vft_t mpls_src_vft = { .fesv_format = fib_entry_src_mpls_format, .fesv_set_data = fib_entry_src_mpls_set_data, .fesv_get_data = fib_entry_src_mpls_get_data, - /* - * .fesv_fwd_update = fib_entry_src_mpls_fwd_update, - * When the forwarding for the IP entry is updated, any MPLS chains - * it has created are also updated. Since the MPLS entry will have already - * installed that chain/load-balance there is no need to update the netry - * FIXME: later: propagate any walk to the children of the MPLS entry. for SR - */ }; void -- cgit 1.2.3-korg