Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
netperfmeter(1)		    General Commands Manual	       netperfmeter(1)

NAME
       netperfmeter -- Network Performance Meter

SYNOPSIS
       netperfmeter [Port]
       netperfmeter	       [Destination:Port]	     -control-over-tcp
		    -local=Address[,Address,...]
		    -controllocal=Address[,Address,...]	      -runtime=Seconds
		    -config=Name	   -scalar=Name		  -vector=Name
		    -activenodename=Description	  -passivenodename=Description
		    -quiet  -verbose  -verbosity=Level	-v6only	 -pathmgr=name
		    -scheduler=name  -sndbuf=bytes  -rcvbuf=bytes  -tcp	 -sctp
		    -udp -dccp [FLOWSPEC] [...]

DESCRIPTION
       netperfmeter  is	 a  network performance	meter for the UDP, TCP,	MPTCP,
       SCTP and	DCCP transport protocols. It simultaneously transmits bidirec-
       tional flows to an endpoint and measures	the resulting flow bandwidths.
       The results are written as vector and scalar files.

ARGUMENTS
       The following arguments have to be provided:

       Port    The port	number for the passive side's data  socket.  The  port
	       number  of the control socket will be port+1. Specifying	a port
	       number turns netperfmeter in passive mode, i.e.	it  will  wait
	       for incoming connections.

       Destination:Port
	       Specifies  the  destination  endpoint  to connect to. This will
	       turn netperfmeter in active mode, i.e. it will connect  to  the
	       specified remote	endpoint.

       -control-over-tcp
	       Use  TCP	 instead  of  SCTP for the control connection. This is
	       useful for NAT traversal.

       -local=Address[,Address,...]
	       Specifies address(es) of	the local *data*  endpoint.  For  TCP,
	       UDP  and	 DCCP,	only  the first	address	is used!  On an	active
	       node, this option applies to the	following flows, i.e. it  must
	       be set before specifying	a flow!

       -controllocal=Address[,Address,...]
	       Specifies  address(es) of the local *control* endpoint (SCTP or
	       TCP). For TCP, only the first address is	used!

       -runtime
	       Specifies the measurement runtime in seconds. After  the	 given
	       time span, netperfmeter will finish the measurement.

       -config=Name
	       Specifies  the name of the configuration	file to	write. Default
	       is output.config.

       -vector=Name
	       Specifies the name pattern of the vector	files to write.	If the
	       suffix of this name is .bz2, the	file will be  BZip2-compressed
	       on  the	fly. The vector	name is	automatically extended to name
	       the    flow    vector	files	 by    adding	 -<active|pas-
	       sive>-<flow_id>-<stream_id> before the suffix.  Default is vec-
	       tor.vec.bz2,  hence  the	 name  of  the vector file for flow 5,
	       stream  2   on	the   passive	node   will   be   vector-pas-
	       sive-00000005-0002.vec.bz2.

       -scalar=Name
	       Specifies the name pattern of the scalar	files to write.	If the
	       suffix  of this name is .bz2, the file will be BZip2-compressed
	       on the fly. The scalar name is automatically extended  to  name
	       the    flow    scalar	files	 by    adding	 -<active|pas-
	       sive>-<flow_id>-<stream_id>  before  the	 suffix.   Default  is
	       scalar.vec.bz2,	hence  the name	of the scalar file for flow 5,
	       stream  2   on	the   passive	node   will   be   scalar-pas-
	       sive-00000005-0002.vec.bz2.

       -activenodename=Description
	       Sets a textual description of the active	node (e.g. Client).

       -passivenodename=Description
	       Sets a textual description of the passive node (e.g. Server).

       -quiet  Reduces	verbosity  of  log  output.  May be specified multiple
	       times.

       -verbose
	       Increases verbosity of log output. May  be  specified  multiple
	       times.

       -verbosity=Level
	       Sets  the  verbosity of the log output to a given level,	from 0
	       (lowest)	to 6 (highest).

       -v6only
	       Use sockets with	IPv6 only (by setting IPV6_V6ONLY  socket  op-
	       tion).

       -pathmgr=name
	       Set  MPTCP  path	 manager for the passive node (MPTCP for Linux
	       only. Requires socket options kernel  patch!).	On  an	active
	       node,  this option applies to the following flows, i.e. it must
	       be set before specifying	a flow!

       -scheduler=name
	       Set MPTCP scheduler for the passive node	(MPTCP for Linux only.
	       Requires	socket options kernel patch!).	 On  an	 active	 node,
	       this option applies to the following flows, i.e.	it must	be set
	       before specifying a flow!

       rcvbuf=bytes
	       Sets  the receiver buffer size (on the listening	socket)	to the
	       given number of bytes.

       sndbuf=bytes
	       Sets the	sender buffer size (on the listening  socket)  to  the
	       given number of bytes.

       -sctp   Establish  a new	SCTP association. The streams of this associa-
	       tion must be specified by one or	more  FLOWSPEC	specifications
	       as following parameters.

       -tcp    Establish  a new	TCP or MPTCP connection. The flow of this con-
	       nection must be specified by a FLOWSPEC specification  as  fol-
	       lowing  parameter. MPTCP	support	in NetPerfMeter	is realized as
	       additional "MPTCP" socket (i.e. another TCP socket,  but	 bound
	       to  another  port  number  and  with CMT	enabled). That is, for
	       MPTCP usage, it must contain the	option cmt=mptcp  (see	below)
	       to usage	the MPTCP socket instead of the	TCP socket.

       -udp    Establish  a  new  UDP  connection. The flow of this connection
	       must be specified by a FLOWSPEC specification as	following  pa-
	       rameter.

       -dccp   Establish  a  new  DCCP connection. The flow of this connection
	       must be specified by a FLOWSPEC specification as	following  pa-
	       rameter.	Note, that DCCP	is not available on all	platforms yet.
	       Currently, only Linux provides DCCP in its official kernel.

       FLOWSPEC
	       Specifies a new flow. The format	is: outgoing_frame_rate:outgo-
	       ing_frame_size:incoming_frame_rate:incoming_frame_size:op-
	       tion:...	 The first four	parameters (outgoing_frame_rate:outgo-
	       ing_frame_size:incoming_frame_rate:incoming_frame_size:option)
	       may  be	substituted  by	 the option "default", creating	a flow
	       with some more or less useful default parameters.

	       outgoing_frame_rate
		       The frame rate of the outgoing  transfer	 (i.e.	active
		       node  to	 passive  node).  If set to const0, the	sender
		       will be saturarted, i.e.	it will	try to send as much as
		       possible.

	       outgoing_frame_size
		       The frame size of the outgoing  transfer	 (i.e.	active
		       node  to	passive	node). If set to const0, there will be
		       *no* data transmission in this direction.

	       incoming_frame_rate
		       The frame rate of the incoming transfer	(i.e.  passive
		       node  to	 active	node). See outgoing_frame_rate for de-
		       tails.

	       incoming_frame_size
		       The frame size of the incoming  transfer	 (i.e.	active
		       node  to	passive	node). See outgoing_frame_size for de-
		       tails.

	       Possible	options:

		       id=Flow Identifier
			       Sets an ID number for the flow. The IDs	within
			       a measurement must be unique!

		       description=Description
			       Sets  a	textual	 description of	the flow (e.g.
			       HTTP-Flow). Do not use spaces in	 the  descrip-
			       tion!

		       maxmsgsize=Bytes
			       Splits  frames  into  messages  of  at most the
			       given number of bytes. Messages may not	exceed
			       65535 bytes.

		       defragtimeout=Milliseconds
			       Messages	not received within this timeout after
			       the  last successfully received message are ac-
			       counted as lost.	NOTE: this also	happens	if the
			       transport protocol is reliable and the  message
			       is actually received later!

		       unordered=Fraction
			       Specifies  the  fraction	 of  the messages that
			       will be sent in unordered mode (SCTP only).

		       ordered=Fraction
			       Specifies the fraction  of  the	messages  that
			       will be sent in ordered mode (SCTP only).

		       reliable=Fraction
			       Specifies  the  fraction	 of  the messages that
			       will be sent in reliable	mode (SCTP only).

		       unreliable=Fraction
			       Specifies the fraction  of  the	messages  that
			       will be sent in unreliable mode (SCTP only).

		       rtx_timeout=Milliseconds
			       Sets  the retransmission	timeout	for unreliable
			       messages	(SCTP only; not	available on all plat-
			       forms!)

		       rtx_trials=Trials
			       Sets the	retransmission trials  for  unreliable
			       messages	(SCTP only; not	available on all plat-
			       forms!)

		       rcvbuf=Bytes
			       Sets the	receiver buffer	size to	the given num-
			       ber of bytes.

		       sndbuf=Bytes
			       Sets the	sender buffer size to the given	number
			       of bytes.

		       onoff=t1,t2,...[,repeat]
			       A  list	of time	stamps when the	flow should be
			       activated or deactivated. If  onoff  is	given,
			       the  flow  is off at startup. At	t1, it will be
			       turned on; at t2, it will be turned off,	 etc..
			       Time  stamps  can  be  given as absolute	values
			       (e.g. onoff=0,10,30 - to	turn on	at  t=0,  turn
			       off at t=10 and turn on again at	t=30 until end
			       of   measurement)   or  relative	 values	 (e.g.
			       on=10,+30,+60 - to turn on at t=10, turn	off at
			       t=40 and	turn on	again at t=100	until  end  of
			       measurement).  A	repetition of the list is pos-
			       sible  with  the	keyword	"repeat" at the	end of
			       the list. Then, all values need to be  relative
			       values and the number of	items must be even.

		       error_on_abort=on|off
			       By default, the active side stops with an error
			       when  a	transmission tails (e.g. on connection
			       abort). This parameter turns this behaviour  on
			       or off.

		       nodelay=on|off
			       Deactivate  Nagle algorithm (TCP	and SCTP only;
			       default:	off).

		       debug=on|off
			       Set debug mode on socket	(currently: MPTCP  for
			       Linux  only.  Requires  socket  options	kernel
			       patch!).

		       ndiffports=number
			       Set number of different MPTCP  subflows	(MPTCP
			       for  Linux only.	Requires socket	options	kernel
			       patch!).

		       -v6only
			       Use  socket  with   IPv6	  only	 (by   setting
			       IPV6_V6ONLY socket option).

		       pathmgr=name
			       Set  MPTCP  path	manager	(MPTCP for Linux only.
			       Requires	socket options kernel patch!).

		       scheduler=name
			       Set MPTCP scheduler (MPTCP for Linux only.  Re-
			       quires socket options kernel patch!).

		       cc=name
			       Set  congestion control name (TCP and MPTCP for
			       Linux only).

		       cmt=off|cmt|cmtrpv1|cmtrpv2|like-mptcp|mptcp-like|mptcp
			       Configures usage	of Concurrent Multipath	Trans-
			       fer (CMT): off (turned off; default), cmt  (in-
			       dependent  paths),  cmtrpv1 (CMT/RPv1), cmtrpv1
			       (CMT/RPv2),	   mptcp/like-mptcp/mptcp-like
			       (MPTCP),	 0-255 (custom value).	Currently only
			       supported by CMT-SCTP on	 FreeBSD  systems  and
			       MPTCP on	Linux systems. Note: CMT for MPTCP al-
			       ways uses MPTCP congestion control.

