- printf (LPX64"@%s:%d:%s\n",
- pcfg.pcfg_nid,
- ptl_ipaddr_2_str (pcfg.pcfg_id, buffer),
- pcfg.pcfg_misc,
- (pcfg.pcfg_flags == SOCKNAL_CONN_ANY) ? "A" :
- (pcfg.pcfg_flags == SOCKNAL_CONN_CONTROL) ? "C" :
- (pcfg.pcfg_flags == SOCKNAL_CONN_BULK_IN) ? "I" :
- (pcfg.pcfg_flags == SOCKNAL_CONN_BULK_OUT) ? "O" : "?");
- }
-
- if (index == 0)
- printf ("<no connections>\n");
- return 0;
-}
-
-int jt_ptl_connect(int argc, char **argv)
-{
- struct portals_cfg pcfg;
- struct sockaddr_in srvaddr;
- __u32 ipaddr;
- char *flag;
- int fd, rc;
- int nonagle = 0;
- int rxmem = 0;
- int txmem = 0;
- int bind_irq = 0;
- int type = SOCKNAL_CONN_ANY;
- int port;
- int o;
- int olen;
-
- if (argc < 3) {
- fprintf(stderr, "usage: %s ip port [xibctr]\n", argv[0]);
- return 0;
- }
-
- if (!g_nal_is_compatible (argv[0], SOCKNAL, 0))
- return -1;
-
- rc = ptl_parse_ipaddr (&ipaddr, argv[1]);
- if (rc != 0) {
- fprintf(stderr, "Can't parse hostname: %s\n", argv[1]);
- return -1;
- }
-
- if (ptl_parse_port (&port, argv[2]) != 0) {
- fprintf (stderr, "Can't parse port: %s\n", argv[2]);
- return -1;
- }
-
- if (argc > 3)
- for (flag = argv[3]; *flag != 0; flag++)
- switch (*flag)
- {
- case 'i':
- bind_irq = 1;
- break;
-
- case 'I':
- if (type != SOCKNAL_CONN_ANY) {
- fprintf(stderr, "Can't flag type twice\n");
- return -1;
- }
- type = SOCKNAL_CONN_BULK_IN;
- break;
-
- case 'O':
- if (type != SOCKNAL_CONN_ANY) {
- fprintf(stderr, "Can't flag type twice\n");
- return -1;
- }
- type = SOCKNAL_CONN_BULK_OUT;
- break;
-
- case 'C':
- if (type != SOCKNAL_CONN_ANY) {
- fprintf(stderr, "Can't flag type twice\n");
- return -1;
- }
- type = SOCKNAL_CONN_CONTROL;
- break;
-
- default:
- fprintf (stderr, "unrecognised flag '%c'\n",
- *flag);
- return (-1);
- }
-
- memset(&srvaddr, 0, sizeof(srvaddr));
- srvaddr.sin_family = AF_INET;
- srvaddr.sin_port = htons(port);
- srvaddr.sin_addr.s_addr = htonl(ipaddr);
-
- fd = socket(PF_INET, SOCK_STREAM, 0);
- if ( fd < 0 ) {
- fprintf(stderr, "socket() failed: %s\n", strerror(errno));
- return -1;
- }
-
- if (g_socket_nonagle)
- {
- o = 1;
- if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &o, sizeof (o)) != 0) {
- fprintf(stderr, "cannot disable nagle: %s\n", strerror(errno));
- return (-1);
- }
- }
-
- if (g_socket_rxmem != 0) {
- o = g_socket_rxmem;
- if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &o, sizeof (o)) != 0) {
- fprintf(stderr, "cannot set receive buffer size: %s\n", strerror(errno));
- return (-1);
+ if (g_net_is_compatible (NULL, SOCKLND, 0)) {
+ id.nid = data.ioc_nid;
+ id.pid = data.ioc_u32[6];
+ printf ("%-20s %s[%d]%s->%s:%d %d/%d %s\n",
+ libcfs_id2str(id),
+ (data.ioc_u32[3] == SOCKLND_CONN_ANY) ? "A" :
+ (data.ioc_u32[3] == SOCKLND_CONN_CONTROL) ? "C" :
+ (data.ioc_u32[3] == SOCKLND_CONN_BULK_IN) ? "I" :
+ (data.ioc_u32[3] == SOCKLND_CONN_BULK_OUT) ? "O" : "?",
+ data.ioc_u32[4], /* scheduler */
+ ptl_ipaddr_2_str (data.ioc_u32[2], buffer[0], 1), /* local IP addr */
+ ptl_ipaddr_2_str (data.ioc_u32[0], buffer[1], 1), /* remote IP addr */
+ data.ioc_u32[1], /* remote port */
+ data.ioc_count, /* tx buffer size */
+ data.ioc_u32[5], /* rx buffer size */
+ data.ioc_flags ? "nagle" : "nonagle");
+ } else if (g_net_is_compatible (NULL, RALND, 0)) {
+ printf ("%-20s [%d]\n",
+ libcfs_nid2str(data.ioc_nid),
+ data.ioc_u32[0] /* device id */);
+ } else {
+ printf ("%s\n", libcfs_nid2str(data.ioc_nid));