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

config LCS
	def_tristate m
	prompt "Lan Channel Station Interface"
	depends on CCW && NETDEVICES && (ETHERNET || TR || FDDI)
	help
	   Select this option if you want to use LCS networking on IBM System z.
	   This device driver supports Token Ring (IEEE 802.5),
	   FDDI (IEEE 802.7) and Ethernet.
	   To compile as a module, choose M. The module name is lcs.
	   If you do not know what it is, it's safe to choose Y.

config CTCM
	def_tristate m
	prompt "CTC and MPC SNA device support"
	depends on CCW && NETDEVICES
	help
	  Select this option if you want to use channel-to-channel
	  point-to-point networking on IBM System z.
	  This device driver supports real CTC coupling using ESCON.
	  It also supports virtual CTCs when running under VM.
	  This driver also supports channel-to-channel MPC SNA devices.
	  MPC is an SNA protocol device used by Communication Server for Linux.
	  To compile as a module, choose M. The module name is ctcm.
	  To compile into the kernel, choose Y.
	  If you do not need any channel-to-channel connection, choose N.

config NETIUCV
	def_tristate m
	prompt "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 on IBM System z
	  running on the other VM guest. To compile as a module, choose M.
	  The module name is netiucv. If unsure, choose Y.

config SMSGIUCV
	def_tristate m
	prompt "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 SMSGIUCV_EVENT
	def_tristate m
	prompt "Deliver IUCV special messages as uevents (VM only)"
	depends on SMSGIUCV
	help
	  Select this option to deliver CP special messages (SMSGs) as
	  uevents.  The driver handles only those special messages that
	  start with "APP".

	  To compile as a module, choose M. The module name is "smsgiucv_app".

config CLAW
	def_tristate m
	prompt "CLAW device support"
	depends on CCW && 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. The module name is claw.
	  To compile into the kernel, choose Y.

config QETH
	def_tristate y
	prompt "Gigabit Ethernet device support"
	depends on CCW && NETDEVICES && IP_MULTICAST && QDIO
	help
	  This driver supports the IBM System z 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://www.ibm.com/developerworks/linux/linux390>

	  To compile this driver as a module, choose M.
	  The module name is qeth.

config QETH_L2
	def_tristate y
	prompt "qeth layer 2 device support"
	depends on QETH
	help
	  Select this option to be able to run qeth devices in layer 2 mode.
	  To compile as a module, choose M. The module name is qeth_l2.
	  If unsure, choose y.

config QETH_L3
	def_tristate y
	prompt "qeth layer 3 device support"
	depends on QETH
	help
	  Select this option to be able to run qeth devices in layer 3 mode.
	  To compile as a module choose M. The module name is qeth_l3.
	  If unsure, choose Y.

config QETH_IPV6
	def_bool y if (QETH_L3 = IPV6) || (QETH_L3 && IPV6 = 'y')

config CCWGROUP
	tristate
	default (LCS || CTCM || QETH || CLAW)

endmenu
