mcusim / freebsd-src

sys/dev/dpaa2 drivers work-in-progress
https://www.FreeBSD.org/
Other
4 stars 3 forks source link

Multicast #6

Closed bzfbd closed 2 years ago

bzfbd commented 2 years ago

Trying to use IPv6 it seemed MC was not working reliably

bzfbd commented 2 years ago

Seems the issue is a TODO still in dpaa2_ni.c:

    case SIOCADDMULTI:
            /* TBD */
            break;
    case SIOCDELMULTI:
            /* TBD */
            break;

Looking at 7.2.1 Ingress frame processing I assume we need to program the MAC_FILTER (DPNI_ADD_MAC_ADDR/DPNI_REMOVE_MAC_ADDR/DPNI_CLEAR_MAC_FILTERS?) accordingly or if the number of MC addresses exceeds the number of entries which can be filtered, then we probably need to enable ALL_MULTI and set the MC promisc bit in dpaa2_ni_setup_if_flags().

That's also a possible test case for me to set that flag (or promisc) and see if IPv6 starts working (which relies on MC working).

bzfbd commented 2 years ago

ifconfig dpni0 promisc makes IPv6 work, so theory things are fine; I'll work on the mac filter as soon as I figure out how to get NFS root going.

dsalychev commented 2 years ago

Please, try adae2b791a20655d3a70b6ecdd3f1e2c5a6296c4.

bzfbd commented 2 years ago

Tried the follow-up commit and IPv6 seems to work. Thanks!