  In-network caching promises to improve the performance of networked and edge
applications as it shortens the paths data need to travel. This is by storing
so-called hot items in the network switches on-route between clients who access
the data and the storage servers who maintain it. Since the data flows through
those switches in any case, it is natural to cache hot items there.
  Most software-managed caches treat the cache as a fully associative region.
Alas, a fully associative design seems to be at odds with programmable
switches' goal of handling packets in a short bounded amount of time, as well
as their restricted programming model. In this work, we present PKache, a
generic limited associativity cache implementation in the programmable
switches' domain-specific P4 language, and demonstrate its utility by realizing
multiple popular cache management schemes.
