1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef _RDMA_TRANSPORT_H 3*4882a593Smuzhiyun #define _RDMA_TRANSPORT_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <rdma/ib_verbs.h> 6*4882a593Smuzhiyun #include <rdma/rdma_cm.h> 7*4882a593Smuzhiyun #include "rds.h" 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun /* RDMA_CM also uses 16385 as the listener port. */ 10*4882a593Smuzhiyun #define RDS_CM_PORT 16385 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun #define RDS_RDMA_RESOLVE_TIMEOUT_MS 5000 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun /* Below reject reason is for legacy interoperability issue with non-linux 15*4882a593Smuzhiyun * RDS endpoints where older version incompatibility is conveyed via value 1. 16*4882a593Smuzhiyun * For future version(s), proper encoded reject reason should be used. 17*4882a593Smuzhiyun */ 18*4882a593Smuzhiyun #define RDS_RDMA_REJ_INCOMPAT 1 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun int rds_rdma_conn_connect(struct rds_connection *conn); 21*4882a593Smuzhiyun int rds_rdma_cm_event_handler(struct rdma_cm_id *cm_id, 22*4882a593Smuzhiyun struct rdma_cm_event *event); 23*4882a593Smuzhiyun int rds6_rdma_cm_event_handler(struct rdma_cm_id *cm_id, 24*4882a593Smuzhiyun struct rdma_cm_event *event); 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun /* from ib.c */ 27*4882a593Smuzhiyun extern struct rds_transport rds_ib_transport; 28*4882a593Smuzhiyun int rds_ib_init(void); 29*4882a593Smuzhiyun void rds_ib_exit(void); 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun #endif 32