Hi, On Mon, Sep 5, 2022 at 4:34 PM Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote: > > Hello, > > A third version of this series, dropping the scan patches for now > because before we need to settle on the filtering topic and the > coordinator interface topic. Here is just the filtering part, I've > integrated Alexander's patches, as well as the atusb fix. Once this is > merge there are a few coordinator-related patches, and finally the > scan. I think we have a communication problem here and we should talk about what the problems are and agree on a way to solve them. The problems are: 1. We never supported switching from an operating phy (interfaces are up) into another filtering mode. 2. Scan requires to be in "promiscuous mode" (according to the 802.15.4 spec promiscuous mode). We don't support promiscuous mode (according to the 802.15.4 spec promiscuous mode). We "can" however use the currently supported mode which does not filter anything (IEEE802154_FILTERING_NONE) when we do additional filtering in mac802154. _But_ this is only required when the phy is scanning, it will also deliver anything to the upper layers. This patch-series tries to do the second thing, okay that's fine. But I thought this should only be done while the phy is in "scanning mode"? The other receive path while not in promiscuous mode (phy->filtering == IEEE802154_FILTERING_4_FRAME_FIELDS) should never require any additional filtering. I somehow miss this point here. For 1), the driver should change the filtering mode" when we start to "listen", this is done by the start() driver callback. They should get all receive parameters and set up receiving to whatever mac802154, currently there is a bit of chaos there. To move it into drv_start() is just a workaround to begin this step that we move it at some point to the driver. I mention 1) here because that should be part of the picture how everything works together when the phy is switched to a different filter level while it's operating (I mean there are running interfaces on it which requires IEEE802154_FILTERING_4_FRAME_FIELDS) which then activates the different receive path for the use case of scanning (something like (phy->state & WPANPHY_SCANING) == true)? I am sorry, but I somehow miss the picture of how those things work together. It is not clear for me and I miss those parts to get a whole picture of this. For me it's not clear that those patches are going in this direction. - Alex