]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: move logging from tc .fill_message to the callers
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 5 Jan 2022 09:35:19 +0000 (10:35 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 5 Jan 2022 10:45:16 +0000 (11:45 +0100)
Structured initialization is used a bit more.

There were two kinds of log messages: about failed size calculations and
about failed appends to the message. I "downgraded" the first type to log_debug,
and moved the latter to the caller. This way there should be at most one high-priority
message.

I also changed sizeof(<type>) to sizeof(var) — there is less chance of select-and-paste
error in the second form.

19 files changed:
src/network/tc/cake.c
src/network/tc/codel.c
src/network/tc/drr.c
src/network/tc/ets.c
src/network/tc/fifo.c
src/network/tc/fq-codel.c
src/network/tc/fq-pie.c
src/network/tc/fq.c
src/network/tc/gred.c
src/network/tc/hhf.c
src/network/tc/htb.c
src/network/tc/netem.c
src/network/tc/pie.c
src/network/tc/qdisc.c
src/network/tc/qfq.c
src/network/tc/sfb.c
src/network/tc/sfq.c
src/network/tc/tbf.c
src/network/tc/tclass.c

index b4cbc4f97075ceb6d60b6e0fc52cc50000b0e66a..d52151e75d815c8fae745b93370f8e6d9d8a7309 100644 (file)
@@ -39,88 +39,88 @@ static int cake_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req)
         assert(qdisc);
         assert(req);
 
-        c = CAKE(qdisc);
+        assert_se(c = CAKE(qdisc));
 
         r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "cake");
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m");
+                return r;
 
         if (c->bandwidth > 0) {
                 r = sd_netlink_message_append_u64(req, TCA_CAKE_BASE_RATE64, c->bandwidth);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_CAKE_BASE_RATE64 attribute: %m");
+                        return r;
         }
 
         if (c->autorate >= 0) {
                 r = sd_netlink_message_append_u32(req, TCA_CAKE_AUTORATE, c->autorate);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_CAKE_AUTORATE attribute: %m");
+                        return r;
         }
 
         if (c->overhead_set) {
                 r = sd_netlink_message_append_s32(req, TCA_CAKE_OVERHEAD, c->overhead);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_CAKE_OVERHEAD attribute: %m");
+                        return r;
         }
 
         if (c->mpu > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_CAKE_MPU, c->mpu);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_CAKE_MPU attribute: %m");
+                        return r;
         }
 
         if (c->compensation_mode >= 0) {
                 r = sd_netlink_message_append_u32(req, TCA_CAKE_ATM, c->compensation_mode);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_CAKE_ATM attribute: %m");
+                        return r;
         }
 
         if (c->raw > 0) {
                 /* TCA_CAKE_RAW attribute is mostly a flag, not boolean. */
                 r = sd_netlink_message_append_u32(req, TCA_CAKE_RAW, 0);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_CAKE_RAW attribute: %m");
+                        return r;
         }
 
         if (c->flow_isolation_mode >= 0) {
                 r = sd_netlink_message_append_u32(req, TCA_CAKE_FLOW_MODE, c->flow_isolation_mode);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_CAKE_FLOW_MODE attribute: %m");
+                        return r;
         }
 
         if (c->nat >= 0) {
                 r = sd_netlink_message_append_u32(req, TCA_CAKE_NAT, c->nat);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_CAKE_NAT attribute: %m");
+                        return r;
         }
 
         if (c->preset >= 0) {
                 r = sd_netlink_message_append_u32(req, TCA_CAKE_DIFFSERV_MODE, c->preset);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_CAKE_DIFFSERV_MODE attribute: %m");
+                        return r;
         }
 
         if (c->fwmark > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_CAKE_FWMARK, c->fwmark);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_CAKE_FWMARK attribute: %m");
+                        return r;
         }
 
         if (c->wash >= 0) {
                 r = sd_netlink_message_append_u32(req, TCA_CAKE_WASH, c->wash);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_CAKE_WASH attribute: %m");
+                        return r;
         }
 
         if (c->split_gso >= 0) {
                 r = sd_netlink_message_append_u32(req, TCA_CAKE_SPLIT_GSO, c->split_gso);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_CAKE_SPLIT_GSO attribute: %m");
+                        return r;
         }
 
         r = sd_netlink_message_close_container(req);
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m");
+                return r;
 
         return 0;
 }
