From: "Mike Frysinger" <vapier@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/netifrc:master commit in: net/
Date: Mon, 25 May 2015 10:04:19 +0000 (UTC) [thread overview]
Message-ID: <1426377306.6befe06a7e72b5b7f17c7f1118fc16000a0cce13.vapier@OpenRC> (raw)
commit: 6befe06a7e72b5b7f17c7f1118fc16000a0cce13
Author: Doug Freed <dwfreed <AT> mtu <DOT> edu>
AuthorDate: Sat Mar 14 23:55:06 2015 +0000
Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Sat Mar 14 23:55:06 2015 +0000
URL: https://gitweb.gentoo.org/proj/netifrc.git/commit/?id=6befe06a
bridge: use/prefer iproute2/sysfs where possible
Use and prefer iproute2 and sysfs over bridge-utils where possible.
Most users already have iproute2 installed, so this reduces the number
of external programs they need to use all of netifrc's functionality.
net/bridge.sh | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 83 insertions(+), 6 deletions(-)
diff --git a/net/bridge.sh b/net/bridge.sh
index 60d3eeb..87e4055 100644
--- a/net/bridge.sh
+++ b/net/bridge.sh
@@ -4,7 +4,7 @@
bridge_depend()
{
before interface macnet
- program brctl
+ program ip brctl
}
_config_vars="$_config_vars bridge bridge_add brctl"
@@ -29,6 +29,83 @@ _bridge_ports()
done
}
+_brctl()
+{
+ if [ -z "${_bridge_use_ip}" ]; then
+ if ip -V >/dev/null 2>&1 && [ "$(ip -V | cut -c 24-29)" -ge 130430 ]; then
+ _bridge_use_ip=1
+ else
+ _bridge_use_ip=0
+ fi
+ fi
+ if [ "${_bridge_use_ip}" -eq 1 ]; then
+ case "$1" in
+ addbr)
+ ip link add "$2" type bridge
+ ;;
+ delbr)
+ ip link del "$2"
+ ;;
+ addif)
+ ip link set "$3" master "$2"
+ ;;
+ delif)
+ ip link set "$3" nomaster
+ ;;
+ setageing)
+ echo "$3" > /sys/class/net/"$2"/bridge/ageing_time
+ ;;
+ setgcint)
+ # appears to have been dropped in Debian, and I don't see a sysfs file for it
+ eerror "brctl setgcint is not supported!"
+ return 1
+ ;;
+ stp)
+ if [ "$3" = "on" -o "$3" = "yes" -o "$3" = "1" ]; then
+ _stp_state=1
+ elif [ "$3" = "off" -o "$3" = "no" -o "$3" = "0" ]; then
+ _stp_state=0
+ else
+ eerror "Invalid STP state for brctl stp!"
+ return 1
+ fi
+ echo ${_stp_state} > /sys/class/net/"$2"/bridge/stp_state
+ ;;
+ setbridgeprio)
+ echo "$3" > /sys/class/net/"$2"/bridge/priority
+ ;;
+ setfd)
+ echo "$3" > /sys/class/net/"$2"/bridge/forward_delay
+ ;;
+ sethello)
+ echo "$3" > /sys/class/net/"$2"/bridge/hello_time
+ ;;
+ setmaxage)
+ echo "$3" > /sys/class/net/"$2"/bridge/max_age
+ ;;
+ setpathcost)
+ echo "$4" > /sys/class/net/"$2"/brif/"$3"/path_cost
+ ;;
+ setportprio)
+ echo "$4" > /sys/class/net/"$2"/brif/"$3"/priority
+ ;;
+ hairpin)
+ if [ "$4" -eq "on" -o "$4" -eq "yes" -o "$4" -eq "1" ]; then
+ _hairpin_mode=1
+ elif [ "$4" -eq "off" -o "$4" -eq "no" -o "$4" -eq "0" ]; then
+ _hairpin_mode=0
+ else
+ eerror "Invalid hairpin mode for brctl hairpin!"
+ return 1
+ fi
+ echo ${_hairpin_mode} > /sys/class/net/"$2"/brif/"$3"/hairpin_mode
+ ;;
+ esac
+ else
+ brctl "$@"
+ fi
+}
+
bridge_pre_start()
{
local brif= oiface="${IFACE}" e= x=
@@ -70,7 +147,7 @@ bridge_pre_start()
if ! _is_bridge ; then
ebegin "Creating bridge ${IFACE}"
- if ! brctl addbr "${IFACE}"; then
+ if ! _brctl addbr "${IFACE}"; then
eend 1
return 1
fi
@@ -89,7 +166,7 @@ bridge_pre_start()
x=$1
shift
set -- "${x}" "${IFACE}" "$@"
- brctl "$@"
+ _brctl "$@"
done
unset IFS
@@ -120,7 +197,7 @@ bridge_pre_start()
fi
# The interface is known to exist now
_up
- if ! brctl addif "${BR_IFACE}" "${x}"; then
+ if ! _brctl addif "${BR_IFACE}" "${x}"; then
eend 1
return 1
fi
@@ -176,13 +253,13 @@ bridge_post_stop()
ebegin "Removing port ${port}${extra}"
local IFACE="${port}"
_set_flag -promisc
- brctl delif "${iface}" "${port}"
+ _brctl delif "${iface}" "${port}"
eend $?
done
if ${delete}; then
eoutdent
- brctl delbr "${iface}"
+ _brctl delbr "${iface}"
eend $?
fi
next reply other threads:[~2015-05-25 10:04 UTC|newest]
Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-25 10:04 Mike Frysinger [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-03-18 21:50 [gentoo-commits] proj/netifrc:master commit in: net/ Sam James
2025-03-18 21:50 Sam James
2025-03-18 21:50 Sam James
2024-09-29 0:28 Sam James
2024-09-23 12:02 Sam James
2024-09-09 22:43 Patrick McLean
2024-09-01 9:22 Sam James
2024-09-01 9:21 Sam James
2024-08-28 18:54 Patrick McLean
2024-06-11 0:39 Patrick McLean
2024-06-11 0:39 Patrick McLean
2024-05-23 18:12 Patrick McLean
2023-11-26 5:31 Robin H. Johnson
2023-11-25 4:52 Robin H. Johnson
2023-10-19 22:57 Sam James
2023-09-10 15:15 Sam James
2023-05-29 0:17 Mike Gilbert
2023-04-19 17:14 Robin H. Johnson
2023-04-17 4:35 Sam James
2023-02-12 6:54 Sam James
2023-01-19 18:50 Sam James
2023-01-19 18:50 Sam James
2023-01-17 15:06 Sam James
2023-01-17 15:06 Sam James
2023-01-17 15:06 Sam James
2023-01-15 20:37 Sam James
2023-01-15 14:03 Sam James
2023-01-15 14:03 Sam James
2023-01-15 1:53 Sam James
2023-01-15 1:51 Sam James
2023-01-15 1:51 Sam James
2022-12-25 19:14 Robin H. Johnson
2022-12-25 19:07 Robin H. Johnson
2021-03-31 1:11 Patrick McLean
2021-03-11 16:54 Lars Wendler
2021-03-11 16:54 Lars Wendler
2021-03-11 16:54 Lars Wendler
2021-02-02 8:28 Lars Wendler
2021-01-27 16:55 Lars Wendler
2021-01-27 14:19 Lars Wendler
2021-01-27 14:06 Lars Wendler
2021-01-24 10:37 Lars Wendler
2021-01-18 14:40 Lars Wendler
2021-01-18 13:04 Lars Wendler
2021-01-18 12:33 Lars Wendler
2021-01-18 12:33 Lars Wendler
2021-01-05 14:27 Lars Wendler
2021-01-05 12:46 Lars Wendler
2021-01-05 12:46 Lars Wendler
2020-12-15 20:11 Lars Wendler
2020-06-02 21:54 Robin H. Johnson
2020-05-31 6:05 Robin H. Johnson
2020-05-31 5:42 Robin H. Johnson
2020-05-31 5:29 Robin H. Johnson
2020-05-31 5:29 Robin H. Johnson
2020-05-31 5:13 Robin H. Johnson
2020-05-31 5:13 Robin H. Johnson
2020-01-04 8:06 Robin H. Johnson
2020-01-04 7:59 Robin H. Johnson
2019-07-09 19:59 Ben Kohler
2019-07-09 19:59 Ben Kohler
2019-07-09 17:39 Ben Kohler
2019-04-21 4:11 Robin H. Johnson
2018-07-12 6:25 Robin H. Johnson
2018-07-10 21:11 Jason Donenfeld
2018-01-21 21:59 Robin H. Johnson
2017-11-27 20:22 Robin H. Johnson
2017-11-27 20:22 Robin H. Johnson
2017-11-14 20:48 Robin H. Johnson
2017-11-14 20:48 Robin H. Johnson
2017-10-21 20:56 Robin H. Johnson
2017-06-09 23:59 Robin H. Johnson
2017-06-09 23:55 Robin H. Johnson
2017-06-09 23:52 Robin H. Johnson
2017-06-09 23:52 Robin H. Johnson
2017-01-27 21:54 Robin H. Johnson
2016-10-27 1:23 Robin H. Johnson
2016-10-24 23:16 Robin H. Johnson
2016-10-24 20:58 Robin H. Johnson
2016-10-24 16:49 Robin H. Johnson
2016-10-24 0:25 Robin H. Johnson
2016-10-24 0:23 Robin H. Johnson
2016-10-24 0:23 Robin H. Johnson
2016-10-24 0:04 Robin H. Johnson
2016-10-24 0:04 Robin H. Johnson
2016-10-23 23:50 Robin H. Johnson
2016-10-23 23:50 Robin H. Johnson
2016-10-23 23:50 Robin H. Johnson
2016-10-23 22:39 Robin H. Johnson
2016-10-23 22:39 Robin H. Johnson
2016-10-05 14:42 Robin H. Johnson
2016-07-19 19:59 Robin H. Johnson
2016-07-05 18:14 Robin H. Johnson
2016-07-05 18:14 Robin H. Johnson
2016-07-05 18:14 Robin H. Johnson
2016-07-05 18:09 Robin H. Johnson
2015-11-08 14:33 Robin H. Johnson
2015-11-08 14:30 Robin H. Johnson
2015-05-25 10:04 Mike Frysinger
2015-05-25 10:04 Mike Frysinger
2015-05-25 10:01 Mike Frysinger
2015-01-22 23:01 Robin H. Johnson
2015-01-22 23:01 Robin H. Johnson
2014-12-11 18:13 Robin H. Johnson
2014-09-24 6:19 Robin H. Johnson
2014-07-17 17:56 Robin H. Johnson
2014-07-17 17:56 Robin H. Johnson
2014-04-15 18:18 Robin H. Johnson
2013-08-28 16:59 Robin H. Johnson
2013-08-27 20:06 Ian Stakenvicius
2013-08-25 8:17 Robin H. Johnson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1426377306.6befe06a7e72b5b7f17c7f1118fc16000a0cce13.vapier@OpenRC \
--to=vapier@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox