tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: vlan and bpf



(I resend because I forgot to send to tech-net@)

Hi,

On Sat, Dec 16, 2023 at 2:11 AM Greg Troxel <gdt%lexort.com@localhost> wrote:
>
> I am using vlans (on wm0 and vlan0), and when I run tcpdump on the
> parent, I see the packets that are on the vlan.

I guess VLAN hardware tagging is enabled on wm0 and your kernel version is
NetBSD-9 or older. I changed this behavior at
https://mail-index.netbsd.org/source-changes-hg/2022/06/20/msg356979.html

After the change, I think tcpdump on wm0 shows VLAN frames and
tcpdump on vlan0 shows IP frames even if VLAN hardware tagging
is enabled on wm0.

On Sat, Dec 16, 2023 at 2:11 AM Greg Troxel <gdt%lexort.com@localhost> wrote:
>
> I am using vlans (on wm0 and vlan0), and when I run tcpdump on the
> parent, I see the packets that are on the vlan.
>
> This is causing trouble because dhcpd is seeing them.
>
> I think it's a bug; the packet is on wm0 with a vlan tag, but it is not
> on wm0 in the normal sense.  It shows up when tcpdumping on vlan0, which
> is correct.  So I think packets with a vlan tag not for this interface
> should not hit bpf_mtap.
>
> This patch has not even been compiled, and I know it misses the
> non-percpuq case, but I'm including it to say more clearly what I am
> thinking.
>
> --- if.c.~1.457.2.4.~   2020-09-01 19:56:43.824457852 -0400
> +++ if.c        2023-12-15 12:10:09.503560965 -0500
> @@ -818,7 +818,8 @@ if_percpuq_softint(void *arg)
>
>         while ((m = if_percpuq_dequeue(ipq)) != NULL) {
>                 ifp->if_ipackets++;
> -               bpf_mtap(ifp, m, BPF_D_IN);
> +               if (!vlan_has_tag(m))
> +                       bpf_mtap(ifp, m, BPF_D_IN);
>
>                 ifp->_if_input(ifp, m);
>         }


Home | Main Index | Thread Index | Old Index