mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-20 12:54:36 +08:00
RDMA/cma: Remove unused SDP related code
The SDP protocol was never merged upstream. Remove unused SDP related code from the RDMA CM. Signed-off-by: Sean Hefty <sean.hefty@intel.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
This commit is contained in:
parent
496ce3ce17
commit
01602f113f
@ -80,7 +80,6 @@ static LIST_HEAD(dev_list);
|
|||||||
static LIST_HEAD(listen_any_list);
|
static LIST_HEAD(listen_any_list);
|
||||||
static DEFINE_MUTEX(lock);
|
static DEFINE_MUTEX(lock);
|
||||||
static struct workqueue_struct *cma_wq;
|
static struct workqueue_struct *cma_wq;
|
||||||
static DEFINE_IDR(sdp_ps);
|
|
||||||
static DEFINE_IDR(tcp_ps);
|
static DEFINE_IDR(tcp_ps);
|
||||||
static DEFINE_IDR(udp_ps);
|
static DEFINE_IDR(udp_ps);
|
||||||
static DEFINE_IDR(ipoib_ps);
|
static DEFINE_IDR(ipoib_ps);
|
||||||
@ -196,24 +195,7 @@ struct cma_hdr {
|
|||||||
union cma_ip_addr dst_addr;
|
union cma_ip_addr dst_addr;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct sdp_hh {
|
|
||||||
u8 bsdh[16];
|
|
||||||
u8 sdp_version; /* Major version: 7:4 */
|
|
||||||
u8 ip_version; /* IP version: 7:4 */
|
|
||||||
u8 sdp_specific1[10];
|
|
||||||
__be16 port;
|
|
||||||
__be16 sdp_specific2;
|
|
||||||
union cma_ip_addr src_addr;
|
|
||||||
union cma_ip_addr dst_addr;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct sdp_hah {
|
|
||||||
u8 bsdh[16];
|
|
||||||
u8 sdp_version;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define CMA_VERSION 0x00
|
#define CMA_VERSION 0x00
|
||||||
#define SDP_MAJ_VERSION 0x2
|
|
||||||
|
|
||||||
static int cma_comp(struct rdma_id_private *id_priv, enum rdma_cm_state comp)
|
static int cma_comp(struct rdma_id_private *id_priv, enum rdma_cm_state comp)
|
||||||
{
|
{
|
||||||
@ -262,21 +244,6 @@ static inline void cma_set_ip_ver(struct cma_hdr *hdr, u8 ip_ver)
|
|||||||
hdr->ip_version = (ip_ver << 4) | (hdr->ip_version & 0xF);
|
hdr->ip_version = (ip_ver << 4) | (hdr->ip_version & 0xF);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u8 sdp_get_majv(u8 sdp_version)
|
|
||||||
{
|
|
||||||
return sdp_version >> 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline u8 sdp_get_ip_ver(struct sdp_hh *hh)
|
|
||||||
{
|
|
||||||
return hh->ip_version >> 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void sdp_set_ip_ver(struct sdp_hh *hh, u8 ip_ver)
|
|
||||||
{
|
|
||||||
hh->ip_version = (ip_ver << 4) | (hh->ip_version & 0xF);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void cma_attach_to_dev(struct rdma_id_private *id_priv,
|
static void cma_attach_to_dev(struct rdma_id_private *id_priv,
|
||||||
struct cma_device *cma_dev)
|
struct cma_device *cma_dev)
|
||||||
{
|
{
|
||||||
@ -847,27 +814,13 @@ static int cma_get_net_info(void *hdr, enum rdma_port_space ps,
|
|||||||
u8 *ip_ver, __be16 *port,
|
u8 *ip_ver, __be16 *port,
|
||||||
union cma_ip_addr **src, union cma_ip_addr **dst)
|
union cma_ip_addr **src, union cma_ip_addr **dst)
|
||||||
{
|
{
|
||||||
switch (ps) {
|
if (((struct cma_hdr *) hdr)->cma_version != CMA_VERSION)
|
||||||
case RDMA_PS_SDP:
|
return -EINVAL;
|
||||||
if (sdp_get_majv(((struct sdp_hh *) hdr)->sdp_version) !=
|
|
||||||
SDP_MAJ_VERSION)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
*ip_ver = sdp_get_ip_ver(hdr);
|
*ip_ver = cma_get_ip_ver(hdr);
|
||||||
*port = ((struct sdp_hh *) hdr)->port;
|
*port = ((struct cma_hdr *) hdr)->port;
|
||||||
*src = &((struct sdp_hh *) hdr)->src_addr;
|
*src = &((struct cma_hdr *) hdr)->src_addr;
|
||||||
*dst = &((struct sdp_hh *) hdr)->dst_addr;
|
*dst = &((struct cma_hdr *) hdr)->dst_addr;
|
||||||
break;
|
|
||||||
default:
|
|
||||||
if (((struct cma_hdr *) hdr)->cma_version != CMA_VERSION)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
*ip_ver = cma_get_ip_ver(hdr);
|
|
||||||
*port = ((struct cma_hdr *) hdr)->port;
|
|
||||||
*src = &((struct cma_hdr *) hdr)->src_addr;
|
|
||||||
*dst = &((struct cma_hdr *) hdr)->dst_addr;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (*ip_ver != 4 && *ip_ver != 6)
|
if (*ip_ver != 4 && *ip_ver != 6)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@ -914,12 +867,7 @@ static void cma_save_net_info(struct rdma_addr *addr,
|
|||||||
|
|
||||||
static inline int cma_user_data_offset(enum rdma_port_space ps)
|
static inline int cma_user_data_offset(enum rdma_port_space ps)
|
||||||
{
|
{
|
||||||
switch (ps) {
|
return sizeof(struct cma_hdr);
|
||||||
case RDMA_PS_SDP:
|
|
||||||
return 0;
|
|
||||||
default:
|
|
||||||
return sizeof(struct cma_hdr);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cma_cancel_route(struct rdma_id_private *id_priv)
|
static void cma_cancel_route(struct rdma_id_private *id_priv)
|
||||||
@ -1085,16 +1033,6 @@ reject:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cma_verify_rep(struct rdma_id_private *id_priv, void *data)
|
|
||||||
{
|
|
||||||
if (id_priv->id.ps == RDMA_PS_SDP &&
|
|
||||||
sdp_get_majv(((struct sdp_hah *) data)->sdp_version) !=
|
|
||||||
SDP_MAJ_VERSION)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void cma_set_rep_event_data(struct rdma_cm_event *event,
|
static void cma_set_rep_event_data(struct rdma_cm_event *event,
|
||||||
struct ib_cm_rep_event_param *rep_data,
|
struct ib_cm_rep_event_param *rep_data,
|
||||||
void *private_data)
|
void *private_data)
|
||||||
@ -1129,15 +1067,13 @@ static int cma_ib_handler(struct ib_cm_id *cm_id, struct ib_cm_event *ib_event)
|
|||||||
event.status = -ETIMEDOUT;
|
event.status = -ETIMEDOUT;
|
||||||
break;
|
break;
|
||||||
case IB_CM_REP_RECEIVED:
|
case IB_CM_REP_RECEIVED:
|
||||||
event.status = cma_verify_rep(id_priv, ib_event->private_data);
|
if (id_priv->id.qp) {
|
||||||
if (event.status)
|
|
||||||
event.event = RDMA_CM_EVENT_CONNECT_ERROR;
|
|
||||||
else if (id_priv->id.qp && id_priv->id.ps != RDMA_PS_SDP) {
|
|
||||||
event.status = cma_rep_recv(id_priv);
|
event.status = cma_rep_recv(id_priv);
|
||||||
event.event = event.status ? RDMA_CM_EVENT_CONNECT_ERROR :
|
event.event = event.status ? RDMA_CM_EVENT_CONNECT_ERROR :
|
||||||
RDMA_CM_EVENT_ESTABLISHED;
|
RDMA_CM_EVENT_ESTABLISHED;
|
||||||
} else
|
} else {
|
||||||
event.event = RDMA_CM_EVENT_CONNECT_RESPONSE;
|
event.event = RDMA_CM_EVENT_CONNECT_RESPONSE;
|
||||||
|
}
|
||||||
cma_set_rep_event_data(&event, &ib_event->param.rep_rcvd,
|
cma_set_rep_event_data(&event, &ib_event->param.rep_rcvd,
|
||||||
ib_event->private_data);
|
ib_event->private_data);
|
||||||
break;
|
break;
|
||||||
@ -1389,49 +1325,31 @@ static void cma_set_compare_data(enum rdma_port_space ps, struct sockaddr *addr,
|
|||||||
struct ib_cm_compare_data *compare)
|
struct ib_cm_compare_data *compare)
|
||||||
{
|
{
|
||||||
struct cma_hdr *cma_data, *cma_mask;
|
struct cma_hdr *cma_data, *cma_mask;
|
||||||
struct sdp_hh *sdp_data, *sdp_mask;
|
|
||||||
__be32 ip4_addr;
|
__be32 ip4_addr;
|
||||||
struct in6_addr ip6_addr;
|
struct in6_addr ip6_addr;
|
||||||
|
|
||||||
memset(compare, 0, sizeof *compare);
|
memset(compare, 0, sizeof *compare);
|
||||||
cma_data = (void *) compare->data;
|
cma_data = (void *) compare->data;
|
||||||
cma_mask = (void *) compare->mask;
|
cma_mask = (void *) compare->mask;
|
||||||
sdp_data = (void *) compare->data;
|
|
||||||
sdp_mask = (void *) compare->mask;
|
|
||||||
|
|
||||||
switch (addr->sa_family) {
|
switch (addr->sa_family) {
|
||||||
case AF_INET:
|
case AF_INET:
|
||||||
ip4_addr = ((struct sockaddr_in *) addr)->sin_addr.s_addr;
|
ip4_addr = ((struct sockaddr_in *) addr)->sin_addr.s_addr;
|
||||||
if (ps == RDMA_PS_SDP) {
|
cma_set_ip_ver(cma_data, 4);
|
||||||
sdp_set_ip_ver(sdp_data, 4);
|
cma_set_ip_ver(cma_mask, 0xF);
|
||||||
sdp_set_ip_ver(sdp_mask, 0xF);
|
if (!cma_any_addr(addr)) {
|
||||||
sdp_data->dst_addr.ip4.addr = ip4_addr;
|
cma_data->dst_addr.ip4.addr = ip4_addr;
|
||||||
sdp_mask->dst_addr.ip4.addr = htonl(~0);
|
cma_mask->dst_addr.ip4.addr = htonl(~0);
|
||||||
} else {
|
|
||||||
cma_set_ip_ver(cma_data, 4);
|
|
||||||
cma_set_ip_ver(cma_mask, 0xF);
|
|
||||||
if (!cma_any_addr(addr)) {
|
|
||||||
cma_data->dst_addr.ip4.addr = ip4_addr;
|
|
||||||
cma_mask->dst_addr.ip4.addr = htonl(~0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case AF_INET6:
|
case AF_INET6:
|
||||||
ip6_addr = ((struct sockaddr_in6 *) addr)->sin6_addr;
|
ip6_addr = ((struct sockaddr_in6 *) addr)->sin6_addr;
|
||||||
if (ps == RDMA_PS_SDP) {
|
cma_set_ip_ver(cma_data, 6);
|
||||||
sdp_set_ip_ver(sdp_data, 6);
|
cma_set_ip_ver(cma_mask, 0xF);
|
||||||
sdp_set_ip_ver(sdp_mask, 0xF);
|
if (!cma_any_addr(addr)) {
|
||||||
sdp_data->dst_addr.ip6 = ip6_addr;
|
cma_data->dst_addr.ip6 = ip6_addr;
|
||||||
memset(&sdp_mask->dst_addr.ip6, 0xFF,
|
memset(&cma_mask->dst_addr.ip6, 0xFF,
|
||||||
sizeof sdp_mask->dst_addr.ip6);
|
sizeof cma_mask->dst_addr.ip6);
|
||||||
} else {
|
|
||||||
cma_set_ip_ver(cma_data, 6);
|
|
||||||
cma_set_ip_ver(cma_mask, 0xF);
|
|
||||||
if (!cma_any_addr(addr)) {
|
|
||||||
cma_data->dst_addr.ip6 = ip6_addr;
|
|
||||||
memset(&cma_mask->dst_addr.ip6, 0xFF,
|
|
||||||
sizeof cma_mask->dst_addr.ip6);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -2452,8 +2370,6 @@ static int cma_bind_listen(struct rdma_id_private *id_priv)
|
|||||||
static struct idr *cma_select_inet_ps(struct rdma_id_private *id_priv)
|
static struct idr *cma_select_inet_ps(struct rdma_id_private *id_priv)
|
||||||
{
|
{
|
||||||
switch (id_priv->id.ps) {
|
switch (id_priv->id.ps) {
|
||||||
case RDMA_PS_SDP:
|
|
||||||
return &sdp_ps;
|
|
||||||
case RDMA_PS_TCP:
|
case RDMA_PS_TCP:
|
||||||
return &tcp_ps;
|
return &tcp_ps;
|
||||||
case RDMA_PS_UDP:
|
case RDMA_PS_UDP:
|
||||||
@ -2642,58 +2558,29 @@ EXPORT_SYMBOL(rdma_bind_addr);
|
|||||||
static int cma_format_hdr(void *hdr, struct rdma_id_private *id_priv)
|
static int cma_format_hdr(void *hdr, struct rdma_id_private *id_priv)
|
||||||
{
|
{
|
||||||
struct cma_hdr *cma_hdr;
|
struct cma_hdr *cma_hdr;
|
||||||
struct sdp_hh *sdp_hdr;
|
|
||||||
|
|
||||||
|
cma_hdr = hdr;
|
||||||
|
cma_hdr->cma_version = CMA_VERSION;
|
||||||
if (cma_family(id_priv) == AF_INET) {
|
if (cma_family(id_priv) == AF_INET) {
|
||||||
struct sockaddr_in *src4, *dst4;
|
struct sockaddr_in *src4, *dst4;
|
||||||
|
|
||||||
src4 = (struct sockaddr_in *) cma_src_addr(id_priv);
|
src4 = (struct sockaddr_in *) cma_src_addr(id_priv);
|
||||||
dst4 = (struct sockaddr_in *) cma_dst_addr(id_priv);
|
dst4 = (struct sockaddr_in *) cma_dst_addr(id_priv);
|
||||||
|
|
||||||
switch (id_priv->id.ps) {
|
cma_set_ip_ver(cma_hdr, 4);
|
||||||
case RDMA_PS_SDP:
|
cma_hdr->src_addr.ip4.addr = src4->sin_addr.s_addr;
|
||||||
sdp_hdr = hdr;
|
cma_hdr->dst_addr.ip4.addr = dst4->sin_addr.s_addr;
|
||||||
if (sdp_get_majv(sdp_hdr->sdp_version) != SDP_MAJ_VERSION)
|
cma_hdr->port = src4->sin_port;
|
||||||
return -EINVAL;
|
|
||||||
sdp_set_ip_ver(sdp_hdr, 4);
|
|
||||||
sdp_hdr->src_addr.ip4.addr = src4->sin_addr.s_addr;
|
|
||||||
sdp_hdr->dst_addr.ip4.addr = dst4->sin_addr.s_addr;
|
|
||||||
sdp_hdr->port = src4->sin_port;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
cma_hdr = hdr;
|
|
||||||
cma_hdr->cma_version = CMA_VERSION;
|
|
||||||
cma_set_ip_ver(cma_hdr, 4);
|
|
||||||
cma_hdr->src_addr.ip4.addr = src4->sin_addr.s_addr;
|
|
||||||
cma_hdr->dst_addr.ip4.addr = dst4->sin_addr.s_addr;
|
|
||||||
cma_hdr->port = src4->sin_port;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
struct sockaddr_in6 *src6, *dst6;
|
struct sockaddr_in6 *src6, *dst6;
|
||||||
|
|
||||||
src6 = (struct sockaddr_in6 *) cma_src_addr(id_priv);
|
src6 = (struct sockaddr_in6 *) cma_src_addr(id_priv);
|
||||||
dst6 = (struct sockaddr_in6 *) cma_dst_addr(id_priv);
|
dst6 = (struct sockaddr_in6 *) cma_dst_addr(id_priv);
|
||||||
|
|
||||||
switch (id_priv->id.ps) {
|
cma_set_ip_ver(cma_hdr, 6);
|
||||||
case RDMA_PS_SDP:
|
cma_hdr->src_addr.ip6 = src6->sin6_addr;
|
||||||
sdp_hdr = hdr;
|
cma_hdr->dst_addr.ip6 = dst6->sin6_addr;
|
||||||
if (sdp_get_majv(sdp_hdr->sdp_version) != SDP_MAJ_VERSION)
|
cma_hdr->port = src6->sin6_port;
|
||||||
return -EINVAL;
|
|
||||||
sdp_set_ip_ver(sdp_hdr, 6);
|
|
||||||
sdp_hdr->src_addr.ip6 = src6->sin6_addr;
|
|
||||||
sdp_hdr->dst_addr.ip6 = dst6->sin6_addr;
|
|
||||||
sdp_hdr->port = src6->sin6_port;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
cma_hdr = hdr;
|
|
||||||
cma_hdr->cma_version = CMA_VERSION;
|
|
||||||
cma_set_ip_ver(cma_hdr, 6);
|
|
||||||
cma_hdr->src_addr.ip6 = src6->sin6_addr;
|
|
||||||
cma_hdr->dst_addr.ip6 = dst6->sin6_addr;
|
|
||||||
cma_hdr->port = src6->sin6_port;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -3747,7 +3634,6 @@ static void __exit cma_cleanup(void)
|
|||||||
rdma_addr_unregister_client(&addr_client);
|
rdma_addr_unregister_client(&addr_client);
|
||||||
ib_sa_unregister_client(&sa_client);
|
ib_sa_unregister_client(&sa_client);
|
||||||
destroy_workqueue(cma_wq);
|
destroy_workqueue(cma_wq);
|
||||||
idr_destroy(&sdp_ps);
|
|
||||||
idr_destroy(&tcp_ps);
|
idr_destroy(&tcp_ps);
|
||||||
idr_destroy(&udp_ps);
|
idr_destroy(&udp_ps);
|
||||||
idr_destroy(&ipoib_ps);
|
idr_destroy(&ipoib_ps);
|
||||||
|
Loading…
Reference in New Issue
Block a user