git: c65f5421d9a0 - main - net/dot1ag-utils: new port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 28 Jul 2026 18:38:07 UTC
The branch main has been updated by bms:
URL: https://cgit.FreeBSD.org/ports/commit/?id=c65f5421d9a01bdcc87ce4845dc042f45d7341af
commit c65f5421d9a01bdcc87ce4845dc042f45d7341af
Author: Bruce M Simpson <bms@FreeBSD.org>
AuthorDate: 2026-07-28 14:04:52 +0000
Commit: Bruce M Simpson <bms@FreeBSD.org>
CommitDate: 2026-07-28 18:36:37 +0000
net/dot1ag-utils: new port
dot1ag-utils is a 2-clause BSD licensed suite of utilities providing Layer 2
Ping & Traceroute functionality for *BSD platforms. The code is currently
hosted at SourceHut ; please be considerate with "git archive" load. This
had languished in Bugzilla for some 15 years after thompsa@ submitted it.
Approved-by: pi
PR: 163072
---
net/dot1ag-utils/Makefile | 19 +++++++++++++
net/dot1ag-utils/distinfo | 3 ++
net/dot1ag-utils/files/dot1ag_ccd.in | 39 ++++++++++++++++++++++++++
net/dot1ag-utils/files/dot1agd.in | 34 ++++++++++++++++++++++
net/dot1ag-utils/files/patch-src_dot1ag__eth.c | 11 ++++++++
net/dot1ag-utils/pkg-descr | 4 +++
net/dot1ag-utils/pkg-plist | 16 +++++++++++
7 files changed, 126 insertions(+)
diff --git a/net/dot1ag-utils/Makefile b/net/dot1ag-utils/Makefile
new file mode 100644
index 000000000000..72b9fb349054
--- /dev/null
+++ b/net/dot1ag-utils/Makefile
@@ -0,0 +1,19 @@
+PORTNAME= dot1ag-utils
+PORTVERSION= 1.0.1
+CATEGORIES= net
+MASTER_SITES= https://git.sr.ht/~bms/${PORTNAME}/archive/${DISTVERSIONFULL}${EXTRACT_SUFX}?dummy=/
+
+MAINTAINER= bms@FreeBSD.org
+COMMENT= Utilities for IEEE 802.1ag Connectivity Fault Management
+WWW= https://github.com/vnrick/dot1ag-utils
+
+LICENSE= BSD2CLAUSE
+
+GNU_CONFIGURE= yes
+USE_RC_SUBR= dot1ag_ccd dot1agd
+
+OPTIONS_DEFINE= DOCS MANPAGES
+OPTIONS_DEFAULT= DOCS MANPAGES
+OPTIONS_SUB= yes
+
+.include <bsd.port.mk>
diff --git a/net/dot1ag-utils/distinfo b/net/dot1ag-utils/distinfo
new file mode 100644
index 000000000000..bd154de70cbb
--- /dev/null
+++ b/net/dot1ag-utils/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1785233480
+SHA256 (dot1ag-utils-1.0.1.tar.gz) = a074e731690a30404fd61e2af0e8611ded9b7799295236a7bb60d4724e870f1d
+SIZE (dot1ag-utils-1.0.1.tar.gz) = 92446
diff --git a/net/dot1ag-utils/files/dot1ag_ccd.in b/net/dot1ag-utils/files/dot1ag_ccd.in
new file mode 100644
index 000000000000..4ab39dde3f36
--- /dev/null
+++ b/net/dot1ag-utils/files/dot1ag_ccd.in
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# PROVIDE: dot1ag_ccd
+# REQUIRE: NETWORKING mountall quota
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# dot1ag_ccd_enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable dot1ag_ccd.
+# dot1ag_ccd_interface (str): Interface to listen on.
+# dot1ag_ccd_flags (str): Additional arguments to dot1ag_ccd
+#
+# See dot1ag_ccd(8) for flags
+#
+
+. /etc/rc.subr
+
+name="dot1ag_ccd"
+rcvar="${name}_enable"
+
+load_rc_config $name
+
+: ${dot1ag_ccd_enable="NO"}
+: ${dot1ag_ccd_interface=""}
+: ${dot1ag_ccd_flags=""}
+
+
+start_cmd="${name}_start"
+pidfile="/var/run/${name}.pid"
+command="%%PREFIX%%/bin/${name}"
+
+dot1ag_ccd_start() {
+ echo "Starting ${name}."
+ /usr/sbin/daemon -p $pidfile ${command} -i ${dot1ag_ccd_interface} ${dot1ag_ccd_flags}
+}
+
+run_rc_command "$1"
+
diff --git a/net/dot1ag-utils/files/dot1agd.in b/net/dot1ag-utils/files/dot1agd.in
new file mode 100644
index 000000000000..648ac93665e5
--- /dev/null
+++ b/net/dot1ag-utils/files/dot1agd.in
@@ -0,0 +1,34 @@
+#!/bin/sh
+#
+# PROVIDE: dot1agd
+# REQUIRE: NETWORKING mountall quota
+#
+# Add the following lines to /etc/rc.conf to enable dot1agd
+#
+# dot1agd_enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable dot1agd.
+# dot1agd_interface (str): Interface to listen on.
+#
+
+. /etc/rc.subr
+
+name="dot1agd"
+rcvar="${name}_enable"
+
+load_rc_config $name
+
+: ${dot1agd_enable="NO"}
+: ${dot1agd_interface=""}
+
+
+start_cmd="${name}_start"
+pidfile="/var/run/${name}.pid"
+command="%%PREFIX%%/bin/${name}"
+
+dot1agd_start() {
+ echo "Starting ${name}."
+ /usr/sbin/daemon -p $pidfile ${command} -i ${dot1agd_interface}
+}
+
+run_rc_command "$1"
+
diff --git a/net/dot1ag-utils/files/patch-src_dot1ag__eth.c b/net/dot1ag-utils/files/patch-src_dot1ag__eth.c
new file mode 100644
index 000000000000..83e68dc51cf3
--- /dev/null
+++ b/net/dot1ag-utils/files/patch-src_dot1ag__eth.c
@@ -0,0 +1,11 @@
+--- src/dot1ag_eth.c.orig 2012-09-20 12:44:39 UTC
++++ src/dot1ag_eth.c
+@@ -78,7 +78,7 @@ get_local_mac(char *dev, uint8_t *ea) {
+ if (ifa->ifa_addr == NULL) {
+ continue;
+ }
+- if (strncmp(ifa->ifa_name, dev, sizeof(dev)) != 0) {
++ if (strcmp(ifa->ifa_name, dev) != 0) {
+ continue; /* not the interface we are looking for */
+ }
+ sdl = (struct sockaddr_dl *) ifa->ifa_addr;
diff --git a/net/dot1ag-utils/pkg-descr b/net/dot1ag-utils/pkg-descr
new file mode 100644
index 000000000000..50cc313c4c6d
--- /dev/null
+++ b/net/dot1ag-utils/pkg-descr
@@ -0,0 +1,4 @@
+The dot1ag-utils software package is an Open Source (new BSD License)
+implementation of the IEEE 802.1ag protocol and is supported on Arista Networks
+switches and Linux, FreeBSD and MacOSX servers. It provides several debugging
+tools that interact with IEEE 802.1ag enabled routers and switches.
diff --git a/net/dot1ag-utils/pkg-plist b/net/dot1ag-utils/pkg-plist
new file mode 100644
index 000000000000..36350eadbc7d
--- /dev/null
+++ b/net/dot1ag-utils/pkg-plist
@@ -0,0 +1,16 @@
+bin/dot1ag_ccd
+bin/dot1agd
+bin/ethping
+bin/ethtrace
+%%MANPAGES%%share/man/man1/ethping.1.gz
+%%MANPAGES%%share/man/man1/ethtrace.1.gz
+%%MANPAGES%%share/man/man1/dot1ag_ccd.1.gz
+%%MANPAGES%%share/man/man1/dot1agd.1.gz
+%%PORTDOCS%%%%DOCSDIR%%/CREDITS
+%%PORTDOCS%%%%DOCSDIR%%/IMPLEMENTATION
+%%PORTDOCS%%%%DOCSDIR%%/INSTALLATION
+%%PORTDOCS%%%%DOCSDIR%%/INSTALLATION-ARISTA
+%%PORTDOCS%%%%DOCSDIR%%/LICENSE
+%%PORTDOCS%%%%DOCSDIR%%/README
+%%PORTDOCS%%%%DOCSDIR%%/RELNOTES
+%%PORTDOCS%%%%DOCSDIR%%/TODO