qeth_mpc.h

来自「linux 内核源代码」· C头文件 代码 · 共 584 行 · 第 1/2 页

H
584
字号
/* * linux/drivers/s390/net/qeth_mpc.h * * Linux on zSeries OSA Express and HiperSockets support * * Copyright 2000,2003 IBM Corporation * Author(s): Utz Bacher <utz.bacher@de.ibm.com> *            Thomas Spatzier <tspat@de.ibm.com> *            Frank Pavlic <fpavlic@de.ibm.com> * */#ifndef __QETH_MPC_H__#define __QETH_MPC_H__#include <asm/qeth.h>#define IPA_PDU_HEADER_SIZE	0x40#define QETH_IPA_PDU_LEN_TOTAL(buffer) (buffer+0x0e)#define QETH_IPA_PDU_LEN_PDU1(buffer) (buffer+0x26)#define QETH_IPA_PDU_LEN_PDU2(buffer) (buffer+0x29)#define QETH_IPA_PDU_LEN_PDU3(buffer) (buffer+0x3a)extern unsigned char IPA_PDU_HEADER[];#define QETH_IPA_CMD_DEST_ADDR(buffer) (buffer+0x2c)#define IPA_CMD_LENGTH	(IPA_PDU_HEADER_SIZE + sizeof(struct qeth_ipa_cmd))#define QETH_SEQ_NO_LENGTH	4#define QETH_MPC_TOKEN_LENGTH	4#define QETH_MCL_LENGTH		4#define OSA_ADDR_LEN		6#define QETH_TIMEOUT		(10 * HZ)#define QETH_IPA_TIMEOUT	(45 * HZ)#define QETH_IDX_COMMAND_SEQNO	0xffff0000#define SR_INFO_LEN		16#define QETH_CLEAR_CHANNEL_PARM	-10#define QETH_HALT_CHANNEL_PARM	-11#define QETH_RCD_PARM -12/*****************************************************************************//* IP Assist related definitions                                             *//*****************************************************************************/#define IPA_CMD_INITIATOR_HOST  0x00#define IPA_CMD_INITIATOR_OSA   0x01#define IPA_CMD_INITIATOR_HOST_REPLY  0x80#define IPA_CMD_INITIATOR_OSA_REPLY   0x81#define IPA_CMD_PRIM_VERSION_NO 0x01enum qeth_card_types {	QETH_CARD_TYPE_UNKNOWN = 0,	QETH_CARD_TYPE_OSAE    = 10,	QETH_CARD_TYPE_IQD     = 1234,	QETH_CARD_TYPE_OSN     = 11,};#define QETH_MPC_DIFINFO_LEN_INDICATES_LINK_TYPE 0x18/* only the first two bytes are looked at in qeth_get_cardname_short */enum qeth_link_types {	QETH_LINK_TYPE_FAST_ETH     = 0x01,	QETH_LINK_TYPE_HSTR         = 0x02,	QETH_LINK_TYPE_GBIT_ETH     = 0x03,	QETH_LINK_TYPE_OSN          = 0x04,	QETH_LINK_TYPE_10GBIT_ETH   = 0x10,	QETH_LINK_TYPE_LANE_ETH100  = 0x81,	QETH_LINK_TYPE_LANE_TR      = 0x82,	QETH_LINK_TYPE_LANE_ETH1000 = 0x83,	QETH_LINK_TYPE_LANE         = 0x88,	QETH_LINK_TYPE_ATM_NATIVE   = 0x90,};enum qeth_tr_macaddr_modes {	QETH_TR_MACADDR_NONCANONICAL = 0,	QETH_TR_MACADDR_CANONICAL    = 1,};enum qeth_tr_broadcast_modes {	QETH_TR_BROADCAST_ALLRINGS = 0,	QETH_TR_BROADCAST_LOCAL    = 1,};/* these values match CHECKSUM_* in include/linux/skbuff.h */enum qeth_checksum_types {	SW_CHECKSUMMING = 0, /* TODO: set to bit flag used in IPA Command */	HW_CHECKSUMMING = 1,	NO_CHECKSUMMING = 2,};#define QETH_CHECKSUM_DEFAULT SW_CHECKSUMMING/* * Routing stuff */#define RESET_ROUTING_FLAG 0x10 /* indicate that routing type shall be set */enum qeth_routing_types {	NO_ROUTER		= 0, /* TODO: set to bit flag used in IPA Command */	PRIMARY_ROUTER		= 1,	SECONDARY_ROUTER	= 2,	MULTICAST_ROUTER	= 3,	PRIMARY_CONNECTOR	= 4,	SECONDARY_CONNECTOR	= 5,};/* IPA Commands */enum qeth_ipa_cmds {	IPA_CMD_STARTLAN		= 0x01,	IPA_CMD_STOPLAN			= 0x02,	IPA_CMD_SETVMAC			= 0x21,	IPA_CMD_DELVMAC			= 0x22,	IPA_CMD_SETGMAC			= 0x23,	IPA_CMD_DELGMAC			= 0x24,	IPA_CMD_SETVLAN			= 0x25,	IPA_CMD_DELVLAN			= 0x26,	IPA_CMD_SETCCID			= 0x41,	IPA_CMD_DELCCID			= 0x42,	IPA_CMD_MODCCID			= 0x43,	IPA_CMD_SETIP			= 0xb1,	IPA_CMD_QIPASSIST		= 0xb2,	IPA_CMD_SETASSPARMS		= 0xb3,	IPA_CMD_SETIPM			= 0xb4,	IPA_CMD_DELIPM			= 0xb5,	IPA_CMD_SETRTG			= 0xb6,	IPA_CMD_DELIP			= 0xb7,	IPA_CMD_SETADAPTERPARMS		= 0xb8,	IPA_CMD_SET_DIAG_ASS		= 0xb9,	IPA_CMD_CREATE_ADDR		= 0xc3,	IPA_CMD_DESTROY_ADDR		= 0xc4,	IPA_CMD_REGISTER_LOCAL_ADDR	= 0xd1,	IPA_CMD_UNREGISTER_LOCAL_ADDR	= 0xd2,	IPA_CMD_UNKNOWN			= 0x00};enum qeth_ip_ass_cmds {	IPA_CMD_ASS_START	= 0x0001,	IPA_CMD_ASS_STOP	= 0x0002,	IPA_CMD_ASS_CONFIGURE	= 0x0003,	IPA_CMD_ASS_ENABLE	= 0x0004,};enum qeth_arp_process_subcmds {	IPA_CMD_ASS_ARP_SET_NO_ENTRIES	= 0x0003,	IPA_CMD_ASS_ARP_QUERY_CACHE	= 0x0004,	IPA_CMD_ASS_ARP_ADD_ENTRY	= 0x0005,	IPA_CMD_ASS_ARP_REMOVE_ENTRY	= 0x0006,	IPA_CMD_ASS_ARP_FLUSH_CACHE	= 0x0007,	IPA_CMD_ASS_ARP_QUERY_INFO	= 0x0104,	IPA_CMD_ASS_ARP_QUERY_STATS	= 0x0204,};/* Return Codes for IPA Commands * according to OSA card Specs */enum qeth_ipa_return_codes {	IPA_RC_SUCCESS			= 0x0000,	IPA_RC_NOTSUPP			= 0x0001,	IPA_RC_IP_TABLE_FULL		= 0x0002,	IPA_RC_UNKNOWN_ERROR		= 0x0003,	IPA_RC_UNSUPPORTED_COMMAND	= 0x0004,	IPA_RC_DUP_IPV6_REMOTE		= 0x0008,	IPA_RC_DUP_IPV6_HOME		= 0x0010,	IPA_RC_UNREGISTERED_ADDR	= 0x0011,	IPA_RC_NO_ID_AVAILABLE		= 0x0012,	IPA_RC_ID_NOT_FOUND		= 0x0013,	IPA_RC_INVALID_IP_VERSION	= 0x0020,	IPA_RC_LAN_FRAME_MISMATCH	= 0x0040,	IPA_RC_L2_UNSUPPORTED_CMD	= 0x2003,	IPA_RC_L2_DUP_MAC		= 0x2005,	IPA_RC_L2_ADDR_TABLE_FULL	= 0x2006,	IPA_RC_L2_DUP_LAYER3_MAC	= 0x200a,	IPA_RC_L2_GMAC_NOT_FOUND	= 0x200b,	IPA_RC_L2_MAC_NOT_FOUND		= 0x2010,	IPA_RC_L2_INVALID_VLAN_ID	= 0x2015,	IPA_RC_L2_DUP_VLAN_ID		= 0x2016,	IPA_RC_L2_VLAN_ID_NOT_FOUND	= 0x2017,	IPA_RC_DATA_MISMATCH		= 0xe001,	IPA_RC_INVALID_MTU_SIZE		= 0xe002,	IPA_RC_INVALID_LANTYPE		= 0xe003,	IPA_RC_INVALID_LANNUM		= 0xe004,	IPA_RC_DUPLICATE_IP_ADDRESS	= 0xe005,	IPA_RC_IP_ADDR_TABLE_FULL	= 0xe006,	IPA_RC_LAN_PORT_STATE_ERROR	= 0xe007,	IPA_RC_SETIP_NO_STARTLAN	= 0xe008,	IPA_RC_SETIP_ALREADY_RECEIVED	= 0xe009,	IPA_RC_IP_ADDR_ALREADY_USED	= 0xe00a,	IPA_RC_MULTICAST_FULL		= 0xe00b,	IPA_RC_SETIP_INVALID_VERSION	= 0xe00d,	IPA_RC_UNSUPPORTED_SUBCMD	= 0xe00e,	IPA_RC_ARP_ASSIST_NO_ENABLE	= 0xe00f,	IPA_RC_PRIMARY_ALREADY_DEFINED	= 0xe010,	IPA_RC_SECOND_ALREADY_DEFINED	= 0xe011,	IPA_RC_INVALID_SETRTG_INDICATOR	= 0xe012,	IPA_RC_MC_ADDR_ALREADY_DEFINED	= 0xe013,	IPA_RC_LAN_OFFLINE		= 0xe080,	IPA_RC_INVALID_IP_VERSION2	= 0xf001,	IPA_RC_FFFF			= 0xffff};/* IPA function flags; each flag marks availability of respective function */enum qeth_ipa_funcs {	IPA_ARP_PROCESSING      = 0x00000001L,	IPA_INBOUND_CHECKSUM    = 0x00000002L,	IPA_OUTBOUND_CHECKSUM   = 0x00000004L,	IPA_IP_FRAGMENTATION    = 0x00000008L,	IPA_FILTERING           = 0x00000010L,	IPA_IPV6                = 0x00000020L,	IPA_MULTICASTING        = 0x00000040L,	IPA_IP_REASSEMBLY       = 0x00000080L,	IPA_QUERY_ARP_COUNTERS  = 0x00000100L,	IPA_QUERY_ARP_ADDR_INFO = 0x00000200L,	IPA_SETADAPTERPARMS     = 0x00000400L,	IPA_VLAN_PRIO           = 0x00000800L,	IPA_PASSTHRU            = 0x00001000L,	IPA_FLUSH_ARP_SUPPORT   = 0x00002000L,	IPA_FULL_VLAN           = 0x00004000L,	IPA_INBOUND_PASSTHRU    = 0x00008000L,	IPA_SOURCE_MAC          = 0x00010000L,	IPA_OSA_MC_ROUTER       = 0x00020000L,	IPA_QUERY_ARP_ASSIST	= 0x00040000L,	IPA_INBOUND_TSO         = 0x00080000L,	IPA_OUTBOUND_TSO        = 0x00100000L,};/* SETIP/DELIP IPA Command: ***************************************************/enum qeth_ipa_setdelip_flags {	QETH_IPA_SETDELIP_DEFAULT          = 0x00L, /* default */	QETH_IPA_SETIP_VIPA_FLAG           = 0x01L, /* no grat. ARP */	QETH_IPA_SETIP_TAKEOVER_FLAG       = 0x02L, /* nofail on grat. ARP */	QETH_IPA_DELIP_ADDR_2_B_TAKEN_OVER = 0x20L,	QETH_IPA_DELIP_VIPA_FLAG           = 0x40L,	QETH_IPA_DELIP_ADDR_NEEDS_SETIP    = 0x80L,};/* SETADAPTER IPA Command: ****************************************************/enum qeth_ipa_setadp_cmd {	IPA_SETADP_QUERY_COMMANDS_SUPPORTED	= 0x01,	IPA_SETADP_ALTER_MAC_ADDRESS		= 0x02,	IPA_SETADP_ADD_DELETE_GROUP_ADDRESS	= 0x04,	IPA_SETADP_ADD_DELETE_FUNCTIONAL_ADDR	= 0x08,	IPA_SETADP_SET_ADDRESSING_MODE		= 0x10,	IPA_SETADP_SET_CONFIG_PARMS		= 0x20,	IPA_SETADP_SET_CONFIG_PARMS_EXTENDED	= 0x40,	IPA_SETADP_SET_BROADCAST_MODE		= 0x80,	IPA_SETADP_SEND_OSA_MESSAGE		= 0x0100,	IPA_SETADP_SET_SNMP_CONTROL		= 0x0200,	IPA_SETADP_QUERY_CARD_INFO		= 0x0400,	IPA_SETADP_SET_PROMISC_MODE		= 0x0800,};enum qeth_ipa_mac_ops {	CHANGE_ADDR_READ_MAC		= 0,	CHANGE_ADDR_REPLACE_MAC		= 1,	CHANGE_ADDR_ADD_MAC		= 2,	CHANGE_ADDR_DEL_MAC		= 4,	CHANGE_ADDR_RESET_MAC		= 8,};enum qeth_ipa_addr_ops {	CHANGE_ADDR_READ_ADDR		= 0,	CHANGE_ADDR_ADD_ADDR		= 1,	CHANGE_ADDR_DEL_ADDR		= 2,	CHANGE_ADDR_FLUSH_ADDR_TABLE	= 4,};enum qeth_ipa_promisc_modes {	SET_PROMISC_MODE_OFF		= 0,	SET_PROMISC_MODE_ON		= 1,};/* (SET)DELIP(M) IPA stuff ***************************************************/struct qeth_ipacmd_setdelip4 {	__u8   ip_addr[4];	__u8   mask[4];	__u32  flags;} __attribute__ ((packed));struct qeth_ipacmd_setdelip6 {	__u8   ip_addr[16];	__u8   mask[16];	__u32  flags;} __attribute__ ((packed));struct qeth_ipacmd_setdelipm {	__u8 mac[6];	__u8 padding[2];	__u8 ip6[12];	__u8 ip4[4];} __attribute__ ((packed));struct qeth_ipacmd_layer2setdelmac {	__u32 mac_length;	__u8 mac[6];} __attribute__ ((packed));struct qeth_ipacmd_layer2setdelvlan {

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?