An efficient distributed architecture for forwarding packets. The packet
to be forwarded arrives in an ingress port, is processed by an ingress
forwarding engine, transferred to an egress forwarding engine, and then
transmitted via an egress port. An address-based lookup at the ingress
forwarding engine identifies the correct egress forwarding engine and
also identifies a translation index specifying the forwarding equivalence
class (e.g., combination of address prefix and mask) of the packet. The
egress forwarding engine then uses the translation index as a memory
pointer to recover adjacency information with which to rewrite the packet
header. The egress forwarding engine may maintain its adjacency
information entirely locally without the need to share the information or
propagate updates to ingress forwarding engines. This approach results in
a scalable and highly efficient packet forwarding architecture.