A key feature of CUP is that a node does not forward an update for K to its neighbors unless those neighbors have registered interest in K. Therefore, with some light bookkeeping, CUP does not push unwanted updates.
Upon receipt of an update for key K there are three cases to consider.
Case 1: Pending-Response flag is set. This means that the update is a query response carrying a set of index entries in response to a query. The node stores the index entries in its cache, clears the Pending-Response flag, and pushes the update to neighbors whose interest bits are set and to local client connections open at the node.
Case 2: Pending-Response flag is clear. If all the interest bits for K are clear, the node decides whether it wants to continue receiving updates for K. The node bases its decision on K's popularity measure. Each node uses its own policy for deciding whether the popularity of a key is high enough to warrant receiving further updates for it. If the node decides K's popularity is low, it pushes a Clear-Bit control message to the sender of the update to notify it that is no longer interested in K's updates. Otherwise, if the popularity is high or some of the neighbor's interest bits are set, the node applies the update to its cache and pushes the update to those neighbors.
Note that a node can choose not to push updates for a key K to interested neighbors. This forces downstream nodes to fall back to PCX for K. However, by choosing to cut off downstream propagation, a node runs the risk of receiving subsequent queries from its neighbors which would cost it more, since it must both receive and respond to these queries. Therefore, although each node has the choice of stopping the update propagation at any time, it is in its best interest to push updates for which there are interested neighbors.
Case 3: Incoming update has expired. This could occur when the network path has long delays and the update does not arrive in time. The node does not apply the update and does not push it downstream. If the Pending-Response flag is set then the node re-issues another query for K and pushes it upstream.