index 33f40d87d443da0350a0d3c944ac7385da310334..23351bf3d1253e054c367a58d2b36bf5c9fe40a9 100644 (file)
@@ -31,45 +31,45 @@ static int controlled_delay_fill_message(Link *link, QDisc *qdisc, sd_netlink_me
         assert(qdisc);
         assert(req);
 
-        cd = CODEL(qdisc);
+        assert_se(cd = CODEL(qdisc));
 
         r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "codel");
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m");
+                return r;
 
         if (cd->packet_limit > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_CODEL_LIMIT, cd->packet_limit);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_CODEL_LIMIT attribute: %m");
+                        return r;
         }
 
         if (cd->interval_usec > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_CODEL_INTERVAL, cd->interval_usec);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_CODEL_INTERVAL attribute: %m");
+                        return r;
         }
 
         if (cd->target_usec > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_CODEL_TARGET, cd->target_usec);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_CODEL_TARGET attribute: %m");
+                        return r;
         }
 
         if (cd->ecn >= 0) {
                 r = sd_netlink_message_append_u32(req, TCA_CODEL_ECN, cd->ecn);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_CODEL_ECN attribute: %m");
+                        return r;
         }
 
         if (cd->ce_threshold_usec != USEC_INFINITY) {
                 r = sd_netlink_message_append_u32(req, TCA_CODEL_CE_THRESHOLD, cd->ce_threshold_usec);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_CODEL_CE_THRESHOLD attribute: %m");
+                        return r;
         }
 
         r = sd_netlink_message_close_container(req);
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m");
+                return r;
 
         return 0;
 }
index ab67b0ad3e163bcef5761cf781ad121a8306daf0..742a56f8c9d9368bb6283b15439ea4be822032c2 100644 (file)
@@ -23,21 +23,21 @@ static int drr_class_fill_message(Link *link, TClass *tclass, sd_netlink_message
         assert(tclass);
         assert(req);
 
-        drr = TCLASS_TO_DRR(tclass);
+        assert_se(drr = TCLASS_TO_DRR(tclass));
 
         r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "drr");
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m");
+                return r;
 
         if (drr->quantum > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_DRR_QUANTUM, drr->quantum);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_DRR_QUANTUM, attribute: %m");
+                        return r;
         }
 
         r = sd_netlink_message_close_container(req);
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m");
+                return r;
 
         return 0;
 }
index f8dd1adabc8e7079603e902b59a66580c31f22f5..c4d594cd1bedc682d70b965c037d765a5a1212f8 100644 (file)
@@ -20,57 +20,57 @@ static int enhanced_transmission_selection_fill_message(Link *link, QDisc *qdisc
         assert(qdisc);
         assert(req);
 
-        ets = ETS(qdisc);
+        assert_se(ets = ETS(qdisc));
 
         r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "ets");
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m");
+                return r;
 
         r = sd_netlink_message_append_u8(req, TCA_ETS_NBANDS, ets->n_bands);
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not append TCA_ETS_NBANDS attribute: %m");
+                return r;
 
         if (ets->n_strict > 0) {
                 r = sd_netlink_message_append_u8(req, TCA_ETS_NSTRICT, ets->n_strict);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_ETS_NSTRICT attribute: %m");
+                        return r;
         }
 
         if (ets->n_quanta > 0) {
                 r = sd_netlink_message_open_container(req, TCA_ETS_QUANTA);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not open container TCA_ETS_QUANTA: %m");
+                        return r;
 
                 for (unsigned i = 0; i < ets->n_quanta; i++) {
                         r = sd_netlink_message_append_u32(req, TCA_ETS_QUANTA_BAND, ets->quanta[i]);
                         if (r < 0)
-                                return log_link_error_errno(link, r, "Could not append TCA_ETS_QUANTA_BAND attribute: %m");
+                                return r;
                 }
 
                 r = sd_netlink_message_close_container(req);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not close container TCA_ETS_QUANTA: %m");
+                        return r;
         }
 
         if (ets->n_prio > 0) {
                 r = sd_netlink_message_open_container(req, TCA_ETS_PRIOMAP);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not open container TCA_ETS_PRIOMAP: %m");
+                        return r;
 
                 for (unsigned i = 0; i < ets->n_prio; i++) {
                         r = sd_netlink_message_append_u8(req, TCA_ETS_PRIOMAP_BAND, ets->prio[i]);
                         if (r < 0)
-                                return log_link_error_errno(link, r, "Could not append TCA_ETS_PRIOMAP_BAND attribute: %m");
+                                return r;
                 }
 
                 r = sd_netlink_message_close_container(req);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not close container TCA_ETS_PRIOMAP: %m");
+                        return r;
         }
 
         r = sd_netlink_message_close_container(req);
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m");
+                return r;
 
         return 0;
 }
