summaryrefslogtreecommitdiffstats
path: root/src/vnet/fib/fib_entry_src_adj.c
AgeCommit message (Collapse)AuthorFilesLines
2020-11-26fib: Only track cover if activatedNeale Ranns1-1/+15
Type: fix also cleanup any tracking at delete Signed-off-by: Neale Ranns <nranns@cisco.com> Change-Id: Id1037920c88c63e2029384af931064c00ed497aa
2019-12-04fib: Decouple source from priority and behaviourNeale Ranns1-1/+1
Type: feature the fib_source_t enum alone no longer defines the priority and behaviour, instead each source must be allocated these attributes. This allows the creation of other sources by the plugins (and soon over the API). Signed-off-by: Neale Ranns <nranns@cisco.com> Change-Id: I890ee820fbc16079ee417ea1fbc163192806e853
2019-11-26fib: Fix crash on cover update to non activated adj sourceNeale Ranns1-7/+11
if the adj source is not active then there is no existing cover during a cover update Type: fix Ticket: VPP-1803 Signed-off-by: Neale Ranns <nranns@cisco.com> Change-Id: Ie912f1c99345de4fb012bdcd97b443098d4a7351
2019-06-26fib: adj cover refinement check changeNeale Ranns1-1/+3
Usually the adj cover refinement check which ensures that for any adj sourced prefix its cover is connected, is satified by the presence of the interface source. The interface source has a high priority hence during the adj refinement check get_flags() which uses the best source, usually returns the flags for the interface source. However, in the presence of higher priority sources that interpose get_flags does not return connected and the check fails. With this change add a specific check for the interface source if the best is not connected. Type: feature Change-Id: Iabc3e29fe7c447fc3ef313e40b00d48fab09fba4 Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-03-28Typos. A bunch of typos I've been collecting.Paul Vinciguerra1-2/+2
Change-Id: I53ab8d17914e6563110354e4052109ac02bf8f3b Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2018-12-24FIB: adj src assert fix part 2Neale Ranns1-1/+8
Change-Id: Ic112180e53a55993b06ba18102202d6ac5854def Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-12-23FIB: remove assert from adj srcNeale Ranns1-1/+0
this is the case when the ADJ fib is in the non-forwarding trie Change-Id: I7bcda475b3b1e142d16363147dba3a1e2c5a07f9 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-10-16FIB: use vlib-log for debuggingNeale Ranns1-0/+3
Change-Id: I9052202b8cbcf656e61d635253d515f0f3a8d145 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-03-20FIB Interpose SourceNeale Ranns1-19/+19
The interpose source allows the source/provider to insert/interpose a DPO in the forwarding chain of the FIB entry ahead of the forwarding provided by the next best source. For example if the API source (i.e the 'control plane') has provided an adjacency for forwarding, then an interpose source (e.g. a monitoring service) couold interpose a replicatte DPO to copy the traffic to another location AND forward using the API's adjacency. To use the interose feature an existing source (i.e FIB_SOURCE_PLUGIN_HI) cn specifiy as a flag FIB_ENTRY_FLAG_INTERPOSE and provide a DPO to interpose. One might also consider using interpose in conjunction with FIB_ENTRY_FLAG_COVER_INHERIT to ensure the interpose object affects all prefixes in the sub-tree. Change-Id: I8b2737b985f8f7c08123406d0491881def347b52 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-01-18FIB Inherited SrouceNeale Ranns1-5/+24
forwarding provided by the source is pushed to all other entries it covers in the sub-tree Change-Id: I2a45222ef653358f55c2436de3e3c6353cfadba2 Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-05-23ARP/ND entries for the same address on different interfaces (VPP-848)Neale Ranns1-47/+195
there are, intentionally, no validation checks in the ARP/ND code to prevent an ARP/ND entry from being installed for an address that is not local to the interface's sub-net. This is ok, since the adjacency/FIB code is designed to handle this case using the 'refinement' criteria - i.e. only installing a FIB entry for the address if the address 'refines' (i.e. is more specific than) the interface's sub-net. However, the refinement criteria currently operates on the FIB entry's prefix (which is a /32, so on the address) and not on the next-hop in the path. So, enter multiple ARP entries for the same address on different links, and this refinement criteria uses only the last added path, and so will remove the FIB entry should the ARP entries be added in the 'wrong' order. This fix updates the refinement criteria to work on each path of the FIB entry. The entry is installed if one of the paths refines the covers and only paths refining the cover contribute forwarding. Per-path refinement checks are stored in path-extensions. The patch is rather large as path-extension, which were previously used only for out-going MPLS labels, have been generalized. Change-Id: I00be359148cb948c32c52109e832a70537a7920a Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-03-17Adjacency refinement; check the cover's interface against the adjacency'sNeale Ranns1-4/+30
Change-Id: I3fa2f35056b74e479288bb956f2713f727a81c72 Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-28Reorganize source tree to use single autotools instanceDamjan Marion1-0/+207
Change-Id: I7b51f88292e057c6443b12224486f2d0c9f8ae23 Signed-off-by: Damjan Marion <damarion@cisco.com>