+ linux-wireless
+ Johannes

On 13-3-2017 19:15, Mark Asselstine wrote:
> Hello Arend,
> 
> I am thinking about proposing the following patch on linux-wireless but would 
> like to ask you your thoughts first. I have looked in detail at the kernel 
> code, the brcmfmac development pages, the mailing list archives etc. to make 
> sure that I haven't missed previous discussions on this subject, if you have 
> already ruled this functionality out I apologize for missing the relevant 
> info.
> 
> Like others folks (for example https://github.com/fgg89/docker-ap/issues/3) I 
> would like to have the ability to make the wifi interface available in a 
> container. The *80211 infrastructure should allow this but the brcmfmac 
> driver 
> does not enable WIPHY_FLAG_NETNS_OK so attempts to move the phy and vifs to a 
> network NS results in -EOPNOTSUPP. Is there a reason for this not being 
> supported?

Hi Mark,

It never came up with any projects so far. I doubt that the patch below
is sufficient. I suspect something more is needed. Using git blame I
ended up finding these commits:

a272a72 mac80211: allow using network namespaces
463d018 cfg80211: make aware of net namespaces
5061b0c mac80211: cooperate more with network namespaces

I think what is required from brcmfmac is to set netns for each netdev
that we create to the same netns as the wiphy instance using
wiphy_net(). Not sure if there is more to consider, but hopefully
Johannes can comment on this although the mentioned commits have been
around for a while.

Regards,
Arend

> Thanks so much for taking the time to read this email and thanks in advance 
> for any feedback you are able to provide.
> 
> Regards,
> Mark Asselstine
> 
> ----
> 
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/
> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> index 944b83c..f38500b 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> @@ -6452,7 +6452,8 @@ static int brcmf_setup_wiphy(struct wiphy *wiphy, 
> struct 
> brcmf_if *ifp)
>  
>         wiphy->flags |= WIPHY_FLAG_PS_ON_BY_DEFAULT |
>                         WIPHY_FLAG_OFFCHAN_TX |
> -                       WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL;
> +                       WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL |
> +                       WIPHY_FLAG_NETNS_OK;
>         if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_TDLS))
>                 wiphy->flags |= WIPHY_FLAG_SUPPORTS_TDLS;
>         if (!ifp->drvr->settings->roamoff)
> 

Reply via email to