在 Linux 上要编译什么内核模块才能获得 QOS 服务

在 Linux 上要编译什么内核模块才能获得 QOS 服务

我们正在开发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

相关内容