import ports/net/owamp, ok benoit@

OWAMP is a command line client application and a policy daemon used
to determine one way latencies between hosts. It is an implementation
of the OWAMP protocol as defined by RFC4656.

With roundtrip-based measurements, it is hard to isolate the direction
in which congestion is experienced. One-way measurements solve this
problem and make the direction of congestion immediately apparent.
Since traffic can be asymmetric at many sites that are primarily
producers or consumers of data, this allows for more informative
measurements. One-way measurements allow the user to better isolate
the effects of specific parts of a network on the treatment of
traffic.
This commit is contained in:
sthen 2011-07-08 09:31:06 +00:00
parent ca2bf0e658
commit 7bc08bcb30
8 changed files with 307 additions and 0 deletions

29
net/owamp/Makefile Normal file
View File

@ -0,0 +1,29 @@
# $OpenBSD: Makefile,v 1.1.1.1 2011/07/08 09:31:06 sthen Exp $
COMMENT = rfc4656 one-way active measurement protocol
DISTNAME = owamp-3.1
CATEGORIES = net
HOMEPAGE = http://www.internet2.edu/performance/owamp/
# Custom, see LICENSE.
# Looks like BSD at first but note last paragraph.
PERMIT_PACKAGE_CDROM = Yes
PERMIT_PACKAGE_FTP = Yes
PERMIT_DISTFILES_CDROM =Yes
PERMIT_DISTFILES_FTP = Yes
WANTLIB += c m
MASTER_SITES = http://software.internet2.edu/sources/owamp/
CONFIGURE_STYLE = gnu
post-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/examples/owampd
${INSTALL_DATA} ${WRKSRC}/conf/owampd.conf \
${WRKSRC}/conf/owampd.limits ${PREFIX}/share/examples/owampd
.include <bsd.port.mk>

5
net/owamp/distinfo Normal file
View File

@ -0,0 +1,5 @@
MD5 (owamp-3.1.tar.gz) = fpx1sxAspI3yzX4N533nWQ==
RMD160 (owamp-3.1.tar.gz) = layCp6RGvAV8jREQdva2Wli9xBk=
SHA1 (owamp-3.1.tar.gz) = N/XAr08NUdEXxFnJ13j9xIVcgN8=
SHA256 (owamp-3.1.tar.gz) = 2biV9FO5apQUdDZ+gGm/wgl+9C/CB6CrtUi88jpzCgE=
SIZE (owamp-3.1.tar.gz) = 820123

View File

@ -0,0 +1,39 @@
$OpenBSD: patch-conf_owampd_conf,v 1.1.1.1 2011/07/08 09:31:06 sthen Exp $
--- conf/owampd.conf.orig Fri Mar 7 23:13:35 2008
+++ conf/owampd.conf Fri Mar 7 23:16:27 2008
@@ -21,8 +21,8 @@
# run as group/user - only used if effective uid is root.
# (defaults to nil)
-user owamp
-group owamp
+user _owampd
+group _owampd
# not really used, but what the heck.
# (defaults to !verbose)
@@ -30,7 +30,7 @@ verbose
# where should syslog messages go?
# (defaults to daemon)
-facility local5
+#facility local5
# include src file:line in log messages
# keep this on, and help us with more specific bug reports!
@@ -39,13 +39,13 @@ loglocation
# location for owampd.pid and owampd.info files
# (defaults to $cwd)
-#vardir /var/run
+vardir /var/run/owampd
# location for "recv" session files.
# The "catalog" subdirectory is completely cleaned and recreated each time
# owampd is restarted. DONT PUT ANYTHING IN THERE!
# (defaults to $cwd)
-#datadir /big/enough
+datadir /var/db/owampd
# authmode - uncomment to make only Open.
# (defaults to OAE)

View File

