]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: make network_emulator_fill_message() take NetworkEmulator
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 25 Nov 2019 14:13:54 +0000 (23:13 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 4 Dec 2019 11:57:39 +0000 (20:57 +0900)
src/network/tc/netem.c
src/network/tc/netem.h
src/network/tc/qdisc.c

index ea44fd1a9c20269c358e6a18681a48f27e931cd3..0088bd706cb90678dfcb0ea5866a476d20ab8be6 100644 (file)
@@ -34,33 +34,33 @@ int network_emulator_new(NetworkEmulator **ret) {
         return 0;
 }
 
-int network_emulator_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) {
+int network_emulator_fill_message(Link *link, const NetworkEmulator *ne, sd_netlink_message *req) {
         struct tc_netem_qopt opt = {
                .limit = 1000,
         };
         int r;
 
         assert(link);
-        assert(qdisc);
+        assert(ne);
         assert(req);
 
-        if (qdisc->ne.limit > 0)
-                opt.limit = qdisc->ne.limit;
+        if (ne->limit > 0)
+                opt.limit = ne->limit;
 
-        if (qdisc->ne.loss > 0)
-                opt.loss = qdisc->ne.loss;
+        if (ne->loss > 0)
+                opt.loss = ne->loss;
 
-        if (qdisc->ne.duplicate > 0)
-                opt.duplicate = qdisc->ne.duplicate;
+        if (ne->duplicate > 0)
+                opt.duplicate = ne->duplicate;
 
-        if (qdisc->ne.delay != USEC_INFINITY) {
-                r = tc_time_to_tick(qdisc->ne.delay, &opt.latency);
+        if (ne->delay != USEC_INFINITY) {
+                r = tc_time_to_tick(ne->delay, &opt.latency);
                 if (r < 0)
                         return log_link_error_errno(link, r, "Failed to calculate latency in TCA_OPTION: %m");
         }
 
-        if (qdisc->ne.jitter != USEC_INFINITY) {
-                r = tc_time_to_tick(qdisc->ne.jitter, &opt.jitter);
+        if (ne->jitter != USEC_INFINITY) {
+                r = tc_time_to_tick(ne->jitter, &opt.jitter);
                 if (r < 0)
                         return log_link_error_errno(link, r, "Failed to calculate jitter in TCA_OPTION: %m");
         }
index ac018f99604dba1e377da2374266fca7c0633ada..66c3476a6beb70fa8459bb2901b6cfad2c87688e 100644 (file)
@@ -8,8 +8,6 @@
 #include "networkd-link.h"
 #include "time-util.h"
 
-typedef struct QDisc QDisc;
-
 typedef struct NetworkEmulator {
         usec_t delay;
         usec_t jitter;
@@ -20,7 +18,7 @@ typedef struct NetworkEmulator {
 } NetworkEmulator;
 
 int network_emulator_new(NetworkEmulator **ret);
-int network_emulator_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req);
+int network_emulator_fill_message(Link *link, const NetworkEmulator *ne, sd_netlink_message *req);
 
 CONFIG_PARSER_PROTOTYPE(config_parse_tc_network_emulator_delay);
 CONFIG_PARSER_PROTOTYPE(config_parse_tc_network_emulator_rate);
index 5a130d97793e339f7961b3be0b71499b6ff5f67e..3c233975ffed3a133bf997a41f7d073506bbb18b 100644 (file)
@@ -147,7 +147,7 @@ int qdisc_configure(Link *link, QDisc *qdisc) {
                 if (r < 0)
                         return log_oom();
 
-                r = network_emulator_fill_message(link, qdisc, req);
+                r = network_emulator_fill_message(link, &qdisc->ne, req);
                 if (r < 0)
                         return r;
         }