func matchRule()

in pkg/skoop/netstack/route.go [191:209]


func matchRule(packet *model.Packet, rule Rule, iif, oif string) bool {
	if rule.Src != nil && !rule.Src.Contains(packet.Src) {
		return false
	}
	if rule.Dst != nil && !rule.Dst.Contains(packet.Dst) {
		return false
	}
	if rule.Mark > 0 && (int(packet.Mark)^rule.Mark)&rule.Mask != 0 {
		return false
	}
	if rule.IifName != "" && rule.IifName != iif {
		return false
	}

	if rule.OifName != "" && rule.OifName != oif {
		return false
	}
	return true
}