Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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?

share|improve this question

1 Answer 1

up vote 0 down vote accepted

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
share|improve this answer
    
thanks, I will go check it. –  Steve Peng Sep 5 '13 at 0:03

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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