# 
# Copyright (C) 2006 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# $Id$

NSMENU:=Network Support

define KernelPackage/atm
  TITLE:=ATM support
  DEPENDS:=@ATM_SUPPORT
  DESCRIPTION:= \
    Kernel modules for ATM support
  FILES:= \
    $(MODULES_DIR)/kernel/net/atm/atm.$(LINUX_KMOD_SUFFIX) \
    $(MODULES_DIR)/kernel/net/atm/br2684.$(LINUX_KMOD_SUFFIX)
  KCONFIG:=$(CONFIG_ATM)
  SUBMENU:=$(NSMENU)
  AUTOLOAD:=$(call AutoLoad,30,atm)
endef
$(eval $(call KernelPackage,atm))

define KernelPackage/atmtcp
  TITLE:=ATM over TCP
  DESCRIPTION:= \
    Kernel module for ATM over TCP support
  DEPENDS:=@LINUX_2_6 kmod-atm
  FILES:=$(MODULES_DIR)/kernel/drivers/atm/atmtcp.$(LINUX_KMOD_SUFFIX)
  KCONFIG:=$(CONFIG_ATM_TCP)
  SUBMENU:=$(NSMENU)
  AUTOLOAD:=$(call AutoLoad,40,atmtcp)
endef
$(eval $(call KernelPackage,atmtcp))

define KernelPackage/ipip
  TITLE:=IP in IP encapsulation support
  DESCRIPTION:=\
  	Kernel modules for IP in IP encapsulation
  KCONFIG:=$(CONFIG_NET_IPIP)
  SUBMENU:=$(NSMENU)
endef
$(eval $(call KernelPackage,ipip))

define KernelPackage/ipip/2.4
  FILES:=$(MODULES_DIR)/kernel/net/ipv4/ipip.$(LINUX_KMOD_SUFFIX)
  AUTOLOAD:=$(call AutoLoad,30,ipip)
endef

define KernelPackage/ipip/2.6
  FILES:= \
	$(MODULES_DIR)/kernel/net/ipv4/ipip.$(LINUX_KMOD_SUFFIX) \
	$(MODULES_DIR)/kernel/net/ipv4/tunnel4.$(LINUX_KMOD_SUFFIX)
  AUTOLOAD:=$(call AutoLoad,30,ipip tunnel4)
endef

define KernelPackage/ipv6
  TITLE:=IPv6 support
  DESCRIPTION:=\
	Kernel modules for IPv6 support
  KCONFIG:=$(CONFIG_IPV6)
  FILES:=$(MODULES_DIR)/kernel/net/ipv6/ipv6.$(LINUX_KMOD_SUFFIX)
  SUBMENU:=$(NSMENU)
endef
$(eval $(call KernelPackage,ipv6))


define KernelPackage/gre
  TITLE:=GRE support
  DESCRIPTION:=\
	Generic Routing Encapsulation support
  KCONFIG=$(CONFIG_NET_IPGRE)
  FILES=$(MODULES_DIR)/kernel/net/ipv4/ip_gre.$(LINUX_KMOD_SUFFIX)
  SUBMENU:=$(NSMENU)
endef
$(eval $(call KernelPackage,gre))


define KernelPackage/tun
  TITLE:=Universal TUN/TAP driver
  DESCRIPTION:=\
	Kernel support for the TUN/TAP tunneling device
  KCONFIG:=$(CONFIG_TUN)
  FILES:=$(MODULES_DIR)/kernel/drivers/net/tun.$(LINUX_KMOD_SUFFIX)
  SUBMENU:=$(NSMENU)
  AUTOLOAD:=$(call AutoLoad,30,tun)
endef
$(eval $(call KernelPackage,tun))


define KernelPackage/ppp
  TITLE:=PPP modules
  DESCRIPTION:=\
	Kernel modules for PPP support
  KCONFIG:=$(CONFIG_PPP)
  SUBMENU:=$(NSMENU)
endef

