}
int network_verify(Network *network) {
- TrafficControl *tc;
SRIOV *sr_iov;
assert(network);
network_verify_prefixes(network);
network_verify_route_prefixes(network);
network_verify_routing_policy_rules(network);
-
- bool has_root = false, has_clsact = false;
- ORDERED_HASHMAP_FOREACH(tc, network->tc_by_section)
- if (traffic_control_section_verify(tc, &has_root, &has_clsact) < 0)
- traffic_control_free(tc);
+ network_verify_traffic_control(network);
ORDERED_HASHMAP_FOREACH(sr_iov, network->sr_iov_by_section)
if (sr_iov_section_verify(sr_iov) < 0)
return 0;
}
-int traffic_control_section_verify(TrafficControl *tc, bool *qdisc_has_root, bool *qdisc_has_clsact) {
+static int traffic_control_section_verify(TrafficControl *tc, bool *qdisc_has_root, bool *qdisc_has_clsact) {
assert(tc);
switch(tc->kind) {
assert_not_reached("Invalid traffic control type");
}
}
+
+void network_verify_traffic_control(Network *network) {
+ bool has_root = false, has_clsact = false;
+ TrafficControl *tc;
+
+ assert(network);
+
+ ORDERED_HASHMAP_FOREACH(tc, network->tc_by_section)
+ if (traffic_control_section_verify(tc, &has_root, &has_clsact) < 0)
+ traffic_control_free(tc);
+}
void traffic_control_free(TrafficControl *tc);
int link_configure_traffic_control(Link *link);
-int traffic_control_section_verify(TrafficControl *tc, bool *qdisc_has_root, bool *qdisc_has_clsact);
+void network_verify_traffic_control(Network *network);