The cache diffusion algorithm then works as follows. Every time the root basestation receives a tuple that does not join, it sends the maximal ERD which that tuple inter- sects one hop in the direction that the tuple came from. This node then checks its local value cache for tuples that are contained within this ERD. If one is found, this value and any other values that overlap with the ERD are re- moved from the local value cache, and the ERD is added to the ERD cache table with priority 1. If no match is found, then the ERD.