]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
tc: remove dsmark qdisc
authorStephen Hemminger <stephen@networkplumber.org>
Mon, 30 Oct 2023 18:35:32 +0000 (11:35 -0700)
committerStephen Hemminger <stephen@networkplumber.org>
Mon, 30 Oct 2023 18:35:32 +0000 (11:35 -0700)
The kernel has removed support for dsmark qdisc in commit
bbe77c14ee61 (net/sched: Retire dsmark qdisc, 2023-02-14)

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
bash-completion/tc
man/man8/tc.8
tc/Makefile
tc/q_dsmark.c [deleted file]
testsuite/tests/tc/dsmark.t [deleted file]

index db5558ab6b59a1781e3b0e05d833593ca091154c..9f6199c5eaa22f690356587bb74acd882058f386 100644 (file)
@@ -4,7 +4,7 @@
 
 QDISC_KIND=' choke codel bfifo pfifo pfifo_head_drop fq fq_codel gred hhf \
             mqprio multiq netem pfifo_fast pie fq_pie red sfb sfq tbf atm \
-            cbq drr dsmark hfsc htb prio qfq '
+            cbq drr hfsc htb prio qfq '
 FILTER_KIND=' basic bpf cgroup flow flower fw route u32 matchall '
 ACTION_KIND=' gact mirred bpf sample '
 
@@ -362,10 +362,6 @@ _tc_qdisc_options()
             _tc_once_attr 'bandwidth avpkt mpu cell ewma'
             return 0
             ;;
-        dsmark)
-            _tc_once_attr 'indices default_index set_tc_index'
-            return 0
-            ;;
         hfsc)
             _tc_once_attr 'default'
             return 0
index ae6de397fff07d889f8455a8cddbe83d81de1a91..e5bef911f21bf860d130f13c89040cbd6c7a8aeb 100644 (file)
@@ -403,10 +403,6 @@ useful e.g. for using RED qdiscs with different settings for particular
 traffic. There is no default class \-\- if a packet cannot be classified, it is
 dropped.
 .TP
-DSMARK
-Classify packets based on TOS field, change TOS field of packets based on
-classification.
-.TP
 ETS
 The ETS qdisc is a queuing discipline that merges functionality of PRIO and DRR
 qdiscs in one scheduler. ETS makes it easy to configure a set of strict and
index ab6ad2f5d106e8e0ddb57b296f64c8d1b1025174..b775bbe252b5bda6f6a3ccc94f65f3f1b07a6c70 100644 (file)
@@ -26,7 +26,6 @@ TCMODULES += f_bpf.o
 TCMODULES += f_flow.o
 TCMODULES += f_cgroup.o
 TCMODULES += f_flower.o
-TCMODULES += q_dsmark.o
 TCMODULES += q_gred.o
 TCMODULES += q_ingress.o
 TCMODULES += q_hfsc.o
