Linux에서 QOS 서비스를 받기 위해 컴파일할 커널 모듈

Linux에서 QOS 서비스를 받기 위해 컴파일할 커널 모듈

우리는 수년 전에 QOS 서비스 없이 커널이 컴파일된 Linux 시스템에서 개발 중입니다. 현재 우리는 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

관련 정보