blob: 3606e620645659dd407dac8fc22a15f47c046bd5 [file] [log] [blame]
jdenisco0923a232018-08-29 13:19:43 -04001.. _arpentries:
2
3ARP Entries
4^^^^^^^^^^^
5
6.. figure:: /_images/fib20fig1.png
7
8Figure 1: ARP data model
9
10Figure 1 shows the data model for an ARP entry. An ARP entry contains the mapping
11between a peer, identified by an IPv4 address, and its MAC address on a given
12interface. The VRF the interface is bound to, is not part of the data. VRFs are
13an ingress function not egress. The ARP entry describes how to send traffic to a
14peer, which is an egress function.
15
16The *arp_entry_t* represents the control-plane addition of the ARP entry. The
17*ip_adjacency_t* contains the data derived from the *arp_entry_t* that is need to
18forward packets to the peer. The additional data in the adjacency are the *rewrite*
19and the *link_type*. The *link_type* is a description of the protocol of the packets
20that will be forwarded with this adjacency; this can be IPv4 or MPLS. The *link_type*
21maps directly to the ether-type in an Ethernet header, or the protocol filed in a
22GRE header. The rewrite is a byte string representation of the header that will be
23prepended to the packet when it is sent to that peer. For Ethernet interfaces this
24would be the src,dst MAC and the ether-type. For LISP tunnels, the IP src,dst pair
25and the LISP header.
26
27The *arp_entry_t* will install a *link_type=IPv4* when the entry is created and a
28link_type=MPLS when the interface is MPLS enabled. Interfaces must be explicitly
29MPLS enabled for security reasons.
30
31So that adjacencies can be shared between route, adjacencies are stored in a single
32data-base, the key for which is {interface, next-hop, link-type}.