}
int network_verify(Network *network) {
- RoutePrefix *route_prefix;
Address *address, *address_next;
- Prefix *prefix;
Route *route, *route_next;
TrafficControl *tc;
SRIOV *sr_iov;
network_verify_mdb_entries(network);
network_verify_neighbors(network);
network_verify_address_labels(network);
-
- HASHMAP_FOREACH(prefix, network->prefixes_by_section)
- if (section_is_invalid(prefix->section))
- prefix_free(prefix);
-
- HASHMAP_FOREACH(route_prefix, network->route_prefixes_by_section)
- if (section_is_invalid(route_prefix->section))
- route_prefix_free(route_prefix);
-
+ network_verify_prefixes(network);
+ network_verify_route_prefixes(network);
network_verify_routing_policy_rules(network);
bool has_root = false, has_clsact = false;
return 0;
}
+void network_verify_prefixes(Network *network) {
+ Prefix *prefix;
+
+ assert(network);
+
+ HASHMAP_FOREACH(prefix, network->prefixes_by_section)
+ if (section_is_invalid(prefix->section))
+ prefix_free(prefix);
+}
+
+void network_verify_route_prefixes(Network *network) {
+ RoutePrefix *prefix;
+
+ assert(network);
+
+ HASHMAP_FOREACH(prefix, network->route_prefixes_by_section)
+ if (section_is_invalid(prefix->section))
+ route_prefix_free(prefix);
+}
+
int config_parse_prefix(const char *unit,
const char *filename,
unsigned line,
Prefix *prefix_free(Prefix *prefix);
RoutePrefix *route_prefix_free(RoutePrefix *prefix);
+void network_verify_prefixes(Network *network);
+void network_verify_route_prefixes(Network *network);
+
int radv_emit_dns(Link *link);
int radv_configure(Link *link);
int radv_add_prefix(Link *link, const struct in6_addr *prefix, uint8_t prefix_len,