mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-16 15:45:45 +00:00
net: vrf: Add support for sends to local broadcast address
[ Upstream commit 1e19c4d689
]
Sukumar reported that sends to the local broadcast address
(255.255.255.255) are broken. Check for the address in vrf driver
and do not redirect to the VRF device - similar to multicast
packets.
With this change sockets can use SO_BINDTODEVICE to specify an
egress interface and receive responses. Note: the egress interface
can not be a VRF device but needs to be the enslaved device.
https://bugzilla.kernel.org/show_bug.cgi?id=198521
Reported-by: Sukumar Gopalakrishnan <sukumarg1973@gmail.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
d3048a12f3
commit
6ea6b86ae7
1 changed files with 3 additions and 2 deletions
|
@ -674,8 +674,9 @@ static struct sk_buff *vrf_ip_out(struct net_device *vrf_dev,
|
|||
struct sock *sk,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
/* don't divert multicast */
|
||||
if (ipv4_is_multicast(ip_hdr(skb)->daddr))
|
||||
/* don't divert multicast or local broadcast */
|
||||
if (ipv4_is_multicast(ip_hdr(skb)->daddr) ||
|
||||
ipv4_is_lbcast(ip_hdr(skb)->daddr))
|
||||
return skb;
|
||||
|
||||
if (qdisc_tx_is_default(vrf_dev))
|
||||
|
|
Loading…
Reference in a new issue