index 3dd7f0b5f405e9e6edaee64c641727c505cc6576..4f6e8fa613a8361e8cee60d2a21c7c5e3d5a6840 100644 (file)
@@ -11,7 +11,6 @@
 #include "string-util.h"
 
 static int fifo_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) {
-        struct tc_fifo_qopt opt = {};
         FirstInFirstOut *fifo;
         int r;
 
@@ -21,23 +20,22 @@ static int fifo_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req)
 
         switch(qdisc->kind) {
         case QDISC_KIND_PFIFO:
-                fifo = PFIFO(qdisc);
+                assert_se(fifo = PFIFO(qdisc));
                 break;
         case QDISC_KIND_BFIFO:
-                fifo = BFIFO(qdisc);
+                assert_se(fifo = BFIFO(qdisc));
                 break;
         case QDISC_KIND_PFIFO_HEAD_DROP:
-                fifo = PFIFO_HEAD_DROP(qdisc);
+                assert_se(fifo = PFIFO_HEAD_DROP(qdisc));
                 break;
         default:
                 assert_not_reached();
         }
 
-        opt.limit = fifo->limit;
-
-        r = sd_netlink_message_append_data(req, TCA_OPTIONS, &opt, sizeof(struct tc_fifo_qopt));
+        const struct tc_fifo_qopt opt = { .limit = fifo->limit };
+        r = sd_netlink_message_append_data(req, TCA_OPTIONS, &opt, sizeof(opt));
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not append TCA_OPTIONS attribute: %m");
+                return r;
 
         return 0;
 }
index 7c61cf2ac65e4e896fce40da3680b757fa805efb..42dfd632a2b927bef2c28e16c6ef03c952ecf315 100644 (file)
@@ -33,63 +33,63 @@ static int fair_queueing_controlled_delay_fill_message(Link *link, QDisc *qdisc,
         assert(qdisc);
         assert(req);
 
-        fqcd = FQ_CODEL(qdisc);
+        assert_se(fqcd = FQ_CODEL(qdisc));
 
         r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "fq_codel");
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m");
+                return r;
 
         if (fqcd->packet_limit > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_FQ_CODEL_LIMIT, fqcd->packet_limit);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_FQ_CODEL_LIMIT attribute: %m");
+                        return r;
         }
 
         if (fqcd->flows > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_FQ_CODEL_FLOWS, fqcd->flows);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_FQ_CODEL_FLOWS attribute: %m");
+                        return r;
         }
 
         if (fqcd->quantum > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_FQ_CODEL_QUANTUM, fqcd->quantum);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_FQ_CODEL_QUANTUM attribute: %m");
+                        return r;
         }
 
         if (fqcd->interval_usec > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_FQ_CODEL_INTERVAL, fqcd->interval_usec);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_FQ_CODEL_INTERVAL attribute: %m");
+                        return r;
         }
 
         if (fqcd->target_usec > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_FQ_CODEL_TARGET, fqcd->target_usec);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_FQ_CODEL_TARGET attribute: %m");
+                        return r;
         }
 
         if (fqcd->ecn >= 0) {
                 r = sd_netlink_message_append_u32(req, TCA_FQ_CODEL_ECN, fqcd->ecn);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_FQ_CODEL_ECN attribute: %m");
+                        return r;
         }
 
         if (fqcd->ce_threshold_usec != USEC_INFINITY) {
                 r = sd_netlink_message_append_u32(req, TCA_FQ_CODEL_CE_THRESHOLD, fqcd->ce_threshold_usec);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_FQ_CODEL_CE_THRESHOLD attribute: %m");
+                        return r;
         }
 
         if (fqcd->memory_limit != UINT32_MAX) {
                 r = sd_netlink_message_append_u32(req, TCA_FQ_CODEL_MEMORY_LIMIT, fqcd->memory_limit);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_FQ_CODEL_MEMORY_LIMIT attribute: %m");
+                        return r;
         }
 
         r = sd_netlink_message_close_container(req);
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m");
+                return r;
 
         return 0;
 }
index c7d7623b47b7fc7a1757a52615355c0b303d827a..d4a9d5966acb33fdb57764feedd24f0a95ba8dc0 100644 (file)
@@ -18,21 +18,21 @@ static int fq_pie_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req
         assert(qdisc);
         assert(req);
 
-        fq_pie = FQ_PIE(qdisc);
+        assert_se(fq_pie = FQ_PIE(qdisc));
 
         r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "fq_pie");
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m");
+                return r;
 
         if (fq_pie->packet_limit > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_FQ_PIE_LIMIT, fq_pie->packet_limit);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_FQ_PIE_PLIMIT attribute: %m");
