0

We are developing on Linux system whose kernel had been compiled without QOS service years ago. Currently we want the QOS service back and plan to compile only the QOS-related kernel modules and install them into the system kernel.

But we don't know what kernel modules represent the QOS service. What modules should we build? And what additional steps should we take including those we usually do for a custom user kernel module? Does anyone know about this?

0

On a 3.2 kernel the modules are:

$ 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

Under make menuconfig see

  • Networking Support
    • Networking Options
      • QoS and/or fair queueing

Or in your .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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.