Apparatus and methods are provided for a Network Address Translation
(NAT)-aware unified cache. According to one embodiment, multiple
packet-processing applications distributed among one or more processors
of a network device share one or more unified caches without requiring a
cache synchronization protocol. When a packet is received at the network
device, a first packet-processing application, such as NAT or another
application that modifies part of the packet header upon which a cache
lookup key is based, tags the packet with a cache lookup key based upon
the original contents of the packet header. Then, other packet-processing
applications attempting to access the cache entry from the unified cache
subsequent to the tagging by the first packet-processing application use
the tag (the cache lookup key generated by the first packet-processing
application) rather than determining the cache lookup key based upon the
current contents of the packet header.