Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71a1d624 authored by Jubin John's avatar Jubin John Committed by Greg Kroah-Hartman
Browse files

staging/rdma/hfi1: add definitions for OPA traps



These new definitions will be used by follow-on
patches for formating and sending OPA traps.

Reviewed-by: default avatarIra Weiny <ira.weiny@intel.com>
Signed-off-by: default avatarJubin John <jubin.john@intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 7438370a
Loading
Loading
Loading
Loading
+114 −0
Original line number Diff line number Diff line
@@ -60,7 +60,121 @@
#endif
#include "opa_compat.h"

/*
 * OPA Traps
 */
#define OPA_TRAP_GID_NOW_IN_SERVICE             cpu_to_be16(64)
#define OPA_TRAP_GID_OUT_OF_SERVICE             cpu_to_be16(65)
#define OPA_TRAP_ADD_MULTICAST_GROUP            cpu_to_be16(66)
#define OPA_TRAL_DEL_MULTICAST_GROUP            cpu_to_be16(67)
#define OPA_TRAP_UNPATH                         cpu_to_be16(68)
#define OPA_TRAP_REPATH                         cpu_to_be16(69)
#define OPA_TRAP_PORT_CHANGE_STATE              cpu_to_be16(128)
#define OPA_TRAP_LINK_INTEGRITY                 cpu_to_be16(129)
#define OPA_TRAP_EXCESSIVE_BUFFER_OVERRUN       cpu_to_be16(130)
#define OPA_TRAP_FLOW_WATCHDOG                  cpu_to_be16(131)
#define OPA_TRAP_CHANGE_CAPABILITY              cpu_to_be16(144)
#define OPA_TRAP_CHANGE_SYSGUID                 cpu_to_be16(145)
#define OPA_TRAP_BAD_M_KEY                      cpu_to_be16(256)
#define OPA_TRAP_BAD_P_KEY                      cpu_to_be16(257)
#define OPA_TRAP_BAD_Q_KEY                      cpu_to_be16(258)
#define OPA_TRAP_SWITCH_BAD_PKEY                cpu_to_be16(259)
#define OPA_SMA_TRAP_DATA_LINK_WIDTH            cpu_to_be16(2048)

/*
 * Generic trap/notice other local changes flags (trap 144).
 */
#define	OPA_NOTICE_TRAP_LWDE_CHG        0x08 /* Link Width Downgrade Enable
					      * changed
					      */
#define OPA_NOTICE_TRAP_LSE_CHG         0x04 /* Link Speed Enable changed */
#define OPA_NOTICE_TRAP_LWE_CHG         0x02 /* Link Width Enable changed */
#define OPA_NOTICE_TRAP_NODE_DESC_CHG   0x01

struct opa_mad_notice_attr {
	u8 generic_type;
	u8 prod_type_msb;
	__be16 prod_type_lsb;
	__be16 trap_num;
	__be16 toggle_count;
	__be32 issuer_lid;
	__be32 reserved1;
	union ib_gid issuer_gid;

	union {
		struct {
			u8	details[64];
		} raw_data;

		struct {
			union ib_gid	gid;
		} __packed ntc_64_65_66_67;

		struct {
			__be32	lid;
		} __packed ntc_128;

		struct {
			__be32	lid;		/* where violation happened */
			u8	port_num;	/* where violation happened */
		} __packed ntc_129_130_131;

		struct {
			__be32	lid;		/* LID where change occurred */
			__be32	new_cap_mask;	/* new capability mask */
			__be16	reserved2;
			__be16	cap_mask;
			__be16	change_flags;	/* low 4 bits only */
		} __packed ntc_144;

		struct {
			__be64	new_sys_guid;
			__be32	lid;		/* lid where sys guid changed */
		} __packed ntc_145;

		struct {
			__be32	lid;
			__be32	dr_slid;
			u8	method;
			u8	dr_trunc_hop;
			__be16	attr_id;
			__be32	attr_mod;
			__be64	mkey;
			u8	dr_rtn_path[30];
		} __packed ntc_256;

		struct {
			__be32		lid1;
			__be32		lid2;
			__be32		key;
			u8		sl;	/* SL: high 5 bits */
			u8		reserved3[3];
			union ib_gid	gid1;
			union ib_gid	gid2;
			__be32		qp1;	/* high 8 bits reserved */
			__be32		qp2;	/* high 8 bits reserved */
		} __packed ntc_257_258;

		struct {
			__be16		flags;	/* low 8 bits reserved */
			__be16		pkey;
			__be32		lid1;
			__be32		lid2;
			u8		sl;	/* SL: high 5 bits */
			u8		reserved4[3];
			union ib_gid	gid1;
			union ib_gid	gid2;
			__be32		qp1;	/* high 8 bits reserved */
			__be32		qp2;	/* high 8 bits reserved */
		} __packed ntc_259;

		struct {
			__be32	lid;
		} __packed ntc_2048;

	};
	u8	class_data[0];
};

#define IB_VLARB_LOWPRI_0_31    1
#define IB_VLARB_LOWPRI_32_63   2