+                        return r;
         }
 
         r = sd_netlink_message_close_container(req);
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m");
+                return r;
 
         return 0;
 }
index d10a863495cc88153a51e3657c9d93a0eeb7d4c9..1e69a66d7bb34751dc506d58d67cb5d989ccbcb8 100644 (file)
@@ -32,46 +32,46 @@ static int fair_queueing_fill_message(Link *link, QDisc *qdisc, sd_netlink_messa
         assert(qdisc);
         assert(req);
 
-        fq = FQ(qdisc);
+        assert_se(fq = FQ(qdisc));
 
         r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "fq");
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m");
+                return r;
 
         if (fq->packet_limit > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_FQ_PLIMIT, fq->packet_limit);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_FQ_PLIMIT attribute: %m");
+                        return r;
         }
 
         if (fq->flow_limit > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_FQ_FLOW_PLIMIT, fq->flow_limit);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_FQ_FLOW_PLIMIT attribute: %m");
+                        return r;
         }
 
         if (fq->quantum > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_FQ_QUANTUM, fq->quantum);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_FQ_QUANTUM attribute: %m");
+                        return r;
         }
 
         if (fq->initial_quantum > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_FQ_INITIAL_QUANTUM, fq->initial_quantum);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_FQ_INITIAL_QUANTUM attribute: %m");
+                        return r;
         }
 
         if (fq->pacing >= 0) {
                 r = sd_netlink_message_append_u32(req, TCA_FQ_RATE_ENABLE, fq->pacing);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_FQ_RATE_ENABLE attribute: %m");
+                        return r;
         }
 
         if (fq->max_rate > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_FQ_FLOW_MAX_RATE, fq->max_rate);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_FQ_FLOW_MAX_RATE attribute: %m");
+                        return r;
         }
 
         if (fq->buckets > 0) {
@@ -80,24 +80,24 @@ static int fair_queueing_fill_message(Link *link, QDisc *qdisc, sd_netlink_messa
                 l = log2u(fq->buckets);
                 r = sd_netlink_message_append_u32(req, TCA_FQ_BUCKETS_LOG, l);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_FQ_BUCKETS_LOG attribute: %m");
+                        return r;
         }
 
         if (fq->orphan_mask > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_FQ_ORPHAN_MASK, fq->orphan_mask);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_FQ_ORPHAN_MASK attribute: %m");
+                        return r;
         }
 
         if (fq->ce_threshold_usec != USEC_INFINITY) {
                 r = sd_netlink_message_append_u32(req, TCA_FQ_CE_THRESHOLD, fq->ce_threshold_usec);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_FQ_CE_THRESHOLD attribute: %m");
+                        return r;
         }
 
         r = sd_netlink_message_close_container(req);
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m");
+                return r;
 
         return 0;
 }
index ce26e62450fae3ceec56deddbfea1bd6af052d96..96281e6bd46febf7c72eb0eb34a2378456d72378 100644 (file)
@@ -24,32 +24,31 @@ static int generic_random_early_detection_init(QDisc *qdisc) {
 
 static int generic_random_early_detection_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) {
         GenericRandomEarlyDetection *gred;
-        struct tc_gred_sopt opt = {};
         int r;
 
         assert(link);
         assert(qdisc);
         assert(req);
 
-        gred = GRED(qdisc);
-
-        opt.DPs = gred->virtual_queues;
-        opt.def_DP = gred->default_virtual_queue;
+        assert_se(gred = GRED(qdisc));
 
-        if (gred->grio >= 0)
-                opt.grio = gred->grio;
+        const struct tc_gred_sopt opt = {
+                .DPs = gred->virtual_queues,
+                .def_DP = gred->default_virtual_queue,
+                .grio = gred->grio,
+        };
 
         r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "gred");
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m");
+                return r;
 
-        r = sd_netlink_message_append_data(req, TCA_GRED_DPS, &opt, sizeof(struct tc_gred_sopt));
+        r = sd_netlink_message_append_data(req, TCA_GRED_DPS, &opt, sizeof(opt));
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not append TCA_GRED_DPS attribute: %m");
+                return r;
 
         r = sd_netlink_message_close_container(req);
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m");
+                return r;
 
         return 0;
 }
