0001
0002
0003
0004
0005
0006
0007 #ifndef RXE_PARAM_H
0008 #define RXE_PARAM_H
0009
0010 #include <uapi/rdma/rdma_user_rxe.h>
0011
0012 #define DEFAULT_MAX_VALUE (1 << 20)
0013
0014 static inline enum ib_mtu rxe_mtu_int_to_enum(int mtu)
0015 {
0016 if (mtu < 256)
0017 return 0;
0018 else if (mtu < 512)
0019 return IB_MTU_256;
0020 else if (mtu < 1024)
0021 return IB_MTU_512;
0022 else if (mtu < 2048)
0023 return IB_MTU_1024;
0024 else if (mtu < 4096)
0025 return IB_MTU_2048;
0026 else
0027 return IB_MTU_4096;
0028 }
0029
0030
0031 static inline enum ib_mtu eth_mtu_int_to_enum(int mtu)
0032 {
0033 mtu -= RXE_MAX_HDR_LENGTH;
0034
0035 return rxe_mtu_int_to_enum(mtu);
0036 }
0037
0038
0039 enum rxe_device_param {
0040 RXE_MAX_MR_SIZE = -1ull,
0041 RXE_PAGE_SIZE_CAP = 0xfffff000,
0042 RXE_MAX_QP_WR = DEFAULT_MAX_VALUE,
0043 RXE_DEVICE_CAP_FLAGS = IB_DEVICE_BAD_PKEY_CNTR
0044 | IB_DEVICE_BAD_QKEY_CNTR
0045 | IB_DEVICE_AUTO_PATH_MIG
0046 | IB_DEVICE_CHANGE_PHY_PORT
0047 | IB_DEVICE_UD_AV_PORT_ENFORCE
0048 | IB_DEVICE_PORT_ACTIVE_EVENT
0049 | IB_DEVICE_SYS_IMAGE_GUID
0050 | IB_DEVICE_RC_RNR_NAK_GEN
0051 | IB_DEVICE_SRQ_RESIZE
0052 | IB_DEVICE_MEM_MGT_EXTENSIONS
0053 | IB_DEVICE_MEM_WINDOW
0054 | IB_DEVICE_MEM_WINDOW_TYPE_2B,
0055 RXE_MAX_SGE = 32,
0056 RXE_MAX_WQE_SIZE = sizeof(struct rxe_send_wqe) +
0057 sizeof(struct ib_sge) * RXE_MAX_SGE,
0058 RXE_MAX_INLINE_DATA = RXE_MAX_WQE_SIZE -
0059 sizeof(struct rxe_send_wqe),
0060 RXE_MAX_SGE_RD = 32,
0061 RXE_MAX_CQ = DEFAULT_MAX_VALUE,
0062 RXE_MAX_LOG_CQE = 15,
0063 RXE_MAX_PD = DEFAULT_MAX_VALUE,
0064 RXE_MAX_QP_RD_ATOM = 128,
0065 RXE_MAX_RES_RD_ATOM = 0x3f000,
0066 RXE_MAX_QP_INIT_RD_ATOM = 128,
0067 RXE_MAX_MCAST_GRP = 8192,
0068 RXE_MAX_MCAST_QP_ATTACH = 56,
0069 RXE_MAX_TOT_MCAST_QP_ATTACH = 0x70000,
0070 RXE_MAX_AH = (1<<15) - 1,
0071 RXE_MIN_AH_INDEX = 1,
0072 RXE_MAX_AH_INDEX = RXE_MAX_AH,
0073 RXE_MAX_SRQ_WR = DEFAULT_MAX_VALUE,
0074 RXE_MIN_SRQ_WR = 1,
0075 RXE_MAX_SRQ_SGE = 27,
0076 RXE_MIN_SRQ_SGE = 1,
0077 RXE_MAX_FMR_PAGE_LIST_LEN = 512,
0078 RXE_MAX_PKEYS = 64,
0079 RXE_LOCAL_CA_ACK_DELAY = 15,
0080
0081 RXE_MAX_UCONTEXT = DEFAULT_MAX_VALUE,
0082
0083 RXE_NUM_PORT = 1,
0084
0085 RXE_MIN_QP_INDEX = 16,
0086 RXE_MAX_QP_INDEX = DEFAULT_MAX_VALUE,
0087 RXE_MAX_QP = DEFAULT_MAX_VALUE - RXE_MIN_QP_INDEX,
0088
0089 RXE_MIN_SRQ_INDEX = 0x00020001,
0090 RXE_MAX_SRQ_INDEX = DEFAULT_MAX_VALUE,
0091 RXE_MAX_SRQ = DEFAULT_MAX_VALUE - RXE_MIN_SRQ_INDEX,
0092
0093 RXE_MIN_MR_INDEX = 0x00000001,
0094 RXE_MAX_MR_INDEX = DEFAULT_MAX_VALUE,
0095 RXE_MAX_MR = DEFAULT_MAX_VALUE - RXE_MIN_MR_INDEX,
0096 RXE_MIN_MW_INDEX = 0x00010001,
0097 RXE_MAX_MW_INDEX = 0x00020000,
0098 RXE_MAX_MW = 0x00001000,
0099
0100 RXE_MAX_PKT_PER_ACK = 64,
0101
0102 RXE_MAX_UNACKED_PSNS = 128,
0103
0104
0105 RXE_INFLIGHT_SKBS_PER_QP_HIGH = 64,
0106 RXE_INFLIGHT_SKBS_PER_QP_LOW = 16,
0107
0108
0109
0110
0111
0112 RXE_MAX_ITERATIONS = 1024,
0113
0114
0115 RXE_NSEC_ARB_TIMER_DELAY = 200,
0116
0117
0118 RXE_VENDOR_ID = 0XFFFFFF,
0119 };
0120
0121
0122 enum rxe_port_param {
0123 RXE_PORT_GID_TBL_LEN = 1024,
0124 RXE_PORT_PORT_CAP_FLAGS = IB_PORT_CM_SUP,
0125 RXE_PORT_MAX_MSG_SZ = 0x800000,
0126 RXE_PORT_BAD_PKEY_CNTR = 0,
0127 RXE_PORT_QKEY_VIOL_CNTR = 0,
0128 RXE_PORT_LID = 0,
0129 RXE_PORT_SM_LID = 0,
0130 RXE_PORT_SM_SL = 0,
0131 RXE_PORT_LMC = 0,
0132 RXE_PORT_MAX_VL_NUM = 1,
0133 RXE_PORT_SUBNET_TIMEOUT = 0,
0134 RXE_PORT_INIT_TYPE_REPLY = 0,
0135 RXE_PORT_ACTIVE_WIDTH = IB_WIDTH_1X,
0136 RXE_PORT_ACTIVE_SPEED = 1,
0137 RXE_PORT_PKEY_TBL_LEN = 1,
0138 RXE_PORT_PHYS_STATE = IB_PORT_PHYS_STATE_POLLING,
0139 RXE_PORT_SUBNET_PREFIX = 0xfe80000000000000ULL,
0140 };
0141
0142
0143 enum rxe_port_info_param {
0144 RXE_PORT_INFO_VL_CAP = 4,
0145 RXE_PORT_INFO_MTU_CAP = 5,
0146 RXE_PORT_INFO_OPER_VL = 1,
0147 };
0148
0149 #endif