Queuing
Ingress packets—solicitations and replies to solicitations—delivered to the neighboring protocol handlers are normally processed right away. However, as described in the section "Delayed Processing of Solicitation Requests" and as shown in Figure 27-9, proxying can be configured to queue and delay them.
Packets transmitted by the L3 layer, if they are addressed to unresolved L2 addresses, can be temporarily queued by the neighboring layer to await address resolution, as described in the section "Interaction Between Neighboring Protocols and L3 Transmission Functions." (In contrast, the solicitations and replies generated by the neighboring protocols themselves are transmitted right away.)
The following subsections go into more detail on both ingress and egress queuing .
Ingress Queuing
All neighboring
protocols share certain tasks when ingress packets are queued. These include adding
packets to the cache, flushing arp_queue when a
solicitation reply is received, and using the proxy's proxy_queue. There are also tasks specific to an individual neighboring
protocol. Details on what ARP needs to do are described in Chapter 28.
Egress Queuing
When transmitting a data packet, if the association between the destination layer L3
and L2 address has not been resolved yet, the neighboring protocol inserts the packet
temporarily into the arp_queue queue. (Each
neighboring protocol has a queue named arp_queue, not just the ARP protocol.) If the association is resolved in a timely manner, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access