Skip to content

Commit

Permalink
prepend encapsulation rules to reduce number of reconciliation thereof
Browse files Browse the repository at this point in the history
because of the way the iptables rules are reconciled, having the encapsulation
rules at the end of the slice of rules results in them being deleted and re-added
many times, even though they are very static. Prepending them to the slice of
rules prevents this from happening, making that iptables chain more stable
and saving a bunch of roundtrips to iptables.
  • Loading branch information
clive-jevons committed Jul 12, 2022
1 parent 37b3cf1 commit 0f0b0bd
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion pkg/mesh/mesh.go
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,9 @@ func (m *Mesh) applyTopology() {
break
}
}
ipRules = append(ipRules, m.enc.Rules(cidrs)...)

ipRules = append(m.enc.Rules(cidrs), ipRules...)

// If we are handling local routes, ensure the local
// tunnel has an IP address.
if err := m.enc.Set(oneAddressCIDR(newAllocator(*nodes[m.hostname].Subnet).next().IP)); err != nil {
Expand Down

0 comments on commit 0f0b0bd

Please sign in to comment.