wgengine/filter: eliminate unnecessary memory loads.

Doesn't materially affect benchmarks, but shrinks match6 by 30 instructions
and halves memory loads.

Part of #19.

Signed-off-by: David Anderson <danderson@tailscale.com>
pull/918/head
David Anderson 4 years ago
parent 47380ebcfb
commit 3fdae12f0c

@ -118,15 +118,16 @@ func newMatches6(ms []Match) (ret matches6) {
} }
func (ms matches6) match(q *packet.Parsed) bool { func (ms matches6) match(q *packet.Parsed) bool {
for _, m := range ms { for i := range ms {
if !ip6InList(q.SrcIP6, m.srcs) { if !ip6InList(q.SrcIP6, ms[i].srcs) {
continue continue
} }
for _, dst := range m.dsts { dsts := ms[i].dsts
if !dst.net.Contains(q.DstIP6) { for i := range dsts {
if !dsts[i].net.Contains(q.DstIP6) {
continue continue
} }
if !dst.ports.contains(q.DstPort) { if !dsts[i].ports.contains(q.DstPort) {
continue continue
} }
return true return true

Loading…
Cancel
Save