Thu 17 Sep 2026 / 12:14 ET
Kernel
Internet 5 min read

Packet forwarding engine: the router component that moves traffic

A packet forwarding engine applies prepared forwarding information to move packets through a router.

Dana Voss

By Dana Voss / Security Correspondent

A packet forwarding engine, or PFE, is the part of a router that takes a received packet and sends it toward the appropriate outgoing interface. It operates in the forwarding plane, also called the data plane, using forwarding information supplied by the control plane rather than computing network-wide paths for every packet.

The name is especially common in Juniper documentation, but the underlying job is broader than one vendor. A PFE is not necessarily a whole router, a whole line card, or the entire forwarding plane. In one Juniper-oriented model, line cards contain ports and one or more ASICs, or application-specific integrated circuits, called PFEs; the forwarding plane also includes the ports and the switch fabric connecting components.

What a packet forwarding engine does

Forwarding moves a packet from an ingress interface, where it enters a router, to an egress interface, where it leaves. Routing is the separate work of discovering topology and computing routes. The control plane runs routing protocols, maintains routing information, and supplies forwarding state. The PFE applies that state to arriving packets.

A simplified packet path looks like this:

  1. An inbound physical interface converts signals from copper, fiber, or wireless media into bits, which are represented as packet data in buffers or memory.
  2. The PFE parses packet headers for the forwarding decision.
  3. It uses its forwarding table to select a next hop and output interface, then applies the header information required for transmission.
  4. It places the packet, or a reference to it, on a transmit ring or output queue.
  5. The outbound physical interface transmits the packet on the selected medium.

Each router along a path repeats this local operation. The forwarding plane receives routes from the control plane; it does not have the global topology view used to determine whether a route is loop-free or optimal.

What has to be programmed into the fast path

“Look up the destination and send it out” is a decent cartoon of forwarding. An engine needs a complete, usable instruction.

Forwarding table

The forwarding engine switches packets using tables supplied by forwarding-table software, which in turn receives information from the routing table and related sources. In a Junos-specific arrangement described in a training video, the Routing Engine sends a copy of the forwarding table to the PFE, allowing the PFE to forward transit packets without consulting the Routing Engine for each packet.

Next hop and rewrite string

A forwarding instruction needs a usable next hop, the next destination for the packet, plus a rewrite string: prepared lower-layer header information needed to transmit it on the next link. The Packet Pushers analysis says forwarding-table software collects this information, including neighbor-resolution data, and creates the rewrite string before programming the engine.

Tunnels show why that preparation exists. At a tunnel tail end, an engine can remove the tunnel header before processing and still needs suitable headers for the outbound packet. At a tunnel head end, it needs an instruction containing the complete tunnel header. The forwarding path needs the finished header data ready to use.

Next-hop groups

A destination can have more than one usable next hop. Forwarding entries therefore generally point to next-hop groups, which associate a destination with multiple next hops and their rewrite strings.

  • Equal-cost multipath (ECMP): the engine may select among next hops with a hash or on a per-packet basis.
  • Backup forwarding: the engine can use next hops in a specified order when a preferred path is no longer available.

The engine needs both the available choices and the rule for choosing among them.

Flattened recursion

Some routes are recursive: reaching the next hop for one destination requires another route lookup. Before the PFE can forward the packet, that chain must resolve to a directly usable next hop and rewrite string. This is called flattening recursion. Packet Pushers says most forwarding engines can flatten one recursion level, while software commonly resolves recursion before programming routes into the engine.

Failure reports and switching statistics

The interface to a forwarding engine also needs operational feedback. Packet Pushers identifies physical or logical interface failures and switching statistics, including packets switched per second and sFlow data, as examples that must reach the operating system.

Physical packaging and capabilities vary by platform. The useful boundary is straightforward: the PFE is part of the forwarding plane that applies resolved forwarding instructions repeatedly to move packets from an input to an output.

Frequently asked questions

What is the difference between a routing table and a forwarding table?

Routing information is used by the control plane to compute routes. Forwarding-table software receives information from the routing table and related sources, then supplies the state used by the forwarding engine to switch packets.

Why does packet forwarding require a rewrite string?

The engine needs prepared lower-layer header information to transmit a packet on its next link. Tunnel handling can also require the appropriate tunnel header or suitable outbound headers after a tunnel header is removed.

How do next-hop groups enable ECMP and backup forwarding?

A next-hop group associates a destination with multiple next hops and their rewrite strings. For ECMP, selection may use a hash or occur per packet. For backups, next hops can be used in a programmed order when the preferred path is unavailable.

What is the difference between the control plane and the forwarding plane?

The control plane discovers topology and computes routes. The forwarding plane processes packets using the resulting forwarding information, moving each packet from an ingress interface to an egress interface.

Sources

More Internet/

view all ↗