All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net] tap: Mark devices of type "tun" as IFF_DONT_BRIDGE
@ 2014-06-04 18:06 Vlad Yasevich
  2014-06-04 18:54 ` Stephen Hemminger
  0 siblings, 1 reply; 3+ messages in thread
From: Vlad Yasevich @ 2014-06-04 18:06 UTC (permalink / raw)
  To: netdev; +Cc: Vlad Yasevich

Tun devices are layer 3 devices and do not work correctly
when bridged.  Mark then as IFF_DONT_BRIDGE so that people
trying to bridge will get an error.

Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
---
 drivers/net/tun.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index ee328ba..0161aa3 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -931,6 +931,7 @@ static void tun_net_init(struct net_device *dev)
 		/* Zero header length */
 		dev->type = ARPHRD_NONE;
 		dev->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST;
+		dev->priv_flags |= IFF_DONT_BRIDGE;
 		dev->tx_queue_len = TUN_READQ_SIZE;  /* We prefer our own queue length */
 		break;
 
-- 
1.9.0

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH net] tap: Mark devices of type "tun" as IFF_DONT_BRIDGE
  2014-06-04 18:06 [PATCH net] tap: Mark devices of type "tun" as IFF_DONT_BRIDGE Vlad Yasevich
@ 2014-06-04 18:54 ` Stephen Hemminger
  2014-06-04 19:40   ` Vlad Yasevich
  0 siblings, 1 reply; 3+ messages in thread
From: Stephen Hemminger @ 2014-06-04 18:54 UTC (permalink / raw)
  To: Vlad Yasevich; +Cc: netdev

On Wed,  4 Jun 2014 14:06:08 -0400
Vlad Yasevich <vyasevic@redhat.com> wrote:

> Tun devices are layer 3 devices and do not work correctly
> when bridged.  Mark then as IFF_DONT_BRIDGE so that people
> trying to bridge will get an error.
> 
> Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
> ---
>  drivers/net/tun.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/net/tun.c b/drivers/net/tun.c
> index ee328ba..0161aa3 100644
> --- a/drivers/net/tun.c
> +++ b/drivers/net/tun.c
> @@ -931,6 +931,7 @@ static void tun_net_init(struct net_device *dev)
>  		/* Zero header length */
>  		dev->type = ARPHRD_NONE;
>  		dev->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST;
> +		dev->priv_flags |= IFF_DONT_BRIDGE;
>  		dev->tx_queue_len = TUN_READQ_SIZE;  /* We prefer our own queue length */
>  		break;
>  

This should not be necessary since bridge already checks for non-ethernet
devices.

	/* Don't allow bridging non-ethernet like devices */
	if ((dev->flags & IFF_LOOPBACK) ||
	    dev->type != ARPHRD_ETHER || dev->addr_len != ETH_ALEN ||
	    !is_valid_ether_addr(dev->dev_addr))
		return -EINVAL;

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH net] tap: Mark devices of type "tun" as IFF_DONT_BRIDGE
  2014-06-04 18:54 ` Stephen Hemminger
@ 2014-06-04 19:40   ` Vlad Yasevich
  0 siblings, 0 replies; 3+ messages in thread
From: Vlad Yasevich @ 2014-06-04 19:40 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: netdev

On 06/04/2014 02:54 PM, Stephen Hemminger wrote:
> On Wed,  4 Jun 2014 14:06:08 -0400
> Vlad Yasevich <vyasevic@redhat.com> wrote:
> 
>> Tun devices are layer 3 devices and do not work correctly
>> when bridged.  Mark then as IFF_DONT_BRIDGE so that people
>> trying to bridge will get an error.
>>
>> Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
>> ---
>>  drivers/net/tun.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/net/tun.c b/drivers/net/tun.c
>> index ee328ba..0161aa3 100644
>> --- a/drivers/net/tun.c
>> +++ b/drivers/net/tun.c
>> @@ -931,6 +931,7 @@ static void tun_net_init(struct net_device *dev)
>>  		/* Zero header length */
>>  		dev->type = ARPHRD_NONE;
>>  		dev->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST;
>> +		dev->priv_flags |= IFF_DONT_BRIDGE;
>>  		dev->tx_queue_len = TUN_READQ_SIZE;  /* We prefer our own queue length */
>>  		break;
>>  
> 
> This should not be necessary since bridge already checks for non-ethernet
> devices.
> 
> 	/* Don't allow bridging non-ethernet like devices */
> 	if ((dev->flags & IFF_LOOPBACK) ||
> 	    dev->type != ARPHRD_ETHER || dev->addr_len != ETH_ALEN ||
> 	    !is_valid_ether_addr(dev->dev_addr))
> 		return -EINVAL;
> 

You are right...  I was shown a snippet of the configure where this
worked, but I never asked which kernel version they were using...

Looks like the above code has been around since 3.2...

Thanks
-vlad

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-06-04 19:40 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-04 18:06 [PATCH net] tap: Mark devices of type "tun" as IFF_DONT_BRIDGE Vlad Yasevich
2014-06-04 18:54 ` Stephen Hemminger
2014-06-04 19:40   ` Vlad Yasevich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.