PTL_UNLOCK(flags);
}
+static inline lnet_nid_t
+lnet_ptlcompat_srcnid(lnet_nid_t src, lnet_nid_t dst)
+{
+ /* Give myself a portals srcnid if I'm sending to portals */
+ if (lnet_apini.apini_ptlcompat > 0 &&
+ PTL_NIDNET(dst) == 0)
+ return PTL_MKNID(0, PTL_NIDADDR(src));
+
+ return src;
+}
+
+static inline int
+lnet_ptlcompat_matchnid(lnet_nid_t lnet_nid, lnet_nid_t ptl_nid)
+{
+ return ((ptl_nid == lnet_nid) ||
+ (lnet_apini.apini_ptlcompat > 0 &&
+ PTL_NIDNET(ptl_nid) == 0 &&
+ PTL_NIDADDR(ptl_nid) == PTL_NIDADDR(lnet_nid)));
+}
+
extern ptl_nal_t ptl_lonal;
extern ptl_ni_t *ptl_loni;
msg->gmm_magic = GMNAL_MSG_MAGIC;
msg->gmm_version = GMNAL_MSG_VERSION;
msg->gmm_type = type;
- msg->gmm_srcnid = gmni->gmni_ni->ni_nid;
+ msg->gmm_srcnid = lnet_ptlcompat_srcnid(gmni->gmni_ni->ni_nid,
+ dstnid);
msg->gmm_dstnid = dstnid;
}
return -EPROTO;
}
- if (msg->gmm_dstnid != gmni->gmni_ni->ni_nid) {
+ if (!lnet_ptlcompat_matchnid(gmni->gmni_ni->ni_nid,
+ msg->gmm_dstnid)) {
CERROR("Bad dst nid from %u: %s\n",
rx->rx_recv_gmid, libcfs_nid2str(msg->gmm_dstnid));
return -EPROTO;
int status;
CDEBUG(D_TRACE, "This is the gmnal module initialisation routine\n");
- if (lnet_apini.apini_ptlcompat != 0) {
- LCONSOLE_ERROR("GM does not support portals compatibility mode\n");
- return -ENODEV;
- }
-
#if CONFIG_SYSCTL && !CFS_SYSFS_MODULE_PARM
gmnal_tunables.gm_sysctl =
register_sysctl_table(gmnal_top_ctl_table, 0);
msg->ibm_credits = credits;
/* ibm_nob */
msg->ibm_cksum = 0;
- msg->ibm_srcnid = kibnal_data.kib_ni->ni_nid;
+ msg->ibm_srcnid = lnet_ptlcompat_srcnid(kibnal_data.kib_ni->ni_nid,
+ dstnid);
msg->ibm_srcstamp = kibnal_data.kib_incarnation;
msg->ibm_dstnid = dstnid;
msg->ibm_dststamp = dststamp;
}
if (msg->ibm_srcnid == LNET_NID_ANY) {
- CERROR("Bad src nid: "LPX64"\n", msg->ibm_srcnid);
+ CERROR("Bad src nid: %s\n", libcfs_nid2str(msg->ibm_srcnid));
return -EPROTO;
}
rc = libcfs_sock_write(sock, msg, msg->ibm_nob, 0);
if (rc != 0) {
- CERROR("Error %d sending svcqry to "
- LPX64"@%u.%u.%u.%u/%d\n", rc,
- peer->ibp_nid, HIPQUAD(peer->ibp_ip), peer->ibp_port);
+ CERROR("Error %d sending svcqry to %s at %u.%u.%u.%u/%d\n",
+ rc, libcfs_nid2str(peer->ibp_nid),
+ HIPQUAD(peer->ibp_ip), peer->ibp_port);
goto out;
}
nob = offsetof(kib_msg_t, ibm_u) + sizeof(msg->ibm_u.svcrsp);
rc = libcfs_sock_read(sock, msg, nob, *kibnal_tunables.kib_timeout);
if (rc != 0) {
- CERROR("Error %d receiving svcrsp from "
- LPX64"@%u.%u.%u.%u/%d\n", rc,
- peer->ibp_nid, HIPQUAD(peer->ibp_ip), peer->ibp_port);
+ CERROR("Error %d receiving svcrsp from %s at %u.%u.%u.%u/%d\n",
+ rc, libcfs_nid2str(peer->ibp_nid),
+ HIPQUAD(peer->ibp_ip), peer->ibp_port);
goto out;
}
rc = kibnal_unpack_msg(msg, nob);
if (rc != 0) {
- CERROR("Error %d unpacking svcrsp from "
- LPX64"@%u.%u.%u.%u/%d\n", rc,
- peer->ibp_nid, HIPQUAD(peer->ibp_ip), peer->ibp_port);
+ CERROR("Error %d unpacking svcrsp from %s at %u.%u.%u.%u/%d\n",
+ rc, libcfs_nid2str(peer->ibp_nid),
+ HIPQUAD(peer->ibp_ip), peer->ibp_port);
goto out;
}
if (msg->ibm_type != IBNAL_MSG_SVCRSP) {
- CERROR("Unexpected response type %d from "
- LPX64"@%u.%u.%u.%u/%d\n", msg->ibm_type,
- peer->ibp_nid, HIPQUAD(peer->ibp_ip), peer->ibp_port);
+ CERROR("Unexpected response type %d from %s at %u.%u.%u.%u/%d\n",
+ msg->ibm_type, libcfs_nid2str(peer->ibp_nid),
+ HIPQUAD(peer->ibp_ip), peer->ibp_port);
rc = -EPROTO;
goto out;
}
- if (msg->ibm_dstnid != kibnal_data.kib_ni->ni_nid ||
+ if (!lnet_ptlcompat_matchnid(kibnal_data.kib_ni->ni_nid,
+ msg->ibm_dstnid) ||
msg->ibm_dststamp != kibnal_data.kib_incarnation) {
- CERROR("Unexpected dst NID/stamp "LPX64"/"LPX64" from "
- LPX64"@%u.%u.%u.%u/%d\n",
- msg->ibm_dstnid, msg->ibm_dststamp,
- peer->ibp_nid, HIPQUAD(peer->ibp_ip), peer->ibp_port);
+ CERROR("Unexpected dst NID/stamp %s/"LPX64" from "
+ "%s at %u.%u.%u.%u/%d\n",
+ libcfs_nid2str(msg->ibm_dstnid), msg->ibm_dststamp,
+ libcfs_nid2str(peer->ibp_nid), HIPQUAD(peer->ibp_ip),
+ peer->ibp_port);
rc = -EPROTO;
goto out;
}
if (msg->ibm_srcnid != peer->ibp_nid) {
- CERROR("Unexpected src NID "LPX64" from "
- LPX64"@%u.%u.%u.%u/%d\n", msg->ibm_srcnid,
- peer->ibp_nid, HIPQUAD(peer->ibp_ip), peer->ibp_port);
+ CERROR("Unexpected src NID %s from %s at %u.%u.%u.%u/%d\n",
+ libcfs_nid2str(msg->ibm_srcnid),
+ libcfs_nid2str(peer->ibp_nid),
+ HIPQUAD(peer->ibp_ip), peer->ibp_port);
rc = -EPROTO;
goto out;
}
goto out;
}
- if (msg->ibm_dstnid != kibnal_data.kib_ni->ni_nid) {
- CERROR("Unexpected dstnid "LPX64"(expected "LPX64" "
- "from %u.%u.%u.%u/%d\n", msg->ibm_dstnid,
- kibnal_data.kib_ni->ni_nid,
+ if (!lnet_ptlcompat_matchnid(kibnal_data.kib_ni->ni_nid,
+ msg->ibm_dstnid)) {
+ CERROR("Unexpected dstnid %s: expected %s from %u.%u.%u.%u/%d\n",
+ libcfs_nid2str(msg->ibm_dstnid),
+ libcfs_nid2str(kibnal_data.kib_ni->ni_nid),
HIPQUAD(peer_ip), peer_port);
goto out;
}
{
unsigned long flags;
- CDEBUG (D_NET, "peer "LPX64" %p deleted\n", peer->ibp_nid, peer);
+ CDEBUG (D_NET, "peer %s %p deleted\n",
+ libcfs_nid2str(peer->ibp_nid), peer);
LASSERT (atomic_read (&peer->ibp_refcount) == 0);
LASSERT (peer->ibp_persistence == 0);
void
kibnal_put_peer (kib_peer_t *peer)
{
- CDEBUG (D_OTHER, "putting peer[%p] -> "LPX64" (%d)\n",
- peer, peer->ibp_nid,
+ CDEBUG (D_OTHER, "putting peer[%p] -> %s (%d)\n",
+ peer, libcfs_nid2str(peer->ibp_nid),
atomic_read (&peer->ibp_refcount));
LASSERT (atomic_read (&peer->ibp_refcount) > 0);
if (peer->ibp_nid != nid)
continue;
- CDEBUG(D_NET, "got peer [%p] -> "LPX64" (%d)\n",
- peer, nid, atomic_read (&peer->ibp_refcount));
+ CDEBUG(D_NET, "got peer [%p] -> %s (%d)\n",
+ peer, libcfs_nid2str(nid),
+ atomic_read (&peer->ibp_refcount));
return (peer);
}
return (NULL);
continue;
conn = list_entry (ctmp, kib_conn_t, ibc_list);
- CDEBUG(D_NET, "++conn[%p] state %d -> "LPX64" (%d)\n",
- conn, conn->ibc_state, conn->ibc_peer->ibp_nid,
+ CDEBUG(D_NET, "++conn[%p] state %d -> %s (%d)\n",
+ conn, conn->ibc_state,
+ libcfs_nid2str(conn->ibc_peer->ibp_nid),
atomic_read (&conn->ibc_refcount));
atomic_inc (&conn->ibc_refcount);
read_unlock_irqrestore(&kibnal_data.kib_global_lock,
{
unsigned long flags;
- CDEBUG (D_NET, "putting conn[%p] state %d -> "LPX64" (%d)\n",
- conn, conn->ibc_state, conn->ibc_peer->ibp_nid,
+ CDEBUG (D_NET, "putting conn[%p] state %d -> %s (%d)\n",
+ conn, conn->ibc_state,
+ libcfs_nid2str(conn->ibc_peer->ibp_nid),
atomic_read (&conn->ibc_refcount));
LASSERT (atomic_read (&conn->ibc_refcount) > 0);
if (conn->ibc_incarnation == incarnation)
continue;
- CDEBUG(D_NET, "Closing stale conn %p nid:"LPX64
+ CDEBUG(D_NET, "Closing stale conn %p nid: %s"
" incarnation:"LPX64"("LPX64")\n", conn,
- peer->ibp_nid, conn->ibc_incarnation, incarnation);
+ libcfs_nid2str(peer->ibp_nid),
+ conn->ibc_incarnation, incarnation);
count++;
kibnal_close_conn_locked (conn, -ESTALE);
{
int rc;
- if (lnet_apini.apini_ptlcompat != 0) {
- LCONSOLE_ERROR("OpenIB does not support portals compatibility mode\n");
- return -ENODEV;
- }
-
rc = kibnal_tunables_init();
if (rc != 0)
return rc;
extern void kibnal_handle_svcqry (struct socket *sock);
extern int kibnal_make_svcqry (kib_conn_t *conn);
extern void kibnal_free_acceptsock (kib_acceptsock_t *as);
-extern int kibnal_listener_procint(ctl_table *table, int write,
- struct file *filp, void *buffer,
- unisgned int *lenp);
extern int kibnal_create_peer (kib_peer_t **peerp, lnet_nid_t nid);
extern void kibnal_put_peer (kib_peer_t *peer);
extern int kibnal_add_persistent_peer(lnet_nid_t nid, __u32 ip, int port);
spin_unlock_irqrestore (&conn->ibc_lock, flags);
- CERROR ("Unmatched (late?) RDMA completion "LPX64" from "LPX64"\n",
- cookie, conn->ibc_peer->ibp_nid);
+ CERROR ("Unmatched (late?) RDMA completion "LPX64" from %s\n",
+ cookie, libcfs_nid2str(conn->ibc_peer->ibp_nid));
}
void
}
if (conn->ibc_state == IBNAL_CONN_ESTABLISHED) {
- CERROR ("Error posting receive -> "LPX64": %d\n",
- conn->ibc_peer->ibp_nid, rc);
+ CERROR ("Error posting receive -> %s: %d\n",
+ libcfs_nid2str(conn->ibc_peer->ibp_nid), rc);
kibnal_close_conn (rx->rx_conn, rc);
} else {
- CDEBUG (D_NET, "Error posting receive -> "LPX64": %d\n",
- conn->ibc_peer->ibp_nid, rc);
+ CDEBUG (D_NET, "Error posting receive -> %s: %d\n",
+ libcfs_nid2str(conn->ibc_peer->ibp_nid), rc);
}
/* Drop rx's ref */
LASSERT (conn->ibc_state == IBNAL_CONN_ESTABLISHED);
if (e->status != IB_COMPLETION_STATUS_SUCCESS) {
- CERROR("Rx from "LPX64" failed: %d\n",
- conn->ibc_peer->ibp_nid, e->status);
+ CERROR("Rx from %s failed: %d\n",
+ libcfs_nid2str(conn->ibc_peer->ibp_nid), e->status);
goto failed;
}
rc = kibnal_unpack_msg(msg, e->bytes_transferred);
if (rc != 0) {
- CERROR ("Error %d unpacking rx from "LPX64"\n",
- rc, conn->ibc_peer->ibp_nid);
+ CERROR ("Error %d unpacking rx from %s\n",
+ rc, libcfs_nid2str(conn->ibc_peer->ibp_nid));
goto failed;
}
if (msg->ibm_srcnid != conn->ibc_peer->ibp_nid ||
+ !lnet_ptlcompat_matchnid(kibnal_data.kib_ni->ni_nid,
+ msg->ibm_dstnid) ||
msg->ibm_srcstamp != conn->ibc_incarnation ||
- msg->ibm_dstnid != kibnal_data.kib_ni->ni_nid ||
msg->ibm_dststamp != kibnal_data.kib_incarnation) {
- CERROR ("Stale rx from "LPX64"\n",
- conn->ibc_peer->ibp_nid);
+ CERROR ("Stale rx from %s\n",
+ libcfs_nid2str(conn->ibc_peer->ibp_nid));
goto failed;
}
return;
default:
- CERROR ("Bad msg type %x from "LPX64"\n",
- msg->ibm_type, conn->ibc_peer->ibp_nid);
+ CERROR ("Bad msg type %x from %s\n",
+ msg->ibm_type, libcfs_nid2str(conn->ibc_peer->ibp_nid));
goto failed;
}
/* Otherwise, I'll send a failed completion now to prevent
* the peer's GET blocking for the full timeout. */
- CERROR ("Completing unmatched RDMA GET from "LPX64"\n",
- rx->rx_conn->ibc_peer->ibp_nid);
+ CERROR ("Completing unmatched RDMA GET from %s\n",
+ libcfs_nid2str(rx->rx_conn->ibc_peer->ibp_nid));
kibnal_start_active_rdma (IBNAL_MSG_GET_DONE, -EIO,
rx, NULL, 0, NULL, NULL, 0, 0);
break;
* inconsistent with this message type, so it's the
* sender's fault for sending garbage and she can time
* herself out... */
- CERROR ("Uncompleted RMDA PUT from "LPX64"\n",
- rx->rx_conn->ibc_peer->ibp_nid);
+ CERROR ("Uncompleted RMDA PUT from %s\n",
+ libcfs_nid2str(rx->rx_conn->ibc_peer->ibp_nid));
break;
case IBNAL_MSG_IMMEDIATE:
spin_unlock_irqrestore (&conn->ibc_lock, flags);
if (conn->ibc_state == IBNAL_CONN_ESTABLISHED)
- CERROR ("Error %d posting transmit to "LPX64"\n",
- rc, conn->ibc_peer->ibp_nid);
+ CERROR ("Error %d posting transmit to %s\n",
+ rc, libcfs_nid2str(conn->ibc_peer->ibp_nid));
else
- CDEBUG (D_NET, "Error %d posting transmit to "
- LPX64"\n", rc, conn->ibc_peer->ibp_nid);
+ CDEBUG (D_NET, "Error %d posting transmit to %s\n",
+ rc, libcfs_nid2str(conn->ibc_peer->ibp_nid));
kibnal_close_conn (conn, rc);
if (idle)
list_del(&tx->tx_list);
- CDEBUG(D_NET, "++conn[%p] state %d -> "LPX64" (%d)\n",
- conn, conn->ibc_state, conn->ibc_peer->ibp_nid,
+ CDEBUG(D_NET, "++conn[%p] state %d -> %s (%d)\n",
+ conn, conn->ibc_state, libcfs_nid2str(conn->ibc_peer->ibp_nid),
atomic_read (&conn->ibc_refcount));
atomic_inc (&conn->ibc_refcount);
* NB If my incarnation changes after this, the peer will get nuked and
* we'll spot that when the connection is finally added into the peer's
* connlist */
- if (msg->ibm_dstnid != kibnal_data.kib_ni->ni_nid ||
+ if (!lnet_ptlcompat_matchnid(kibnal_data.kib_ni->ni_nid,
+ msg->ibm_dstnid) ||
msg->ibm_dststamp != kibnal_data.kib_incarnation) {
write_unlock_irqrestore (&kibnal_data.kib_global_lock, flags);
}
if (msg->ibm_srcnid != conn->ibc_peer->ibp_nid ||
+ !lnet_ptlcompat_matchnid(kibnal_data.kib_ni->ni_nid,
+ msg->ibm_dstnid) ||
msg->ibm_srcstamp != conn->ibc_incarnation ||
- msg->ibm_dstnid != kibnal_data.kib_ni->ni_nid ||
msg->ibm_dststamp != kibnal_data.kib_incarnation) {
CERROR("Stale conn ack from "LPX64"\n",
conn->ibc_peer->ibp_nid);
return (NULL);
}
- if (hdr->src_nid != nid &&
- (lnet_apini.apini_ptlcompat == 0 ||
- PTL_NIDNET(hdr->src_nid) != 0 ||
- PTL_NIDADDR(hdr->src_nid) != PTL_NIDADDR(nid))) {
+ if (!lnet_ptlcompat_matchnid(nid, hdr->src_nid)) {
CERROR ("Unexpected optimized get/put source NID %s from %s\n",
libcfs_nid2str(hdr->src_nid), libcfs_nid2str(nid));
return (NULL);
connreq->racr_magic = RANAL_MSG_MAGIC;
connreq->racr_version = RANAL_MSG_VERSION;
connreq->racr_devid = conn->rac_device->rad_id;
- connreq->racr_srcnid = kranal_data.kra_ni->ni_nid;
+ connreq->racr_srcnid = lnet_ptlcompat_srcnid(kranal_data.kra_ni->ni_nid,
+ dstnid);
connreq->racr_dstnid = dstnid;
connreq->racr_peerstamp = kranal_data.kra_peerstamp;
connreq->racr_connstamp = conn->rac_my_connstamp;
continue;
if (conn->rac_peerstamp != newconn->rac_peerstamp) {
- CDEBUG(D_NET, "Closing stale conn nid:"LPX64
- " peerstamp:"LPX64"("LPX64")\n", peer->rap_nid,
+ CDEBUG(D_NET, "Closing stale conn nid: %s "
+ " peerstamp:"LPX64"("LPX64")\n",
+ libcfs_nid2str(peer->rap_nid),
conn->rac_peerstamp, newconn->rac_peerstamp);
LASSERT (conn->rac_peerstamp < newconn->rac_peerstamp);
count++;
LASSERT (conn->rac_peer_connstamp < newconn->rac_peer_connstamp);
- CDEBUG(D_NET, "Closing stale conn nid:"LPX64
- " connstamp:"LPX64"("LPX64")\n", peer->rap_nid,
+ CDEBUG(D_NET, "Closing stale conn nid: %s"
+ " connstamp:"LPX64"("LPX64")\n",
+ libcfs_nid2str(peer->rap_nid),
conn->rac_peer_connstamp, newconn->rac_peer_connstamp);
count++;
kra_peer_t *peer = conn->rac_peer;
CDEBUG(error == 0 ? D_NET : D_ERROR,
- "closing conn to "LPX64": error %d\n", peer->rap_nid, error);
+ "closing conn to %s: error %d\n",
+ libcfs_nid2str(peer->rap_nid), error);
LASSERT (!in_interrupt());
LASSERT (conn->rac_state == RANAL_CONN_ESTABLISHED);
if (connreq.racr_srcnid != peer->rap_nid) {
CERROR("Unexpected srcnid from %u.%u.%u.%u/%d: "
- "received "LPX64" expected "LPX64"\n",
+ "received %s expected %s\n",
HIPQUAD(peer->rap_ip), peer->rap_port,
- connreq.racr_srcnid, peer->rap_nid);
+ libcfs_nid2str(connreq.racr_srcnid),
+ libcfs_nid2str(peer->rap_nid));
goto failed_1;
}
/* Refuse connection if peer thinks we are a different NID. We check
* this while holding the global lock, to synch with connection
* destruction on NID change. */
- if (dst_nid != kranal_data.kra_ni->ni_nid) {
+ if (!lnet_ptlcompat_matchnid(kranal_data.kra_ni->ni_nid, dst_nid)) {
write_unlock_irqrestore(&kranal_data.kra_global_lock, flags);
- CERROR("Stale/bad connection with "LPX64
- ": dst_nid "LPX64", expected "LPX64"\n",
- peer_nid, dst_nid, kranal_data.kra_ni->ni_nid);
+ CERROR("Stale/bad connection with %s: dst_nid %s, expected %s\n",
+ libcfs_nid2str(peer_nid), libcfs_nid2str(dst_nid),
+ libcfs_nid2str(kranal_data.kra_ni->ni_nid));
rc = -ESTALE;
goto failed;
}
LASSERT (!list_empty(&peer->rap_conns));
LASSERT (list_empty(&peer->rap_tx_queue));
write_unlock_irqrestore(&kranal_data.kra_global_lock, flags);
- CWARN("Not creating duplicate connection to "LPX64": %d\n",
- peer_nid, rc);
+ CWARN("Not creating duplicate connection to %s: %d\n",
+ libcfs_nid2str(peer_nid), rc);
rc = 0;
goto failed;
}
/* CAVEAT EMPTOR: passive peer can disappear NOW */
if (nstale != 0)
- CWARN("Closed %d stale conns to "LPX64"\n", nstale, peer_nid);
+ CWARN("Closed %d stale conns to %s\n", nstale,
+ libcfs_nid2str(peer_nid));
- CDEBUG(D_WARNING, "New connection to "LPX64" on devid[%d] = %d\n",
- peer_nid, conn->rac_device->rad_idx, conn->rac_device->rad_id);
+ CDEBUG(D_WARNING, "New connection to %s on devid[%d] = %d\n",
+ libcfs_nid2str(peer_nid),
+ conn->rac_device->rad_idx, conn->rac_device->rad_id);
/* Ensure conn gets checked. Transmits may have been queued and an
* FMA event may have happened before it got in the cq hash table */
LASSERT (peer->rap_connecting);
- CDEBUG(D_NET, "About to handshake "LPX64"\n", peer->rap_nid);
+ CDEBUG(D_NET, "About to handshake %s\n",
+ libcfs_nid2str(peer->rap_nid));
rc = kranal_conn_handshake(NULL, peer);
- CDEBUG(D_NET, "Done handshake "LPX64":%d \n", peer->rap_nid, rc);
+ CDEBUG(D_NET, "Done handshake %s:%d \n",
+ libcfs_nid2str(peer->rap_nid), rc);
write_lock_irqsave(&kranal_data.kra_global_lock, flags);
if (list_empty(&zombies))
return;
- CWARN("Dropping packets for "LPX64": connection failed\n",
- peer->rap_nid);
+ CWARN("Dropping packets for %s: connection failed\n",
+ libcfs_nid2str(peer->rap_nid));
do {
tx = list_entry(zombies.next, kra_tx_t, tx_list);
{
unsigned long flags;
- CDEBUG(D_NET, "peer "LPX64" %p deleted\n", peer->rap_nid, peer);
+ CDEBUG(D_NET, "peer %s %p deleted\n",
+ libcfs_nid2str(peer->rap_nid), peer);
LASSERT (atomic_read(&peer->rap_refcount) == 0);
LASSERT (peer->rap_persistence == 0);
if (peer->rap_nid != nid)
continue;
- CDEBUG(D_NET, "got peer [%p] -> "LPX64" (%d)\n",
- peer, nid, atomic_read(&peer->rap_refcount));
+ CDEBUG(D_NET, "got peer [%p] -> %s (%d)\n",
+ peer, libcfs_nid2str(nid),
+ atomic_read(&peer->rap_refcount));
return peer;
}
return NULL;
continue;
conn = list_entry(ctmp, kra_conn_t, rac_list);
- CDEBUG(D_NET, "++conn[%p] -> "LPX64" (%d)\n",
- conn, conn->rac_peer->rap_nid,
+ CDEBUG(D_NET, "++conn[%p] -> %s (%d)\n", conn,
+ libcfs_nid2str(conn->rac_peer->rap_nid),
atomic_read(&conn->rac_refcount));
atomic_inc(&conn->rac_refcount);
read_unlock(&kranal_data.kra_global_lock);
{
int rc;
- if (lnet_apini.apini_ptlcompat != 0) {
- LCONSOLE_ERROR("RA does not support portals compatibility mode\n");
- return -ENODEV;
- }
-
rc = kranal_tunables_init();
if (rc != 0)
return rc;
conn->rac_rxmsg = NULL;
if (nob_received < nob) {
- CWARN("Incomplete immediate msg from "LPX64
- ": expected %d, got %d\n",
- conn->rac_peer->rap_nid, nob, nob_received);
+ CWARN("Incomplete immediate msg from %s: expected %d, got %d\n",
+ libcfs_nid2str(conn->rac_peer->rap_nid),
+ nob, nob_received);
return -EPROTO;
}
if (conn->rac_rxmsg->ram_type == RANAL_MSG_IMMEDIATE) {
if (nob > RANAL_FMA_MAX_DATA) {
- CERROR("Can't REPLY IMMEDIATE %d to "LPX64"\n",
- nob, target.nid);
+ CERROR("Can't REPLY IMMEDIATE %d to %s\n",
+ nob, libcfs_nid2str(target.nid));
return -EIO;
}
break; /* RDMA not expected */
/* Incoming message consistent with RDMA? */
if (conn->rac_rxmsg->ram_type != RANAL_MSG_GET_REQ) {
- CERROR("REPLY to "LPX64" bad msg type %x!!!\n",
- target.nid, conn->rac_rxmsg->ram_type);
+ CERROR("REPLY to %s bad msg type %x!!!\n",
+ libcfs_nid2str(target.nid),
+ conn->rac_rxmsg->ram_type);
return -EIO;
}
tx->tx_ptlmsg[1] = lnet_create_reply_msg(ni, target.nid, ptlmsg);
if (tx->tx_ptlmsg[1] == NULL) {
- CERROR("Can't create reply for GET to "LPX64"\n", target.nid);
+ CERROR("Can't create reply for GET to %s\n",
+ libcfs_nid2str(target.nid));
kranal_tx_done(tx, rc);
return -EIO;
}
if (!conn->rac_close_sent &&
time_after_eq(now, conn->rac_last_tx + conn->rac_keepalive * HZ)) {
/* not sent in a while; schedule conn so scheduler sends a keepalive */
- CDEBUG(D_NET, "Scheduling keepalive %p->"LPX64"\n",
- conn, conn->rac_peer->rap_nid);
+ CDEBUG(D_NET, "Scheduling keepalive %p->%s\n",
+ conn, libcfs_nid2str(conn->rac_peer->rap_nid));
kranal_schedule_conn(conn);
}
if (!conn->rac_close_recvd &&
time_after_eq(now, conn->rac_last_rx + timeout)) {
- CERROR("%s received from "LPX64" within %lu seconds\n",
+ CERROR("%s received from %s within %lu seconds\n",
(conn->rac_state == RANAL_CONN_ESTABLISHED) ?
"Nothing" : "CLOSE not",
- conn->rac_peer->rap_nid, (now - conn->rac_last_rx)/HZ);
+ libcfs_nid2str(conn->rac_peer->rap_nid),
+ (now - conn->rac_last_rx)/HZ);
return -ETIMEDOUT;
}
if (time_after_eq(now, tx->tx_qtime + timeout)) {
spin_unlock_irqrestore(&conn->rac_lock, flags);
- CERROR("tx on fmaq for "LPX64" blocked %lu seconds\n",
- conn->rac_peer->rap_nid, (now - tx->tx_qtime)/HZ);
+ CERROR("tx on fmaq for %s blocked %lu seconds\n",
+ libcfs_nid2str(conn->rac_peer->rap_nid),
+ (now - tx->tx_qtime)/HZ);
return -ETIMEDOUT;
}
}
if (time_after_eq(now, tx->tx_qtime + timeout)) {
spin_unlock_irqrestore(&conn->rac_lock, flags);
- CERROR("tx on rdmaq for "LPX64" blocked %lu seconds\n",
- conn->rac_peer->rap_nid, (now - tx->tx_qtime)/HZ);
+ CERROR("tx on rdmaq for %s blocked %lu seconds\n",
+ libcfs_nid2str(conn->rac_peer->rap_nid),
+ (now - tx->tx_qtime)/HZ);
return -ETIMEDOUT;
}
}
if (time_after_eq(now, tx->tx_qtime + timeout)) {
spin_unlock_irqrestore(&conn->rac_lock, flags);
- CERROR("tx on replyq for "LPX64" blocked %lu seconds\n",
- conn->rac_peer->rap_nid, (now - tx->tx_qtime)/HZ);
+ CERROR("tx on replyq for %s blocked %lu seconds\n",
+ libcfs_nid2str(conn->rac_peer->rap_nid),
+ (now - tx->tx_qtime)/HZ);
return -ETIMEDOUT;
}
}
kranal_conn_addref(conn);
read_unlock(&kranal_data.kra_global_lock);
- CERROR("Conn to "LPX64", cqid %d timed out\n",
- conn->rac_peer->rap_nid, conn->rac_cqid);
+ CERROR("Conn to %s, cqid %d timed out\n",
+ libcfs_nid2str(conn->rac_peer->rap_nid),
+ conn->rac_cqid);
write_lock_irqsave(&kranal_data.kra_global_lock, flags);
if (conn->rac_close_sent)
return;
- CWARN("sending CLOSE to "LPX64"\n", conn->rac_peer->rap_nid);
+ CWARN("sending CLOSE to %s\n",
+ libcfs_nid2str(conn->rac_peer->rap_nid));
kranal_init_msg(&conn->rac_msg, RANAL_MSG_CLOSE);
rc = kranal_sendmsg(conn, &conn->rac_msg, NULL, 0);
if (rc != 0)
if (time_after_eq(jiffies,
conn->rac_last_tx + conn->rac_keepalive * HZ)) {
- CDEBUG(D_NET, "sending NOOP -> "LPX64" (%p idle %lu(%ld))\n",
- conn->rac_peer->rap_nid, conn,
+ CDEBUG(D_NET, "sending NOOP -> %s (%p idle %lu(%ld))\n",
+ libcfs_nid2str(conn->rac_peer->rap_nid), conn,
(jiffies - conn->rac_last_tx)/HZ, conn->rac_keepalive);
kranal_init_msg(&conn->rac_msg, RANAL_MSG_NOOP);
kranal_sendmsg(conn, &conn->rac_msg, NULL, 0);
if (tx->tx_msg.ram_type != type) {
spin_unlock_irqrestore(&conn->rac_lock, flags);
CWARN("Unexpected type %x (%x expected) "
- "matched reply from "LPX64"\n",
+ "matched reply from %s\n",
tx->tx_msg.ram_type, type,
- conn->rac_peer->rap_nid);
+ libcfs_nid2str(conn->rac_peer->rap_nid));
return NULL;
}
}
spin_unlock_irqrestore(&conn->rac_lock, flags);
- CWARN("Unmatched reply %02x/"LPX64" from "LPX64"\n",
- type, cookie, conn->rac_peer->rap_nid);
+ CWARN("Unmatched reply %02x/"LPX64" from %s\n",
+ type, cookie, libcfs_nid2str(conn->rac_peer->rap_nid));
return NULL;
}
if (msg->ram_magic != RANAL_MSG_MAGIC) {
if (__swab32(msg->ram_magic) != RANAL_MSG_MAGIC) {
- CERROR("Unexpected magic %08x from "LPX64"\n",
- msg->ram_magic, peer->rap_nid);
+ CERROR("Unexpected magic %08x from %s\n",
+ msg->ram_magic, libcfs_nid2str(peer->rap_nid));
goto out;
}
}
if (msg->ram_version != RANAL_MSG_VERSION) {
- CERROR("Unexpected protocol version %d from "LPX64"\n",
- msg->ram_version, peer->rap_nid);
+ CERROR("Unexpected protocol version %d from %s\n",
+ msg->ram_version, libcfs_nid2str(peer->rap_nid));
goto out;
}
if (msg->ram_srcnid != peer->rap_nid) {
- CERROR("Unexpected peer "LPX64" from "LPX64"\n",
- msg->ram_srcnid, peer->rap_nid);
+ CERROR("Unexpected peer %s from %s\n",
+ libcfs_nid2str(msg->ram_srcnid),
+ libcfs_nid2str(peer->rap_nid));
goto out;
}
if (msg->ram_connstamp != conn->rac_peer_connstamp) {
CERROR("Unexpected connstamp "LPX64"("LPX64
- " expected) from "LPX64"\n",
+ " expected) from %s\n",
msg->ram_connstamp, conn->rac_peer_connstamp,
- peer->rap_nid);
+ libcfs_nid2str(peer->rap_nid));
goto out;
}
if (msg->ram_seq != seq) {
- CERROR("Unexpected sequence number %d(%d expected) from "
- LPX64"\n", msg->ram_seq, seq, peer->rap_nid);
+ CERROR("Unexpected sequence number %d(%d expected) from %s\n",
+ msg->ram_seq, seq, libcfs_nid2str(peer->rap_nid));
goto out;
}
}
if (conn->rac_close_recvd) {
- CERROR("Unexpected message %d after CLOSE from "LPX64"\n",
- msg->ram_type, conn->rac_peer->rap_nid);
+ CERROR("Unexpected message %d after CLOSE from %s\n",
+ msg->ram_type, libcfs_nid2str(conn->rac_peer->rap_nid));
goto out;
}
if (msg->ram_type == RANAL_MSG_CLOSE) {
- CWARN("RX CLOSE from "LPX64"\n", conn->rac_peer->rap_nid);
+ CWARN("RX CLOSE from %s\n", libcfs_nid2str(conn->rac_peer->rap_nid));
conn->rac_close_recvd = 1;
write_lock_irqsave(&kranal_data.kra_global_lock, flags);
kranal_tx_done(tx, -ECONNABORTED);
}
- CDEBUG(D_WARNING, "Closed conn %p -> "LPX64": nmsg %d nreplies %d\n",
- conn, conn->rac_peer->rap_nid, nfma, nreplies);
+ CDEBUG(D_WARNING, "Closed conn %p -> %s: nmsg %d nreplies %d\n",
+ conn, libcfs_nid2str(conn->rac_peer->rap_nid), nfma, nreplies);
}
int
hmv->version_major = cpu_to_le16 (PTL_PROTO_TCP_VERSION_MAJOR);
hmv->version_minor = cpu_to_le16 (PTL_PROTO_TCP_VERSION_MINOR);
- srcnid = ni->ni_nid;
- if (lnet_apini.apini_ptlcompat > 1 ||
- (lnet_apini.apini_ptlcompat > 0 &&
- PTL_NIDNET(peer_nid) == 0)) {
- /* Pretend I'm portals if we're in portals compatibility
- * phase1, or I'm talking to an old peer */
- srcnid = PTL_MKNID(0, PTL_NIDADDR(srcnid));
- }
+ srcnid = lnet_ptlcompat_srcnid(ni->ni_nid, peer_nid);
hdr.src_nid = cpu_to_le64 (srcnid);
hdr.src_pid = cpu_to_le64 (lnet_getpid());
if (!active) { /* don't know peer's nid yet */
*peerid = recv_id;
} else if (peerid->pid != recv_id.pid ||
- (peerid->nid != recv_id.nid &&
- (lnet_apini.apini_ptlcompat == 0 ||
- PTL_NIDNET(recv_id.nid) != 0 ||
- PTL_NIDADDR(recv_id.nid) != PTL_NIDADDR(peerid->nid)))) {
+ !lnet_ptlcompat_matchnid(peerid->nid, recv_id.nid)) {
LCONSOLE_ERROR("Connected successfully to %s on host "
"%u.%u.%u.%u, but they claimed they were "
"%s; please check your Lustre "
kibnal_pack_msg(kib_msg_t *msg, int credits, lnet_nid_t dstnid,
__u64 dststamp, __u64 seq)
{
- lnet_nid_t srcnid = kibnal_data.kib_ni->ni_nid;
-
- if (lnet_apini.apini_ptlcompat > 0 && /* pretend I'm portals */
- PTL_NIDNET(dstnid) == 0) /* if I'm sending to portals */
- srcnid = PTL_MKNID(0, PTL_NIDADDR(srcnid));
-
/* CAVEAT EMPTOR! all message fields not set here should have been
* initialised previously. */
msg->ibm_magic = IBNAL_MSG_MAGIC;
msg->ibm_credits = credits;
/* ibm_nob */
msg->ibm_cksum = 0;
- msg->ibm_srcnid = srcnid;
+ msg->ibm_srcnid = lnet_ptlcompat_srcnid(kibnal_data.kib_ni->ni_nid,
+ dstnid);
msg->ibm_srcstamp = kibnal_data.kib_incarnation;
msg->ibm_dstnid = dstnid;
msg->ibm_dststamp = dststamp;
}
if (msg->ibm_srcnid != conn->ibc_peer->ibp_nid ||
- (msg->ibm_dstnid != kibnal_data.kib_ni->ni_nid &&
- (lnet_apini.apini_ptlcompat == 0 ||
- PTL_NIDNET(msg->ibm_dstnid) != 0 ||
- PTL_NIDADDR(msg->ibm_dstnid) !=
- PTL_NIDADDR(kibnal_data.kib_ni->ni_nid))) ||
+ !lnet_ptlcompat_matchnid(kibnal_data.kib_ni->ni_nid,
+ msg->ibm_dstnid) ||
msg->ibm_srcstamp != conn->ibc_incarnation ||
msg->ibm_dststamp != kibnal_data.kib_incarnation) {
CERROR ("Stale rx from %s\n",
kib_tx_t *tx;
unsigned long flags;
- CDEBUG(D_NET,"!!\n");
-
/* Only the connd creates conns => single threaded */
LASSERT (!in_interrupt());
LASSERT (current == kibnal_data.kib_connd);
goto reject;
}
- if (rxmsg.ibm_dstnid != kibnal_data.kib_ni->ni_nid &&
- (lnet_apini.apini_ptlcompat == 0 ||
- PTL_NIDNET(rxmsg.ibm_dstnid) != 0 ||
- PTL_NIDADDR(rxmsg.ibm_dstnid) != PTL_NIDADDR(kibnal_data.kib_ni->ni_nid))) {
+ if (!lnet_ptlcompat_matchnid(kibnal_data.kib_ni->ni_nid,
+ rxmsg.ibm_dstnid)) {
CERROR("Can't accept %s: bad dst nid %s\n",
libcfs_nid2str(rxmsg.ibm_srcnid),
libcfs_nid2str(rxmsg.ibm_dstnid));
kib_peer_t *peer = conn->ibc_peer;
cm_return_t cmrc;
- CDEBUG(D_NET,"!!\n");
-
/* Only called by connd => statics OK */
LASSERT (!in_interrupt());
LASSERT (current == kibnal_data.kib_connd);
unsigned long flags;
int rc;
- CDEBUG(D_NET,"!!\n");
-
/* Only called by connd => statics OK */
LASSERT (!in_interrupt());
LASSERT (current == kibnal_data.kib_connd);
}
read_lock_irqsave(&kibnal_data.kib_global_lock, flags);
- if ((msg.ibm_dstnid == kibnal_data.kib_ni->ni_nid ||
- (lnet_apini.apini_ptlcompat > 0 &&
- PTL_NIDNET(msg.ibm_dstnid) == 0 &&
- PTL_NIDADDR(msg.ibm_dstnid) ==
- PTL_NIDADDR(kibnal_data.kib_ni->ni_nid))) &&
+ if (lnet_ptlcompat_matchnid(kibnal_data.kib_ni->ni_nid,
+ msg.ibm_dstnid) &&
msg.ibm_dststamp == kibnal_data.kib_incarnation)
rc = 0;
else
int rc;
unsigned long flags;
- CDEBUG(D_NET,"!!\n");
-
LASSERT (!in_interrupt());
LASSERT (current == kibnal_data.kib_connd);
LASSERT (conn->ibc_state == IBNAL_CONN_ACTIVE_ARP);
LASSERT (peer->ibp_connecting != 0);
LASSERT (peer->ibp_arp_count > 0);
- CDEBUG(D_NET,"!!\n");
-
cep = cm_create_cep(cm_cep_transp_rc);
if (cep == NULL) {
CERROR ("Can't create cep for conn->%s\n",
{
unsigned long flags;
- CDEBUG(D_NET, "!!\n");
-
spin_lock_irqsave(&kibnal_data.kib_sched_lock, flags);
kibnal_data.kib_ready = 1;
wake_up(&kibnal_data.kib_sched_waitq);
if (type == PTL_MSG_PUT || type == PTL_MSG_GET)
msg->msg_ev.initiator.nid = ni->ni_nid;
- src_nid = ni->ni_nid;
- if (lnet_apini.apini_ptlcompat > 0 && /* pretend I'm portals */
- PTL_NIDNET(target.nid) == 0) /* If I'm sending to portals */
- src_nid = PTL_MKNID(0, PTL_NIDADDR(src_nid));
+ src_nid = lnet_ptlcompat_srcnid(ni->ni_nid, target.nid);
hdr->type = cpu_to_le32(type);
hdr->dest_nid = cpu_to_le64(target.nid);
hdr->payload_length = cpu_to_le32(len);
if (PTL_NETNAL(PTL_NIDNET(ni->ni_nid)) != LONAL) {
- if (gw_nid != ni->ni_nid &&
- (lnet_apini.apini_ptlcompat == 0 ||
- PTL_NIDNET(gw_nid) != 0 ||
- PTL_NIDADDR(gw_nid) != PTL_NIDADDR(ni->ni_nid))) {
+ if (!lnet_ptlcompat_matchnid(ni->ni_nid, gw_nid)) {
/* it's not for me: will the gateway have to forward? */
if (gw_nid != target.nid &&
lnet_apini.apini_ptlcompat == 0) {
dest_nid = le64_to_cpu(hdr->dest_nid);
for_me = (PTL_NETNAL(PTL_NIDNET(ni->ni_nid)) == LONAL ||
- dest_nid == ni->ni_nid ||
- (lnet_apini.apini_ptlcompat > 0 &&
- PTL_NIDNET(dest_nid) == 0 &&
- PTL_NIDADDR(dest_nid) == PTL_NIDADDR(ni->ni_nid)));
+ lnet_ptlcompat_matchnid(ni->ni_nid, dest_nid));
if (!for_me) {
if (lnet_apini.apini_ptlcompat > 0) {