| 121 | } |
| 122 | |
| 123 | fn encode_policy_allows(&mut self) { |
| 124 | for (policy_name, rule) in &self.policy.network_policies { |
| 125 | for ep in &rule.endpoints { |
| 126 | for port in ep.effective_ports() { |
| 127 | let eid = EndpointId { |
| 128 | policy_name: policy_name.clone(), |
| 129 | host: ep.host.clone(), |
| 130 | port, |
| 131 | }; |
| 132 | for b in &rule.binaries { |
| 133 | let key = format!("{}:{}", b.path, eid.key()); |
| 134 | let var = Bool::new_const(format!("policy_allows_{key}")); |
| 135 | self.solver.assert(&var); |
| 136 | self.policy_allows.insert(key, var); |
| 137 | } |
| 138 | } |
| 139 | } |
| 140 | } |
| 141 | } |
| 142 | |
| 143 | fn encode_l7_enforcement(&mut self) { |
| 144 | for (policy_name, rule) in &self.policy.network_policies { |