[netperf-dev] netperf2 commit notice r176 - trunk/src
raj at netperf.org
raj at netperf.org
Wed Jan 23 17:43:43 PST 2008
Author: raj
Date: 2008-01-23 17:43:42 -0800 (Wed, 23 Jan 2008)
New Revision: 176
Modified:
trunk/src/nettest_omni.c
Log:
please pardon the dust while i work on omni output
Modified: trunk/src/nettest_omni.c
===================================================================
--- trunk/src/nettest_omni.c 2008-01-23 22:11:15 UTC (rev 175)
+++ trunk/src/nettest_omni.c 2008-01-24 01:43:42 UTC (rev 176)
@@ -168,6 +168,10 @@
int sd_kb = 1; /* is the service demand per KB or per tran? */
+char *socket_type_str;
+char *protocol_str;
+char *direction_str;
+
extern int first_burst_size;
#if defined(HAVE_SENDFILE) && (defined(__linux) || defined(__sun))
@@ -201,14 +205,19 @@
remote_connected;
enum netperf_output_name {
+ OUTPUT_NONE,
COMMAND_LINE,
SOCKET_TYPE,
PROTOCOL,
+ DIRECTION,
ELAPSED_TIME,
SOURCE_PORT,
SOURCE_ADDR,
DEST_PORT,
DEST_ADDR,
+ THROUGHPUT,
+ THROUGHPUT_UNITS,
+ RT_LATENCY,
LSS_SIZE_REQ,
LSS_SIZE,
LSS_SIZE_END,
@@ -228,6 +237,7 @@
LOCAL_RECV_DIRTY_COUNT,
LOCAL_RECV_CLEAN_COUNT,
LOCAL_CPU_UTIL,
+ LOCAL_CPU_BIND,
LOCAL_SD,
LOCAL_SD_UNITS,
LOCAL_CPU_METHOD,
@@ -252,11 +262,13 @@
REMOTE_RECV_DIRTY_COUNT,
REMOTE_RECV_CLEAN_COUNT,
REMOTE_CPU_UTIL,
+ REMOTE_CPU_BIND,
REMOTE_SD,
REMOTE_SD_UNITS,
REMOTE_CPU_METHOD,
REMOTE_NODELAY,
REMOTE_CORK,
+ OUTPUT_END,
NETPERF_OUTPUT_MAX
};
@@ -275,6 +287,20 @@
netperf_output_elt_t netperf_output_source[NETPERF_OUTPUT_MAX];
+/* the list of things we will emit for CSV output. I suppose we could
+ at some point try to make this a special case of output_human_list,
+ or at least use some of that space... but for now we won't worry
+ about it. that can come after things are actually working :) raj
+ 2008-01-23 */
+enum netperf_output_name output_csv_list[NETPERF_OUTPUT_MAX];
+
+/* the list of things we will emit for "human" output. up to
+ NETPERF_MAX_BLOCKS of output (groups of lines) each out to
+ NETPERF_OUTPUT_MAX entries. that should more than cover it */
+
+#define NETPERF_MAX_BLOCKS 3
+enum netperf_output_name output_human_list[NETPERF_MAX_BLOCKS][NETPERF_OUTPUT_MAX];
+
static unsigned short
get_port_number(struct addrinfo *res)
{
@@ -379,10 +405,14 @@
netperf_output_enum_to_str(enum netperf_output_name output_name)
{
switch (output_name) {
+ case OUTPUT_NONE:
+ return "OUTPUT_NONE";
case COMMAND_LINE:
return "COMMAND_LINE";
case SOCKET_TYPE:
return "SOCKET_TYPE";
+ case DIRECTION:
+ return "DIRECTION";
case PROTOCOL:
return "PROTOCOL";
case ELAPSED_TIME:
@@ -395,6 +425,12 @@
return "DEST_PORT";
case DEST_ADDR:
return "DEST_ADDR";
+ case THROUGHPUT:
+ return "THROUGHPUT";
+ case THROUGHPUT_UNITS:
+ return "THROUGHPUT_UNITS";
+ case RT_LATENCY:
+ return "RT_LATENCY";
case LSS_SIZE_REQ:
return "LSS_SIZE_REQ";
case LSS_SIZE:
@@ -433,6 +469,8 @@
return "LOCAL_RECV_CLEAN_COUNT";
case LOCAL_CPU_UTIL:
return "LOCAL_CPU_UTIL";
+ case LOCAL_CPU_BIND:
+ return "LOCAL_CPU_BIND";
case LOCAL_SD:
return "LOCAL_SD";
case LOCAL_SD_UNITS:
@@ -481,6 +519,8 @@
return "REMOTE_RECV_CLEAN_COUNT";
case REMOTE_CPU_UTIL:
return "REMOTE_CPU_UTIL";
+ case REMOTE_CPU_BIND:
+ return "REMOTE_CPU_BIND";
case REMOTE_SD:
return "REMOTE_SD";
case REMOTE_SD_UNITS:
@@ -491,17 +531,25 @@
return "REMOTE_NODELAY";
case REMOTE_CORK:
return "REMOTE_CORK";
+ case OUTPUT_END:
+ return "OUTPUT_END";
default:
return "Unknown";
}
}
+
void
+print_netperf_output_entry(FILE *where, enum netperf_output_name what)
+{
+}
+
+void
dump_netperf_output_source(FILE *where)
{
int i;
/* belts and suspenders everyone... */
- for (i = COMMAND_LINE; i < NETPERF_OUTPUT_MAX; i++) {
+ for (i = OUTPUT_NONE; i < NETPERF_OUTPUT_MAX; i++) {
fprintf(where,
"Output Name: %s\n",
netperf_output_enum_to_str(netperf_output_source[i].output_name));
@@ -542,10 +590,10 @@
void
print_omni_init() {
- int i;
+ int i,j;
/* belts and suspenders everyone... */
- for (i = COMMAND_LINE; i < NETPERF_OUTPUT_MAX; i++) {
+ for (i = OUTPUT_NONE; i < NETPERF_OUTPUT_MAX; i++) {
netperf_output_source[i].output_name = i;
netperf_output_source[i].max_line_len = 0;
netperf_output_source[i].tot_line_len = 0;
@@ -572,6 +620,18 @@
strlen(netperf_output_source[x].line3) +\
strlen(netperf_output_source[x].line4)
+ netperf_output_source[OUTPUT_NONE].output_name = OUTPUT_NONE;
+ netperf_output_source[OUTPUT_NONE].line1 = "This Space";
+ netperf_output_source[OUTPUT_NONE].line2 = "Intentionally";
+ netperf_output_source[OUTPUT_NONE].line3 = "Left Blank";
+ netperf_output_source[OUTPUT_NONE].line4 = ":)";
+ netperf_output_source[OUTPUT_NONE].format = "%s";
+ netperf_output_source[OUTPUT_NONE].display_value = NULL;
+ netperf_output_source[OUTPUT_NONE].max_line_len =
+ NETPERF_LINE_MAX(OUTPUT_NONE);
+ netperf_output_source[OUTPUT_NONE].tot_line_len =
+ NETPERF_LINE_TOT(OUTPUT_NONE);
+
netperf_output_source[COMMAND_LINE].output_name = COMMAND_LINE;
netperf_output_source[COMMAND_LINE].line1 = "Command";
netperf_output_source[COMMAND_LINE].line2 = "Line";
@@ -586,16 +646,26 @@
netperf_output_source[SOCKET_TYPE].line1 = "Socket";
netperf_output_source[SOCKET_TYPE].line2 = "Type";
netperf_output_source[SOCKET_TYPE].format = "%s";
- netperf_output_source[SOCKET_TYPE].display_value = NULL;
+ netperf_output_source[SOCKET_TYPE].display_value = socket_type_str;
netperf_output_source[SOCKET_TYPE].max_line_len =
NETPERF_LINE_MAX(SOCKET_TYPE);
netperf_output_source[SOCKET_TYPE].tot_line_len =
NETPERF_LINE_TOT(SOCKET_TYPE);
+ netperf_output_source[DIRECTION].output_name = DIRECTION;
+ netperf_output_source[DIRECTION].line1 = "Direction";
+ netperf_output_source[DIRECTION].line2 = "";
+ netperf_output_source[DIRECTION].format = "%s";
+ netperf_output_source[DIRECTION].display_value = direction_str;
+ netperf_output_source[DIRECTION].max_line_len =
+ NETPERF_LINE_MAX(DIRECTION);
+ netperf_output_source[DIRECTION].tot_line_len =
+ NETPERF_LINE_TOT(DIRECTION);
+
netperf_output_source[PROTOCOL].output_name = PROTOCOL;
netperf_output_source[PROTOCOL].line1 = "Protocol";
netperf_output_source[PROTOCOL].format = "%s";
- netperf_output_source[PROTOCOL].display_value = NULL;
+ netperf_output_source[PROTOCOL].display_value = protocol_str;
netperf_output_source[PROTOCOL].max_line_len =
NETPERF_LINE_MAX(PROTOCOL);
netperf_output_source[PROTOCOL].tot_line_len =
@@ -605,8 +675,8 @@
netperf_output_source[ELAPSED_TIME].line1 = "Elapsed";
netperf_output_source[ELAPSED_TIME].line2 = "Time";
netperf_output_source[ELAPSED_TIME].line3 = "(sec)";
- netperf_output_source[ELAPSED_TIME].format = "%s";
- netperf_output_source[ELAPSED_TIME].display_value = NULL;
+ netperf_output_source[ELAPSED_TIME].format = "%f";
+ netperf_output_source[ELAPSED_TIME].display_value = &elapsed_time;
netperf_output_source[ELAPSED_TIME].max_line_len =
NETPERF_LINE_MAX(ELAPSED_TIME);
netperf_output_source[ELAPSED_TIME].tot_line_len =
@@ -616,7 +686,7 @@
netperf_output_source[SOURCE_PORT].line1 = "Source";
netperf_output_source[SOURCE_PORT].line2 = "Port";
netperf_output_source[SOURCE_PORT].format = "%s";
- netperf_output_source[SOURCE_PORT].display_value = NULL;
+ netperf_output_source[SOURCE_PORT].display_value = local_data_port;
netperf_output_source[SOURCE_PORT].max_line_len =
NETPERF_LINE_MAX(SOURCE_PORT);
netperf_output_source[SOURCE_PORT].tot_line_len =
@@ -626,7 +696,7 @@
netperf_output_source[SOURCE_ADDR].line1 = "Source";
netperf_output_source[SOURCE_ADDR].line2 = "Address";
netperf_output_source[SOURCE_ADDR].format = "%s";
- netperf_output_source[SOURCE_ADDR].display_value = NULL;
+ netperf_output_source[SOURCE_ADDR].display_value = local_data_address;
netperf_output_source[SOURCE_ADDR].max_line_len =
NETPERF_LINE_MAX(SOURCE_ADDR);
netperf_output_source[SOURCE_ADDR].tot_line_len =
@@ -636,7 +706,7 @@
netperf_output_source[DEST_PORT].line1 = "Destination";
netperf_output_source[DEST_PORT].line2 = "Port";
netperf_output_source[DEST_PORT].format = "%s";
- netperf_output_source[DEST_PORT].display_value = NULL;
+ netperf_output_source[DEST_PORT].display_value = remote_data_port;
netperf_output_source[DEST_PORT].max_line_len =
NETPERF_LINE_MAX(DEST_PORT);
netperf_output_source[DEST_PORT].tot_line_len =
@@ -646,19 +716,49 @@
netperf_output_source[DEST_ADDR].line1 = "Destination";
netperf_output_source[DEST_ADDR].line2 = "Address";
netperf_output_source[DEST_ADDR].format = "%s";
- netperf_output_source[DEST_ADDR].display_value = NULL;
+ netperf_output_source[DEST_ADDR].display_value = remote_data_address;
netperf_output_source[DEST_ADDR].max_line_len =
NETPERF_LINE_MAX(DEST_ADDR);
netperf_output_source[DEST_ADDR].tot_line_len =
NETPERF_LINE_TOT(DEST_ADDR);
+ netperf_output_source[THROUGHPUT].output_name = THROUGHPUT;
+ netperf_output_source[THROUGHPUT].line1 = "Throughput";
+ netperf_output_source[THROUGHPUT].line2 = "";
+ netperf_output_source[THROUGHPUT].format = "%f";
+ netperf_output_source[THROUGHPUT].display_value = NULL;
+ netperf_output_source[THROUGHPUT].max_line_len =
+ NETPERF_LINE_MAX(THROUGHPUT);
+ netperf_output_source[THROUGHPUT].tot_line_len =
+ NETPERF_LINE_TOT(THROUGHPUT);
+
+ netperf_output_source[THROUGHPUT_UNITS].output_name = THROUGHPUT_UNITS;
+ netperf_output_source[THROUGHPUT_UNITS].line1 = "Throughput";
+ netperf_output_source[THROUGHPUT_UNITS].line2 = "Units";
+ netperf_output_source[THROUGHPUT_UNITS].format = "%s";
+ netperf_output_source[THROUGHPUT_UNITS].display_value = NULL;
+ netperf_output_source[THROUGHPUT_UNITS].max_line_len =
+ NETPERF_LINE_MAX(THROUGHPUT_UNITS);
+ netperf_output_source[THROUGHPUT_UNITS].tot_line_len =
+ NETPERF_LINE_TOT(THROUGHPUT_UNITS);
+
+ netperf_output_source[RT_LATENCY].output_name = RT_LATENCY;
+ netperf_output_source[RT_LATENCY].line1 = "Throughput";
+ netperf_output_source[RT_LATENCY].line2 = "Units";
+ netperf_output_source[RT_LATENCY].format = "%s";
+ netperf_output_source[RT_LATENCY].display_value = NULL;
+ netperf_output_source[RT_LATENCY].max_line_len =
+ NETPERF_LINE_MAX(RT_LATENCY);
+ netperf_output_source[RT_LATENCY].tot_line_len =
+ NETPERF_LINE_TOT(RT_LATENCY);
+
netperf_output_source[LSS_SIZE_REQ].output_name = LSS_SIZE_REQ;
netperf_output_source[LSS_SIZE_REQ].line1 = "Local";
netperf_output_source[LSS_SIZE_REQ].line2 = "Send Socket";
netperf_output_source[LSS_SIZE_REQ].line3 = "Size";
netperf_output_source[LSS_SIZE_REQ].line4 = "Requested";
- netperf_output_source[LSS_SIZE_REQ].format = "%s";
- netperf_output_source[LSS_SIZE_REQ].display_value = NULL;
+ netperf_output_source[LSS_SIZE_REQ].format = "%d";
+ netperf_output_source[LSS_SIZE_REQ].display_value = &lss_size_req;
netperf_output_source[LSS_SIZE_REQ].max_line_len =
NETPERF_LINE_MAX(LSS_SIZE_REQ);
netperf_output_source[LSS_SIZE_REQ].tot_line_len =
@@ -669,8 +769,8 @@
netperf_output_source[LSS_SIZE].line2 = "Send Socket";
netperf_output_source[LSS_SIZE].line3 = "Size";
netperf_output_source[LSS_SIZE].line4 = "Initial";
- netperf_output_source[LSS_SIZE].format = "%s";
- netperf_output_source[LSS_SIZE].display_value = NULL;
+ netperf_output_source[LSS_SIZE].format = "%d";
+ netperf_output_source[LSS_SIZE].display_value = &lss_size;
netperf_output_source[LSS_SIZE].max_line_len =
NETPERF_LINE_MAX(LSS_SIZE);
netperf_output_source[LSS_SIZE].tot_line_len =
@@ -681,8 +781,8 @@
netperf_output_source[LSS_SIZE_END].line2 = "Send Socket";
netperf_output_source[LSS_SIZE_END].line3 = "Size";
netperf_output_source[LSS_SIZE_END].line4 = "Final";
- netperf_output_source[LSS_SIZE_END].format = "%s";
- netperf_output_source[LSS_SIZE_END].display_value = NULL;
+ netperf_output_source[LSS_SIZE_END].format = "%d";
+ netperf_output_source[LSS_SIZE_END].display_value = &lss_size_end;
netperf_output_source[LSS_SIZE_END].max_line_len =
NETPERF_LINE_MAX(LSS_SIZE_END);
netperf_output_source[LSS_SIZE_END].tot_line_len =
@@ -693,8 +793,8 @@
netperf_output_source[LSR_SIZE_REQ].line2 = "Recv Socket";
netperf_output_source[LSR_SIZE_REQ].line3 = "Size";
netperf_output_source[LSR_SIZE_REQ].line4 = "Requested";
- netperf_output_source[LSR_SIZE_REQ].format = "%s";
- netperf_output_source[LSR_SIZE_REQ].display_value = NULL;
+ netperf_output_source[LSR_SIZE_REQ].format = "%d";
+ netperf_output_source[LSR_SIZE_REQ].display_value = &lsr_size_req;
netperf_output_source[LSR_SIZE_REQ].max_line_len =
NETPERF_LINE_MAX(LSR_SIZE_REQ);
netperf_output_source[LSR_SIZE_REQ].tot_line_len =
@@ -705,8 +805,8 @@
netperf_output_source[LSR_SIZE].line2 = "Recv Socket";
netperf_output_source[LSR_SIZE].line3 = "Size";
netperf_output_source[LSR_SIZE].line4 = "Initial";
- netperf_output_source[LSR_SIZE].format = "%s";
- netperf_output_source[LSR_SIZE].display_value = NULL;
+ netperf_output_source[LSR_SIZE].format = "%d";
+ netperf_output_source[LSR_SIZE].display_value = &lsr_size;
netperf_output_source[LSR_SIZE].max_line_len =
NETPERF_LINE_MAX(LSR_SIZE);
netperf_output_source[LSR_SIZE].tot_line_len =
@@ -717,8 +817,8 @@
netperf_output_source[LSR_SIZE_END].line2 = "Recv Socket";
netperf_output_source[LSR_SIZE_END].line3 = "Size";
netperf_output_source[LSR_SIZE_END].line4 = "Final";
- netperf_output_source[LSR_SIZE_END].format = "%s";
- netperf_output_source[LSR_SIZE_END].display_value = NULL;
+ netperf_output_source[LSR_SIZE_END].format = "%d";
+ netperf_output_source[LSR_SIZE_END].display_value = &lsr_size_end;
netperf_output_source[LSR_SIZE_END].max_line_len =
NETPERF_LINE_MAX(LSR_SIZE_END);
netperf_output_source[LSR_SIZE_END].tot_line_len =
@@ -729,8 +829,8 @@
netperf_output_source[LOCAL_SEND_SIZE].line2 = "Send";
netperf_output_source[LOCAL_SEND_SIZE].line3 = "Size";
netperf_output_source[LOCAL_SEND_SIZE].line4 = "";
- netperf_output_source[LOCAL_SEND_SIZE].format = "%s";
- netperf_output_source[LOCAL_SEND_SIZE].display_value = NULL;
+ netperf_output_source[LOCAL_SEND_SIZE].format = "%d";
+ netperf_output_source[LOCAL_SEND_SIZE].display_value = &send_size;
netperf_output_source[LOCAL_SEND_SIZE].max_line_len =
NETPERF_LINE_MAX(LOCAL_SEND_SIZE);
netperf_output_source[LOCAL_SEND_SIZE].tot_line_len =
@@ -741,7 +841,7 @@
netperf_output_source[LOCAL_RECV_SIZE].line2 = "Recv";
netperf_output_source[LOCAL_RECV_SIZE].line3 = "Size";
netperf_output_source[LOCAL_RECV_SIZE].line4 = "";
- netperf_output_source[LOCAL_RECV_SIZE].format = "%s";
+ netperf_output_source[LOCAL_RECV_SIZE].format = "%d";
netperf_output_source[LOCAL_RECV_SIZE].display_value = NULL;
netperf_output_source[LOCAL_RECV_SIZE].max_line_len =
NETPERF_LINE_MAX(LOCAL_RECV_SIZE);
@@ -753,8 +853,8 @@
netperf_output_source[LOCAL_SEND_CALLS].line2 = "Send";
netperf_output_source[LOCAL_SEND_CALLS].line3 = "Calls";
netperf_output_source[LOCAL_SEND_CALLS].line4 = "";
- netperf_output_source[LOCAL_SEND_CALLS].format = "%s";
- netperf_output_source[LOCAL_SEND_CALLS].display_value = NULL;
+ netperf_output_source[LOCAL_SEND_CALLS].format = "%d";
+ netperf_output_source[LOCAL_SEND_CALLS].display_value = &local_send_calls;
netperf_output_source[LOCAL_SEND_CALLS].max_line_len =
NETPERF_LINE_MAX(LOCAL_SEND_CALLS);
netperf_output_source[LOCAL_SEND_CALLS].tot_line_len =
@@ -765,8 +865,8 @@
netperf_output_source[LOCAL_RECV_CALLS].line2 = "Recv";
netperf_output_source[LOCAL_RECV_CALLS].line3 = "Calls";
netperf_output_source[LOCAL_RECV_CALLS].line4 = "";
- netperf_output_source[LOCAL_RECV_CALLS].format = "%s";
- netperf_output_source[LOCAL_RECV_CALLS].display_value = NULL;
+ netperf_output_source[LOCAL_RECV_CALLS].format = "%d";
+ netperf_output_source[LOCAL_RECV_CALLS].display_value = &local_receive_calls;
netperf_output_source[LOCAL_RECV_CALLS].max_line_len =
NETPERF_LINE_MAX(LOCAL_RECV_CALLS);
netperf_output_source[LOCAL_RECV_CALLS].tot_line_len =
@@ -777,8 +877,8 @@
netperf_output_source[LOCAL_BYTES_PER_RECV].line2 = "Bytes";
netperf_output_source[LOCAL_BYTES_PER_RECV].line3 = "Per";
netperf_output_source[LOCAL_BYTES_PER_RECV].line4 = "Recv";
- netperf_output_source[LOCAL_BYTES_PER_RECV].format = "%s";
- netperf_output_source[LOCAL_BYTES_PER_RECV].display_value = NULL;
+ netperf_output_source[LOCAL_BYTES_PER_RECV].format = "%f";
+ netperf_output_source[LOCAL_BYTES_PER_RECV].display_value = &bytes_per_recv;
netperf_output_source[LOCAL_BYTES_PER_RECV].max_line_len =
NETPERF_LINE_MAX(LOCAL_BYTES_PER_RECV);
netperf_output_source[LOCAL_BYTES_PER_RECV].tot_line_len =
@@ -789,8 +889,8 @@
netperf_output_source[LOCAL_BYTES_PER_SEND].line2 = "Bytes";
netperf_output_source[LOCAL_BYTES_PER_SEND].line3 = "Per";
netperf_output_source[LOCAL_BYTES_PER_SEND].line4 = "Send";
- netperf_output_source[LOCAL_BYTES_PER_SEND].format = "%s";
- netperf_output_source[LOCAL_BYTES_PER_SEND].display_value = NULL;
+ netperf_output_source[LOCAL_BYTES_PER_SEND].format = "%f";
+ netperf_output_source[LOCAL_BYTES_PER_SEND].display_value = &bytes_per_send;
netperf_output_source[LOCAL_BYTES_PER_SEND].max_line_len =
NETPERF_LINE_MAX(LOCAL_BYTES_PER_SEND);
netperf_output_source[LOCAL_BYTES_PER_SEND].tot_line_len =
@@ -801,8 +901,8 @@
netperf_output_source[LOCAL_BYTES_RECVD].line2 = "Bytes";
netperf_output_source[LOCAL_BYTES_RECVD].line3 = "Received";
netperf_output_source[LOCAL_BYTES_RECVD].line4 = "";
- netperf_output_source[LOCAL_BYTES_RECVD].format = "%s";
- netperf_output_source[LOCAL_BYTES_RECVD].display_value = NULL;
+ netperf_output_source[LOCAL_BYTES_RECVD].format = "%d";
+ netperf_output_source[LOCAL_BYTES_RECVD].display_value = &bytes_received;
netperf_output_source[LOCAL_BYTES_RECVD].max_line_len =
NETPERF_LINE_MAX(LOCAL_BYTES_RECVD);
netperf_output_source[LOCAL_BYTES_RECVD].tot_line_len =
@@ -813,8 +913,8 @@
netperf_output_source[LOCAL_BYTES_SENT].line2 = "Bytes";
netperf_output_source[LOCAL_BYTES_SENT].line3 = "Sent";
netperf_output_source[LOCAL_BYTES_SENT].line4 = "";
- netperf_output_source[LOCAL_BYTES_SENT].format = "%s";
- netperf_output_source[LOCAL_BYTES_SENT].display_value = NULL;
+ netperf_output_source[LOCAL_BYTES_SENT].format = "%d";
+ netperf_output_source[LOCAL_BYTES_SENT].display_value = &bytes_sent;
netperf_output_source[LOCAL_BYTES_SENT].max_line_len =
NETPERF_LINE_MAX(LOCAL_BYTES_SENT);
netperf_output_source[LOCAL_BYTES_SENT].tot_line_len =
@@ -825,8 +925,8 @@
netperf_output_source[LOCAL_BYTES_XFERD].line2 = "Bytes";
netperf_output_source[LOCAL_BYTES_XFERD].line3 = "Xferred";
netperf_output_source[LOCAL_BYTES_XFERD].line4 = "";
- netperf_output_source[LOCAL_BYTES_XFERD].format = "%s";
- netperf_output_source[LOCAL_BYTES_XFERD].display_value = NULL;
+ netperf_output_source[LOCAL_BYTES_XFERD].format = "%f";
+ netperf_output_source[LOCAL_BYTES_XFERD].display_value = &bytes_xferd;
netperf_output_source[LOCAL_BYTES_XFERD].max_line_len =
NETPERF_LINE_MAX(LOCAL_BYTES_XFERD);
netperf_output_source[LOCAL_BYTES_XFERD].tot_line_len =
@@ -873,20 +973,32 @@
netperf_output_source[LOCAL_CPU_UTIL].line2 = "CPU";
netperf_output_source[LOCAL_CPU_UTIL].line3 = "Util";
netperf_output_source[LOCAL_CPU_UTIL].line4 = "%";
- netperf_output_source[LOCAL_CPU_UTIL].format = "%s";
- netperf_output_source[LOCAL_CPU_UTIL].display_value = NULL;
+ netperf_output_source[LOCAL_CPU_UTIL].format = "%f";
+ netperf_output_source[LOCAL_CPU_UTIL].display_value = &local_cpu_utilization;
netperf_output_source[LOCAL_CPU_UTIL].max_line_len =
NETPERF_LINE_MAX(LOCAL_CPU_UTIL);
netperf_output_source[LOCAL_CPU_UTIL].tot_line_len =
NETPERF_LINE_TOT(LOCAL_CPU_UTIL);
+ netperf_output_source[LOCAL_CPU_BIND].output_name = LOCAL_CPU_BIND;
+ netperf_output_source[LOCAL_CPU_BIND].line1 = "Local";
+ netperf_output_source[LOCAL_CPU_BIND].line2 = "CPU";
+ netperf_output_source[LOCAL_CPU_BIND].line3 = "Bind";
+ netperf_output_source[LOCAL_CPU_BIND].line4 = "";
+ netperf_output_source[LOCAL_CPU_BIND].format = "%4d";
+ netperf_output_source[LOCAL_CPU_BIND].display_value = NULL;
+ netperf_output_source[LOCAL_CPU_BIND].max_line_len =
+ NETPERF_LINE_MAX(LOCAL_CPU_BIND);
+ netperf_output_source[LOCAL_CPU_BIND].tot_line_len =
+ NETPERF_LINE_TOT(LOCAL_CPU_BIND);
+
netperf_output_source[LOCAL_SD].output_name = LOCAL_SD;
netperf_output_source[LOCAL_SD].line1 = "Local";
netperf_output_source[LOCAL_SD].line2 = "Service";
netperf_output_source[LOCAL_SD].line3 = "Demand";
netperf_output_source[LOCAL_SD].line4 = "";
- netperf_output_source[LOCAL_SD].format = "%s";
- netperf_output_source[LOCAL_SD].display_value = NULL;
+ netperf_output_source[LOCAL_SD].format = "%f";
+ netperf_output_source[LOCAL_SD].display_value = &local_service_demand;
netperf_output_source[LOCAL_SD].max_line_len =
NETPERF_LINE_MAX(LOCAL_SD);
netperf_output_source[LOCAL_SD].tot_line_len =
@@ -945,8 +1057,8 @@
netperf_output_source[RSS_SIZE_REQ].line2 = "Send Socket";
netperf_output_source[RSS_SIZE_REQ].line3 = "Size";
netperf_output_source[RSS_SIZE_REQ].line4 = "Requested";
- netperf_output_source[RSS_SIZE_REQ].format = "%s";
- netperf_output_source[RSS_SIZE_REQ].display_value = NULL;
+ netperf_output_source[RSS_SIZE_REQ].format = "%d";
+ netperf_output_source[RSS_SIZE_REQ].display_value = &rss_size_req;
netperf_output_source[RSS_SIZE_REQ].max_line_len =
NETPERF_LINE_MAX(RSS_SIZE_REQ);
netperf_output_source[RSS_SIZE_REQ].tot_line_len =
@@ -957,8 +1069,8 @@
netperf_output_source[RSS_SIZE].line2 = "Send Socket";
netperf_output_source[RSS_SIZE].line3 = "Size";
netperf_output_source[RSS_SIZE].line4 = "Initial";
- netperf_output_source[RSS_SIZE].format = "%s";
- netperf_output_source[RSS_SIZE].display_value = NULL;
+ netperf_output_source[RSS_SIZE].format = "%d";
+ netperf_output_source[RSS_SIZE].display_value = &rss_size;
netperf_output_source[RSS_SIZE].max_line_len =
NETPERF_LINE_MAX(RSS_SIZE);
netperf_output_source[RSS_SIZE].tot_line_len =
@@ -969,8 +1081,8 @@
netperf_output_source[RSS_SIZE_END].line2 = "Send Socket";
netperf_output_source[RSS_SIZE_END].line3 = "Size";
netperf_output_source[RSS_SIZE_END].line4 = "Final";
- netperf_output_source[RSS_SIZE_END].format = "%s";
- netperf_output_source[RSS_SIZE_END].display_value = NULL;
+ netperf_output_source[RSS_SIZE_END].format = "%d";
+ netperf_output_source[RSS_SIZE_END].display_value = &rss_size_end;
netperf_output_source[RSS_SIZE_END].max_line_len =
NETPERF_LINE_MAX(RSS_SIZE_END);
netperf_output_source[RSS_SIZE_END].tot_line_len =
@@ -981,8 +1093,8 @@
netperf_output_source[RSR_SIZE_REQ].line2 = "Recv Socket";
netperf_output_source[RSR_SIZE_REQ].line3 = "Size";
netperf_output_source[RSR_SIZE_REQ].line4 = "Requested";
- netperf_output_source[RSR_SIZE_REQ].format = "%s";
- netperf_output_source[RSR_SIZE_REQ].display_value = NULL;
+ netperf_output_source[RSR_SIZE_REQ].format = "%d";
+ netperf_output_source[RSR_SIZE_REQ].display_value = &rsr_size_req;
netperf_output_source[RSR_SIZE_REQ].max_line_len =
NETPERF_LINE_MAX(RSR_SIZE_REQ);
netperf_output_source[RSR_SIZE_REQ].tot_line_len =
@@ -993,8 +1105,8 @@
netperf_output_source[RSR_SIZE].line2 = "Recv Socket";
netperf_output_source[RSR_SIZE].line3 = "Size";
netperf_output_source[RSR_SIZE].line4 = "Initial";
- netperf_output_source[RSR_SIZE].format = "%s";
- netperf_output_source[RSR_SIZE].display_value = NULL;
+ netperf_output_source[RSR_SIZE].format = "%d";
+ netperf_output_source[RSR_SIZE].display_value = &rsr_size;
netperf_output_source[RSR_SIZE].max_line_len =
NETPERF_LINE_MAX(RSR_SIZE);
netperf_output_source[RSR_SIZE].tot_line_len =
@@ -1005,8 +1117,8 @@
netperf_output_source[RSR_SIZE_END].line2 = "Recv Socket";
netperf_output_source[RSR_SIZE_END].line3 = "Size";
netperf_output_source[RSR_SIZE_END].line4 = "Final";
- netperf_output_source[RSR_SIZE_END].format = "%s";
- netperf_output_source[RSR_SIZE_END].display_value = NULL;
+ netperf_output_source[RSR_SIZE_END].format = "%d";
+ netperf_output_source[RSR_SIZE_END].display_value = &rsr_size_end;
netperf_output_source[RSR_SIZE_END].max_line_len =
NETPERF_LINE_MAX(RSR_SIZE_END);
netperf_output_source[RSR_SIZE_END].tot_line_len =
@@ -1017,8 +1129,8 @@
netperf_output_source[REMOTE_SEND_SIZE].line2 = "Send";
netperf_output_source[REMOTE_SEND_SIZE].line3 = "Size";
netperf_output_source[REMOTE_SEND_SIZE].line4 = "";
- netperf_output_source[REMOTE_SEND_SIZE].format = "%s";
- netperf_output_source[REMOTE_SEND_SIZE].display_value = NULL;
+ netperf_output_source[REMOTE_SEND_SIZE].format = "%d";
+ netperf_output_source[REMOTE_SEND_SIZE].display_value = &remote_send_size;
netperf_output_source[REMOTE_SEND_SIZE].max_line_len =
NETPERF_LINE_MAX(REMOTE_SEND_SIZE);
netperf_output_source[REMOTE_SEND_SIZE].tot_line_len =
@@ -1029,8 +1141,8 @@
netperf_output_source[REMOTE_RECV_SIZE].line2 = "Recv";
netperf_output_source[REMOTE_RECV_SIZE].line3 = "Size";
netperf_output_source[REMOTE_RECV_SIZE].line4 = "";
- netperf_output_source[REMOTE_RECV_SIZE].format = "%s";
- netperf_output_source[REMOTE_RECV_SIZE].display_value = NULL;
+ netperf_output_source[REMOTE_RECV_SIZE].format = "%d";
+ netperf_output_source[REMOTE_RECV_SIZE].display_value = &remote_recv_size;
netperf_output_source[REMOTE_RECV_SIZE].max_line_len =
NETPERF_LINE_MAX(REMOTE_RECV_SIZE);
netperf_output_source[REMOTE_RECV_SIZE].tot_line_len =
@@ -1041,8 +1153,8 @@
netperf_output_source[REMOTE_SEND_CALLS].line2 = "Send";
netperf_output_source[REMOTE_SEND_CALLS].line3 = "Calls";
netperf_output_source[REMOTE_SEND_CALLS].line4 = "";
- netperf_output_source[REMOTE_SEND_CALLS].format = "%s";
- netperf_output_source[REMOTE_SEND_CALLS].display_value = NULL;
+ netperf_output_source[REMOTE_SEND_CALLS].format = "%d";
+ netperf_output_source[REMOTE_SEND_CALLS].display_value = &remote_send_calls;
netperf_output_source[REMOTE_SEND_CALLS].max_line_len =
NETPERF_LINE_MAX(REMOTE_SEND_CALLS);
netperf_output_source[REMOTE_SEND_CALLS].tot_line_len =
@@ -1053,8 +1165,8 @@
netperf_output_source[REMOTE_RECV_CALLS].line2 = "Recv";
netperf_output_source[REMOTE_RECV_CALLS].line3 = "Calls";
netperf_output_source[REMOTE_RECV_CALLS].line4 = "";
- netperf_output_source[REMOTE_RECV_CALLS].format = "%s";
- netperf_output_source[REMOTE_RECV_CALLS].display_value = NULL;
+ netperf_output_source[REMOTE_RECV_CALLS].format = "%d";
+ netperf_output_source[REMOTE_RECV_CALLS].display_value = &remote_receive_calls;
netperf_output_source[REMOTE_RECV_CALLS].max_line_len =
NETPERF_LINE_MAX(REMOTE_RECV_CALLS);
netperf_output_source[REMOTE_RECV_CALLS].tot_line_len =
@@ -1089,8 +1201,8 @@
netperf_output_source[REMOTE_BYTES_RECVD].line2 = "Bytes";
netperf_output_source[REMOTE_BYTES_RECVD].line3 = "Received";
netperf_output_source[REMOTE_BYTES_RECVD].line4 = "";
- netperf_output_source[REMOTE_BYTES_RECVD].format = "%s";
- netperf_output_source[REMOTE_BYTES_RECVD].display_value = NULL;
+ netperf_output_source[REMOTE_BYTES_RECVD].format = "%d";
+ netperf_output_source[REMOTE_BYTES_RECVD].display_value = &remote_bytes_received;
netperf_output_source[REMOTE_BYTES_RECVD].max_line_len =
NETPERF_LINE_MAX(REMOTE_BYTES_RECVD);
netperf_output_source[REMOTE_BYTES_RECVD].tot_line_len =
@@ -1101,8 +1213,8 @@
netperf_output_source[REMOTE_BYTES_SENT].line2 = "Bytes";
netperf_output_source[REMOTE_BYTES_SENT].line3 = "Sent";
netperf_output_source[REMOTE_BYTES_SENT].line4 = "";
- netperf_output_source[REMOTE_BYTES_SENT].format = "%s";
- netperf_output_source[REMOTE_BYTES_SENT].display_value = NULL;
+ netperf_output_source[REMOTE_BYTES_SENT].format = "%d";
+ netperf_output_source[REMOTE_BYTES_SENT].display_value = &remote_bytes_sent;
netperf_output_source[REMOTE_BYTES_SENT].max_line_len =
NETPERF_LINE_MAX(REMOTE_BYTES_SENT);
netperf_output_source[REMOTE_BYTES_SENT].tot_line_len =
@@ -1113,8 +1225,8 @@
netperf_output_source[REMOTE_BYTES_XFERD].line2 = "Bytes";
netperf_output_source[REMOTE_BYTES_XFERD].line3 = "Xferred";
netperf_output_source[REMOTE_BYTES_XFERD].line4 = "";
- netperf_output_source[REMOTE_BYTES_XFERD].format = "%s";
- netperf_output_source[REMOTE_BYTES_XFERD].display_value = NULL;
+ netperf_output_source[REMOTE_BYTES_XFERD].format = "%d";
+ netperf_output_source[REMOTE_BYTES_XFERD].display_value = &remote_bytes_xferd;
netperf_output_source[REMOTE_BYTES_XFERD].max_line_len =
NETPERF_LINE_MAX(REMOTE_BYTES_XFERD);
netperf_output_source[REMOTE_BYTES_XFERD].tot_line_len =
@@ -1125,8 +1237,8 @@
netperf_output_source[REMOTE_SEND_DIRTY_COUNT].line2 = "Send";
netperf_output_source[REMOTE_SEND_DIRTY_COUNT].line3 = "Dirty";
netperf_output_source[REMOTE_SEND_DIRTY_COUNT].line4 = "Count";
- netperf_output_source[REMOTE_SEND_DIRTY_COUNT].format = "%s";
- netperf_output_source[REMOTE_SEND_DIRTY_COUNT].display_value = NULL;
+ netperf_output_source[REMOTE_SEND_DIRTY_COUNT].format = "%d";
+ netperf_output_source[REMOTE_SEND_DIRTY_COUNT].display_value = &remote_send_dirty_count;
netperf_output_source[REMOTE_SEND_DIRTY_COUNT].max_line_len =
NETPERF_LINE_MAX(REMOTE_SEND_DIRTY_COUNT);
netperf_output_source[REMOTE_SEND_DIRTY_COUNT].tot_line_len =
@@ -1137,8 +1249,8 @@
netperf_output_source[REMOTE_RECV_DIRTY_COUNT].line2 = "Recv";
netperf_output_source[REMOTE_RECV_DIRTY_COUNT].line3 = "Dirty";
netperf_output_source[REMOTE_RECV_DIRTY_COUNT].line4 = "Count";
- netperf_output_source[REMOTE_RECV_DIRTY_COUNT].format = "%s";
- netperf_output_source[REMOTE_RECV_DIRTY_COUNT].display_value = NULL;
+ netperf_output_source[REMOTE_RECV_DIRTY_COUNT].format = "%d";
+ netperf_output_source[REMOTE_RECV_DIRTY_COUNT].display_value = &remote_recv_dirty_count;
netperf_output_source[REMOTE_RECV_DIRTY_COUNT].max_line_len =
NETPERF_LINE_MAX(REMOTE_RECV_DIRTY_COUNT);
netperf_output_source[REMOTE_RECV_DIRTY_COUNT].tot_line_len =
@@ -1149,8 +1261,8 @@
netperf_output_source[REMOTE_RECV_CLEAN_COUNT].line2 = "Recv";
netperf_output_source[REMOTE_RECV_CLEAN_COUNT].line3 = "Clean";
netperf_output_source[REMOTE_RECV_CLEAN_COUNT].line4 = "Count";
- netperf_output_source[REMOTE_RECV_CLEAN_COUNT].format = "%s";
- netperf_output_source[REMOTE_RECV_CLEAN_COUNT].display_value = NULL;
+ netperf_output_source[REMOTE_RECV_CLEAN_COUNT].format = "%d";
+ netperf_output_source[REMOTE_RECV_CLEAN_COUNT].display_value = &remote_recv_clean_count;
netperf_output_source[REMOTE_RECV_CLEAN_COUNT].max_line_len =
NETPERF_LINE_MAX(REMOTE_RECV_CLEAN_COUNT);
netperf_output_source[REMOTE_RECV_CLEAN_COUNT].tot_line_len =
@@ -1161,20 +1273,32 @@
netperf_output_source[REMOTE_CPU_UTIL].line2 = "CPU";
netperf_output_source[REMOTE_CPU_UTIL].line3 = "Util";
netperf_output_source[REMOTE_CPU_UTIL].line4 = "%";
- netperf_output_source[REMOTE_CPU_UTIL].format = "%s";
- netperf_output_source[REMOTE_CPU_UTIL].display_value = NULL;
+ netperf_output_source[REMOTE_CPU_UTIL].format = "%f";
+ netperf_output_source[REMOTE_CPU_UTIL].display_value = &remote_cpu_utilization;
netperf_output_source[REMOTE_CPU_UTIL].max_line_len =
NETPERF_LINE_MAX(REMOTE_CPU_UTIL);
netperf_output_source[REMOTE_CPU_UTIL].tot_line_len =
NETPERF_LINE_TOT(REMOTE_CPU_UTIL);
+ netperf_output_source[REMOTE_CPU_BIND].output_name = REMOTE_CPU_BIND;
+ netperf_output_source[REMOTE_CPU_BIND].line1 = "Remote";
+ netperf_output_source[REMOTE_CPU_BIND].line2 = "CPU";
+ netperf_output_source[REMOTE_CPU_BIND].line3 = "Bind";
+ netperf_output_source[REMOTE_CPU_BIND].line4 = "";
+ netperf_output_source[REMOTE_CPU_BIND].format = "%4d";
+ netperf_output_source[REMOTE_CPU_BIND].display_value = NULL;
+ netperf_output_source[REMOTE_CPU_BIND].max_line_len =
+ NETPERF_LINE_MAX(REMOTE_CPU_BIND);
+ netperf_output_source[REMOTE_CPU_BIND].tot_line_len =
+ NETPERF_LINE_TOT(REMOTE_CPU_BIND);
+
netperf_output_source[REMOTE_SD].output_name = REMOTE_SD;
netperf_output_source[REMOTE_SD].line1 = "Remote";
netperf_output_source[REMOTE_SD].line2 = "Service";
netperf_output_source[REMOTE_SD].line3 = "Demand";
netperf_output_source[REMOTE_SD].line4 = "";
- netperf_output_source[REMOTE_SD].format = "%s";
- netperf_output_source[REMOTE_SD].display_value = NULL;
+ netperf_output_source[REMOTE_SD].format = "%f";
+ netperf_output_source[REMOTE_SD].display_value = &remote_service_demand;
netperf_output_source[REMOTE_SD].max_line_len =
NETPERF_LINE_MAX(REMOTE_SD);
netperf_output_source[REMOTE_SD].tot_line_len =
@@ -1228,6 +1352,28 @@
netperf_output_source[REMOTE_CORK].tot_line_len =
NETPERF_LINE_TOT(REMOTE_CORK);
+ netperf_output_source[OUTPUT_END].output_name = OUTPUT_END;
+ netperf_output_source[OUTPUT_END].line1 = "This";
+ netperf_output_source[OUTPUT_END].line2 = "Is";
+ netperf_output_source[OUTPUT_END].line3 = "The";
+ netperf_output_source[OUTPUT_END].line4 = "End";
+ netperf_output_source[OUTPUT_END].format = "%s";
+ netperf_output_source[OUTPUT_END].display_value = NULL;
+ netperf_output_source[OUTPUT_END].max_line_len =
+ NETPERF_LINE_MAX(OUTPUT_END);
+ netperf_output_source[OUTPUT_END].tot_line_len =
+ NETPERF_LINE_TOT(OUTPUT_END);
+
+ for (i = OUTPUT_NONE; i < NETPERF_OUTPUT_MAX; i++)
+ output_csv_list[i] = OUTPUT_END;
+
+ output_csv_list[0] = OUTPUT_NONE;
+
+ for (j = 0; j < NETPERF_MAX_BLOCKS; j++)
+ for (i = OUTPUT_NONE; i < NETPERF_OUTPUT_MAX; i++)
+ output_human_list[j][i] = OUTPUT_END;
+
+ output_human_list[0][0] = OUTPUT_NONE;
}
void
@@ -1239,7 +1385,54 @@
void
print_omni_human()
{
+
+ int i,j,buflen,buflen_max;
+ char *hdr1;
+ char *hdr2;
+ char *hdr3;
+ char *hdr4;
+ char *val1;
+
+ /* decisions, decisions... walk the list twice to only need to
+ allocate the charcter buffers once, or walk it once and possibly
+ reallocate them as I go... oh, lets walk it twice just for fun to
+ start. */
+ buflen_max = 0;
+ for (i = 0; i < NETPERF_MAX_BLOCKS; i++) {
+ buflen = 0;
+ for (j = 0;
+ ((j < NETPERF_OUTPUT_MAX) &&
+ (output_human_list[i][j] != OUTPUT_END));
+ j++) {
+ buflen +=
+ netperf_output_source[output_human_list[i][j]].max_line_len + 1;
+ }
+ printf("i %d j %d buflen %d\n",i,j,buflen);
+ if (buflen > buflen_max)
+ buflen_max = buflen;
+ }
+ printf("buflen_max %d\n",buflen_max);
+
+ hdr1 = malloc(buflen_max);
+ hdr2 = malloc(buflen_max);
+ hdr3 = malloc(buflen_max);
+ hdr4 = malloc(buflen_max);
+ /* strictly speaking this is not correct - the val line could be
+ longer and we will have to do something about that */
+ val1 = malloc(buflen_max);
+
+ if ((hdr1 == NULL) ||
+ (hdr2 == NULL) ||
+ (hdr3 == NULL) ||
+ (hdr4 == NULL) ||
+ (val1 == NULL)) {
+ fprintf(where,"Unable to allocate output buffers\n");
+ fflush(where);
+ exit(-1);
+ }
+
+ /* ok, now the fun part - fill-in the blanks */
/* this is mostly just place holding while other things are worked-out */
printf("socket type %d protocol %d direction %d\n",
socket_type,
More information about the netperf-dev
mailing list