我们正在开发Linux系统,该系统的内核几年前编译时就没有QOS服务。目前我们想恢复QOS服务,计划只编译与QOS相关的内核模块并将其安装到系统内核中。
但是我们不知道哪些内核模块代表 QOS 服务。我们应该构建哪些模块?我们应该采取哪些额外步骤(包括我们通常为自定义用户内核模块执行的步骤)?有人知道吗?
答案1
在 3.2 内核上,模块包括:
$ ls /lib/modules/3.2.0-local/kernel/net/sched
act_csum.ko cls_flow.ko em_u32.ko sch_multiq.ko
act_gact.ko cls_fw.ko sch_atm.ko sch_netem.ko
act_ipt.ko cls_route.ko sch_cbq.ko sch_prio.ko
act_mirred.ko cls_rsvp6.ko sch_choke.ko sch_qfq.ko
act_nat.ko cls_rsvp.ko sch_drr.ko sch_red.ko
act_pedit.ko cls_tcindex.ko sch_dsmark.ko sch_sfb.ko
act_police.ko cls_u32.ko sch_gred.ko sch_sfq.ko
act_simple.ko em_cmp.ko sch_hfsc.ko sch_tbf.ko
act_skbedit.ko em_meta.ko sch_htb.ko sch_teql.ko
cls_basic.ko em_nbyte.ko sch_ingress.ko
cls_cgroup.ko em_text.ko sch_mqprio.ko
make menuconfig
请参阅下文
- 网络支持
- 网络选项
- QoS 和/或公平排队
- 网络选项
或者在你的 .config 中
--- .config_noqos
+++ .config_qos
@@ -1044,7 +1044,66 @@
CONFIG_PHONET=m
CONFIG_IEEE802154=m
CONFIG_IEEE802154_6LOWPAN=m
-# CONFIG_NET_SCHED is not set
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_INGRESS=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+# CONFIG_NET_CLS_IND is not set
+CONFIG_NET_SCH_FIFO=y
CONFIG_DCB=y
CONFIG_DNS_RESOLVER=y
CONFIG_BATMAN_ADV=m
@@ -1899,6 +1958,7 @@
CONFIG_MII=y
CONFIG_IEEE802154_DRIVERS=m
# CONFIG_IEEE802154_FAKEHARD is not set
+CONFIG_IFB=m
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
CONFIG_NETCONSOLE=m