index 68a4b4571021f5d53132332e8df244bffa5d8559..aac4feff452b9398709aafa35842b010909be2d8 100644 (file)
@@ -19,21 +19,21 @@ static int heavy_hitter_filter_fill_message(Link *link, QDisc *qdisc, sd_netlink
         assert(qdisc);
         assert(req);
 
-        hhf = HHF(qdisc);
+        assert_se(hhf = HHF(qdisc));
 
         r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "hhf");
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m");
+                return r;
 
         if (hhf->packet_limit > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_HHF_BACKLOG_LIMIT, hhf->packet_limit);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_HHF_BACKLOG_LIMIT attribute: %m");
+                        return r;
         }
 
        r = sd_netlink_message_close_container(req);
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m");
+                return r;
 
         return 0;
 }
index 14fb1f92e34fac50658a76a36514040a28353d39..78fcd3f05fe2e505b7f1d7f93b877c8008563983 100644 (file)
 
 static int hierarchy_token_bucket_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) {
         HierarchyTokenBucket *htb;
-        struct tc_htb_glob opt = {
-                .version = 3,
-        };
         int r;
 
         assert(link);
         assert(qdisc);
         assert(req);
 
-        htb = HTB(qdisc);
+        assert_se(htb = HTB(qdisc));
 
-        opt.rate2quantum = htb->rate_to_quantum;
-        opt.defcls = htb->default_class;
+        struct tc_htb_glob opt = {
+                .version = 3,
+                .rate2quantum = htb->rate_to_quantum,
+                .defcls = htb->default_class,
+        };
 
         r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "htb");
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m");
+                return r;
 
         r = sd_netlink_message_append_data(req, TCA_HTB_INIT, &opt, sizeof(opt));
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not append TCA_HTB_INIT attribute: %m");
+                return r;
 
         r = sd_netlink_message_close_container(req);
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m");
+                return r;
         return 0;
 }
 