diff --git a/tc/q_dsmark.c b/tc/q_dsmark.c
deleted file mode 100644 (file)
index 9adceba..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * q_dsmark.c          Differentiated Services field marking.
- *
- * Hacked 1998,1999 by Werner Almesberger, EPFL ICA
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <string.h>
-
-#include "utils.h"
-#include "tc_util.h"
-
-
-static void explain(void)
-{
-       fprintf(stderr,"Usage: dsmark indices INDICES [ default_index DEFAULT_INDEX ] [ set_tc_index ]\n");
-}
-
-
-static int dsmark_parse_opt(struct qdisc_util *qu, int argc, char **argv,
-       struct nlmsghdr *n, const char *dev)
-{
-       struct rtattr *tail;
-       __u16 ind;
-       char *end;
-       int dflt, set_tc_index;
-
-       ind = set_tc_index = 0;
-       dflt = -1;
-       while (argc > 0) {
-               if (!strcmp(*argv, "indices")) {
-                       NEXT_ARG();
-                       ind = strtoul(*argv, &end, 0);
-                       if (*end) {
-                               explain();
-                               return -1;
-                       }
-               } else if (!strcmp(*argv,"default_index") || !strcmp(*argv,
-                   "default")) {
-                       NEXT_ARG();
-                       dflt = strtoul(*argv, &end, 0);
-                       if (*end) {
-                               explain();
-                               return -1;
-                       }
-               } else if (!strcmp(*argv,"set_tc_index")) {
-                       set_tc_index = 1;
-               } else {
-                       explain();
-                       return -1;
-               }
-               argc--;
-               argv++;
-       }
-       if (!ind) {
-               explain();
-               return -1;
-       }
-       tail = addattr_nest(n, 1024, TCA_OPTIONS);
-       addattr_l(n, 1024, TCA_DSMARK_INDICES, &ind, sizeof(ind));
-       if (dflt != -1) {
-           __u16 tmp = dflt;
-
-           addattr_l(n, 1024, TCA_DSMARK_DEFAULT_INDEX, &tmp, sizeof(tmp));
-       }
-       if (set_tc_index)
-               addattr_l(n, 1024, TCA_DSMARK_SET_TC_INDEX, NULL, 0);
-       addattr_nest_end(n, tail);
-       return 0;
-}
-
-
-static void explain_class(void)
-{
-       fprintf(stderr, "Usage: ... dsmark [ mask MASK ] [ value VALUE ]\n");
-}
-
-
-static int dsmark_parse_class_opt(struct qdisc_util *qu, int argc, char **argv,
-       struct nlmsghdr *n, const char *dev)
-{
-       struct rtattr *tail;
-       __u8 tmp;
-       char *end;
-
-       tail = addattr_nest(n, 1024, TCA_OPTIONS);
-       while (argc > 0) {
-               if (!strcmp(*argv, "mask")) {
-                       NEXT_ARG();
-                       tmp = strtoul(*argv, &end, 0);
-                       if (*end) {
-                               explain_class();
-                               return -1;
-                       }
-                       addattr_l(n, 1024, TCA_DSMARK_MASK, &tmp, 1);
-               } else if (!strcmp(*argv,"value")) {
-                       NEXT_ARG();
-                       tmp = strtoul(*argv, &end, 0);
-                       if (*end) {
-                               explain_class();
-                               return -1;
-                       }
-                       addattr_l(n, 1024, TCA_DSMARK_VALUE, &tmp, 1);
-               } else {
-                       explain_class();
-                       return -1;
-               }
-               argc--;
-               argv++;
-       }
-       addattr_nest_end(n, tail);
-       return 0;
-}
-
-
-
-static int dsmark_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt)
-{
-       struct rtattr *tb[TCA_DSMARK_MAX+1];
-
-       if (!opt) return 0;
-       parse_rtattr(tb, TCA_DSMARK_MAX, RTA_DATA(opt), RTA_PAYLOAD(opt));
-       if (tb[TCA_DSMARK_MASK]) {
-               if (!RTA_PAYLOAD(tb[TCA_DSMARK_MASK]))
-                       fprintf(stderr, "dsmark: empty mask\n");
-               else fprintf(f, "mask 0x%02x ",
-                           rta_getattr_u8(tb[TCA_DSMARK_MASK]));
-       }
-       if (tb[TCA_DSMARK_VALUE]) {
-               if (!RTA_PAYLOAD(tb[TCA_DSMARK_VALUE]))
-                       fprintf(stderr, "dsmark: empty value\n");
-               else fprintf(f, "value 0x%02x ",
-                           rta_getattr_u8(tb[TCA_DSMARK_VALUE]));
-       }
-       if (tb[TCA_DSMARK_INDICES]) {
-               if (RTA_PAYLOAD(tb[TCA_DSMARK_INDICES]) < sizeof(__u16))
-                       fprintf(stderr, "dsmark: indices too short\n");
-               else fprintf(f, "indices 0x%04x ",
-                           rta_getattr_u16(tb[TCA_DSMARK_INDICES]));
-       }
-       if (tb[TCA_DSMARK_DEFAULT_INDEX]) {
-               if (RTA_PAYLOAD(tb[TCA_DSMARK_DEFAULT_INDEX]) < sizeof(__u16))
-                       fprintf(stderr, "dsmark: default_index too short\n");
-               else fprintf(f, "default_index 0x%04x ",
-                           rta_getattr_u16(tb[TCA_DSMARK_DEFAULT_INDEX]));
-       }
-       if (tb[TCA_DSMARK_SET_TC_INDEX]) fprintf(f, "set_tc_index ");
-       return 0;
-}
-
-
-struct qdisc_util dsmark_qdisc_util = {
-       .id             = "dsmark",
-       .parse_qopt     = dsmark_parse_opt,
-       .print_qopt     = dsmark_print_opt,
-       .parse_copt     = dsmark_parse_class_opt,
-       .print_copt     = dsmark_print_opt,
-};
diff --git a/testsuite/tests/tc/dsmark.t b/testsuite/tests/tc/dsmark.t
deleted file mode 100755 (executable)
index 3f1d5ef..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-# vim: ft=sh
-
-. lib/generic.sh
-
-ts_qdisc_available "dsmark"
-if [ $? -eq 0 ]; then
-       ts_log "dsmark: Unsupported by $TC, skipping"
-       exit 127
-fi
-
-ts_tc "dsmark" "dsmark root qdisc creation" \
-       qdisc add dev $DEV root handle 10:0 \
-       dsmark indices 64 default_index 1 set_tc_index
-
-ts_tc "dsmark" "dsmark class 1 creation" \
-       class change dev $DEV parent 10:0 classid 10:12 \
-       dsmark mask 0xff value 2
-
-ts_tc "dsmark" "dsmark class 2 creation" \
-       class change dev $DEV parent 10:0 classid 10:13 \
-       dsmark mask 0xfc value 4
-
-ts_tc "dsmark" "dsmark dump qdisc" \
-       qdisc list dev $DEV
-
-ts_tc "dsmark" "dsmark dump class" \
-       class list dev $DEV parent 10:0
-
-ts_tc "dsmark" "generic qdisc tree deletion" \
-       qdisc del dev $DEV root