hi every body!
I have few questions about "punt adjacency" .
If we use the command:
switch# show cef not-cef-switched
we get various reasons for a packet that has not been cef -switched or punted to layer 3 engine.Few of reasons are:
I am not cleared about no-adj and no-encap.
A cisco link explains:
"Adjacencies are added to the table either through indirect manual configuration or dynamically, when discovered through a mechanism like ARP or using a routing protocol, such as BGP and OSPF, which forms neighbor relationships. If an adjacency is created by the FIB and is not discovered dynamically, then the Layer 2 addressing information is not known and the adjacency is considered incomplete. Once the Layer 2 information is known, the packet is forwarded to the route processor, and the adjacency is determined through ARP."
Based on the above, an incomplete adjacency "means missing layer 2 information"
But then my cisco book also defines "no-encap" as an incomplete arp resolution which essentially means the same thing as"no-adj".
2) My second question is about the statements from my cisco book:
"Packets that are marked as Cef punt are immediately are sent to layer 3 engine for further processing. some of the reasons are:
1)An entry can not be located in the fib.
2)The fib table is full."
My question is since Fib table holds all the prefixes present in routing table,therefore how is it possible for an entry(prefix) to be not present in fib but present in routing table?
thanks a lot!
no-adj = mac-address information missing so it is punted to layer 3 engine
CEF has a throttling mechanism for how many packets can be sent to the L3 engine - one packet per second.
no-encap = the number of packets dropped after the throttling level has been passed.
So an entry that is missing mac-address information but is within the threshold will be no-adj. An entry that is missing mac-address information but the CEF threshold has been passed will be no-encap -