Re: netperf and ipv6

Rick Jones (raj@cup.hp.com)
Thu, 11 Feb 1999 11:13:51 -0800

This is a multi-part message in MIME format.
--------------75ECFC9CC913052020A78953
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

see if the attached helps - btw, the IPv6 stuff was based on a proto
done by NRL a while ago - defines and such may not match your
platform...

rick

-- 
these opinions are mine, all mine; HP might not want them anyway... :)
feel free to email, or post, but please do not do both...
my email address is raj in the cup.hp.com domain...
--------------75ECFC9CC913052020A78953
Content-Type: text/plain; charset=us-ascii; name="nettest_ipv6.h"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="nettest_ipv6.h"

/* Copyright (C) 1993, Hewlett-Packard Company */

/* This file contains the test-specific definitions for netperf's BSD */ /* sockets tests */

#define PAD_TIME 2

struct tcpipv6_stream_request_struct { int send_buf_size; int recv_buf_size; /* how big does the client want it - the */ /* receive socket buffer that is */ int receive_size; /* how many bytes do we want to receive at one */ /* time? */ int recv_alignment; /* what is the alignment of the receive */ /* buffer? */ int recv_offset; /* and at what offset from that alignment? */ int no_delay; /* do we disable the nagle algorithm for send */ /* coalescing? */ int measure_cpu; /* does the client want server cpu utilization */ /* measured? */ float cpu_rate; /* do we know how fast the cpu is already? */ int test_length; /* how long is the test? */ int so_rcvavoid; /* do we want the remote to avoid copies on */ /* receives? */ int so_sndavoid; /* do we want the remote to avoid send copies? */ int dirty_count; /* how many integers in the receive buffer */ /* should be made dirty before calling recv? */ int clean_count; /* how many integers should be read from the */ /* recv buffer before calling recv? */ };

struct tcpipv6_stream_response_struct { int recv_buf_size; /* how big does the client want it */ int receive_size; int no_delay; int measure_cpu; /* does the client want server cpu */ int test_length; /* how long is the test? */ int send_buf_size; int data_port_number; /* connect to me here */ float cpu_rate; /* could we measure */ int so_rcvavoid; /* could the remote avoid receive copies? */ int so_sndavoid; /* could the remote avoid send copies? */ };

struct tcpipv6_stream_results_struct { double bytes_received; unsigned int recv_calls; float elapsed_time; /* how long the test ran */ float cpu_util; /* -1 if not measured */ float serv_dem; /* -1 if not measured */ int cpu_method; /* how was cpu util measured? */ };

struct tcpipv6_rr_request_struct { int recv_buf_size; /* how big does the client want it */ int send_buf_size; int recv_alignment; int recv_offset; int send_alignment; int send_offset; int request_size; int response_size; int no_delay; int measure_cpu; /* does the client want server cpu */ float cpu_rate; /* do we know how fast the cpu is? */ int test_length; /* how long is the test? */ int so_rcvavoid; /* do we want the remote to avoid receive */ /* copies? */ int so_sndavoid; /* do we want the remote to avoid send copies? */ };

struct tcpipv6_rr_response_struct { int recv_buf_size; /* how big does the client want it */ int no_delay; int measure_cpu; /* does the client want server cpu */ int test_length; /* how long is the test? */ int send_buf_size; int data_port_number; /* connect to me here */ float cpu_rate; /* could we measure */ int so_rcvavoid; /* could the remote avoid receive copies? */ int so_sndavoid; /* could the remote avoid send copies? */ };

struct tcpipv6_rr_results_struct { unsigned int bytes_received; /* ignored initially */ unsigned int recv_calls; /* ignored initially */ unsigned int trans_received; /* not ignored */ float elapsed_time; /* how long the test ran */ float cpu_util; /* -1 if not measured */ float serv_dem; /* -1 if not measured */ int cpu_method; /* how was cpu util measured? */ };

struct tcpipv6_conn_rr_request_struct { int recv_buf_size; /* how big does the client want it */ int send_buf_size; int recv_alignment; int recv_offset; int send_alignment; int send_offset; int request_size; int response_size; int no_delay; int measure_cpu; /* does the client want server cpu */ float cpu_rate; /* do we know how fast the cpu is? */ int test_length; /* how long is the test? */ int so_rcvavoid; /* do we want the remote to avoid receive */ /* copies? */ int so_sndavoid; /* do we want the remote to avoid send copies? */ };

