aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--benchmarks/sipp/Makefile28
-rw-r--r--benchmarks/sipp/distinfo2
-rw-r--r--benchmarks/sipp/files/patch-Makefile61
-rw-r--r--benchmarks/sipp/files/patch-comp.h12
-rw-r--r--benchmarks/sipp/files/sipp.1448
-rw-r--r--benchmarks/sipp/pkg-descr6
-rw-r--r--net/Makefile1
-rw-r--r--net/sipp/Makefile28
-rw-r--r--net/sipp/distinfo2
-rw-r--r--net/sipp/files/patch-Makefile61
-rw-r--r--net/sipp/files/patch-comp.h12
-rw-r--r--net/sipp/files/sipp.1448
-rw-r--r--net/sipp/pkg-descr6
13 files changed, 1115 insertions, 0 deletions
diff --git a/benchmarks/sipp/Makefile b/benchmarks/sipp/Makefile
new file mode 100644
index 00000000000..d28966dcebc
--- /dev/null
+++ b/benchmarks/sipp/Makefile
@@ -0,0 +1,28 @@
+# New ports collection makefile for: sipp
+# Date created: 15 Jun 2004
+# Whom: jesper@jdn.dk
+#
+# $FreeBSD$
+#
+
+PORTNAME= sipp
+PORTVERSION= 0.3
+CATEGORIES= net
+MASTER_SITES= ${MASTER_SITE_SOURCEFORGE_EXTENDED}
+MASTER_SITE_SUBDIR= sipp
+
+MAINTAINER= jesper@jdn.dk
+COMMENT= SIP testing tool
+
+WRKSRC= ${WRKDIR}/${PORTNAME}
+PLIST_FILES= bin/sipp
+MAN1= sipp.1
+
+pre-install:
+ @${CP} ${FILESDIR}/${MAN1} ${WRKSRC}/
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${PREFIX}/bin
+ ${INSTALL_MAN} ${WRKSRC}/sipp.1 ${PREFIX}/man/man1/sipp.1
+
+.include <bsd.port.mk>
diff --git a/benchmarks/sipp/distinfo b/benchmarks/sipp/distinfo
new file mode 100644
index 00000000000..ae067212fe4
--- /dev/null
+++ b/benchmarks/sipp/distinfo
@@ -0,0 +1,2 @@
+MD5 (sipp-0.3.tar.gz) = e088f4aa98bda0f3300b1250bd24094a
+SIZE (sipp-0.3.tar.gz) = 57099
diff --git a/benchmarks/sipp/files/patch-Makefile b/benchmarks/sipp/files/patch-Makefile
new file mode 100644
index 00000000000..270f90c5b2d
--- /dev/null
+++ b/benchmarks/sipp/files/patch-Makefile
@@ -0,0 +1,61 @@
+--- Makefile.orig Tue Jun 15 14:25:12 2004
++++ Makefile Tue Jun 15 14:25:28 2004
+@@ -30,6 +30,7 @@
+
+ # Libraries directories
+ LIBDIR_linux=
++LIBDIR_FreeBSD=
+ LIBDIR_hpux=
+ LIBDIR_tru64=
+
+@@ -50,6 +51,7 @@
+ # SYSTEM nickname
+ SYSTEM_HP-UX=hpux
+ SYSTEM_Linux=linux
++SYSTEM_FreeBSD=freebsd
+ SYSTEM_OSF1=tru64
+ SYSTEM=$(SYSTEM_$(OSNAME))
+
+@@ -60,29 +62,34 @@
+ CPP_hpux=aCC
+ CPP_linux=gcc
+ CPP_tru64=cxx
++CPP_freebsd=g++
+ CPP=$(CPP_$(SYSTEM))
+
+ #C Compiler Flags
+ CFLAGS_hpux=-D__HPUX +DAportable
+ CFLAGS_linux=-D__LINUX -pthread
++CFLAGS_freebsd=-D__LINUX -pthread
+ CFLAGS_tru64=-D__OSF1 -pthread
+ CFLAGS=$(CFLAGS_$(SYSTEM)) -D__3PCC__
+
+ #C++ Compiler Flags
+ CPPFLAGS_hpux=-AA -mt -D__HPUX +DAportable
+ CPPFLAGS_linux=-D__LINUX -pthread
++CPPFLAGS_freebsd=-D__LINUX -pthread
+ CPPFLAGS_tru64=-D__OSF1 -pthread
+ CPPFLAGS=$(CPPFLAGS_$(SYSTEM)) -D__3PCC__
+
+ #Linker mapping
+ CCLINK_hpux=aCC
+ CCLINK_linux=gcc
++CCLINK_freebsd=g++
+ CCLINK_tru64=cxx
+ CCLINK=$(CCLINK_$(SYSTEM))
+
+ #Linker Flags
+ LFLAGS_hpux=-AA -mt +DAportable
+ LFLAGS_linux=
++LFLAGS_freebsd=
+ LFLAGS_tru64=
+ LFLAGS=$(LFLAGS_$(SYSTEM))
+
+@@ -90,6 +97,7 @@
+ LIBS_linux= -ldl -lpthread -lcurses -lstdc++
+ LIBS_hpux= -lcurses
+ LIBS_tru64= -lcurses -lpthread
++LIBS_freebsd= -lcurses -pthread
+ LIBS=$(LIBS_$(SYSTEM))
+
+ # Operating system detection rule
diff --git a/benchmarks/sipp/files/patch-comp.h b/benchmarks/sipp/files/patch-comp.h
new file mode 100644
index 00000000000..d96897196d6
--- /dev/null
+++ b/benchmarks/sipp/files/patch-comp.h
@@ -0,0 +1,12 @@
+--- comp.h.orig Thu Jun 17 08:32:56 2004
++++ comp.h Thu Jun 17 08:33:04 2004
+@@ -19,6 +19,9 @@
+ * From Hewlett Packard Company.
+ */
+
++#if __FreeBSD__ < 5
++#include <sys/types.h>
++#endif
+ #include <sys/socket.h>
+
+ #ifdef __cplusplus
diff --git a/benchmarks/sipp/files/sipp.1 b/benchmarks/sipp/files/sipp.1
new file mode 100644
index 00000000000..58b4b19858a
--- /dev/null
+++ b/benchmarks/sipp/files/sipp.1
@@ -0,0 +1,448 @@
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. | will give a
+.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
+.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
+.\" expand to `' in nroff, nothing in troff, for use with C<>.
+.tr \(*W-|\(bv\*(Tr
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. nr % 0
+. rr F
+.\}
+.\"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "sipp 1"
+.TH sipp 1 "2004-06-16" "sipp" "User Contributed Documentation"
+.SH "NAME"
+sipp \- A benchworking tool for the SIP protocol.
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+Sipp is a performance test tool / traffic generator for the \s-1SIP\s0
+protocol. It comes with a few basic SipStone user-agents
+scenarios (\s-1UAC\s0 & \s-1UAS\s0), establishing and releasing multiple
+calls with the \s-1INVITE\s0 and \s-1BYE\s0 methods.
+.PP
+It can also read \s-1XML\s0 scenario files describing any performance
+testing configuration for \s-1SIP\s0.
+.SH "SYNTAX"
+.IX Header "SYNTAX"
+.Vb 1
+\& sipp remote_host[:remote_port] [options]
+.Ve
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+.Vb 1
+\& -v : Display version and copyright information.
+.Ve
+.PP
+.Vb 1
+\& -bg : Launch the tool in background mode.
+.Ve
+.PP
+.Vb 2
+\& -p local_port : Set the local port number. Default is a
+\& random free port chosen by the system.
+.Ve
+.PP
+.Vb 3
+\& -i local_ip : Set the local IP address for 'Contact:',
+\& 'Via:', and 'From:' headers. Default is
+\& primary host IP address.
+.Ve
+.PP
+.Vb 5
+\& -d duration : Controls the length (in milliseconds) of
+\& of calls. More precisely, this controls
+\& the duration of 'pause' instructions in
+\& the scenario, if they do not have a
+\& 'milliseconds' section. Default value is 0.
+.Ve
+.PP
+.Vb 3
+\& -r rate (cps) : Set the call rate (in calls per seconds).
+\& This value can be changed during test by
+\& pressing ENTER. Default is 10.
+.Ve
+.PP
+.Vb 5
+\& -sf filename : Loads an alternate xml scenario file.
+\& To learn more about XML scenario syntax,
+\& use the -sd option to dump embedded
+\& scenarios. They contain all the necessary
+\& help.
+.Ve
+.PP
+.Vb 3
+\& -sn name : Use a default scenario (embedded in
+\& the sipp executable). Available values
+\& in this version:
+.Ve
+.PP
+.Vb 4
+\& 'uac' : Standard SipStone UAC (default).
+\& 'uas' : Simple UAS responder (UDP only).
+\& 'regexp' : Standard SipStone UAC - with
+\& regexp and variables.
+.Ve
+.PP
+.Vb 1
+\& Default 3pcc scanerios (see -3pcc option):
+.Ve
+.PP
+.Vb 5
+\& '3pcc-C-A' : Controller A side (must be started
+\& after all other 3pcc scenarios)
+\& '3pcc-C-B' : Controller B side.
+\& '3pcc-A' : A side.
+\& '3pcc-B' : B side.
+.Ve
+.PP
+.Vb 2
+\& -sd name : Dumps a default scenario (embeded in
+\& the sipp executable)
+.Ve
+.PP
+.Vb 1
+\& -t [u1|un|t1|tn] : Set the transport mode:
+.Ve
+.PP
+.Vb 4
+\& u1: UDP with one socket (default),
+\& un: UDP with one socket per call,
+\& t1: TCP with one socket,
+\& tn: TCP with one socket per call.
+.Ve
+.PP
+.Vb 2
+\& -trace_msg : Displays sent and received SIP messages in
+\& sipp_messages.log
+.Ve
+.PP
+.Vb 3
+\& -trace_stat : Dumps all statistics in the <scenario_name.csv>
+\& file. Use the '-h stat' option for a detailed
+\& description of the statistics file content.
+.Ve
+.PP
+.Vb 6
+\& The -trace_stat option dumps all statistics in the
+\& <scenario_name.csv> file. The dump starts with one header
+\& line with all counters. All following lines are 'snapshots' of
+\& statistics counter given the statistics report frequency
+\& (-fd option). This file can be easily imported in any
+\& spreadsheet application, like Excel.
+.Ve
+.PP
+.Vb 3
+\& In counter names, (P) means 'Periodic' - since last
+\& statistic row and (C) means 'Cumulated' - since sipp was
+\& started.
+.Ve
+.PP
+.Vb 1
+\& Available statistics are:
+.Ve
+.PP
+.Vb 2
+\& - StartTime:
+\& Date and time when the test has started.
+.Ve
+.PP
+.Vb 2
+\& - LastResetTime:
+\& Date and time when periodic counters where last reseted.
+.Ve
+.PP
+.Vb 2
+\& - CurrentTime:
+\& Date and time of the statistic row.
+.Ve
+.PP
+.Vb 2
+\& - ElapsedTime:
+\& Elapsed time.
+.Ve
+.PP
+.Vb 2
+\& - CallRate:
+\& Call rate (calls per seconds).
+.Ve
+.PP
+.Vb 2
+\& - IncomingCall:
+\& Number of incoming calls.
+.Ve
+.PP
+.Vb 2
+\& - OutgoingCall:
+\& Number of outgoing calls.
+.Ve
+.PP
+.Vb 2
+\& - TotalCallCreated:
+\& Number of calls created.
+.Ve
+.PP
+.Vb 2
+\& - CurrentCall:
+\& Number of calls currently ongoing.
+.Ve
+.PP
+.Vb 2
+\& - SuccessfulCall:
+\& Number of successful calls.
+.Ve
+.PP
+.Vb 2
+\& - FailedCall:
+\& Number of failed calls (all reasons).
+.Ve
+.PP
+.Vb 3
+\& - FailedCannotSendMessage:
+\& Number of failed calls because Sipp cannot send the
+\& message (transport issue).
+.Ve
+.PP
+.Vb 3
+\& - FailedMaxUDPRetrans:
+\& Number of failed calls because the maximum number of
+\& UDP retransmission attempts has been reached.
+.Ve
+.PP
+.Vb 3
+\& - FailedUnexpectedMessage:
+\& Number of failed calls because the SIP message received
+\& cannot be associated to an existing call.
+.Ve
+.PP
+.Vb 4
+\& - FailedCallRejected:
+\& Number of failed calls because of Sipp internal error.
+\& (a scenario sync command is not recognized or a scenario
+\& action failed or a scenario variable assignment failed).
+.Ve
+.PP
+.Vb 4
+\& - FailedCmdNotSent:
+\& Number of failed calls because of inter-Sipp
+\& communication error (a scenario sync command failed to
+\& be sent).
+.Ve
+.PP
+.Vb 5
+\& - FailedRegexpDoesntMatch:
+\& Number of failed calls because of regexp that doesn't
+\& match (there might be several regexp that don't match
+\& during the call but the counter is increased only by
+\& one).
+.Ve
+.PP
+.Vb 3
+\& - FailedRegexpHdrNotFound:
+\& Number of failed calls because of regexp with hdr
+\& option but no matching header found.
+.Ve
+.PP
+.Vb 1
+\& -stf file_name : Set the file name to use to dump statistics
+.Ve
+.PP
+.Vb 2
+\& -trace_err : Trace all unexpected messages in
+\& sipp_errors.log.
+.Ve
+.PP
+.Vb 2
+\& -s service_name : Set the username part of the resquest URI.
+\& Default is 'service'.
+.Ve
+.PP
+.Vb 2
+\& -f frequency : Set the statistics report frequency on screen
+\& (in seconds). Default is 1.
+.Ve
+.PP
+.Vb 2
+\& -fd frequency : Set the statistics dump log report frequency
+\& (in seconds). Default is 60.
+.Ve
+.PP
+.Vb 4
+\& -l calls_limit : Set the maximum number of simultaneous
+\& calls. Once this limit is reached, traffic
+\& is decreased until the number of open calls
+\& goes down. Default:
+.Ve
+.PP
+.Vb 1
+\& (3 * call_duration (s) * rate).
+.Ve
+.PP
+.Vb 2
+\& -m calls : Stop the test and exit when 'calls' calls are
+\& processed.
+.Ve
+.PP
+.Vb 3
+\& -mp local_port : Set the local RTP echo port number. Default
+\& is none. RTP/UDP packets received on that
+\& port are echoed to their sender.
+.Ve
+.PP
+.Vb 1
+\& -mi local_rtp_ip : Set the local IP address for RTP echo.
+.Ve
+.PP
+.Vb 5
+\& -3pcc ip:port : Launch the tool in 3pcc mode ("Third Party
+\& call control"). The passed ip address
+\& is the address of the twin sipp 3pcc tool
+\& The used scenario must be a 3pcc relative
+\& scenario
+.Ve
+.PP
+.Vb 1
+\& -nr : Disable retransmission in UDP mode.
+.Ve
+.SH "EXIT CODE"
+.IX Header "EXIT CODE"
+.Vb 7
+\& Upon exit (on fatal error or when the number of asked calls (-m
+\& option) is reached, sipp exits with one of the following exit
+\& code:
+\& 0: All calls were successful
+\& 1: At least one call failed
+\& 99: Normal exit without calls processed
+\& -1: Fatal error
+.Ve
+.SH "EXAMPLES"
+.IX Header "EXAMPLES"
+.Vb 4
+\& Run sipp with embedded server (uas) scenario:
+\& sipp -sn uas
+\& On the same host, run sipp with embedded client (uac) scenario
+\& sipp -sn uac 127.0.0.1
+.Ve
+.SH "AUTHORS"
+.IX Header "AUTHORS"
+.Vb 2
+\& Richard Gayraud <richard_gayraud@users.sourceforge.net>
+\& O Jacques <ojacques@users.sourceforge.net>
+.Ve
diff --git a/benchmarks/sipp/pkg-descr b/benchmarks/sipp/pkg-descr
new file mode 100644
index 00000000000..b7635f87453
--- /dev/null
+++ b/benchmarks/sipp/pkg-descr
@@ -0,0 +1,6 @@
+Sipp is a performance test tool / traffic generator for the SIP protocol.
+
+It comes with a few basic SipStone user-agents scenarios (UAC & UAS), i
+establishing and releasing multiple calls with the INVITE and BYE methods.
+
+WWW: http://sipp.sourceforge.net/
diff --git a/net/Makefile b/net/Makefile
index d7696ff7aaa..ea8c150d72a 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -611,6 +611,7 @@
SUBDIR += silc-server
SUBDIR += silky
SUBDIR += simicq
+ SUBDIR += sipp
SUBDIR += sipsak
SUBDIR += sixxs-heartbeatd
SUBDIR += slirp
diff --git a/net/sipp/Makefile b/net/sipp/Makefile
new file mode 100644
index 00000000000..d28966dcebc
--- /dev/null
+++ b/net/sipp/Makefile
@@ -0,0 +1,28 @@
+# New ports collection makefile for: sipp
+# Date created: 15 Jun 2004
+# Whom: jesper@jdn.dk
+#
+# $FreeBSD$
+#
+
+PORTNAME= sipp
+PORTVERSION= 0.3
+CATEGORIES= net
+MASTER_SITES= ${MASTER_SITE_SOURCEFORGE_EXTENDED}
+MASTER_SITE_SUBDIR= sipp
+
+MAINTAINER= jesper@jdn.dk
+COMMENT= SIP testing tool
+
+WRKSRC= ${WRKDIR}/${PORTNAME}
+PLIST_FILES= bin/sipp
+MAN1= sipp.1
+
+pre-install:
+ @${CP} ${FILESDIR}/${MAN1} ${WRKSRC}/
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${PREFIX}/bin
+ ${INSTALL_MAN} ${WRKSRC}/sipp.1 ${PREFIX}/man/man1/sipp.1
+
+.include <bsd.port.mk>
diff --git a/net/sipp/distinfo b/net/sipp/distinfo
new file mode 100644
index 00000000000..ae067212fe4
--- /dev/null
+++ b/net/sipp/distinfo
@@ -0,0 +1,2 @@
+MD5 (sipp-0.3.tar.gz) = e088f4aa98bda0f3300b1250bd24094a
+SIZE (sipp-0.3.tar.gz) = 57099
diff --git a/net/sipp/files/patch-Makefile b/net/sipp/files/patch-Makefile
new file mode 100644
index 00000000000..270f90c5b2d
--- /dev/null
+++ b/net/sipp/files/patch-Makefile
@@ -0,0 +1,61 @@
+--- Makefile.orig Tue Jun 15 14:25:12 2004
++++ Makefile Tue Jun 15 14:25:28 2004
+@@ -30,6 +30,7 @@
+
+ # Libraries directories
+ LIBDIR_linux=
++LIBDIR_FreeBSD=
+ LIBDIR_hpux=
+ LIBDIR_tru64=
+
+@@ -50,6 +51,7 @@
+ # SYSTEM nickname
+ SYSTEM_HP-UX=hpux
+ SYSTEM_Linux=linux
++SYSTEM_FreeBSD=freebsd
+ SYSTEM_OSF1=tru64
+ SYSTEM=$(SYSTEM_$(OSNAME))
+
+@@ -60,29 +62,34 @@
+ CPP_hpux=aCC
+ CPP_linux=gcc
+ CPP_tru64=cxx
++CPP_freebsd=g++
+ CPP=$(CPP_$(SYSTEM))
+
+ #C Compiler Flags
+ CFLAGS_hpux=-D__HPUX +DAportable
+ CFLAGS_linux=-D__LINUX -pthread
++CFLAGS_freebsd=-D__LINUX -pthread
+ CFLAGS_tru64=-D__OSF1 -pthread
+ CFLAGS=$(CFLAGS_$(SYSTEM)) -D__3PCC__
+
+ #C++ Compiler Flags
+ CPPFLAGS_hpux=-AA -mt -D__HPUX +DAportable
+ CPPFLAGS_linux=-D__LINUX -pthread
++CPPFLAGS_freebsd=-D__LINUX -pthread
+ CPPFLAGS_tru64=-D__OSF1 -pthread
+ CPPFLAGS=$(CPPFLAGS_$(SYSTEM)) -D__3PCC__
+
+ #Linker mapping
+ CCLINK_hpux=aCC
+ CCLINK_linux=gcc
++CCLINK_freebsd=g++
+ CCLINK_tru64=cxx
+ CCLINK=$(CCLINK_$(SYSTEM))
+
+ #Linker Flags
+ LFLAGS_hpux=-AA -mt +DAportable
+ LFLAGS_linux=
++LFLAGS_freebsd=
+ LFLAGS_tru64=
+ LFLAGS=$(LFLAGS_$(SYSTEM))
+
+@@ -90,6 +97,7 @@
+ LIBS_linux= -ldl -lpthread -lcurses -lstdc++
+ LIBS_hpux= -lcurses
+ LIBS_tru64= -lcurses -lpthread
++LIBS_freebsd= -lcurses -pthread
+ LIBS=$(LIBS_$(SYSTEM))
+
+ # Operating system detection rule
diff --git a/net/sipp/files/patch-comp.h b/net/sipp/files/patch-comp.h
new file mode 100644
index 00000000000..d96897196d6
--- /dev/null
+++ b/net/sipp/files/patch-comp.h
@@ -0,0 +1,12 @@
+--- comp.h.orig Thu Jun 17 08:32:56 2004
++++ comp.h Thu Jun 17 08:33:04 2004
+@@ -19,6 +19,9 @@
+ * From Hewlett Packard Company.
+ */
+
++#if __FreeBSD__ < 5
++#include <sys/types.h>
++#endif
+ #include <sys/socket.h>
+
+ #ifdef __cplusplus
diff --git a/net/sipp/files/sipp.1 b/net/sipp/files/sipp.1
new file mode 100644
index 00000000000..58b4b19858a
--- /dev/null
+++ b/net/sipp/files/sipp.1
@@ -0,0 +1,448 @@
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. | will give a
+.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
+.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
+.\" expand to `' in nroff, nothing in troff, for use with C<>.
+.tr \(*W-|\(bv\*(Tr
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. nr % 0
+. rr F
+.\}
+.\"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "sipp 1"
+.TH sipp 1 "2004-06-16" "sipp" "User Contributed Documentation"
+.SH "NAME"
+sipp \- A benchworking tool for the SIP protocol.
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+Sipp is a performance test tool / traffic generator for the \s-1SIP\s0
+protocol. It comes with a few basic SipStone user-agents
+scenarios (\s-1UAC\s0 & \s-1UAS\s0), establishing and releasing multiple
+calls with the \s-1INVITE\s0 and \s-1BYE\s0 methods.
+.PP
+It can also read \s-1XML\s0 scenario files describing any performance
+testing configuration for \s-1SIP\s0.
+.SH "SYNTAX"
+.IX Header "SYNTAX"
+.Vb 1
+\& sipp remote_host[:remote_port] [options]
+.Ve
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+.Vb 1
+\& -v : Display version and copyright information.
+.Ve
+.PP
+.Vb 1
+\& -bg : Launch the tool in background mode.
+.Ve
+.PP
+.Vb 2
+\& -p local_port : Set the local port number. Default is a
+\& random free port chosen by the system.
+.Ve
+.PP
+.Vb 3
+\& -i local_ip : Set the local IP address for 'Contact:',
+\& 'Via:', and 'From:' headers. Default is
+\& primary host IP address.
+.Ve
+.PP
+.Vb 5
+\& -d duration : Controls the length (in milliseconds) of
+\& of calls. More precisely, this controls
+\& the duration of 'pause' instructions in
+\& the scenario, if they do not have a
+\& 'milliseconds' section. Default value is 0.
+.Ve
+.PP
+.Vb 3
+\& -r rate (cps) : Set the call rate (in calls per seconds).
+\& This value can be changed during test by
+\& pressing ENTER. Default is 10.
+.Ve
+.PP
+.Vb 5
+\& -sf filename : Loads an alternate xml scenario file.
+\& To learn more about XML scenario syntax,
+\& use the -sd option to dump embedded
+\& scenarios. They contain all the necessary
+\& help.
+.Ve
+.PP
+.Vb 3
+\& -sn name : Use a default scenario (embedded in
+\& the sipp executable). Available values
+\& in this version:
+.Ve
+.PP
+.Vb 4
+\& 'uac' : Standard SipStone UAC (default).
+\& 'uas' : Simple UAS responder (UDP only).
+\& 'regexp' : Standard SipStone UAC - with
+\& regexp and variables.
+.Ve
+.PP
+.Vb 1
+\& Default 3pcc scanerios (see -3pcc option):
+.Ve
+.PP
+.Vb 5
+\& '3pcc-C-A' : Controller A side (must be started
+\& after all other 3pcc scenarios)
+\& '3pcc-C-B' : Controller B side.
+\& '3pcc-A' : A side.
+\& '3pcc-B' : B side.
+.Ve
+.PP
+.Vb 2
+\& -sd name : Dumps a default scenario (embeded in
+\& the sipp executable)
+.Ve
+.PP
+.Vb 1
+\& -t [u1|un|t1|tn] : Set the transport mode:
+.Ve
+.PP
+.Vb 4
+\& u1: UDP with one socket (default),
+\& un: UDP with one socket per call,
+\& t1: TCP with one socket,
+\& tn: TCP with one socket per call.
+.Ve
+.PP
+.Vb 2
+\& -trace_msg : Displays sent and received SIP messages in
+\& sipp_messages.log
+.Ve
+.PP
+.Vb 3
+\& -trace_stat : Dumps all statistics in the <scenario_name.csv>
+\& file. Use the '-h stat' option for a detailed
+\& description of the statistics file content.
+.Ve
+.PP
+.Vb 6
+\& The -trace_stat option dumps all statistics in the
+\& <scenario_name.csv> file. The dump starts with one header
+\& line with all counters. All following lines are 'snapshots' of
+\& statistics counter given the statistics report frequency
+\& (-fd option). This file can be easily imported in any
+\& spreadsheet application, like Excel.
+.Ve
+.PP
+.Vb 3
+\& In counter names, (P) means 'Periodic' - since last
+\& statistic row and (C) means 'Cumulated' - since sipp was
+\& started.
+.Ve
+.PP
+.Vb 1
+\& Available statistics are:
+.Ve
+.PP
+.Vb 2
+\& - StartTime:
+\& Date and time when the test has started.
+.Ve
+.PP
+.Vb 2
+\& - LastResetTime:
+\& Date and time when periodic counters where last reseted.
+.Ve
+.PP
+.Vb 2
+\& - CurrentTime:
+\& Date and time of the statistic row.
+.Ve
+.PP
+.Vb 2
+\& - ElapsedTime:
+\& Elapsed time.
+.Ve
+.PP
+.Vb 2
+\& - CallRate:
+\& Call rate (calls per seconds).
+.Ve
+.PP
+.Vb 2
+\& - IncomingCall:
+\& Number of incoming calls.
+.Ve
+.PP
+.Vb 2
+\& - OutgoingCall:
+\& Number of outgoing calls.
+.Ve
+.PP
+.Vb 2
+\& - TotalCallCreated:
+\& Number of calls created.
+.Ve
+.PP
+.Vb 2
+\& - CurrentCall:
+\& Number of calls currently ongoing.
+.Ve
+.PP
+.Vb 2
+\& - SuccessfulCall:
+\& Number of successful calls.
+.Ve
+.PP
+.Vb 2
+\& - FailedCall:
+\& Number of failed calls (all reasons).
+.Ve
+.PP
+.Vb 3
+\& - FailedCannotSendMessage:
+\& Number of failed calls because Sipp cannot send the
+\& message (transport issue).
+.Ve
+.PP
+.Vb 3
+\& - FailedMaxUDPRetrans:
+\& Number of failed calls because the maximum number of
+\& UDP retransmission attempts has been reached.
+.Ve
+.PP
+.Vb 3
+\& - FailedUnexpectedMessage:
+\& Number of failed calls because the SIP message received
+\& cannot be associated to an existing call.
+.Ve
+.PP
+.Vb 4
+\& - FailedCallRejected:
+\& Number of failed calls because of Sipp internal error.
+\& (a scenario sync command is not recognized or a scenario
+\& action failed or a scenario variable assignment failed).
+.Ve
+.PP
+.Vb 4
+\& - FailedCmdNotSent:
+\& Number of failed calls because of inter-Sipp
+\& communication error (a scenario sync command failed to
+\& be sent).
+.Ve
+.PP
+.Vb 5
+\& - FailedRegexpDoesntMatch:
+\& Number of failed calls because of regexp that doesn't
+\& match (there might be several regexp that don't match
+\& during the call but the counter is increased only by
+\& one).
+.Ve
+.PP
+.Vb 3
+\& - FailedRegexpHdrNotFound:
+\& Number of failed calls because of regexp with hdr
+\& option but no matching header found.
+.Ve
+.PP
+.Vb 1
+\& -stf file_name : Set the file name to use to dump statistics
+.Ve
+.PP
+.Vb 2
+\& -trace_err : Trace all unexpected messages in
+\& sipp_errors.log.
+.Ve
+.PP
+.Vb 2
+\& -s service_name : Set the username part of the resquest URI.
+\& Default is 'service'.
+.Ve
+.PP
+.Vb 2
+\& -f frequency : Set the statistics report frequency on screen
+\& (in seconds). Default is 1.
+.Ve
+.PP
+.Vb 2
+\& -fd frequency : Set the statistics dump log report frequency
+\& (in seconds). Default is 60.
+.Ve
+.PP
+.Vb 4
+\& -l calls_limit : Set the maximum number of simultaneous
+\& calls. Once this limit is reached, traffic
+\& is decreased until the number of open calls
+\& goes down. Default:
+.Ve
+.PP
+.Vb 1
+\& (3 * call_duration (s) * rate).
+.Ve
+.PP
+.Vb 2
+\& -m calls : Stop the test and exit when 'calls' calls are
+\& processed.
+.Ve
+.PP
+.Vb 3
+\& -mp local_port : Set the local RTP echo port number. Default
+\& is none. RTP/UDP packets received on that
+\& port are echoed to their sender.
+.Ve
+.PP
+.Vb 1
+\& -mi local_rtp_ip : Set the local IP address for RTP echo.
+.Ve
+.PP
+.Vb 5
+\& -3pcc ip:port : Launch the tool in 3pcc mode ("Third Party
+\& call control"). The passed ip address
+\& is the address of the twin sipp 3pcc tool
+\& The used scenario must be a 3pcc relative
+\& scenario
+.Ve
+.PP
+.Vb 1
+\& -nr : Disable retransmission in UDP mode.
+.Ve
+.SH "EXIT CODE"
+.IX Header "EXIT CODE"
+.Vb 7
+\& Upon exit (on fatal error or when the number of asked calls (-m
+\& option) is reached, sipp exits with one of the following exit
+\& code:
+\& 0: All calls were successful
+\& 1: At least one call failed
+\& 99: Normal exit without calls processed
+\& -1: Fatal error
+.Ve
+.SH "EXAMPLES"
+.IX Header "EXAMPLES"
+.Vb 4
+\& Run sipp with embedded server (uas) scenario:
+\& sipp -sn uas
+\& On the same host, run sipp with embedded client (uac) scenario
+\& sipp -sn uac 127.0.0.1
+.Ve
+.SH "AUTHORS"
+.IX Header "AUTHORS"
+.Vb 2
+\& Richard Gayraud <richard_gayraud@users.sourceforge.net>
+\& O Jacques <ojacques@users.sourceforge.net>
+.Ve
diff --git a/net/sipp/pkg-descr b/net/sipp/pkg-descr
new file mode 100644
index 00000000000..b7635f87453
--- /dev/null
+++ b/net/sipp/pkg-descr
@@ -0,0 +1,6 @@
+Sipp is a performance test tool / traffic generator for the SIP protocol.
+
+It comes with a few basic SipStone user-agents scenarios (UAC & UAS), i
+establishing and releasing multiple calls with the INVITE and BYE methods.
+
+WWW: http://sipp.sourceforge.net/