X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=package%2Fkernel%2Flinux%2Fmodules%2Fnetsupport.mk;h=4653b8256502ea105166378b5a1f53ba003b62dd;hb=047361dee44cab2b2355f7b7859fd688f6483cbc;hp=333237f44bc7b120966aff3b3b5845c9b17b73e5;hpb=e29efa2fb75c2bbe70f5f4027973eab5660db9cc;p=openwrt%2Fstaging%2Fjow.git diff --git a/package/kernel/linux/modules/netsupport.mk b/package/kernel/linux/modules/netsupport.mk index 333237f44b..4653b82565 100644 --- a/package/kernel/linux/modules/netsupport.mk +++ b/package/kernel/linux/modules/netsupport.mk @@ -42,35 +42,13 @@ endef $(eval $(call KernelPackage,atmtcp)) -define KernelPackage/appletalk - SUBMENU:=$(NETWORK_SUPPORT_MENU) - TITLE:=Appletalk protocol support - DEPENDS:=+PACKAGE_kmod-llc:kmod-llc - KCONFIG:= \ - CONFIG_ATALK \ - CONFIG_DEV_APPLETALK \ - CONFIG_IPDDP \ - CONFIG_IPDDP_ENCAP=y \ - CONFIG_IPDDP_DECAP=y - FILES:= \ - $(LINUX_DIR)/net/appletalk/appletalk.ko \ - $(LINUX_DIR)/drivers/net/appletalk/ipddp.ko - AUTOLOAD:=$(call AutoLoad,40,appletalk ipddp) -endef - -define KernelPackage/appletalk/description - Kernel module for AppleTalk protocol. -endef - -$(eval $(call KernelPackage,appletalk)) - - define KernelPackage/bonding SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=Ethernet bonding driver KCONFIG:=CONFIG_BONDING FILES:=$(LINUX_DIR)/drivers/net/bonding/bonding.ko AUTOLOAD:=$(call AutoLoad,40,bonding) + MODPARAMS.bonding:=max_bonds=0 endef define KernelPackage/bonding/description @@ -80,75 +58,11 @@ endef $(eval $(call KernelPackage,bonding)) -define KernelPackage/bridge - SUBMENU:=$(NETWORK_SUPPORT_MENU) - TITLE:=Ethernet bridging support - DEPENDS:=+kmod-stp - KCONFIG:= \ - CONFIG_BRIDGE \ - CONFIG_BRIDGE_IGMP_SNOOPING=y - FILES:=$(LINUX_DIR)/net/bridge/bridge.ko - AUTOLOAD:=$(call AutoLoad,11,bridge) -endef - -define KernelPackage/bridge/description - Kernel module for Ethernet bridging. -endef - -$(eval $(call KernelPackage,bridge)) - -define KernelPackage/llc - SUBMENU:=$(NETWORK_SUPPORT_MENU) - TITLE:=ANSI/IEEE 802.2 LLC support - KCONFIG:=CONFIG_LLC - FILES:= \ - $(LINUX_DIR)/net/llc/llc.ko \ - $(LINUX_DIR)/net/802/p8022.ko \ - $(LINUX_DIR)/net/802/psnap.ko - AUTOLOAD:=$(call AutoLoad,09,llc p8022 psnap) -endef - -define KernelPackage/llc/description - Kernel module for ANSI/IEEE 802.2 LLC support. -endef - -$(eval $(call KernelPackage,llc)) - -define KernelPackage/stp - SUBMENU:=$(NETWORK_SUPPORT_MENU) - TITLE:=Ethernet Spanning Tree Protocol support - DEPENDS:=+kmod-llc - KCONFIG:=CONFIG_STP - FILES:=$(LINUX_DIR)/net/802/stp.ko - AUTOLOAD:=$(call AutoLoad,10,stp) -endef - -define KernelPackage/stp/description - Kernel module for Ethernet Spanning Tree Protocol support. -endef - -$(eval $(call KernelPackage,stp)) - -define KernelPackage/8021q - SUBMENU:=$(NETWORK_SUPPORT_MENU) - TITLE:=802.1Q VLAN support - KCONFIG:=CONFIG_VLAN_8021Q \ - CONFIG_VLAN_8021Q_GVRP=n - FILES:=$(LINUX_DIR)/net/8021q/8021q.ko - AUTOLOAD:=$(call AutoLoad,12,8021q) -endef - -define KernelPackage/8021q/description - Kernel module for 802.1Q VLAN support -endef - -$(eval $(call KernelPackage,8021q)) - - define KernelPackage/udptunnel4 SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=IPv4 UDP tunneling support KCONFIG:=CONFIG_NET_UDP_TUNNEL + HIDDEN:=1 FILES:=$(LINUX_DIR)/net/ipv4/udp_tunnel.ko AUTOLOAD:=$(call AutoLoad,32,udp_tunnel) endef @@ -159,7 +73,9 @@ $(eval $(call KernelPackage,udptunnel4)) define KernelPackage/udptunnel6 SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=IPv6 UDP tunneling support + DEPENDS:=@IPV6 KCONFIG:=CONFIG_NET_UDP_TUNNEL + HIDDEN:=1 FILES:=$(LINUX_DIR)/net/ipv6/ip6_udp_tunnel.ko AUTOLOAD:=$(call AutoLoad,32,ip6_udp_tunnel) endef @@ -186,25 +102,44 @@ endef $(eval $(call KernelPackage,vxlan)) -define KernelPackage/capi + +define KernelPackage/geneve SUBMENU:=$(NETWORK_SUPPORT_MENU) - TITLE:=CAPI (ISDN) Support - KCONFIG:= \ - CONFIG_ISDN_CAPI \ - CONFIG_ISDN_CAPI_CAPI20 \ - CONFIG_ISDN_CAPIFS \ - CONFIG_ISDN_CAPI_CAPIFS + TITLE:=Generic Network Virtualization Encapsulation (Geneve) support + DEPENDS:= \ + +kmod-iptunnel \ + +kmod-udptunnel4 \ + +IPV6:kmod-udptunnel6 + KCONFIG:=CONFIG_GENEVE FILES:= \ - $(LINUX_DIR)/drivers/isdn/capi/kernelcapi.ko \ - $(LINUX_DIR)/drivers/isdn/capi/capi.ko - AUTOLOAD:=$(call AutoLoad,30,kernelcapi capi) + $(LINUX_DIR)/drivers/net/geneve.ko + AUTOLOAD:=$(call AutoLoad,13,geneve) endef -define KernelPackage/capi/description - Kernel module for basic CAPI (ISDN) support +define KernelPackage/geneve/description + Kernel module for supporting Geneve in the Kernel. + Requires Kernel 3.18 or newer. endef -$(eval $(call KernelPackage,capi)) +$(eval $(call KernelPackage,geneve)) + + +define KernelPackage/nsh + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Network Service Header (NSH) protocol + DEPENDS:= + KCONFIG:=CONFIG_NET_NSH + FILES:=$(LINUX_DIR)/net/nsh/nsh.ko + AUTOLOAD:=$(call AutoLoad,13,nsh) +endef + +define KernelPackage/nsh/description + Network Service Header is an implementation of Service Function + Chaining (RFC 7665). Requires kernel 4.14 or newer +endef + +$(eval $(call KernelPackage,nsh)) + define KernelPackage/misdn SUBMENU:=$(NETWORK_SUPPORT_MENU) @@ -228,38 +163,6 @@ endef $(eval $(call KernelPackage,misdn)) -define KernelPackage/isdn4linux - SUBMENU:=$(NETWORK_SUPPORT_MENU) - TITLE:=Old ISDN4Linux (deprecated) - DEPENDS:=+kmod-ppp - KCONFIG:= \ - CONFIG_ISDN=y \ - CONFIG_ISDN_I4L \ - CONFIG_ISDN_PPP=y \ - CONFIG_ISDN_PPP_VJ=y \ - CONFIG_ISDN_MPP=y \ - CONFIG_IPPP_FILTER=y \ - CONFIG_ISDN_PPP_BSDCOMP \ - CONFIG_ISDN_CAPI_MIDDLEWARE=y \ - CONFIG_ISDN_CAPI_CAPIFS_BOOL=y \ - CONFIG_ISDN_AUDIO=y \ - CONFIG_ISDN_TTY_FAX=y \ - CONFIG_ISDN_X25=y \ - CONFIG_ISDN_DIVERSION - FILES:= \ - $(LINUX_DIR)/drivers/isdn/divert/dss1_divert.ko \ - $(LINUX_DIR)/drivers/isdn/i4l/isdn.ko \ - $(LINUX_DIR)/drivers/isdn/i4l/isdn_bsdcomp.ko - AUTOLOAD:=$(call AutoLoad,40,isdn isdn_bsdcomp dss1_divert) -endef - -define KernelPackage/isdn4linux/description - This driver allows you to use an ISDN adapter for networking -endef - -$(eval $(call KernelPackage,isdn4linux)) - - define KernelPackage/ipip SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=IP-in-IP encapsulation @@ -285,7 +188,10 @@ IPSEC-m:= \ define KernelPackage/ipsec SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=IPsec related modules (IPv4 and IPv6) - DEPENDS:=+kmod-crypto-authenc +kmod-crypto-iv +kmod-crypto-des +kmod-crypto-hmac +kmod-crypto-md5 +kmod-crypto-sha1 +kmod-crypto-deflate +kmod-crypto-cbc + DEPENDS:= \ + +kmod-crypto-authenc +kmod-crypto-cbc +kmod-crypto-deflate \ + +kmod-crypto-des +kmod-crypto-echainiv +kmod-crypto-hmac \ + +kmod-crypto-md5 +kmod-crypto-sha1 KCONFIG:= \ CONFIG_NET_KEY \ CONFIG_XFRM_USER \ @@ -299,21 +205,18 @@ define KernelPackage/ipsec/description Kernel modules for IPsec support in both IPv4 and IPv6. Includes: - af_key + - xfrm_algo - xfrm_ipcomp - xfrm_user endef $(eval $(call KernelPackage,ipsec)) - -IPSEC4-m:= \ +IPSEC4-m = \ ipv4/ah4 \ ipv4/esp4 \ - ipv4/xfrm4_mode_beet \ - ipv4/xfrm4_mode_transport \ - ipv4/xfrm4_mode_tunnel \ - ipv4/xfrm4_tunnel \ ipv4/ipcomp \ + ipv4/xfrm4_tunnel define KernelPackage/ipsec4 SUBMENU:=$(NETWORK_SUPPORT_MENU) @@ -323,10 +226,8 @@ define KernelPackage/ipsec4 CONFIG_INET_AH \ CONFIG_INET_ESP \ CONFIG_INET_IPCOMP \ - CONFIG_INET_XFRM_MODE_BEET \ - CONFIG_INET_XFRM_MODE_TRANSPORT \ - CONFIG_INET_XFRM_MODE_TUNNEL \ - CONFIG_INET_XFRM_TUNNEL + CONFIG_INET_XFRM_TUNNEL \ + CONFIG_INET_ESP_OFFLOAD=n FILES:=$(foreach mod,$(IPSEC4-m),$(LINUX_DIR)/net/$(mod).ko) AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC4-m))) endef @@ -337,36 +238,28 @@ define KernelPackage/ipsec4/description - ah4 - esp4 - ipcomp4 - - xfrm4_mode_beet - - xfrm4_mode_transport - - xfrm4_mode_tunnel - xfrm4_tunnel endef $(eval $(call KernelPackage,ipsec4)) -IPSEC6-m:= \ +IPSEC6-m = \ ipv6/ah6 \ ipv6/esp6 \ - ipv6/xfrm6_mode_beet \ - ipv6/xfrm6_mode_transport \ - ipv6/xfrm6_mode_tunnel \ - ipv6/xfrm6_tunnel \ ipv6/ipcomp6 \ + ipv6/xfrm6_tunnel define KernelPackage/ipsec6 SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=IPsec related modules (IPv6) - DEPENDS:=kmod-ipsec +kmod-iptunnel6 + DEPENDS:=@IPV6 kmod-ipsec +kmod-iptunnel6 KCONFIG:= \ CONFIG_INET6_AH \ CONFIG_INET6_ESP \ CONFIG_INET6_IPCOMP \ - CONFIG_INET6_XFRM_MODE_BEET \ - CONFIG_INET6_XFRM_MODE_TRANSPORT \ - CONFIG_INET6_XFRM_MODE_TUNNEL \ - CONFIG_INET6_XFRM_TUNNEL + CONFIG_INET6_XFRM_TUNNEL \ + CONFIG_INET6_ESP_OFFLOAD=n FILES:=$(foreach mod,$(IPSEC6-m),$(LINUX_DIR)/net/$(mod).ko) AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC6-m))) endef @@ -377,9 +270,6 @@ define KernelPackage/ipsec6/description - ah6 - esp6 - ipcomp6 - - xfrm6_mode_beet - - xfrm6_mode_transport - - xfrm6_mode_tunnel - xfrm6_tunnel endef @@ -403,7 +293,7 @@ endef $(eval $(call KernelPackage,iptunnel)) -define KernelPackage/ipvti +define KernelPackage/ip-vti SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=IP VTI (Virtual Tunnel Interface) DEPENDS:=+kmod-iptunnel +kmod-iptunnel4 +kmod-ipsec4 @@ -412,11 +302,43 @@ define KernelPackage/ipvti AUTOLOAD:=$(call AutoLoad,33,ip_vti) endef -define KernelPackage/ipvti/description +define KernelPackage/ip-vti/description Kernel modules for IP VTI (Virtual Tunnel Interface) endef -$(eval $(call KernelPackage,ipvti)) +$(eval $(call KernelPackage,ip-vti)) + + +define KernelPackage/ip6-vti + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=IPv6 VTI (Virtual Tunnel Interface) + DEPENDS:=@IPV6 +kmod-iptunnel +kmod-ip6-tunnel +kmod-ipsec6 + KCONFIG:=CONFIG_IPV6_VTI + FILES:=$(LINUX_DIR)/net/ipv6/ip6_vti.ko + AUTOLOAD:=$(call AutoLoad,33,ip6_vti) +endef + +define KernelPackage/ip6-vti/description + Kernel modules for IPv6 VTI (Virtual Tunnel Interface) +endef + +$(eval $(call KernelPackage,ip6-vti)) + + +define KernelPackage/xfrm-interface + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=IPsec XFRM Interface + DEPENDS:=@IPV6 +kmod-ipsec4 +kmod-ipsec6 + KCONFIG:=CONFIG_XFRM_INTERFACE + FILES:=$(LINUX_DIR)/net/xfrm/xfrm_interface.ko + AUTOLOAD:=$(call AutoProbe,xfrm_interface) +endef + +define KernelPackage/xfrm-interface/description + Kernel module for XFRM interface support +endef + +$(eval $(call KernelPackage,xfrm-interface)) define KernelPackage/iptunnel4 @@ -424,7 +346,8 @@ define KernelPackage/iptunnel4 TITLE:=IPv4 tunneling HIDDEN:=1 KCONFIG:= \ - CONFIG_INET_TUNNEL + CONFIG_INET_TUNNEL \ + CONFIG_NET_IPIP=m FILES:=$(LINUX_DIR)/net/ipv4/tunnel4.ko AUTOLOAD:=$(call AutoLoad,31,tunnel4) endef @@ -439,7 +362,7 @@ $(eval $(call KernelPackage,iptunnel4)) define KernelPackage/iptunnel6 SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=IPv6 tunneling - DEPENDS:= +kmod-ipv6 + DEPENDS:=@IPV6 KCONFIG:= \ CONFIG_INET6_TUNNEL FILES:=$(LINUX_DIR)/net/ipv6/tunnel6.ko @@ -453,30 +376,9 @@ endef $(eval $(call KernelPackage,iptunnel6)) -define KernelPackage/ipv6 - SUBMENU:=$(NETWORK_SUPPORT_MENU) - TITLE:=IPv6 support - KCONFIG:= \ - CONFIG_IPV6 \ - CONFIG_IPV6_PRIVACY=y \ - CONFIG_IPV6_MULTIPLE_TABLES=y \ - CONFIG_IPV6_MROUTE=y \ - CONFIG_IPV6_PIMSM_V2=n \ - CONFIG_IPV6_SUBTREES=y - FILES:=$(LINUX_DIR)/net/ipv6/ipv6.ko - AUTOLOAD:=$(call AutoLoad,20,ipv6) -endef - -define KernelPackage/ipv6/description - Kernel modules for IPv6 support -endef - -$(eval $(call KernelPackage,ipv6)) - - define KernelPackage/sit SUBMENU:=$(NETWORK_SUPPORT_MENU) - DEPENDS:=+kmod-ipv6 +kmod-iptunnel +kmod-iptunnel4 + DEPENDS:=@IPV6 +kmod-iptunnel +kmod-iptunnel4 TITLE:=IPv6-in-IPv4 tunnel KCONFIG:=CONFIG_IPV6_SIT \ CONFIG_IPV6_SIT_6RD=y @@ -491,10 +393,53 @@ endef $(eval $(call KernelPackage,sit)) +define KernelPackage/fou + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=FOU and GUE decapsulation + DEPENDS:= \ + +kmod-iptunnel \ + +kmod-udptunnel4 \ + +IPV6:kmod-udptunnel6 + KCONFIG:= \ + CONFIG_NET_FOU \ + CONFIG_NET_FOU_IP_TUNNELS=y + FILES:=$(LINUX_DIR)/net/ipv4/fou.ko + AUTOLOAD:=$(call AutoProbe,fou) +endef + +define KernelPackage/fou/description + Kernel module for FOU (Foo over UDP) and GUE (Generic UDP Encapsulation) tunnelling. + Requires Kernel 3.18 or newer. +endef + +$(eval $(call KernelPackage,fou)) + + +define KernelPackage/fou6 + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=FOU and GUE decapsulation over IPv6 + DEPENDS:= @IPV6 \ + +kmod-fou \ + +kmod-ip6-tunnel + KCONFIG:= \ + CONFIG_IPV6_FOU \ + CONFIG_IPV6_FOU_TUNNEL + FILES:=$(LINUX_DIR)/net/ipv6/fou6.ko + AUTOLOAD:=$(call AutoProbe,fou6) +endef + +define KernelPackage/fou6/description + Kernel module for FOU (Foo over UDP) and GUE (Generic UDP Encapsulation) tunnelling over IPv6. + Requires Kernel 3.18 or newer. +endef + +$(eval $(call KernelPackage,fou6)) + + define KernelPackage/ip6-tunnel SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=IP-in-IPv6 tunnelling - DEPENDS:= +kmod-ipv6 +kmod-iptunnel6 + DEPENDS:=@IPV6 +kmod-iptunnel6 KCONFIG:= CONFIG_IPV6_TUNNEL FILES:=$(LINUX_DIR)/net/ipv6/ip6_tunnel.ko AUTOLOAD:=$(call AutoLoad,32,ip6_tunnel) @@ -510,7 +455,7 @@ $(eval $(call KernelPackage,ip6-tunnel)) define KernelPackage/gre SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=GRE support - DEPENDS:=+PACKAGE_kmod-ipv6:kmod-ipv6 +kmod-iptunnel + DEPENDS:=+kmod-iptunnel KCONFIG:=CONFIG_NET_IPGRE CONFIG_NET_IPGRE_DEMUX FILES:=$(LINUX_DIR)/net/ipv4/ip_gre.ko $(LINUX_DIR)/net/ipv4/gre.ko AUTOLOAD:=$(call AutoLoad,39,gre ip_gre) @@ -526,7 +471,7 @@ $(eval $(call KernelPackage,gre)) define KernelPackage/gre6 SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=GRE support over IPV6 - DEPENDS:=+kmod-ipv6 +kmod-iptunnel +kmod-ip6-tunnel + DEPENDS:=@IPV6 +kmod-iptunnel +kmod-ip6-tunnel +kmod-gre KCONFIG:=CONFIG_IPV6_GRE FILES:=$(LINUX_DIR)/net/ipv6/ip6_gre.ko AUTOLOAD:=$(call AutoLoad,39,ip6_gre) @@ -571,6 +516,23 @@ endef $(eval $(call KernelPackage,veth)) +define KernelPackage/vrf + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Virtual Routing and Forwarding (Lite) + DEPENDS:=@KERNEL_NET_L3_MASTER_DEV + KCONFIG:=CONFIG_NET_VRF + FILES:=$(LINUX_DIR)/drivers/net/vrf.ko + AUTOLOAD:=$(call AutoLoad,30,vrf) +endef + +define KernelPackage/vrf/description + This option enables the support for mapping interfaces into VRF's. The + support enables VRF devices. +endef + +$(eval $(call KernelPackage,vrf)) + + define KernelPackage/slhc SUBMENU:=$(NETWORK_SUPPORT_MENU) HIDDEN:=1 @@ -713,7 +675,7 @@ $(eval $(call KernelPackage,ipoa)) define KernelPackage/mppe SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=Microsoft PPP compression/encryption - DEPENDS:=kmod-ppp +kmod-crypto-sha1 +kmod-crypto-ecb + DEPENDS:=kmod-ppp +kmod-crypto-arc4 +kmod-crypto-sha1 +kmod-crypto-ecb KCONFIG:= \ CONFIG_PPP_MPPE_MPPC \ CONFIG_PPP_MPPE @@ -728,12 +690,8 @@ endef $(eval $(call KernelPackage,mppe)) -SCHED_MODULES = $(patsubst $(LINUX_DIR)/net/sched/%.ko,%,$(wildcard $(LINUX_DIR)/net/sched/*.ko)) -SCHED_MODULES_CORE = sch_ingress sch_fq_codel sch_hfsc cls_fw cls_route cls_flow cls_tcindex cls_u32 em_u32 act_mirred act_skbedit -SCHED_MODULES_FILTER = $(SCHED_MODULES_CORE) act_connmark sch_esfq -SCHED_MODULES_EXTRA = $(filter-out $(SCHED_MODULES_FILTER),$(SCHED_MODULES)) -SCHED_FILES = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(filter $(SCHED_MODULES_CORE),$(SCHED_MODULES))) -SCHED_FILES_EXTRA = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(SCHED_MODULES_EXTRA)) +SCHED_MODULES_CORE = sch_ingress sch_hfsc sch_htb sch_tbf cls_basic cls_fw cls_route cls_flow cls_u32 em_u32 act_gact act_mirred act_skbedit cls_matchall +SCHED_FILES_CORE = $(foreach mod,$(SCHED_MODULES_CORE),$(LINUX_DIR)/net/sched/$(mod).ko) define KernelPackage/sched-core SUBMENU:=$(NETWORK_SUPPORT_MENU) @@ -741,20 +699,23 @@ define KernelPackage/sched-core KCONFIG:= \ CONFIG_NET_SCHED=y \ CONFIG_NET_SCH_HFSC \ + CONFIG_NET_SCH_HTB \ + CONFIG_NET_SCH_TBF \ CONFIG_NET_SCH_INGRESS \ - CONFIG_NET_SCH_FQ_CODEL \ CONFIG_NET_CLS=y \ CONFIG_NET_CLS_ACT=y \ + CONFIG_NET_CLS_BASIC \ CONFIG_NET_CLS_FLOW \ CONFIG_NET_CLS_FW \ CONFIG_NET_CLS_ROUTE4 \ - CONFIG_NET_CLS_TCINDEX \ CONFIG_NET_CLS_U32 \ + CONFIG_NET_ACT_GACT \ CONFIG_NET_ACT_MIRRED \ CONFIG_NET_ACT_SKBEDIT \ + CONFIG_NET_CLS_MATCHALL \ CONFIG_NET_EMATCH=y \ CONFIG_NET_EMATCH_U32 - FILES:=$(SCHED_FILES) + FILES:=$(SCHED_FILES_CORE) AUTOLOAD:=$(call AutoLoad,70, $(SCHED_MODULES_CORE)) endef @@ -765,6 +726,101 @@ endef $(eval $(call KernelPackage,sched-core)) +define KernelPackage/sched-act-police + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Traffic Policing + DEPENDS:=+kmod-sched-core + KCONFIG:=CONFIG_NET_ACT_POLICE + FILES:=$(LINUX_DIR)/net/sched/act_police.ko + AUTOLOAD:=$(call AutoProbe,act_police) +endef + +$(eval $(call KernelPackage,sched-act-police)) + + +define KernelPackage/sched-act-sample + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Traffic Sampling + DEPENDS:=+kmod-sched-core + KCONFIG:= \ + CONFIG_NET_ACT_SAMPLE \ + CONFIG_PSAMPLE + FILES:= \ + $(LINUX_DIR)/net/psample/psample.ko \ + $(LINUX_DIR)/net/sched/act_sample.ko + AUTOLOAD:=$(call AutoProbe,act_sample psample) +endef + +define KernelPackage/sched-act-sample/description + Packet sampling tc action. +endef + +$(eval $(call KernelPackage,sched-act-sample)) + + +define KernelPackage/sched-act-ipt + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=IPtables targets + DEPENDS:=+kmod-ipt-core +kmod-sched-core + KCONFIG:=CONFIG_NET_ACT_IPT + FILES:=$(LINUX_DIR)/net/sched/act_ipt.ko + AUTOLOAD:=$(call AutoProbe, act_ipt) +endef + +define KernelPackage/sched-act-ipt/description + Allows to invoke iptables targets after successful classification. +endef + +$(eval $(call KernelPackage,sched-act-ipt)) + + +define KernelPackage/sched-act-vlan + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Traffic VLAN manipulation + DEPENDS:=+kmod-sched-core + KCONFIG:=CONFIG_NET_ACT_VLAN + FILES:=$(LINUX_DIR)/net/sched/act_vlan.ko + AUTOLOAD:=$(call AutoProbe, act_vlan) +endef + +define KernelPackage/sched-act-vlan/description + Allows to configure rules to push or pop vlan headers. +endef + +$(eval $(call KernelPackage,sched-act-vlan)) + + +define KernelPackage/sched-bpf + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Traffic shaper support for Berkeley Packet Filter + KCONFIG:= \ + CONFIG_NET_CLS_BPF \ + CONFIG_NET_ACT_BPF + FILES:= \ + $(LINUX_DIR)/net/sched/cls_bpf.ko \ + $(LINUX_DIR)/net/sched/act_bpf.ko + AUTOLOAD:=$(call AutoLoad,72,cls_bpf act_bpf) +endef + +$(eval $(call KernelPackage,sched-bpf)) + + +define KernelPackage/sched-cake + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Cake fq_codel/blue derived shaper + DEPENDS:=+kmod-sched-core + KCONFIG:=CONFIG_NET_SCH_CAKE + FILES:=$(LINUX_DIR)/net/sched/sch_cake.ko + AUTOLOAD:=$(call AutoProbe,sch_cake) +endef + +define KernelPackage/sched-cake/description + Common Applications Kept Enhanced fq_codel/blue derived shaper +endef + +$(eval $(call KernelPackage,sched-cake)) + + define KernelPackage/sched-connmark SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=Traffic shaper conntrack mark support @@ -775,38 +831,172 @@ define KernelPackage/sched-connmark endef $(eval $(call KernelPackage,sched-connmark)) -define KernelPackage/sched-esfq + +define KernelPackage/sched-ctinfo + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Traffic shaper ctinfo support + DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra + KCONFIG:=CONFIG_NET_ACT_CTINFO + FILES:=$(LINUX_DIR)/net/sched/act_ctinfo.ko + AUTOLOAD:=$(call AutoLoad,71, act_ctinfo) +endef +$(eval $(call KernelPackage,sched-ctinfo)) + + +define KernelPackage/sched-drr + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Deficit Round Robin scheduler (DRR) + DEPENDS:=+kmod-sched-core + KCONFIG:=CONFIG_NET_SCH_DRR + FILES:=$(LINUX_DIR)/net/sched/sch_drr.ko + AUTOLOAD:=$(call AutoProbe,sch_drr) +endef + +define KernelPackage/sched-drr/description + DRR algorithm Configuration +endef + +$(eval $(call KernelPackage,sched-drr)) + + +define KernelPackage/sched-flower + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Flower traffic classifier + DEPENDS:=+kmod-sched-core + KCONFIG:=CONFIG_NET_CLS_FLOWER + FILES:=$(LINUX_DIR)/net/sched/cls_flower.ko + AUTOLOAD:=$(call AutoProbe, cls_flower) +endef + +define KernelPackage/sched-flower/description + Allows to classify packets based on a configurable combination of packet keys and masks. +endef + +$(eval $(call KernelPackage,sched-flower)) + + +define KernelPackage/sched-fq-pie SUBMENU:=$(NETWORK_SUPPORT_MENU) - TITLE:=Traffic shaper ESFQ support - DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack + TITLE:=Flow Queue Proportional Integral Enhanced (FQ-PIE) + DEPENDS:=+kmod-sched-core +kmod-sched-pie + KCONFIG:=CONFIG_NET_SCH_FQ_PIE + FILES:=$(LINUX_DIR)/net/sched/sch_fq_pie.ko + AUTOLOAD:=$(call AutoProbe, sch_fq_pie) +endef + +define KernelPackage/sched-fq-pie/description + A queuing discipline that combines Flow Queuing with the PIE AQM. +endef + +$(eval $(call KernelPackage,sched-fq-pie)) + + +define KernelPackage/sched-ipset + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Traffic shaper ipset support + DEPENDS:=+kmod-sched-core +kmod-ipt-ipset KCONFIG:= \ - CONFIG_NET_SCH_ESFQ \ - CONFIG_NET_SCH_ESFQ_NFCT=y - FILES:=$(LINUX_DIR)/net/sched/sch_esfq.ko - AUTOLOAD:=$(call AutoLoad,72, sch_esfq) + CONFIG_NET_EMATCH_IPSET + FILES:= \ + $(LINUX_DIR)/net/sched/em_ipset.ko + AUTOLOAD:=$(call AutoLoad,72,em_ipset) +endef + +$(eval $(call KernelPackage,sched-ipset)) + + +define KernelPackage/sched-mqprio + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Multi-queue priority scheduler (MQPRIO) + DEPENDS:=+kmod-sched-core + KCONFIG:=CONFIG_NET_SCH_MQPRIO + FILES:=$(LINUX_DIR)/net/sched/sch_mqprio.ko + AUTOLOAD:=$(call AutoProbe, sch_mqprio) +endef + +define KernelPackage/sched-mqprio/description + This scheduler allows QOS to be offloaded on NICs that have support for offloading QOS schedulers. +endef + +$(eval $(call KernelPackage,sched-mqprio)) + + +define KernelPackage/sched-pie + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Proportional Integral controller-Enhanced AQM (PIE) + DEPENDS:=+kmod-sched-core + KCONFIG:=CONFIG_NET_SCH_PIE + FILES:=$(LINUX_DIR)/net/sched/sch_pie.ko + AUTOLOAD:=$(call AutoProbe, sch_pie) +endef + +define KernelPackage/sched-pie/description + A control theoretic active queue management scheme. +endef + +$(eval $(call KernelPackage,sched-pie)) + + +define KernelPackage/sched-prio + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Multi Band Priority Queueing (PRIO) + DEPENDS:=+kmod-sched-core + KCONFIG:=CONFIG_NET_SCH_PRIO + FILES:=$(LINUX_DIR)/net/sched/sch_prio.ko + AUTOLOAD:=$(call AutoProbe,sch_prio) +endef + +define KernelPackage/sched-prio/description + PRIO algorithm Configuration +endef + +$(eval $(call KernelPackage,sched-prio)) + + +define KernelPackage/sched-red + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Random Early Detection (RED) + DEPENDS:=+kmod-sched-core + KCONFIG:=CONFIG_NET_SCH_RED + FILES:=$(LINUX_DIR)/net/sched/sch_red.ko + AUTOLOAD:=$(call AutoProbe,sch_red) +endef + +define KernelPackage/sched-red/description + Random Early Detection (RED) algorithm Configuration +endef + +$(eval $(call KernelPackage,sched-red)) + + +define KernelPackage/bpf-test + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Test Berkeley Packet Filter functionality + KCONFIG:=CONFIG_TEST_BPF + FILES:=$(LINUX_DIR)/lib/test_bpf.ko endef -$(eval $(call KernelPackage,sched-esfq)) + +$(eval $(call KernelPackage,bpf-test)) + + +SCHED_MODULES_EXTRA = sch_codel sch_dsmark sch_gred sch_multiq sch_sfq sch_teql sch_fq act_pedit act_simple act_csum em_cmp em_nbyte em_meta em_text +SCHED_FILES_EXTRA = $(foreach mod,$(SCHED_MODULES_EXTRA),$(LINUX_DIR)/net/sched/$(mod).ko) define KernelPackage/sched SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=Extra traffic schedulers - DEPENDS:=+kmod-sched-core +kmod-ipt-core + DEPENDS:=+kmod-sched-core +kmod-lib-crc32c +kmod-lib-textsearch KCONFIG:= \ CONFIG_NET_SCH_CODEL \ CONFIG_NET_SCH_DSMARK \ - CONFIG_NET_SCH_HTB \ - CONFIG_NET_SCH_FIFO \ CONFIG_NET_SCH_GRED \ - CONFIG_NET_SCH_PRIO \ - CONFIG_NET_SCH_RED \ - CONFIG_NET_SCH_TBF \ + CONFIG_NET_SCH_MULTIQ \ CONFIG_NET_SCH_SFQ \ CONFIG_NET_SCH_TEQL \ CONFIG_NET_SCH_FQ \ - CONFIG_NET_SCH_PIE \ - CONFIG_NET_CLS_BASIC \ - CONFIG_NET_ACT_POLICE \ - CONFIG_NET_ACT_IPT \ + CONFIG_NET_ACT_PEDIT \ + CONFIG_NET_ACT_SIMP \ + CONFIG_NET_ACT_CSUM \ CONFIG_NET_EMATCH_CMP \ CONFIG_NET_EMATCH_NBYTE \ CONFIG_NET_EMATCH_META \ @@ -819,9 +1009,76 @@ define KernelPackage/sched/description Extra kernel schedulers modules for IP traffic endef +SCHED_TEQL_HOTPLUG:=hotplug-sched-teql.sh + +define KernelPackage/sched/install + $(INSTALL_DIR) $(1)/etc/hotplug.d/iface + $(INSTALL_DATA) ./files/$(SCHED_TEQL_HOTPLUG) $(1)/etc/hotplug.d/iface/15-teql +endef + $(eval $(call KernelPackage,sched)) +define KernelPackage/tcp-bbr + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=BBR TCP congestion control + KCONFIG:=CONFIG_TCP_CONG_BBR + FILES:=$(LINUX_DIR)/net/ipv4/tcp_bbr.ko + AUTOLOAD:=$(call AutoProbe,tcp_bbr) +endef + +define KernelPackage/tcp-bbr/description + Kernel module for BBR (Bottleneck Bandwidth and RTT) TCP congestion + control. It requires the fq ("Fair Queue") pacing packet scheduler. + For kernel 4.13+, TCP internal pacing is implemented as fallback. +endef + +TCP_BBR_SYSCTL_CONF:=sysctl-tcp-bbr.conf + +define KernelPackage/tcp-bbr/install + $(INSTALL_DIR) $(1)/etc/sysctl.d + $(INSTALL_DATA) ./files/$(TCP_BBR_SYSCTL_CONF) $(1)/etc/sysctl.d/12-tcp-bbr.conf +endef + +$(eval $(call KernelPackage,tcp-bbr)) + + +define KernelPackage/tcp-hybla + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=TCP-Hybla congestion control algorithm + KCONFIG:=CONFIG_TCP_CONG_HYBLA + FILES:=$(LINUX_DIR)/net/ipv4/tcp_hybla.ko + AUTOLOAD:=$(call AutoProbe,tcp_hybla) +endef + +define KernelPackage/tcp-hybla/description + TCP-Hybla is a sender-side only change that eliminates penalization of + long-RTT, large-bandwidth connections, like when satellite legs are + involved, especially when sharing a common bottleneck with normal + terrestrial connections. +endef + +$(eval $(call KernelPackage,tcp-hybla)) + + +define KernelPackage/tcp-scalable + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=TCP-Scalable congestion control algorithm + KCONFIG:=CONFIG_TCP_CONG_SCALABLE + FILES:=$(LINUX_DIR)/net/ipv4/tcp_scalable.ko + AUTOLOAD:=$(call AutoProbe,tcp-scalable) +endef + +define KernelPackage/tcp-scalable/description + Scalable TCP is a sender-side only change to TCP which uses a + MIMD congestion control algorithm which has some nice scaling + properties, though is known to have fairness issues. + See http://www.deneholme.net/tom/scalable/ +endef + +$(eval $(call KernelPackage,tcp-scalable)) + + define KernelPackage/ax25 SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=AX25 support @@ -862,7 +1119,6 @@ define KernelPackage/l2tp SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=Layer Two Tunneling Protocol (L2TP) DEPENDS:= \ - +IPV6:kmod-ipv6 \ +kmod-udptunnel4 \ +IPV6:kmod-udptunnel6 KCONFIG:=CONFIG_L2TP \ @@ -898,7 +1154,7 @@ $(eval $(call KernelPackage,l2tp-eth)) define KernelPackage/l2tp-ip SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=L2TP IP encapsulation for L2TPv3 - DEPENDS:=+kmod-l2tp +IPV6:kmod-ipv6 + DEPENDS:=+kmod-l2tp KCONFIG:=CONFIG_L2TP_IP FILES:= \ $(LINUX_DIR)/net/l2tp/l2tp_ip.ko \ @@ -930,7 +1186,8 @@ define KernelPackage/sctp CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y FILES:= $(LINUX_DIR)/net/sctp/sctp.ko AUTOLOAD:= $(call AutoLoad,32,sctp) - DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac +IPV6:kmod-ipv6 + DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac \ + +kmod-udptunnel4 +kmod-udptunnel6 endef define KernelPackage/sctp/description @@ -989,14 +1246,14 @@ $(eval $(call KernelPackage,dnsresolver)) define KernelPackage/rxrpc SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=AF_RXRPC support + HIDDEN:=1 KCONFIG:= \ CONFIG_AF_RXRPC \ CONFIG_RXKAD=m \ CONFIG_AF_RXRPC_DEBUG=n FILES:= \ - $(LINUX_DIR)/net/rxrpc/af-rxrpc.ko \ - $(LINUX_DIR)/net/rxrpc/rxkad.ko - AUTOLOAD:=$(call AutoLoad,30,rxkad af-rxrpc) + $(LINUX_DIR)/net/rxrpc/rxrpc.ko + AUTOLOAD:=$(call AutoLoad,30,rxrpc.ko) DEPENDS:= +kmod-crypto-manager +kmod-crypto-pcbc +kmod-crypto-fcrypt endef @@ -1005,3 +1262,240 @@ define KernelPackage/rxrpc/description endef $(eval $(call KernelPackage,rxrpc)) + +define KernelPackage/mpls + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=MPLS support + DEPENDS:=+kmod-iptunnel + KCONFIG:= \ + CONFIG_MPLS=y \ + CONFIG_LWTUNNEL=y \ + CONFIG_LWTUNNEL_BPF=n \ + CONFIG_NET_MPLS_GSO=m \ + CONFIG_MPLS_ROUTING=m \ + CONFIG_MPLS_IPTUNNEL=m + FILES:= \ + $(LINUX_DIR)/net/mpls/mpls_gso.ko \ + $(LINUX_DIR)/net/mpls/mpls_iptunnel.ko \ + $(LINUX_DIR)/net/mpls/mpls_router.ko + AUTOLOAD:=$(call AutoLoad,30,mpls_router mpls_iptunnel mpls_gso) +endef + +define KernelPackage/mpls/description + Kernel support for MPLS +endef + +$(eval $(call KernelPackage,mpls)) + +define KernelPackage/9pnet + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Plan 9 Resource Sharing Support (9P2000) + DEPENDS:=@VIRTIO_SUPPORT + KCONFIG:= \ + CONFIG_NET_9P \ + CONFIG_NET_9P_DEBUG=n \ + CONFIG_NET_9P_XEN=n \ + CONFIG_NET_9P_VIRTIO + FILES:= \ + $(LINUX_DIR)/net/9p/9pnet.ko \ + $(LINUX_DIR)/net/9p/9pnet_virtio.ko + AUTOLOAD:=$(call AutoLoad,29,9pnet 9pnet_virtio) +endef + +define KernelPackage/9pnet/description + Kernel support support for + Plan 9 resource sharing via the 9P2000 protocol. +endef + +$(eval $(call KernelPackage,9pnet)) + + +define KernelPackage/nlmon + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Virtual netlink monitoring device + KCONFIG:=CONFIG_NLMON + FILES:=$(LINUX_DIR)/drivers/net/nlmon.ko + AUTOLOAD:=$(call AutoProbe,nlmon) +endef + +define KernelPackage/nlmon/description + Kernel module which adds a monitoring device for netlink. +endef + +$(eval $(call KernelPackage,nlmon)) + + +define KernelPackage/mdio + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=MDIO (clause 45) PHY support + KCONFIG:=CONFIG_MDIO + HIDDEN:=1 + FILES:=$(LINUX_DIR)/drivers/net/mdio.ko + AUTOLOAD:=$(call AutoLoad,32,mdio) +endef + +define KernelPackage/mdio/description + Kernel modules for MDIO (clause 45) PHY support +endef + +$(eval $(call KernelPackage,mdio)) + +define KernelPackage/macsec + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=IEEE 802.1AE MAC-level encryption (MAC) + DEPENDS:=+kmod-crypto-gcm + KCONFIG:=CONFIG_MACSEC + FILES:=$(LINUX_DIR)/drivers/net/macsec.ko + AUTOLOAD:=$(call AutoLoad,13,macsec) +endef + +define KernelPackage/macsec/description + MACsec is an encryption standard for Ethernet. +endef + +$(eval $(call KernelPackage,macsec)) + + +define KernelPackage/netlink-diag + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Netlink diag support for ss utility + KCONFIG:=CONFIG_NETLINK_DIAG + FILES:=$(LINUX_DIR)/net/netlink/netlink_diag.ko + AUTOLOAD:=$(call AutoLoad,31,netlink-diag) +endef + +define KernelPackage/netlink-diag/description + Netlink diag is a module made for use with iproute2's ss utility +endef + +$(eval $(call KernelPackage,netlink-diag)) + + +define KernelPackage/inet-diag + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=INET diag support for ss utility + KCONFIG:= \ + CONFIG_INET_DIAG \ + CONFIG_INET_TCP_DIAG \ + CONFIG_INET_UDP_DIAG \ + CONFIG_INET_RAW_DIAG \ + CONFIG_INET_DIAG_DESTROY=n + FILES:= \ + $(LINUX_DIR)/net/ipv4/inet_diag.ko \ + $(LINUX_DIR)/net/ipv4/tcp_diag.ko \ + $(LINUX_DIR)/net/ipv4/udp_diag.ko \ + $(LINUX_DIR)/net/ipv4/raw_diag.ko + AUTOLOAD:=$(call AutoLoad,31,inet_diag tcp_diag udp_diag raw_diag) +endef + +define KernelPackage/inet-diag/description +Support for INET (TCP, DCCP, etc) socket monitoring interface used by +native Linux tools such as ss. +endef + +$(eval $(call KernelPackage,inet-diag)) + + +define KernelPackage/wireguard + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=WireGuard secure network tunnel + DEPENDS:= \ + +kmod-crypto-lib-chacha20poly1305 \ + +kmod-crypto-lib-curve25519 \ + +kmod-udptunnel4 \ + +IPV6:kmod-udptunnel6 + KCONFIG:= \ + CONFIG_WIREGUARD \ + CONFIG_WIREGUARD_DEBUG=n + FILES:=$(LINUX_DIR)/drivers/net/wireguard/wireguard.ko + AUTOLOAD:=$(call AutoProbe,wireguard) +endef + +define KernelPackage/wireguard/description + WireGuard is a novel VPN that runs inside the Linux Kernel and utilizes + state-of-the-art cryptography. It aims to be faster, simpler, leaner, and + more useful than IPSec, while avoiding the massive headache. It intends to + be considerably more performant than OpenVPN. WireGuard is designed as a + general purpose VPN for running on embedded interfaces and super computers + alike, fit for many different circumstances. It uses UDP. +endef + +$(eval $(call KernelPackage,wireguard)) + + +define KernelPackage/netconsole + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Network console logging support + KCONFIG:=CONFIG_NETCONSOLE \ + CONFIG_NETCONSOLE_DYNAMIC=n + FILES:=$(LINUX_DIR)/drivers/net/netconsole.ko + AUTOLOAD:=$(call AutoProbe,netconsole) +endef + +define KernelPackage/netconsole/description + Network console logging support. +endef + +$(eval $(call KernelPackage,netconsole)) + + +define KernelPackage/qrtr + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Qualcomm IPC Router support + HIDDEN:=1 + KCONFIG:=CONFIG_QRTR + FILES:= \ + $(LINUX_DIR)/net/qrtr/qrtr.ko + AUTOLOAD:=$(call AutoProbe,qrtr) +endef + +define KernelPackage/qrtr/description + Qualcomm IPC Router support +endef + +$(eval $(call KernelPackage,qrtr)) + +define KernelPackage/qrtr-tun + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=TUN device for Qualcomm IPC Router + DEPENDS:=+kmod-qrtr + KCONFIG:=CONFIG_QRTR_TUN + FILES:= $(LINUX_DIR)/net/qrtr/qrtr-tun.ko + AUTOLOAD:=$(call AutoProbe,qrtr-tun) +endef + +define KernelPackage/qrtr-tun/description + TUN device for Qualcomm IPC Router +endef + +$(eval $(call KernelPackage,qrtr-tun)) + +define KernelPackage/qrtr-smd + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=SMD IPC Router channels + DEPENDS:=+kmod-qrtr @TARGET_ipq807x + KCONFIG:=CONFIG_QRTR_SMD + FILES:= $(LINUX_DIR)/net/qrtr/qrtr-smd.ko + AUTOLOAD:=$(call AutoProbe,qrtr-smd) +endef + +define KernelPackage/qrtr-smd/description + SMD IPC Router channels +endef + +$(eval $(call KernelPackage,qrtr-smd)) + +define KernelPackage/qrtr-mhi + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=MHI IPC Router channels + DEPENDS:=+kmod-mhi-bus +kmod-qrtr + KCONFIG:=CONFIG_QRTR_MHI + FILES:= $(LINUX_DIR)/net/qrtr/qrtr-mhi.ko + AUTOLOAD:=$(call AutoProbe,qrtr-mhi) +endef + +define KernelPackage/qrtr-mhi/description + MHI IPC Router channels +endef + +$(eval $(call KernelPackage,qrtr-mhi))