@ -0,0 +1,112 @@
$OpenBSD: patch-owamp_endpoint_c,v 1.1.1.1 2011/07/08 09:31:06 sthen Exp $
remove conflict with sys/time.h macros
--- owamp/endpoint.c.orig Fri Jan 23 17:52:04 2009
+++ owamp/endpoint.c Tue Apr 21 18:03:37 2009
@@ -1320,7 +1320,7 @@ run_sender(
OWPScheduleContextGenerateNextDelta(
ep->tsession->sctx));
OWPNum64ToTimespec(&nexttime,nextoffset);
- timespecadd(&nexttime,&ep->start);
+ mytimespecadd(&nexttime,&ep->start);
*seq = htonl(i);
/*
@@ -1371,7 +1371,7 @@ AGAIN:
* send time, then skip actually sending.
*/
latetime = timeout;
- timespecadd(&latetime,&nexttime);
+ mytimespecadd(&latetime,&nexttime);
if(timespeccmp(&currtime,&latetime,>)){
skip(ep,i);
goto SKIP_SEND;
@@ -1469,7 +1469,7 @@ SKIP_SEND:
*/
sleeptime = nexttime;
- timespecsub(&sleeptime,&currtime);
+ mytimespecsub(&sleeptime,&currtime);
if((nanosleep(&sleeptime,NULL) == 0) || (errno == EINTR)){
goto AGAIN;
}
@@ -1492,8 +1492,8 @@ SKIP_SEND:
ep->tsession->test_spec.loss_timeout)+1;
#endif
latetime = timeout;
- timespecadd(&latetime,&nexttime);
- timespecadd(&latetime,&ep->enddelay);
+ mytimespecadd(&latetime,&nexttime);
+ mytimespecadd(&latetime,&ep->enddelay);
while(!owp_usr2 && !owp_int){
if(!_OWPGetTimespec(ep->cntrl->ctx,&currtime,&esterror,&sync)){
@@ -1506,7 +1506,7 @@ SKIP_SEND:
break;
sleeptime = latetime;
- timespecsub(&sleeptime,&currtime);
+ mytimespecsub(&sleeptime,&currtime);
#if NOT
OWPError(ep->cntrl->ctx,OWPErrFATAL,OWPErrUNKNOWN,
"run_sender: end nanosleep(%lu.%lu,nil)",
@@ -1885,8 +1885,8 @@ flush_lost(
* in the missing packet queue should be declared lost.
*/
timespecclear(&expectspec);
- timespecadd(&expectspec,&ep->begin->absolute);
- timespecadd(&expectspec,&lostspec);
+ mytimespecadd(&expectspec,&ep->begin->absolute);
+ mytimespecadd(&expectspec,&lostspec);
/*
* If owp_usr2, then StopSessions has been received. We
@@ -1905,8 +1905,8 @@ flush_lost(
*/
if(owp_usr2){
timespecclear(&currtime);
- timespecadd(&currtime,&expectspec);
- timespecadd(&currtime,&lostspec);
+ mytimespecadd(&currtime,&expectspec);
+ mytimespecadd(&currtime,&lostspec);
}
/*
@@ -1977,16 +1977,16 @@ flush_lost(
free_node(ep,node);
timespecclear(&expectspec);
- timespecadd(&expectspec,&ep->begin->absolute);
- timespecadd(&expectspec,&lostspec);
+ mytimespecadd(&expectspec,&ep->begin->absolute);
+ mytimespecadd(&expectspec,&lostspec);
/*
* StopSessions received: fast-forward currtime
*/
if(owp_usr2){
timespecclear(&currtime);
- timespecadd(&currtime,&expectspec);
- timespecadd(&currtime,&lostspec);
+ mytimespecadd(&currtime,&expectspec);
+ mytimespecadd(&currtime,&lostspec);
}
}
@@ -2181,11 +2181,11 @@ again:
* and not the timer.)
*/
tvalclear(&wake.it_value);
- timespecadd((struct timespec*)&wake.it_value,
+ mytimespecadd((struct timespec*)&wake.it_value,
&ep->end->absolute);
- timespecadd((struct timespec*)&wake.it_value,&lostspec);
- timespecadd((struct timespec*)&wake.it_value,&fudgespec);
- timespecsub((struct timespec*)&wake.it_value,&currtime);
+ mytimespecadd((struct timespec*)&wake.it_value,&lostspec);
+ mytimespecadd((struct timespec*)&wake.it_value,&fudgespec);
+ mytimespecsub((struct timespec*)&wake.it_value,&currtime);
wake.it_value.tv_usec /= 1000; /* convert nsec to usec */
tvalclear(&wake.it_interval);

View File

@ -0,0 +1,37 @@
$OpenBSD: patch-owamp_owamp_h,v 1.1.1.1 2011/07/08 09:31:06 sthen Exp $
remove conflict with sys/time.h macros
--- owamp/owamp.h.orig Fri Jan 23 17:52:04 2009
+++ owamp/owamp.h Tue Apr 21 18:03:37 2009
@@ -1627,8 +1627,8 @@ OWPTestDiskspace(
((tvp)->tv_sec cmp (uvp)->tv_sec))
#endif
-#ifndef timespecadd
-#define timespecadd(vvp, uvp) \
+#ifndef mytimespecadd
+#define mytimespecadd(vvp, uvp) \
do { \
(vvp)->tv_sec += (uvp)->tv_sec; \
(vvp)->tv_nsec += (uvp)->tv_nsec; \
@@ -1639,8 +1639,8 @@ OWPTestDiskspace(
} while (0)
#endif
-#ifndef timespecsub
-#define timespecsub(vvp, uvp) \
+#ifndef mytimespecsub
+#define mytimespecsub(vvp, uvp) \
do { \
(vvp)->tv_sec -= (uvp)->tv_sec; \
(vvp)->tv_nsec -= (uvp)->tv_nsec; \
@@ -1662,7 +1662,7 @@ OWPTestDiskspace(
ts1_ = *uvp; \
ts2_ = *vvp; \
} \
- timespecsub(&ts1_,&ts2_); \
+ mytimespecsub(&ts1_,&ts2_); \
*vvp = ts1_; \
} while(0)
#endif

12
net/owamp/pkg/DESCR Normal file
View File

@ -0,0 +1,12 @@
OWAMP is a command line client application and a policy daemon used
to determine one way latencies between hosts. It is an implementation
of the OWAMP protocol as defined by RFC4656.
With roundtrip-based measurements, it is hard to isolate the direction
in which congestion is experienced. One-way measurements solve this
problem and make the direction of congestion immediately apparent.
Since traffic can be asymmetric at many sites that are primarily
producers or consumers of data, this allows for more informative
measurements. One-way measurements allow the user to better isolate
the effects of specific parts of a network on the treatment of
traffic.

57
net/owamp/pkg/PLIST Normal file
View File

@ -0,0 +1,57 @@
@comment $OpenBSD: PLIST,v 1.1.1.1 2011/07/08 09:31:06 sthen Exp $
@newgroup _owampd:678
@newuser _owampd:678:_owampd:daemon:owampd user:/nonexistent:/sbin/nologin
@bin bin/aespasswd
@bin bin/owampd
bin/owfetch
@bin bin/owping
bin/owstats
@bin bin/owtvec
bin/owup
@bin bin/pfstore
@bin bin/powstream
include/I2util/
include/I2util/Pthread.h
include/I2util/addr.h
include/I2util/conf.h
include/I2util/errlog.h
include/I2util/errlogimmediate.h
include/I2util/errlogsyslog.h
include/I2util/hex.h
include/I2util/hmac-sha1.h
include/I2util/io.h
include/I2util/mach_dep.h
include/I2util/md5.h
include/I2util/pbkdf2.h
include/I2util/random.h
include/I2util/readpassphrase.h
include/I2util/saddr.h
include/I2util/sha1.h
include/I2util/sha1P.h
include/I2util/table.h
include/I2util/util.h
lib/libI2util.a
lib/libowamp.a
@man man/man1/aespasswd.1
@man man/man1/owfetch.1
@man man/man1/owping.1
@man man/man1/owstats.1
@man man/man1/owup.1
@man man/man1/pfstore.1
@man man/man1/powstream.1
@man man/man5/owampd.conf.5
@man man/man5/owampd.limits.5
@man man/man5/owampd.pfs.5
@man man/man8/owampd.8
@owner _owampd
@group _owampd
@sample /var/db/owampd/
@owner
@group
share/examples/owampd/
@sample ${SYSCONFDIR}/owampd/
share/examples/owampd/owampd.conf
@sample ${SYSCONFDIR}/owampd/owampd.conf
share/examples/owampd/owampd.limits
@sample ${SYSCONFDIR}/owampd/owampd.limits
@rcscript ${RCDIR}/owampd

16
net/owamp/pkg/owampd.rc Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
#
# $OpenBSD: owampd.rc,v 1.1.1.1 2011/07/08 09:31:06 sthen Exp $
daemon="${TRUEPREFIX}/bin/owampd"
daemon_flags="-c ${SYSCONFDIR}/owampd -d /var/db/owampd -U _owampd -G _owampd -R /var/run"
. /etc/rc.d/rc.subr
rc_reload=NO
rc_pre() {
install -d -o _owampd /var/run/owampd
}
rc_cmd $1