@@ -171,7 +171,6 @@ const QDiscVTable htb_vtable = {
 
 static int hierarchy_token_bucket_class_fill_message(Link *link, TClass *tclass, sd_netlink_message *req) {
         HierarchyTokenBucketClass *htb;
-        struct tc_htb_opt opt = {};
         uint32_t rtab[256], ctab[256];
         int r;
 
@@ -179,62 +178,65 @@ static int hierarchy_token_bucket_class_fill_message(Link *link, TClass *tclass,
         assert(tclass);
         assert(req);
 
-        htb = TCLASS_TO_HTB(tclass);
+        assert_se(htb = TCLASS_TO_HTB(tclass));
 
-        opt.prio = htb->priority;
-        opt.quantum = htb->quantum;
-        opt.rate.rate = (htb->rate >= (1ULL << 32)) ? ~0U : htb->rate;
-        opt.ceil.rate = (htb->ceil_rate >= (1ULL << 32)) ? ~0U : htb->ceil_rate;
-        opt.rate.overhead = htb->overhead;
-        opt.ceil.overhead = htb->overhead;
+        struct tc_htb_opt opt = {
+                .prio = htb->priority,
+                .quantum = htb->quantum,
+                .rate.rate = (htb->rate >= (1ULL << 32)) ? ~0U : htb->rate,
+                .ceil.rate = (htb->ceil_rate >= (1ULL << 32)) ? ~0U : htb->ceil_rate,
+                .rate.overhead = htb->overhead,
+                .ceil.overhead = htb->overhead,
+        };
 
         r = tc_transmit_time(htb->rate, htb->buffer, &opt.buffer);
         if (r < 0)
-                return log_link_error_errno(link, r, "Failed to calculate buffer size: %m");
+                return log_link_debug_errno(link, r, "Failed to calculate buffer size: %m");
 
         r = tc_transmit_time(htb->ceil_rate, htb->ceil_buffer, &opt.cbuffer);
         if (r < 0)
-                return log_link_error_errno(link, r, "Failed to calculate ceil buffer size: %m");
+                return log_link_debug_errno(link, r, "Failed to calculate ceil buffer size: %m");
 
         r = tc_fill_ratespec_and_table(&opt.rate, rtab, htb->mtu);
         if (r < 0)
-                return log_link_error_errno(link, r, "Failed to calculate rate table: %m");
+                return log_link_debug_errno(link, r, "Failed to calculate rate table: %m");
 
         r = tc_fill_ratespec_and_table(&opt.ceil, ctab, htb->mtu);
         if (r < 0)
-                return log_link_error_errno(link, r, "Failed to calculate ceil rate table: %m");
+                return log_link_debug_errno(link, r, "Failed to calculate ceil rate table: %m");
 
         r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "htb");
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m");
+                return r;
 
         r = sd_netlink_message_append_data(req, TCA_HTB_PARMS, &opt, sizeof(opt));
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not append TCA_HTB_PARMS attribute: %m");
+                return r;
 
         if (htb->rate >= (1ULL << 32)) {
                 r = sd_netlink_message_append_u64(req, TCA_HTB_RATE64, htb->rate);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_HTB_RATE64 attribute: %m");
+                        return r;
         }
 
         if (htb->ceil_rate >= (1ULL << 32)) {
                 r = sd_netlink_message_append_u64(req, TCA_HTB_CEIL64, htb->ceil_rate);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_HTB_CEIL64 attribute: %m");
+                        return r;
         }
 
         r = sd_netlink_message_append_data(req, TCA_HTB_RTAB, rtab, sizeof(rtab));
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not append TCA_HTB_RTAB attribute: %m");
+                return r;
 
         r = sd_netlink_message_append_data(req, TCA_HTB_CTAB, ctab, sizeof(ctab));
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not append TCA_HTB_CTAB attribute: %m");
+                return r;
 
         r = sd_netlink_message_close_container(req);
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m");
+                return r;
+
         return 0;
 }
 
index 2d86d53125b86417aff8683f6e16a68217d858f3..d4c452675e6fc5655e01dbcee0e0b888b26041c8 100644 (file)
@@ -14,9 +14,6 @@
 #include "tc-util.h"
 
 static int network_emulator_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) {
-        struct tc_netem_qopt opt = {
-               .limit = 1000,
-        };
         NetworkEmulator *ne;
         int r;
 
@@ -24,16 +21,13 @@ static int network_emulator_fill_message(Link *link, QDisc *qdisc, sd_netlink_me
         assert(qdisc);
         assert(req);
 
-        ne = NETEM(qdisc);
-
-        if (ne->limit > 0)
-                opt.limit = ne->limit;
+        assert_se(ne = NETEM(qdisc));
 
-        if (ne->loss > 0)
-                opt.loss = ne->loss;
-
-        if (ne->duplicate > 0)
-                opt.duplicate = ne->duplicate;
+        struct tc_netem_qopt opt = {
+                .limit = ne->limit > 0 ? ne->limit : 1000,
+                .loss = ne->loss,
+                .duplicate = ne->duplicate,
+        };
 
         if (ne->delay != USEC_INFINITY) {
                 r = tc_time_to_tick(ne->delay, &opt.latency);
@@ -47,9 +41,9 @@ static int network_emulator_fill_message(Link *link, QDisc *qdisc, sd_netlink_me
                         return log_link_error_errno(link, r, "Failed to calculate jitter in TCA_OPTION: %m");
         }
 
-        r = sd_netlink_message_append_data(req, TCA_OPTIONS, &opt, sizeof(struct tc_netem_qopt));
+        r = sd_netlink_message_append_data(req, TCA_OPTIONS, &opt, sizeof(opt));
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not append TCA_OPTION attribute: %m");
+                return r;
 
         return 0;
 }
index 4fcfe625b40977cc2fd65c5ed2a012b5a00e486d..1b1a457f463b218344dc9632ab37dced2aa7af60 100644 (file)
@@ -18,21 +18,21 @@ static int pie_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) {
         assert(qdisc);
         assert(req);
 
-        pie = PIE(qdisc);
+        assert_se(pie = PIE(qdisc));
 
         r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "pie");
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m");
+                return r;
 
         if (pie->packet_limit > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_PIE_LIMIT, pie->packet_limit);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_PIE_PLIMIT attribute: %m");
+                        return r;
         }
 
         r = sd_netlink_message_close_container(req);
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m");
+                return r;
 
         return 0;
 }
index 2e0f0a12ebb108e9247b51dbefc9a86a4eb9a9d1..32b55e99f8224b64150929ddf95b06e682ddc065 100644 (file)
@@ -210,7 +210,7 @@ int qdisc_configure(Link *link, QDisc *qdisc) {
                 if (QDISC_VTABLE(qdisc)->fill_message) {
                         r = QDISC_VTABLE(qdisc)->fill_message(link, qdisc, req);
                         if (r < 0)
-                                return r;
+                                return log_link_error_errno(link, r, "Could not fill netlink message: %m");
                 }
         } else {
                 r = sd_netlink_message_append_string(req, TCA_KIND, qdisc->tca_kind);
index d2e7b875efc310f3bbadb24c506e91968cce7f29..51aef032109fa4588a6afa8f541643eab43ab451 100644 (file)
@@ -25,27 +25,28 @@ static int quick_fair_queueing_class_fill_message(Link *link, TClass *tclass, sd
         assert(tclass);
         assert(req);
 
-        qfq = TCLASS_TO_QFQ(tclass);
+        assert_se(qfq = TCLASS_TO_QFQ(tclass));
 
         r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "qfq");
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m");
+                return r;
 
         if (qfq->weight > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_QFQ_WEIGHT, qfq->weight);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_QFQ_WEIGHT attribute: %m");
+                        return r;
         }
 
         if (qfq->max_packet > 0) {
                 r = sd_netlink_message_append_u32(req, TCA_QFQ_LMAX, qfq->max_packet);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_QFQ_LMAX attribute: %m");
+                        return r;
         }
 
         r = sd_netlink_message_close_container(req);
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m");
+                return r;
+
         return 0;
 }
 
