Skip to content

Commit

Permalink
Merge from vendor branch FIX_VENDOR:
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
sthen committed Jul 8, 2011
2 parents 9fda9cc + a7f46b2 commit 28216f8
Showing 8 changed files with 307 additions and 0 deletions.
29 changes: 29 additions & 0 deletions net/owamp/Makefile
Original file line number Diff line number Diff line change
@@ -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 changes: 5 additions & 0 deletions net/owamp/distinfo
Original file line number Diff line number Diff line change
@@ -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
39 changes: 39 additions & 0 deletions net/owamp/patches/patch-conf_owampd_conf
Original file line number Diff line number Diff line change
@@ -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)
112 changes: 112 additions & 0 deletions net/owamp/patches/patch-owamp_endpoint_c
Original file line number Diff line number Diff line change
@@ -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);
37 changes: 37 additions & 0 deletions net/owamp/patches/patch-owamp_owamp_h
Original file line number Diff line number Diff line change
@@ -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 changes: 12 additions & 0 deletions net/owamp/pkg/DESCR
Original file line number Diff line number Diff line change
@@ -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 changes: 57 additions & 0 deletions net/owamp/pkg/PLIST
Original file line number Diff line number Diff line change
@@ -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 changes: 16 additions & 0 deletions net/owamp/pkg/owampd.rc
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 28216f8

Please sign in to comment.