* [PATCH] iproute2: macvlan: add "source" mode
@ 2016-09-25 18:52 Michael Braun
2016-09-25 18:54 ` michael-dev
0 siblings, 1 reply; 2+ messages in thread
From: Michael Braun @ 2016-09-25 18:52 UTC (permalink / raw)
To: netdev; +Cc: Michael Braun, projekt-wlan, steweg
Adjusting iproute2 utility to support new macvlan link type mode called
"source".
Example of commands that can be applied:
ip link add link eth0 name macvlan0 type macvlan mode source
ip link set link dev macvlan0 type macvlan macaddr add 00:11:11:11:11:11
ip link set link dev macvlan0 type macvlan macaddr del 00:11:11:11:11:11
ip link set link dev macvlan0 type macvlan macaddr flush
ip -details link show dev macvlan0
Based on previous work of Stefan Gula <steweg@gmail.com>
Signed-off-by: Michael Braun <michael-dev@fami-braun.de>
Cc: steweg@gmail.com
---
include/linux/if_link.h | 2 ++
man/man8/ip-link.8.in | 57 +++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 59 insertions(+)
diff --git a/include/linux/if_link.h b/include/linux/if_link.h
index 1feb708..ec5e64e 100644
--- a/include/linux/if_link.h
+++ b/include/linux/if_link.h
@@ -401,6 +401,8 @@ enum macvlan_macaddr_mode {
};
#define MACVLAN_FLAG_NOPROMISC 1
+#define MACVLAN_FLAG_UNICAST 2
+#define MACVLAN_FLAG_UNICAST_ALL 4
/* VRF section */
enum {
diff --git a/man/man8/ip-link.8.in b/man/man8/ip-link.8.in
index ffc4160..1ad3cfe 100644
--- a/man/man8/ip-link.8.in
+++ b/man/man8/ip-link.8.in
@@ -138,6 +138,9 @@ ip-link \- network device configuration
.IR NAME " ]"
.br
.RB "[ " addrgenmode " { " eui64 " | " none " | " stable_secret " | " random " } ]"
+.br
+.B macaddr " |"
+.IR "COMMAND MACADDR |"
.ti -8
@@ -228,8 +231,46 @@ Link types:
- IP over Infiniband device
.sp
.B macvlan
+.I MODE
- Virtual interface base on link layer address (MAC)
.sp
+Modes:
+.in +8
+.B private
+- The device never communicates with any other device on the same upper_dev.
+This even includes frames coming back from a reflective relay, where supported
+by the adjacent bridge.
+.sp
+.B vepa
+- we assume that the adjacent bridge returns all frames where both source and
+destination are local to the macvlan port, i.e. the bridge is set up as a
+reflective relay. Broadcast frames coming in from the upper_dev get flooded to
+all macvlan interfaces in VEPA mode. We never deliver any frames locally.
+.sp
+.B bridge
+- behave as simple bridge between different macvlan interfaces on the same
+port. Frames from one interface to another one get delivered directly and are
+not sent out externally. Broadcast frames get flooded to all other bridge
+ports and to the external interface, but when they come back from a reflective
+relay, we don't deliver them again. Since we know all the MAC addresses, the
+macvlan bridge mode does not require learning or STP like the bridge module
+does.
+.sp
+.B passthru
+- allows takeover of the underlying device and passing it to a guest using
+virtio with macvtap backend. Only one macvlan device is allowed in passthru
+mode and it inherits the mac address from the underlying device and sets it in
+promiscuous mode to receive and forward all the packets.
+.sp
+.B source
+- allows one to set a list of allowed mac address, which is used to match
+against source mac address from received frames on underlying interface. This
+allows creating mac based VLAN associations, instead of standard port or tag
+based. The feature is useful to deploy 802.1x mac based behavior,
+where drivers of underlying interfaces doesn't allows that.
+.sp
+.in -8
+.sp
.B macvtap
- Virtual interface based on link layer address (MAC) and TAP.
.sp
@@ -1074,6 +1115,22 @@ specifies the type of the device.
.SS ip link set - change device attributes
+.TP
+.BI macaddr " COMMAND MACADDR"
+add or removes MACADDR from allowed list for source mode macvlan type link
+Commands:
+.in +8
+.B add
+- add MACADDR to allowed list
+.sp
+.B del
+- remove MACADDR from allowed list
+.sp
+.B flush
+- flush whole allowed list
+.sp
+.in -8
+
.PP
.B Warning:
If multiple parameter changes are requested,
--
2.1.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] iproute2: macvlan: add "source" mode
2016-09-25 18:52 [PATCH] iproute2: macvlan: add "source" mode Michael Braun
@ 2016-09-25 18:54 ` michael-dev
0 siblings, 0 replies; 2+ messages in thread
From: michael-dev @ 2016-09-25 18:54 UTC (permalink / raw)
To: netdev; +Cc: projekt-wlan, steweg
Please ignore this patch, something went wrong.
Regards,
M. Braun
Am 25.09.2016 20:52, schrieb Michael Braun:
> Adjusting iproute2 utility to support new macvlan link type mode called
> "source".
>
> Example of commands that can be applied:
> ip link add link eth0 name macvlan0 type macvlan mode source
> ip link set link dev macvlan0 type macvlan macaddr add
> 00:11:11:11:11:11
> ip link set link dev macvlan0 type macvlan macaddr del
> 00:11:11:11:11:11
> ip link set link dev macvlan0 type macvlan macaddr flush
> ip -details link show dev macvlan0
>
> Based on previous work of Stefan Gula <steweg@gmail.com>
>
> Signed-off-by: Michael Braun <michael-dev@fami-braun.de>
>
> Cc: steweg@gmail.com
> ---
> include/linux/if_link.h | 2 ++
> man/man8/ip-link.8.in | 57
> +++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 59 insertions(+)
>
> diff --git a/include/linux/if_link.h b/include/linux/if_link.h
> index 1feb708..ec5e64e 100644
> --- a/include/linux/if_link.h
> +++ b/include/linux/if_link.h
> @@ -401,6 +401,8 @@ enum macvlan_macaddr_mode {
> };
>
> #define MACVLAN_FLAG_NOPROMISC 1
> +#define MACVLAN_FLAG_UNICAST 2
> +#define MACVLAN_FLAG_UNICAST_ALL 4
>
> /* VRF section */
> enum {
> diff --git a/man/man8/ip-link.8.in b/man/man8/ip-link.8.in
> index ffc4160..1ad3cfe 100644
> --- a/man/man8/ip-link.8.in
> +++ b/man/man8/ip-link.8.in
> @@ -138,6 +138,9 @@ ip-link \- network device configuration
> .IR NAME " ]"
> .br
> .RB "[ " addrgenmode " { " eui64 " | " none " | " stable_secret " | "
> random " } ]"
> +.br
> +.B macaddr " |"
> +.IR "COMMAND MACADDR |"
>
>
> .ti -8
> @@ -228,8 +231,46 @@ Link types:
> - IP over Infiniband device
> .sp
> .B macvlan
> +.I MODE
> - Virtual interface base on link layer address (MAC)
> .sp
> +Modes:
> +.in +8
> +.B private
> +- The device never communicates with any other device on the same
> upper_dev.
> +This even includes frames coming back from a reflective relay, where
> supported
> +by the adjacent bridge.
> +.sp
> +.B vepa
> +- we assume that the adjacent bridge returns all frames where both
> source and
> +destination are local to the macvlan port, i.e. the bridge is set up
> as a
> +reflective relay. Broadcast frames coming in from the upper_dev get
> flooded to
> +all macvlan interfaces in VEPA mode. We never deliver any frames
> locally.
> +.sp
> +.B bridge
> +- behave as simple bridge between different macvlan interfaces on the
> same
> +port. Frames from one interface to another one get delivered directly
> and are
> +not sent out externally. Broadcast frames get flooded to all other
> bridge
> +ports and to the external interface, but when they come back from a
> reflective
> +relay, we don't deliver them again. Since we know all the MAC
> addresses, the
> +macvlan bridge mode does not require learning or STP like the bridge
> module
> +does.
> +.sp
> +.B passthru
> +- allows takeover of the underlying device and passing it to a guest
> using
> +virtio with macvtap backend. Only one macvlan device is allowed in
> passthru
> +mode and it inherits the mac address from the underlying device and
> sets it in
> +promiscuous mode to receive and forward all the packets.
> +.sp
> +.B source
> +- allows one to set a list of allowed mac address, which is used to
> match
> +against source mac address from received frames on underlying
> interface. This
> +allows creating mac based VLAN associations, instead of standard port
> or tag
> +based. The feature is useful to deploy 802.1x mac based behavior,
> +where drivers of underlying interfaces doesn't allows that.
> +.sp
> +.in -8
> +.sp
> .B macvtap
> - Virtual interface based on link layer address (MAC) and TAP.
> .sp
> @@ -1074,6 +1115,22 @@ specifies the type of the device.
>
> .SS ip link set - change device attributes
>
> +.TP
> +.BI macaddr " COMMAND MACADDR"
> +add or removes MACADDR from allowed list for source mode macvlan type
> link
> +Commands:
> +.in +8
> +.B add
> +- add MACADDR to allowed list
> +.sp
> +.B del
> +- remove MACADDR from allowed list
> +.sp
> +.B flush
> +- flush whole allowed list
> +.sp
> +.in -8
> +
> .PP
> .B Warning:
> If multiple parameter changes are requested,
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-09-25 18:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-25 18:52 [PATCH] iproute2: macvlan: add "source" mode Michael Braun
2016-09-25 18:54 ` michael-dev
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).