define KernelPackage/ppp/2.6
  FILES:= \
  	$(MODULES_DIR)/kernel/drivers/net/ppp_async.ko \
	$(MODULES_DIR)/kernel/drivers/net/ppp_generic.ko \
	$(MODULES_DIR)/kernel/drivers/net/slhc.ko \
	$(MODULES_DIR)/kernel/lib/crc-ccitt.ko
  AUTOLOAD:=$(call AutoLoad,30,crc-ccitt)
endef

define KernelPackage/ppp/2.4
  FILES:= \
  	$(MODULES_DIR)/kernel/drivers/net/ppp_async.o \
	$(MODULES_DIR)/kernel/drivers/net/ppp_generic.o \
	$(MODULES_DIR)/kernel/drivers/net/slhc.o
endef
$(eval $(call KernelPackage,ppp))


define KernelPackage/pppoe
  TITLE:=PPPoE support
  DESCRIPTION:=\
	Kernel modules for PPPoE (PPP over Ethernet) support
  DEPENDS:=kmod-ppp
  KCONFIG:=$(CONFIG_PPPOE)
  FILES:= \
  	$(MODULES_DIR)/kernel/drivers/net/pppoe.$(LINUX_KMOD_SUFFIX) \
	$(MODULES_DIR)/kernel/drivers/net/pppox.$(LINUX_KMOD_SUFFIX)
  SUBMENU:=$(NSMENU)
endef
$(eval $(call KernelPackage,pppoe))


define KernelPackage/pppoa
  TITLE:=PPPoA support
  DESCRIPTION:=\
	Kernel modules for PPPoA (PPP over ATM) support
  DEPENDS:=kmod-ppp
  KCONFIG:=$(CONFIG_PPPOATM)
  FILES:=$(MODULES_DIR)/kernel/net/atm/pppoatm.$(LINUX_KMOD_SUFFIX)
  SUBMENU:=$(NSMENU)
endef
$(eval $(call KernelPackage,pppoa))


define KernelPackage/mppe
  TITLE:=Microsoft PPP compression/encryption
  DESCRIPTION:=Kernel modules for Microsoft PPP compression/encryption
  DEPENDS:=kmod-ppp
  KCONFIG:=$(CONFIG_PPP_MPPE)
  SUBMENU:=$(NSMENU)
endef

define KernelPackage/mppe/2.4
  FILES:=$(MODULES_DIR)/kernel/drivers/net/ppp_mppe_mppc.$(LINUX_KMOD_SUFFIX)
endef

define KernelPackage/mppe/2.6
  FILES:=$(MODULES_DIR)/kernel/drivers/net/ppp_mppe.$(LINUX_KMOD_SUFFIX)
endef
$(eval $(call KernelPackage,mppe))


define KernelPackage/sched
  TITLE:=Traffic schedulers
  DESCRIPTION:=\
	Kernel schedulers for IP traffic
  FILES:=$(MODULES_DIR)/kernel/net/sched/*.$(LINUX_KMOD_SUFFIX)
  SUBMENU:=$(NSMENU)
endef
$(eval $(call KernelPackage,sched))


define KernelPackage/ieee80211softmac
  TITLE:=802.11 Networking stack
  DESCRIPTION:=\\\
	\\\
	Includes: \\\
	- ieee80211_crypt \\\
	- ieee80211 \\\
	- ieee80211_crypt_wep \\\
	- ieee80211_crypt_tkip \\\
	- ieee80211_crytp_ccmp \\\
	- ieee80211softmac
  DEPENDS:=@LINUX_2_6
  KCONFIG:=$(CONFIG_IEEE80211_SOFTMAC)
  FILES:= \
  	$(MODULES_DIR)/kernel/net/ieee80211/*.$(LINUX_KMOD_SUFFIX) \
	$(MODULES_DIR)/kernel/net/ieee80211/softmac/*.$(LINUX_KMOD_SUFFIX)
  AUTOLOAD:=$(call AutoLoad,10, \
	ieee80211_crypt \
	ieee80211 \
	ieee80211_crypt_wep \
	ieee80211_crypt_tkip \
	ieee80211_crypt_ccmp \
	ieee80211softmac \
  )
  SUBMENU:=$(NSMENU)
endef
$(eval $(call KernelPackage,ieee80211softmac))



NDMENU:=Network Devices

define KernelPackage/natsemi
  TITLE:=National Semiconductor DP8381x series 
  DESCRIPTION:=\
	Kernel modules for National Semiconductor DP8381x series PCI Ethernet \\\
	adapters.
  FILES:=$(MODULES_DIR)/kernel/drivers/net/natsemi.$(LINUX_KMOD_SUFFIX)
  KCONFIG:=$(CONFIG_NATSEMI)
  DEPENDS:=@LINUX_2_6_X86
  DEFAULT:=y
  SUBMENU:=$(NDMENU)
  AUTOLOAD:=$(call AutoLoad,20,natsemi)
endef
$(eval $(call KernelPackage,natsemi))

define KernelPackage/sis900
  TITLE:=SiS 900 Ethernet support
  DESCRIPTION:=\
	Kernel modules for Sis 900 Ethernet adapters.
  FILES:=$(MODULES_DIR)/kernel/drivers/net/sis900.$(LINUX_KMOD_SUFFIX)
  KCONFIG:=$(CONFIG_SIS900)
  DEPENDS:=@LINUX_2_6_X86||LINUX_2_4_X86
  SUBMENU:=$(NDMENU)
endef
$(eval $(call KernelPackage,sis900))

define KernelPackage/via-rhine
  TITLE:=Via Rhine ethernet support
  DESCRIPTION:=\
	Kernel modules for Via Rhine Ethernet chipsets.
  FILES:=$(MODULES_DIR)/kernel/drivers/net/via-rhine.$(LINUX_KMOD_SUFFIX)
  KCONFIG:=$(CONFIG_VIA_RHINE)
  DEPENDS:=@LINUX_2_6_X86||LINUX_2_4_X86
  SUBMENU:=$(NDMENU)
endef
$(eval $(call KernelPackage,via-rhine))

define KernelPackage/8139too
  TITLE:=RealTek RTL-8139 PCI Fast Ethernet Adapter kernel support
  DESCRIPTION:=\
	Kernel modules for RealTek RTL-8139 PCI Fast Ethernet adapters.
  FILES:=$(MODULES_DIR)/kernel/drivers/net/8139too.$(LINUX_KMOD_SUFFIX)
  KCONFIG:=$(CONFIG_8139TOO)
  DEPENDS:=@LINUX_2_6_X86||LINUX_2_4_X86
  SUBMENU:=$(NDMENU)
endef
$(eval $(call KernelPackage,8139too))

define KernelPackage/e100
  TITLE:=Intel(R) PRO/100+ cards kernel support
  DESCRIPTION:=\
	Kernel modules for Intel(R) PRO/100+ Ethernet adapters.
  FILES:=$(MODULES_DIR)/kernel/drivers/net/e100.$(LINUX_KMOD_SUFFIX)
  KCONFIG:=$(CONFIG_E100)
  DEPENDS:=@LINUX_2_6_X86||LINUX_2_4_X86
  SUBMENU:=$(NDMENU)
endef
$(eval $(call KernelPackage,e100))

define KernelPackage/3c59x
  TITLE:=3Com 3c590/3c900 series (592/595/597) Vortex/Boomerang
  DESCRIPTION:=\
	This option enables driver support for a large number of 10mbps and \\\
	10/100mbps EISA, PCI and PCMCIA 3Com Ethernet adapters: \\\
	- "Vortex"    (Fast EtherLink 3c590/3c592/3c595/3c597) EISA and PCI \\\
	- "Boomerang" (EtherLink XL 3c900 or 3c905)            PCI \\\
	- "Cyclone"   (3c540/3c900/3c905/3c980/3c575/3c656)    PCI and Cardbus \\\
	- "Tornado"   (3c905)                                  PCI  \\\
	- "Hurricane" (3c555/3cSOHO)                           PCI 
  FILES:=$(MODULES_DIR)/kernel/drivers/net/3c59x.$(LINUX_KMOD_SUFFIX)
  KCONFIG:=$(CONFIG_3C59X)
  DEPENDS:=@LINUX_2_6_X86||LINUX_2_4_X86
  SUBMENU:=$(NDMENU)
endef
$(eval $(call KernelPackage,3c59x))