Tables dealing with large lists of addresses rule expansion can generate many rules: pass from { s1, s2, ..., sN } to { d1, d2, ..., dM } expands to N*M rules: pass in from s1 to d1 pass in from s1 to d2 ... pass in from sN to dM instead put addresses into tables table { s1, s2, ..., sN } table { d1, d2, ..., dM } pass from to no rule expansion, just two table lookups for a single rule