]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: introduce network_verify_traffic_control()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 2 Oct 2020 08:48:59 +0000 (17:48 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 6 Oct 2020 17:50:50 +0000 (02:50 +0900)
src/network/networkd-network.c
src/network/tc/tc.c
src/network/tc/tc.h

index 3c6f45c61b3dbb05a79b29be3ac200fcb283a6c3..e93e524c3f6ec18f13586428284130faa5c2cdec 100644 (file)
@@ -156,7 +156,6 @@ static int network_resolve_stacked_netdevs(Network *network) {
 }
 
 int network_verify(Network *network) {
-        TrafficControl *tc;
         SRIOV *sr_iov;
 
         assert(network);
@@ -300,11 +299,7 @@ int network_verify(Network *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)
index 8554716d7605fb2c359a430ca70f0c6c62c55734..2bb9c8f07f005103cba3aa0d771f16b5d55c671d 100644 (file)
@@ -56,7 +56,7 @@ int link_configure_traffic_control(Link *link) {
         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) {
@@ -68,3 +68,14 @@ int traffic_control_section_verify(TrafficControl *tc, bool *qdisc_has_root, boo
                 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);
+}
index c822359f6ce52ec189588265bdfa95908e16d5c3..7e277f63232d2ab07e588add3b033cfd31d92864 100644 (file)
@@ -29,4 +29,4 @@ typedef struct TrafficControl {
 
 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);