[PATCH] vdpa_sim_net: should not drop the multicast/broadcast packet

Cindy Lu posted 1 patch 2 years, 9 months ago
drivers/vdpa/vdpa_sim/vdpa_sim_net.c | 3 +++
1 file changed, 3 insertions(+)
[PATCH] vdpa_sim_net: should not drop the multicast/broadcast packet
Posted by Cindy Lu 2 years, 9 months ago
In the receive_filter(), should not drop the packet with the
broadcast/multicast address. Add the check for this

Signed-off-by: Cindy Lu <lulu@redhat.com>
---
 drivers/vdpa/vdpa_sim/vdpa_sim_net.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim_net.c b/drivers/vdpa/vdpa_sim/vdpa_sim_net.c
index c3cb225ea469..0f4739c31eea 100644
--- a/drivers/vdpa/vdpa_sim/vdpa_sim_net.c
+++ b/drivers/vdpa/vdpa_sim/vdpa_sim_net.c
@@ -62,6 +62,9 @@ static bool receive_filter(struct vdpasim *vdpasim, size_t len)
 	if (len < ETH_ALEN + hdr_len)
 		return false;
 
+	if (is_broadcast_ether_addr(vdpasim->buffer + hdr_len) ||
+	    is_multicast_ether_addr(vdpasim->buffer + hdr_len))
+		return true;
 	if (!strncmp(vdpasim->buffer + hdr_len, vio_config->mac, ETH_ALEN))
 		return true;
 
-- 
2.34.3
Re: [PATCH] vdpa_sim_net: should not drop the multicast/broadcast packet
Posted by Jason Wang 2 years, 9 months ago
On Wed, Dec 14, 2022 at 1:43 PM Cindy Lu <lulu@redhat.com> wrote:
>
> In the receive_filter(), should not drop the packet with the
> broadcast/multicast address. Add the check for this
>
> Signed-off-by: Cindy Lu <lulu@redhat.com>

Acked-by: Jason Wang <jasowang@redhat.com>

Thanks

> ---
>  drivers/vdpa/vdpa_sim/vdpa_sim_net.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim_net.c b/drivers/vdpa/vdpa_sim/vdpa_sim_net.c
> index c3cb225ea469..0f4739c31eea 100644
> --- a/drivers/vdpa/vdpa_sim/vdpa_sim_net.c
> +++ b/drivers/vdpa/vdpa_sim/vdpa_sim_net.c
> @@ -62,6 +62,9 @@ static bool receive_filter(struct vdpasim *vdpasim, size_t len)
>         if (len < ETH_ALEN + hdr_len)
>                 return false;
>
> +       if (is_broadcast_ether_addr(vdpasim->buffer + hdr_len) ||
> +           is_multicast_ether_addr(vdpasim->buffer + hdr_len))
> +               return true;
>         if (!strncmp(vdpasim->buffer + hdr_len, vio_config->mac, ETH_ALEN))
>                 return true;
>
> --
> 2.34.3
>