index a4ca4884b182bd1d29a8bdbbb22f9277d02fd3bf..88b3ce55bdc2bb06f9ba106bb9ab2797718a80fd 100644 (file)
 
 static int stochastic_fair_blue_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) {
         StochasticFairBlue *sfb;
-        struct tc_sfb_qopt opt = {
+        int r;
+
+        assert(link);
+        assert(qdisc);
+        assert(req);
+
+        assert_se(sfb = SFB(qdisc));
+
+        const struct tc_sfb_qopt opt = {
             .rehash_interval = 600*1000,
             .warmup_time = 60*1000,
             .penalty_rate = 10,
@@ -22,28 +30,20 @@ static int stochastic_fair_blue_fill_message(Link *link, QDisc *qdisc, sd_netlin
             .decrement = (SFB_MAX_PROB + 10000) / 20000,
             .max = 25,
             .bin_size = 20,
+            .limit = sfb->packet_limit,
         };
-        int r;
-
-        assert(link);
-        assert(qdisc);
-        assert(req);
-
-        sfb = SFB(qdisc);
-
-        opt.limit = sfb->packet_limit;
 
         r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "sfb");
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m");
+                return r;
 
-        r = sd_netlink_message_append_data(req, TCA_SFB_PARMS, &opt, sizeof(struct tc_sfb_qopt));
+        r = sd_netlink_message_append_data(req, TCA_SFB_PARMS, &opt, sizeof(opt));
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not append TCA_SFB_PARMS attribute: %m");
+                return r;
 
         r = sd_netlink_message_close_container(req);
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m");
+                return r;
 
         return 0;
 }
index f67ffc186df7c5933cb4f16ebfb94aa3f6948181..45cc54d396198957816db0f0a1d9d6db1d50c8a8 100644 (file)
 
 static int stochastic_fairness_queueing_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) {
         StochasticFairnessQueueing *sfq;
-        struct tc_sfq_qopt_v1 opt = {};
         int r;
 
         assert(link);
         assert(qdisc);
         assert(req);
 
-        sfq = SFQ(qdisc);
+        assert_se(sfq = SFQ(qdisc));
 
-        opt.v0.perturb_period = sfq->perturb_period / USEC_PER_SEC;
+        const struct tc_sfq_qopt_v1 opt = {
+                .v0.perturb_period = sfq->perturb_period / USEC_PER_SEC,
+        };
 
-        r = sd_netlink_message_append_data(req, TCA_OPTIONS, &opt, sizeof(struct tc_sfq_qopt_v1));
+        r = sd_netlink_message_append_data(req, TCA_OPTIONS, &opt, sizeof(opt));
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not append TCA_OPTIONS attribute: %m");
+                return r;
 
         return 0;
 }
