aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArseni Nimera <shorrer@yandex.by>2020-05-31 01:20:25 +0300
committerRobin H. Johnson <robbat2@gentoo.org>2020-05-31 16:15:20 -0700
commitffa5a9e830c609fec987efac5723781e889ae67c (patch)
treeea524ccd1b0f09d8737341fae23e6eec181864f2
parentnet/ip6to4: partial fix for bug #528314 (diff)
downloadnetifrc-ffa5a9e830c609fec987efac5723781e889ae67c.tar.gz
netifrc-ffa5a9e830c609fec987efac5723781e889ae67c.tar.bz2
netifrc-ffa5a9e830c609fec987efac5723781e889ae67c.zip
Added macvtap support
Bug: https://bugs.gentoo.org/691372 Signed-off-by: Arseni Nimera <shorrer@yandex.by> (cherry picked from commit 0dc79645173fad82e0d437a6569b7ea7fa356197) Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
-rw-r--r--doc/net.example.Linux.in3
-rw-r--r--net/macvlan.sh8
2 files changed, 9 insertions, 2 deletions
diff --git a/doc/net.example.Linux.in b/doc/net.example.Linux.in
index c211ca7..a2993c0 100644
--- a/doc/net.example.Linux.in
+++ b/doc/net.example.Linux.in
@@ -664,6 +664,9 @@
# MAC-VLAN mode (private, vepa, bridge, passtru)
#mode_macvlan0="private"
+# MAC-VLAN type (macvlan, macvtap)
+#type_macvlan0="macvtap"
+
# IP address, MAC address, ... are configured as a normal interface
#config_macvlan0="192.168.20.20/24"
#mac_macvlan0="00:50:06:20:20:20"
diff --git a/net/macvlan.sh b/net/macvlan.sh
index 8d55717..6243858 100644
--- a/net/macvlan.sh
+++ b/net/macvlan.sh
@@ -34,8 +34,12 @@ macvlan_pre_start()
eval mode=\$mode_${IFVAR}
[ -z "${mode}" ] && mode="private"
+ local type=
+ eval type=\$type_${IFVAR}
+ [ -z "${type}" ] && type="macvlan"
+
ebegin "Creating MAC-VLAN ${IFACE} to ${macvlan}"
- e="$(ip link add link "${macvlan}" name "${IFACE}" type macvlan mode "${mode}" 2>&1 1>/dev/null)"
+ e="$(ip link add link "${macvlan}" name "${IFACE}" type "${type}" mode "${mode}" 2>&1 1>/dev/null)"
if [ -n "${e}" ]; then
eend 1 "${e}"
else
@@ -49,6 +53,6 @@ macvlan_post_stop()
_is_macvlan || return 0
ebegin "Removing MAC-VLAN ${IFACE}"
- ip link delete "${IFACE}" type macvlan >/dev/null
+ ip link delete "${IFACE}" >/dev/null
eend $?
}