menu "S/390 network device drivers"
	depends on NETDEVICES && S390

config LCS
	tristate "Lan Channel Station Interface"
	depends on NETDEVICES && (NET_ETHERNET || TR || FDDI)
	help
	   Select this option if you want to use LCS networking  on IBM S/390
  	   or zSeries. This device driver supports Token Ring (IEEE 802.5),
  	   FDDI (IEEE 802.7) and Ethernet. 
	   This option is also available as a module which will be
	   called lcs.ko. If you do not know what it is, it's safe to say "Y".

config CTC
	tristate "CTC device support"
	depends on NETDEVICES
	help
	  Select this option if you want to use channel-to-channel networking
	  on IBM S/390 or zSeries. This device driver supports real CTC
	  coupling using ESCON. It also supports virtual CTCs when running
	  under VM. It will use the channel device configuration if this is
	  available.  This option is also available as a module which will be
	  called ctc.ko.  If you do not know what it is, it's safe to say "Y".

config IUCV
	tristate "IUCV support (VM only)"
	help
	  Select this option if you want to use inter-user communication
	  under VM or VIF. If unsure, say "Y" to enable a fast communication
	  link between VM guests.

config NETIUCV
	tristate "IUCV network device support (VM only)"
	depends on IUCV && NETDEVICES
	help
	  Select this option if you want to use inter-user communication
	  vehicle networking under VM or VIF. It enables a fast communication
	  link between VM guests. Using ifconfig a point-to-point connection
	  can be established to the Linux for zSeries and S7390 system
	  running on the other VM guest. This option is also available
	  as a module which will be called netiucv.ko. If unsure, say "Y".

config SMSGIUCV
	tristate "IUCV special message support (VM only)"
	depends on IUCV
	help
	  Select this option if you want to be able to receive SMSG messages
	  from other VM guest systems.

config CLAW
	tristate "CLAW device support"
	depends on NETDEVICES
	help
	  This driver supports channel attached CLAW devices.
	  CLAW is Common Link Access for Workstation.  Common devices
          that use CLAW are RS/6000s, Cisco Routers (CIP) and 3172 devices.
	  To compile as a module choose M here:  The module will be called
	  claw.ko to compile into the kernel choose Y

config QETH
	tristate "Gigabit Ethernet device support"
	depends on NETDEVICES && IP_MULTICAST && QDIO
	help
	  This driver supports the IBM S/390 and zSeries OSA Express adapters
	  in QDIO mode (all media types), HiperSockets interfaces and VM GuestLAN
	  interfaces in QDIO and HIPER mode.
	
	  For details please refer to the documentation provided by IBM at   
	  <http://www10.software.ibm.com/developerworks/opensource/linux390>

	  To compile this driver as a module, choose M here: the
	  module will be called qeth.ko.


comment "Gigabit Ethernet default settings"
	depends on QETH

config QETH_IPV6
	bool "IPv6 support for gigabit ethernet"
	depends on (QETH = IPV6) || (QETH && IPV6 = 'y')
	help
	  If CONFIG_QETH is switched on, this option will include IPv6
	  support in the qeth device driver.
	
config QETH_VLAN
	bool "VLAN support for gigabit ethernet"
	depends on (QETH = VLAN_8021Q) || (QETH && VLAN_8021Q = 'y')
	help
	  If CONFIG_QETH is switched on, this option will include IEEE
	  802.1q VLAN support in the qeth device driver.

config CCWGROUP
 	tristate
	default (LCS || CTC || QETH)

endmenu
