blob: b5b89a34b360ca5ebf2f543b5820727e6cdecfea [file] [log] [blame]
Neale Rannsdfd39542020-11-09 10:09:42 +00001.. _barnacles:
2
3Barnacles
4---------
5
6Features that are stuck on the side of the FIB. Those that directly use
7the services that the FIB provides.
8
9In the section on FIB fundamentals it was mentioned that there is a
10separation between what to match and how to forward. In an IP FIB what
11to match is the packet's destination address against a table of IP
12prefixes, and how to forward is described by a list of paths (the
13**fib_path_list_t**).
14
15ACL Based Forwarding
16^^^^^^^^^^^^^^^^^^^^
17
18ACL Based Forwarding (ABF) is also know as policy based routing
19(PBR). In ABF what to match is described by an ACL.
20
21ABF uses two VPP services; ACL as a service, as provided by the ACL
22plugin and FIB path-lists. It just glues them together.
23
24An ABF policy is the combination of an ACL with the forwarding
25description of a FIB path-list. An ABF attachment is the association
26of [an ordered set of] ABF policies to an interface. The attachment is
27consulted on the ingress path of the IP DP (as an input
28feature). If the ACL matches then the associated forwarding is
29followed, if not, the packet continues along the DP. Simples.
30
31Layer 3 Cross Connect
32^^^^^^^^^^^^^^^^^^^^^
33
34An L3 cross-connect (L3XC) matches all packets
35that ingress the interface and then forwards using the supplied FIB
36path-list. Naturally it runs as an input feature in the IP
37path. Super simples.
38
39IP Punt
40^^^^^^^
41
42Matches all IP packets that VPP has punted. Why they are punted is not
43relevant. All IP punted packets are sent by VPP to the punt feature
44arc. This feature 'matches' all packets that it receives and forwards
45using the FIB path-list.
46
47
48Unicast Reverse Path Forwarding
49^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
50
51Unicast Reverse Path Forwarding (uRPF) is the process of ensuring that
52a packet has a conforming source address. It comes in two
53flavours:
54
55- loose: The source address must be reachable, i.e. FIB must have a
56 route that will forward to the source address. The default route
57 counts as long as it does not drop.
58- strict: The source address is reachable via the interface on which
59 the packet arrived, i.e. the FIB's route for the source address must
60 include the input interface as an output interface.
61
62The uRPF feature can run on either the input or output IP feature
63arc. In both cases it serves as an anti-spoofing check, though the
64semantics are slightly different. On the input arc it enforces that
65peers on that link are only using source addresses that they should -
66a network admin should employ at the access edge. On the output
67arc it enforces that a packet is sourced from a prefix that belongs to
68the network, i.e. that is has originated from within an SP's
69network, a network admin could use at its peering points.
70
71To perform a uRPF check, the DP performs an IP FIB lookup on the
72source address, this always results in a load-balance (LB) object. If
73the LB has only 1 bucket and that bucket stacks on a drop DPO, then
74both a loose and strict check will fail, otherwise a loose check
75will pass. Each LB object has an associated uRPF list object. This
76object holds the list of interfaces through which the prefix is
77reachable. To pass the strict check, the input/output interface must
78be in this list.