index 1d1bc6f0e90a74efdc4162191ed8c6f88c36226a..2aca8c1f13fdd78348676e54dfe9e0018b3ed725 100644 (file)
@@ -17,7 +17,6 @@
 
 static int token_bucket_filter_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) {
         uint32_t rtab[256], ptab[256];
-        struct tc_tbf_qopt opt = {};
         TokenBucketFilter *tbf;
         int r;
 
@@ -25,10 +24,13 @@ static int token_bucket_filter_fill_message(Link *link, QDisc *qdisc, sd_netlink
         assert(qdisc);
         assert(req);
 
-        tbf = TBF(qdisc);
+        assert_se(tbf = TBF(qdisc));
 
-        opt.rate.rate = tbf->rate >= (1ULL << 32) ? ~0U : tbf->rate;
-        opt.peakrate.rate = tbf->peak_rate >= (1ULL << 32) ? ~0U : tbf->peak_rate;
+        struct tc_tbf_qopt opt = {
+                .rate.rate = tbf->rate >= (1ULL << 32) ? ~0U : tbf->rate,
+                .peakrate.rate = tbf->peak_rate >= (1ULL << 32) ? ~0U : tbf->peak_rate,
+                .rate.mpu = tbf->mpu,
+        };
 
         if (tbf->limit > 0)
                 opt.limit = tbf->limit;
@@ -43,69 +45,67 @@ static int token_bucket_filter_fill_message(Link *link, QDisc *qdisc, sd_netlink
                 opt.limit = lim;
         }
 
-        opt.rate.mpu = tbf->mpu;
-
         r = tc_fill_ratespec_and_table(&opt.rate, rtab, tbf->mtu);
         if (r < 0)
-                return log_link_error_errno(link, r, "Failed to calculate ratespec: %m");
+                return log_link_debug_errno(link, r, "Failed to calculate ratespec: %m");
 
         r = tc_transmit_time(opt.rate.rate, tbf->burst, &opt.buffer);
         if (r < 0)
-                return log_link_error_errno(link, r, "Failed to calculate buffer size: %m");
+                return log_link_debug_errno(link, r, "Failed to calculate buffer size: %m");
 
         if (opt.peakrate.rate > 0) {
                 opt.peakrate.mpu = tbf->mpu;
 
                 r = tc_fill_ratespec_and_table(&opt.peakrate, ptab, tbf->mtu);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Failed to calculate ratespec: %m");
+                        return log_link_debug_errno(link, r, "Failed to calculate ratespec: %m");
 
                 r = tc_transmit_time(opt.peakrate.rate, tbf->mtu, &opt.mtu);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Failed to calculate mtu size: %m");
+                        return log_link_debug_errno(link, r, "Failed to calculate mtu size: %m");
         }
 
         r = sd_netlink_message_open_container_union(req, TCA_OPTIONS, "tbf");
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not open container TCA_OPTIONS: %m");
+                return r;
 
-        r = sd_netlink_message_append_data(req, TCA_TBF_PARMS, &opt, sizeof(struct tc_tbf_qopt));
+        r = sd_netlink_message_append_data(req, TCA_TBF_PARMS, &opt, sizeof(opt));
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not append TCA_TBF_PARMS attribute: %m");
+                return r;
 
         r = sd_netlink_message_append_data(req, TCA_TBF_BURST, &tbf->burst, sizeof(tbf->burst));
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not append TCA_TBF_BURST attribute: %m");
+                return r;
 
         if (tbf->rate >= (1ULL << 32)) {
                 r = sd_netlink_message_append_u64(req, TCA_TBF_RATE64, tbf->rate);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_TBF_RATE64 attribute: %m");
+                        return r;
         }
 
         r = sd_netlink_message_append_data(req, TCA_TBF_RTAB, rtab, sizeof(rtab));
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not append TCA_TBF_RTAB attribute: %m");
+                return r;
 
         if (opt.peakrate.rate > 0) {
                 if (tbf->peak_rate >= (1ULL << 32)) {
                         r = sd_netlink_message_append_u64(req, TCA_TBF_PRATE64, tbf->peak_rate);
                         if (r < 0)
-                                return log_link_error_errno(link, r, "Could not append TCA_TBF_PRATE64 attribute: %m");
+                                return r;
                 }
 
                 r = sd_netlink_message_append_u32(req, TCA_TBF_PBURST, tbf->mtu);
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_TBF_PBURST attribute: %m");
+                        return r;
 
                 r = sd_netlink_message_append_data(req, TCA_TBF_PTAB, ptab, sizeof(ptab));
                 if (r < 0)
-                        return log_link_error_errno(link, r, "Could not append TCA_TBF_PTAB attribute: %m");
+                        return r;
         }
 
         r = sd_netlink_message_close_container(req);
         if (r < 0)
-                return log_link_error_errno(link, r, "Could not close container TCA_OPTIONS: %m");
+                return r;
 
         return 0;
 }
index d8145997f0408cace6008c25092906dee18db3fa..24a66579f9791406442ff61f305734c4b5dd692c 100644 (file)
@@ -158,7 +158,7 @@ int tclass_configure(Link *link, TClass *tclass) {
         if (TCLASS_VTABLE(tclass)->fill_message) {
                 r = TCLASS_VTABLE(tclass)->fill_message(link, tclass, req);
                 if (r < 0)
-                        return r;
+                        return log_link_error_errno(link, r, "Could not fill netlink message: %m");
         }
 
         r = netlink_call_async(link->manager->rtnl, NULL, req, tclass_handler, link_netlink_destroy_callback, link);