macvlan: receive multicast with local address
When implementing VRRP v2 using macvlan several problems were
discovered. VRRP is weird in that all routers participating
in a redundant group use the same virtual MAC address.
Macvlan is a natural driver to use for this but it doesn't
work. The problem is that packets with a macvlan device's
source address are not received.
The problem is actually a regression that date back almost 2 years now.
The original problems started with:
commit 618e1b7482
Author: Arnd Bergmann <arnd@arndb.de>
Date: Thu Nov 26 06:07:10 2009 +0000
macvlan: implement bridge, VEPA and private mode
This patches restores the original 2.6.32 behavior. Allowing multicast
packets received with the VRRP source address to be received.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
5ae7fa06bb
Коммит
729e72a109
|
@ -192,6 +192,13 @@ static rx_handler_result_t macvlan_handle_frame(struct sk_buff **pskb)
|
|||
*/
|
||||
macvlan_broadcast(skb, port, src->dev,
|
||||
MACVLAN_MODE_VEPA);
|
||||
else {
|
||||
/* forward to original port. */
|
||||
vlan = src;
|
||||
ret = macvlan_broadcast_one(skb, vlan, eth, 0);
|
||||
goto out;
|
||||
}
|
||||
|
||||
return RX_HANDLER_PASS;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче