[netperf-talk] question about DLPI transfer performance
Rick Jones
rick.jones2 at hp.com
Thu Aug 3 09:56:32 PDT 2006
> Thanks Rick:
> As you said, I add a option to specify a different file.
> But I got another error:
Does it show that the DLPI stuff doesn't get much exposure?-)
>
> /usr/local/bin # ./netperf -H 11.0.1.105 -t DLCO_STREAM -- -D /dev/xge
> DLPI CO STREAM TEST
> Recv Send Send
> Window Window Message Elapsed
> Size Size Size Time Throughput
> frames frames bytes secs. 10^6bits/sec
>
> put_control: acknowledgement error wanted 6 got 5
> dl_error_primitive: 11
> dl_errno: 4
> dl_unix_errno 22
> netperf: dl_open: could not send control message, errno = 0
> netperf: send_dlpi_co_stream: dlpi stream data descriptor: Error 0
So, falling-back to grepping errno again, we have:
$ grep 22 /usr/include/sys/errno.h
#define EINVAL 22 /* Invalid argument */
and expanding that to try to decode the dl_errno:
$ grep 4 /usr/include/sys/dlpi.h
#define DL_BIND_ACK 0x04 /* Dlsap address bound, */
#define DL_DISCONNECT_IND 0x14 /* Disconnect indication */
#define DL_REPLY_REQ 0x24 /* Request a DLSDU from the
remote */
#define DL_GET_STATISTICS_REQ 0x34 /* Request to get statistics */
#define DL_UNATTACHED 0x04 /* PPA not attached */
which suggests an issue with the PPA - I don't recall what netperf
assumes for the PPA or if it tries to strip it from the device name. It
has been a _long_ time :)
> /usr/local/bin # ./netperf -H 11.0.1.105 -t DLCO_STREAM -- -D /dev/xge0
> DLPI CO STREAM TEST
> Recv Send Send
> Window Window Message Elapsed
> Size Size Size Time Throughput
> frames frames bytes secs. 10^6bits/sec
>
> put_control: acknowledgement error wanted 6 got 5
> dl_error_primitive: 11
> dl_errno: 9
> dl_unix_errno 0
> netperf: dl_open: could not send control message, errno = 0
> netperf: send_dlpi_co_stream: dlpi stream data descriptor: Error 0
So, this one had no unix errno number, but did have a DLPI error number,
which we can look for in the include file(s):
$ grep 9 /usr/include/sys/dlpi.h
#define DL_VERSION_2 0x02 /* version of dlpi March 12,1991 */
#define DL_UDERROR_IND 0x09 /* datagram error indication, */
#define DL_RESET_RES 0x19 /* Complete reset processing */
#define DL_XID_REQ 0x29 /* Request to send an XID PDU */
#define DL_INCON_PENDING 0x09 /* incoming connection, awaiting */
#define DL_DISCON9_PENDING 0x10 /* Waiting ack of DL_DISC_REQ
when in */
#define DL_BADPRIM 0x09 /* Primitive received is not known by DLS */
#define DL_XIDAUTO 0x19 /* Automatic handling of XID response */
#define DL_OTHER 0x09 /* Any other medium not listed above */
#define DL_DISC_PERMANENT_CONDITION 0x0809
#define DL_RESET_FLOW_CONTROL 0x0900
#define DL_RESET_LINK_ERROR 0x0901
#define DL_RESET_RESYNCH 0x0902
#define DL_CMD_UN 0x09 /* Resources temporarily unavailable */
#define DL_RSP_UN 0x90 /* Resources temporarily unavailable */
I'm not sure which of those 9's is the applicable one though. I am
pretty sure the dl_errno is standardised by DLPI but it wouldn't hurt to
double-check in the Solaris dlpi.h file.
rick
More information about the netperf-talk
mailing list