EXAMPLES
       Some netperfmeter usage examples:

       netperfmeter 9000
	       Start  in  passive  mode,  i.e.	accepting connections, on port
	       9000.

       netperfmeter	    172.16.255.254:9000		-vector=output.vec.bz2
	       -scalar=output.sca.bz2					 -sctp
	       const5:exp1000:const3:exp500:description="Alpha":onoff=+10
	       const5:exp1000:const3:exp500:description="Beta":onoff=+30  -tcp
	       const5:exp1000:const3:exp500:description="Gamma":onoff=+60
	       -runtime=300
	       Start   in   active   mode,   i.e.   establish	connection  to
	       172.16.255.254, port 9000.  Frames will be segmented into  mes-
	       sages  of  up  to  4096 bytes.  Write vectors to	output.vec.bz2
	       (BZip2-compressed).    Write    scalars	  to	output.sca.bz2
	       (BZip2-compressed).   Establish	SCTP  association.   At	t=10s,
	       start flow "Alpha" as first stream of this association, using a
	       frame rate of 5 (constant) and average frame size of 1000 bytes
	       (negative exponential distribution) for the outgoing data and a
	       frame rate of 3 (constant) and average frame size of 500	 bytes
	       (negative  exponential distribution) for	the incoming data.  At
	       t=30s, start flow "Beta"	as second stream on the	SCTP  associa-
	       tion  (same parameters as flow "Alpha").	 Start TCP connection.
	       At t=60s, start flow "Gamma" over the TCP connection (same  pa-
	       rameters	as flow	"Alpha").  At t=300s, stop the measurement.

       netperfmeter	  172.16.255.254:9000	   -control-over-tcp	  -tcp
	       const2:const1000
	       Start  in   active   mode,   i.e.   establish   connection   to
	       172.16.255.254,	port 9000. The control connection uses TCP in-
	       stead of	SCTP.

AUTHORS
       Thomas Dreibholz
       https://www.nntb.no/~dreibh/netperfmeter
       mailto://thomas.dreibholz@gmail.com

netperfmeter			April 29, 2016		       netperfmeter(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=netperfmeter&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help