struct tcpipv6_conn_rr_response_struct { int recv_buf_size; /* how big does the client want it */ int no_delay; int measure_cpu; /* does the client want server cpu */ int test_length; /* how long is the test? */ int send_buf_size; int data_port_number; /* connect to me here */ float cpu_rate; /* could we measure */ int so_rcvavoid; /* could the remote avoid receive copies? */ int so_sndavoid; /* could the remote avoid send copies? */ };

struct tcpipv6_conn_rr_results_struct { unsigned int bytes_received; /* ignored initially */ unsigned int recv_calls; /* ignored initially */ unsigned int trans_received; /* not ignored */ float elapsed_time; /* how long the test ran */ float cpu_util; /* -1 if not measured */ float serv_dem; /* -1 if not measured */ int cpu_method; /* how was cpu util measured? */ };

struct tcpipv6_tran_rr_request_struct { int recv_buf_size; /* how big does the client want it */ int send_buf_size; int recv_alignment; int recv_offset; int send_alignment; int send_offset; int request_size; int response_size; int no_delay; int measure_cpu; /* does the client want server cpu */ float cpu_rate; /* do we know how fast the cpu is? */ int test_length; /* how long is the test? */ int so_rcvavoid; /* do we want the remote to avoid receive */ /* copies? */ int so_sndavoid; /* do we want the remote to avoid send copies? */ };

struct tcpipv6_tran_rr_response_struct { int recv_buf_size; /* how big does the client want it */ int no_delay; int measure_cpu; /* does the client want server cpu */ int test_length; /* how long is the test? */ int send_buf_size; int data_port_number; /* connect to me here */ float cpu_rate; /* could we measure */ int so_rcvavoid; /* could the remote avoid receive copies? */ int so_sndavoid; /* could the remote avoid send copies? */ };

struct tcpipv6_tran_rr_results_struct { unsigned int bytes_received; /* ignored initially */ unsigned int recv_calls; /* ignored initially */ unsigned int trans_received; /* not ignored */ float elapsed_time; /* how long the test ran */ float cpu_util; /* -1 if not measured */ float serv_dem; /* -1 if not measured */ int cpu_method; /* how was cpu util measured? */ };

struct udpipv6_stream_request_struct { int recv_buf_size; int message_size; int recv_alignment; int recv_offset; int checksum_off; int measure_cpu; float cpu_rate; int test_length; int so_rcvavoid; /* do we want the remote to avoid receive */ /* copies? */ int so_sndavoid; /* do we want the remote to avoid send copies? */ };

struct udpipv6_stream_response_struct { int recv_buf_size; int send_buf_size; int measure_cpu; int test_length; int data_port_number; float cpu_rate; int so_rcvavoid; /* could the remote avoid receive copies? */ int so_sndavoid; /* could the remote avoid send copies? */ };

struct udpipv6_stream_results_struct { unsigned int messages_recvd; unsigned int bytes_received; float elapsed_time; float cpu_util; int cpu_method; /* how was cpu util measured? */ };

struct udpipv6_rr_request_struct { int recv_buf_size; /* how big does the client want it */ int send_buf_size; int recv_alignment; int recv_offset; int send_alignment; int send_offset; int request_size; int response_size; int no_delay; int measure_cpu; /* does the client want server cpu */ float cpu_rate; /* do we know how fast the cpu is? */ int test_length; /* how long is the test? */ int so_rcvavoid; /* do we want the remote to avoid receive */ /* copies? */ int so_sndavoid; /* do we want the remote to avoid send copies? */ };

struct udpipv6_rr_response_struct { int recv_buf_size; /* how big does the client want it */ int no_delay; int measure_cpu; /* does the client want server cpu */ int test_length; /* how long is the test? */ int send_buf_size; int data_port_number; /* connect to me here */ float cpu_rate; /* could we measure */ int so_rcvavoid; /* could the remote avoid receive copies? */ int so_sndavoid; /* could the remote avoid send copies? */ };

struct udpipv6_rr_results_struct { unsigned int bytes_received; /* ignored initially */ unsigned int recv_calls; /* ignored initially */ unsigned int trans_received; /* not ignored */ float elapsed_time; /* how long the test ran */ float cpu_util; /* -1 if not measured */ float serv_dem; /* -1 if not measured */ int cpu_method; /* how was cpu util measured? */ };

extern void scan_sockets_args();

extern void send_tcpipv6_stream(); extern void send_tcpipv6_rr(); extern void send_tcpipv6_conn_rr(); extern void send_udpipv6_stream(); extern void send_udpipv6_rr();

extern void recv_tcpipv6_stream(); extern void recv_tcpipv6_rr(); extern void recv_tcpipv6_conn_rr(); extern void recv_udpipv6_stream(); extern void recv_udpipv6_rr();

--------------75ECFC9CC913052020A78953--