When the tap starts, it:-
finds specific locations in the firmware.
remembers the Service Ids for all configured channels.
hooks the fw_process_eit routine in the firmware (this allows the tap to intercept new entries).
As new eit entries arrive, the tap discards any whose Service Id doesn't correspond to a configured channel. Note: Checking is extremely quick - it involves testing whether a bit is set in an array (rather than looping through a list of valid Service Ids)
This mechanism eliminates most unwanted packets at source; it also eliminates the CPU overhead that would have previously been involved processing these unwanted packets.
Periodically (currently 2 minutes), the tap rebuilds (if necessary) the list of configured channels and deletes any existing entries that don't match a configured channel. A summary line is output to the Serial Port.
Note: As deletion of entries is "slow", the tap keeps the Toppy responsive by only deleting a few entries at a time.
This mechanism primarily deletes any unwanted entries that existed prior to the tap starting but may also remove others that exist following a change to the channel line up.