Re: [PATCH v2 2/9] mac80211: add boilerplate code for start / stop NAN
On 16-9-2016 10:33, Luca Coelho wrote: > From: Ayala Beker > > This code doesn't do much besides allowing to start and > stop the vif. > > Signed-off-by: Andrei Otcheretianski > Signed-off-by: Emmanuel Grumbach > Signed-off-by: Ayala Beker > Signed-off-by: Luca Coelho > --- > include/net/mac80211.h| 9 + > net/mac80211/cfg.c| 36 ++ > net/mac80211/chan.c | 3 +++ > net/mac80211/driver-ops.h | 29 ++- > net/mac80211/iface.c | 8 ++-- > net/mac80211/main.c | 5 + > net/mac80211/offchannel.c | 3 ++- > net/mac80211/trace.h | 50 > +++ > net/mac80211/util.c | 3 ++- > 9 files changed, 141 insertions(+), 5 deletions(-) [...] > diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h > index fe35a1c..67b42c8 100644 > --- a/net/mac80211/driver-ops.h > +++ b/net/mac80211/driver-ops.h > @@ -163,7 +163,8 @@ static inline void drv_bss_info_changed(struct > ieee80211_local *local, > > if (WARN_ON_ONCE(sdata->vif.type == NL80211_IFTYPE_P2P_DEVICE || >(sdata->vif.type == NL80211_IFTYPE_MONITOR && > - !sdata->vif.mu_mimo_owner))) > + !sdata->vif.mu_mimo_owner) || > + sdata->vif.type == NL80211_IFTYPE_NAN)) Might be more clear to move this up right after P2P_DEVICE check. > return; > > if (!check_sdata_in_driver(sdata)) > @@ -1165,4 +1166,30 @@ static inline void drv_wake_tx_queue(struct > ieee80211_local *local, > local->ops->wake_tx_queue(&local->hw, &txq->txq); > } > > +static inline int drv_start_nan(struct ieee80211_local *local, > + struct ieee80211_sub_if_data *sdata, > + struct cfg80211_nan_conf *conf) > +{ > + int ret; > + > + might_sleep(); > + check_sdata_in_driver(sdata); > + > + trace_drv_start_nan(local, sdata, conf); > + ret = local->ops->start_nan(&local->hw, &sdata->vif, conf); > + trace_drv_return_int(local, ret); > + return ret; > +} > + > +static inline void drv_stop_nan(struct ieee80211_local *local, > + struct ieee80211_sub_if_data *sdata) > +{ > + might_sleep(); > + check_sdata_in_driver(sdata); > + > + trace_drv_stop_nan(local, sdata); > + local->ops->stop_nan(&local->hw, &sdata->vif); > + trace_drv_return_void(local); > +} > + > #endif /* __MAC80211_DRIVER_OPS */ > diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c > index e694ca2..507f46a 100644 > --- a/net/mac80211/iface.c > +++ b/net/mac80211/iface.c > @@ -327,6 +327,9 @@ static int ieee80211_check_queues(struct > ieee80211_sub_if_data *sdata, > int n_queues = sdata->local->hw.queues; > int i; > > + if (iftype == NL80211_IFTYPE_NAN) > + return 0; > + > if (iftype != NL80211_IFTYPE_P2P_DEVICE) { > for (i = 0; i < IEEE80211_NUM_ACS; i++) { > if (WARN_ON_ONCE(sdata->vif.hw_queue[i] == > @@ -647,7 +650,8 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool > coming_up) > local->fif_probe_req++; > } > > - if (sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE) > + if (sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE && > + sdata->vif.type != NL80211_IFTYPE_NAN) similar check keeps reoccuring in various places so maybe we can create a helper function for it. > changed |= ieee80211_reset_erp_info(sdata); > ieee80211_bss_info_change_notify(sdata, changed); > Regards, Arend
RE: [PATCH v2 2/9] mac80211: add boilerplate code for start / stop NAN
> -Original Message- > From: Arend Van Spriel [mailto:arend.vanspr...@broadcom.com] > Sent: Friday, September 16, 2016 14:09 > To: Luca Coelho ; johan...@sipsolutions.net > Cc: linux-wireless@vger.kernel.org; Beker, Ayala ; > Otcheretianski, Andrei ; Grumbach, > Emmanuel ; Coelho, Luciano > > Subject: Re: [PATCH v2 2/9] mac80211: add boilerplate code for start / stop > NAN > > On 16-9-2016 10:33, Luca Coelho wrote: > > From: Ayala Beker > > > > This code doesn't do much besides allowing to start and stop the vif. > > > > Signed-off-by: Andrei Otcheretianski > > Signed-off-by: Emmanuel Grumbach > > Signed-off-by: Ayala Beker > > Signed-off-by: Luca Coelho > > --- > > include/net/mac80211.h| 9 + > > net/mac80211/cfg.c| 36 ++ > > net/mac80211/chan.c | 3 +++ > > net/mac80211/driver-ops.h | 29 ++- > > net/mac80211/iface.c | 8 ++-- > > net/mac80211/main.c | 5 + > > net/mac80211/offchannel.c | 3 ++- > > net/mac80211/trace.h | 50 > +++ > > net/mac80211/util.c | 3 ++- > > 9 files changed, 141 insertions(+), 5 deletions(-) > > [...] > > > diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h > > index fe35a1c..67b42c8 100644 > > --- a/net/mac80211/driver-ops.h > > +++ b/net/mac80211/driver-ops.h > > @@ -163,7 +163,8 @@ static inline void drv_bss_info_changed(struct > > ieee80211_local *local, > > > > if (WARN_ON_ONCE(sdata->vif.type == > NL80211_IFTYPE_P2P_DEVICE || > > (sdata->vif.type == NL80211_IFTYPE_MONITOR && > > - !sdata->vif.mu_mimo_owner))) > > + !sdata->vif.mu_mimo_owner) || > > +sdata->vif.type == NL80211_IFTYPE_NAN)) > > Might be more clear to move this up right after P2P_DEVICE check. Why? It's a completely separate new condition - so it goes to the end. > > > return; > > > > if (!check_sdata_in_driver(sdata)) > > @@ -1165,4 +1166,30 @@ static inline void drv_wake_tx_queue(struct > ieee80211_local *local, > > local->ops->wake_tx_queue(&local->hw, &txq->txq); } > > > > +static inline int drv_start_nan(struct ieee80211_local *local, > > + struct ieee80211_sub_if_data *sdata, > > + struct cfg80211_nan_conf *conf) > > +{ > > + int ret; > > + > > + might_sleep(); > > + check_sdata_in_driver(sdata); > > + > > + trace_drv_start_nan(local, sdata, conf); > > + ret = local->ops->start_nan(&local->hw, &sdata->vif, conf); > > + trace_drv_return_int(local, ret); > > + return ret; > > +} > > + > > +static inline void drv_stop_nan(struct ieee80211_local *local, > > + struct ieee80211_sub_if_data *sdata) { > > + might_sleep(); > > + check_sdata_in_driver(sdata); > > + > > + trace_drv_stop_nan(local, sdata); > > + local->ops->stop_nan(&local->hw, &sdata->vif); > > + trace_drv_return_void(local); > > +} > > + > > #endif /* __MAC80211_DRIVER_OPS */ > > diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index > > e694ca2..507f46a 100644 > > --- a/net/mac80211/iface.c > > +++ b/net/mac80211/iface.c > > @@ -327,6 +327,9 @@ static int ieee80211_check_queues(struct > ieee80211_sub_if_data *sdata, > > int n_queues = sdata->local->hw.queues; > > int i; > > > > + if (iftype == NL80211_IFTYPE_NAN) > > + return 0; > > + > > if (iftype != NL80211_IFTYPE_P2P_DEVICE) { > > for (i = 0; i < IEEE80211_NUM_ACS; i++) { > > if (WARN_ON_ONCE(sdata->vif.hw_queue[i] == @@ > -647,7 +650,8 @@ int > > ieee80211_do_open(struct wireless_dev *wdev, bool coming_up) > > local->fif_probe_req++; > > } > > > > - if (sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE) > > + if (sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE && > > + sdata->vif.type != NL80211_IFTYPE_NAN) > > similar check keeps reoccuring in various places so maybe we can create a > helper function for it. Right, but not sure that it deserves a function. > > > changed |= ieee80211_reset_erp_info(sdata); > > ieee80211_bss_info_change_notify(sdata, changed); > > > > Regards, > Arend
Re: [PATCH v2 2/9] mac80211: add boilerplate code for start / stop NAN
On 18-9-2016 9:59, Otcheretianski, Andrei wrote: >> -Original Message- >> From: Arend Van Spriel [mailto:arend.vanspr...@broadcom.com] >> Sent: Friday, September 16, 2016 14:09 >> To: Luca Coelho ; johan...@sipsolutions.net >> Cc: linux-wireless@vger.kernel.org; Beker, Ayala ; >> Otcheretianski, Andrei ; Grumbach, >> Emmanuel ; Coelho, Luciano >> >> Subject: Re: [PATCH v2 2/9] mac80211: add boilerplate code for start / stop >> NAN >> >> On 16-9-2016 10:33, Luca Coelho wrote: >>> From: Ayala Beker >>> >>> This code doesn't do much besides allowing to start and stop the vif. >>> >>> Signed-off-by: Andrei Otcheretianski >>> Signed-off-by: Emmanuel Grumbach >>> Signed-off-by: Ayala Beker >>> Signed-off-by: Luca Coelho >>> --- >>> include/net/mac80211.h| 9 + >>> net/mac80211/cfg.c| 36 ++ >>> net/mac80211/chan.c | 3 +++ >>> net/mac80211/driver-ops.h | 29 ++- >>> net/mac80211/iface.c | 8 ++-- >>> net/mac80211/main.c | 5 + >>> net/mac80211/offchannel.c | 3 ++- >>> net/mac80211/trace.h | 50 >> +++ >>> net/mac80211/util.c | 3 ++- >>> 9 files changed, 141 insertions(+), 5 deletions(-) >> >> [...] >> >>> diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h >>> index fe35a1c..67b42c8 100644 >>> --- a/net/mac80211/driver-ops.h >>> +++ b/net/mac80211/driver-ops.h >>> @@ -163,7 +163,8 @@ static inline void drv_bss_info_changed(struct >>> ieee80211_local *local, >>> >>> if (WARN_ON_ONCE(sdata->vif.type == >> NL80211_IFTYPE_P2P_DEVICE || >>> (sdata->vif.type == NL80211_IFTYPE_MONITOR && >>> - !sdata->vif.mu_mimo_owner))) >>> + !sdata->vif.mu_mimo_owner) || >>> +sdata->vif.type == NL80211_IFTYPE_NAN)) >> >> Might be more clear to move this up right after P2P_DEVICE check. > > Why? It's a completely separate new condition - so it goes to the end. I would say readability. Both P2P_DEVICE and NAN checks are single comparisons as opposed to the MONITOR check. >> >>> return; >>> >>> if (!check_sdata_in_driver(sdata)) >>> @@ -1165,4 +1166,30 @@ static inline void drv_wake_tx_queue(struct >> ieee80211_local *local, >>> local->ops->wake_tx_queue(&local->hw, &txq->txq); } >>> >>> +static inline int drv_start_nan(struct ieee80211_local *local, >>> + struct ieee80211_sub_if_data *sdata, >>> + struct cfg80211_nan_conf *conf) >>> +{ >>> + int ret; >>> + >>> + might_sleep(); >>> + check_sdata_in_driver(sdata); >>> + >>> + trace_drv_start_nan(local, sdata, conf); >>> + ret = local->ops->start_nan(&local->hw, &sdata->vif, conf); >>> + trace_drv_return_int(local, ret); >>> + return ret; >>> +} >>> + >>> +static inline void drv_stop_nan(struct ieee80211_local *local, >>> + struct ieee80211_sub_if_data *sdata) { >>> + might_sleep(); >>> + check_sdata_in_driver(sdata); >>> + >>> + trace_drv_stop_nan(local, sdata); >>> + local->ops->stop_nan(&local->hw, &sdata->vif); >>> + trace_drv_return_void(local); >>> +} >>> + >>> #endif /* __MAC80211_DRIVER_OPS */ >>> diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index >>> e694ca2..507f46a 100644 >>> --- a/net/mac80211/iface.c >>> +++ b/net/mac80211/iface.c >>> @@ -327,6 +327,9 @@ static int ieee80211_check_queues(struct >> ieee80211_sub_if_data *sdata, >>> int n_queues = sdata->local->hw.queues; >>> int i; >>> >>> + if (iftype == NL80211_IFTYPE_NAN) >>> + return 0; >>> + >>> if (iftype != NL80211_IFTYPE_P2P_DEVICE) { >>> for (i = 0; i < IEEE80211_NUM_ACS; i++) { >>> if (WARN_ON_ONCE(sdata->vif.hw_queue[i] == @@ >> -647,7 +650,8 @@ int >>> ieee80211_do_open(struct wireless_dev *wdev, bool coming_up) >>> local->fif_probe_req++; >>> } >>> >>> - if (sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE) >>> + if (sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE && >>> + sdata->vif.type != NL80211_IFTYPE_NAN) >> >> similar check keeps reoccuring in various places so maybe we can create a >> helper function for it. > > Right, but not sure that it deserves a function. If similar new iftypes are anticipated it would make sense as it would mean adding it in one place. Regards, Arend
RE: [PATCH v2 2/9] mac80211: add boilerplate code for start / stop NAN
-Original Message- From: Arend Van Spriel [mailto:arend.vanspr...@broadcom.com] Sent: Sunday, September 18, 2016 22:01 To: Otcheretianski, Andrei ; Luca Coelho ; johan...@sipsolutions.net Cc: linux-wireless@vger.kernel.org; Beker, Ayala ; Grumbach, Emmanuel ; Coelho, Luciano Subject: Re: [PATCH v2 2/9] mac80211: add boilerplate code for start / stop NAN On 18-9-2016 9:59, Otcheretianski, Andrei wrote: >> -Original Message- >> From: Arend Van Spriel [mailto:arend.vanspr...@broadcom.com] >> Sent: Friday, September 16, 2016 14:09 >> To: Luca Coelho ; johan...@sipsolutions.net >> Cc: linux-wireless@vger.kernel.org; Beker, Ayala >> ; Otcheretianski, Andrei >> ; Grumbach, Emmanuel >> ; Coelho, Luciano >> >> Subject: Re: [PATCH v2 2/9] mac80211: add boilerplate code for start >> / stop NAN >> >> On 16-9-2016 10:33, Luca Coelho wrote: >>> From: Ayala Beker >>> >>> This code doesn't do much besides allowing to start and stop the vif. >>> >>> Signed-off-by: Andrei Otcheretianski >>> >>> Signed-off-by: Emmanuel Grumbach >>> Signed-off-by: Ayala Beker >>> Signed-off-by: Luca Coelho >>> --- >>> include/net/mac80211.h| 9 + >>> net/mac80211/cfg.c| 36 ++ >>> net/mac80211/chan.c | 3 +++ >>> net/mac80211/driver-ops.h | 29 ++- >>> net/mac80211/iface.c | 8 ++-- >>> net/mac80211/main.c | 5 + >>> net/mac80211/offchannel.c | 3 ++- >>> net/mac80211/trace.h | 50 >> +++ >>> net/mac80211/util.c | 3 ++- >>> 9 files changed, 141 insertions(+), 5 deletions(-) >> >> [...] >> >>> diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h >>> index fe35a1c..67b42c8 100644 >>> --- a/net/mac80211/driver-ops.h >>> +++ b/net/mac80211/driver-ops.h >>> @@ -163,7 +163,8 @@ static inline void drv_bss_info_changed(struct >>> ieee80211_local *local, >>> >>> if (WARN_ON_ONCE(sdata->vif.type == >> NL80211_IFTYPE_P2P_DEVICE || >>> (sdata->vif.type == NL80211_IFTYPE_MONITOR && >>> - !sdata->vif.mu_mimo_owner))) >>> + !sdata->vif.mu_mimo_owner) || >>> +sdata->vif.type == NL80211_IFTYPE_NAN)) >> >> Might be more clear to move this up right after P2P_DEVICE check. > > Why? It's a completely separate new condition - so it goes to the end. > I would say readability. Both P2P_DEVICE and NAN checks are single > comparisons as opposed to the MONITOR check. >> >>> return; >>> >>> if (!check_sdata_in_driver(sdata)) @@ -1165,4 +1166,30 @@ static >>> inline void drv_wake_tx_queue(struct >> ieee80211_local *local, >>> local->ops->wake_tx_queue(&local->hw, &txq->txq); } >>> >>> +static inline int drv_start_nan(struct ieee80211_local *local, >>> + struct ieee80211_sub_if_data *sdata, >>> + struct cfg80211_nan_conf *conf) { >>> + int ret; >>> + >>> + might_sleep(); >>> + check_sdata_in_driver(sdata); >>> + >>> + trace_drv_start_nan(local, sdata, conf); >>> + ret = local->ops->start_nan(&local->hw, &sdata->vif, conf); >>> + trace_drv_return_int(local, ret); >>> + return ret; >>> +} >>> + >>> +static inline void drv_stop_nan(struct ieee80211_local *local, >>> + struct ieee80211_sub_if_data *sdata) { >>> + might_sleep(); >>> + check_sdata_in_driver(sdata); >>> + >>> + trace_drv_stop_nan(local, sdata); >>> + local->ops->stop_nan(&local->hw, &sdata->vif); >>> + trace_drv_return_void(local); >>> +} >>> + >>> #endif /* __MAC80211_DRIVER_OPS */ >>> diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index >>> e694ca2..507f46a 100644 >>> --- a/net/mac80211/iface.c >>> +++ b/net/mac80211/iface.c >>> @@ -327,6 +327,9 @@ static int ieee80211_check_queues(struct >> ieee80211_sub_if_data *sdata, >>> int n_queues = sdata->local->hw.queues; >>> int i; >>> >>> + if (iftype == NL80211_IFTYPE_NAN) >>> + return 0; >>> + >>>
Re: [PATCH v2 2/9] mac80211: add boilerplate code for start / stop NAN
On 20-9-2016 13:45, Beker, Ayala wrote: > -Original Message- > From: Arend Van Spriel [mailto:arend.vanspr...@broadcom.com] > Sent: Sunday, September 18, 2016 22:01 > To: Otcheretianski, Andrei ; Luca Coelho > ; johan...@sipsolutions.net > Cc: linux-wireless@vger.kernel.org; Beker, Ayala ; > Grumbach, Emmanuel ; Coelho, Luciano > > Subject: Re: [PATCH v2 2/9] mac80211: add boilerplate code for start / stop > NAN > > On 18-9-2016 9:59, Otcheretianski, Andrei wrote: >>> -Original Message- >>> From: Arend Van Spriel [mailto:arend.vanspr...@broadcom.com] >>> Sent: Friday, September 16, 2016 14:09 >>> To: Luca Coelho ; johan...@sipsolutions.net >>> Cc: linux-wireless@vger.kernel.org; Beker, Ayala >>> ; Otcheretianski, Andrei >>> ; Grumbach, Emmanuel >>> ; Coelho, Luciano >>> >>> Subject: Re: [PATCH v2 2/9] mac80211: add boilerplate code for start >>> / stop NAN >>> >>> On 16-9-2016 10:33, Luca Coelho wrote: >>>> From: Ayala Beker >>>> >>>> This code doesn't do much besides allowing to start and stop the vif. >>>> >>>> Signed-off-by: Andrei Otcheretianski >>>> >>>> Signed-off-by: Emmanuel Grumbach >>>> Signed-off-by: Ayala Beker >>>> Signed-off-by: Luca Coelho >>>> --- >>>> include/net/mac80211.h| 9 + >>>> net/mac80211/cfg.c| 36 ++ >>>> net/mac80211/chan.c | 3 +++ >>>> net/mac80211/driver-ops.h | 29 ++- >>>> net/mac80211/iface.c | 8 ++-- >>>> net/mac80211/main.c | 5 + >>>> net/mac80211/offchannel.c | 3 ++- >>>> net/mac80211/trace.h | 50 >>> +++ >>>> net/mac80211/util.c | 3 ++- >>>> 9 files changed, 141 insertions(+), 5 deletions(-) >>> >>> [...] >>> >>>> diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h >>>> index fe35a1c..67b42c8 100644 >>>> --- a/net/mac80211/driver-ops.h >>>> +++ b/net/mac80211/driver-ops.h >>>> @@ -163,7 +163,8 @@ static inline void drv_bss_info_changed(struct >>>> ieee80211_local *local, >>>> >>>>if (WARN_ON_ONCE(sdata->vif.type == >>> NL80211_IFTYPE_P2P_DEVICE || >>>> (sdata->vif.type == NL80211_IFTYPE_MONITOR && >>>> -!sdata->vif.mu_mimo_owner))) >>>> +!sdata->vif.mu_mimo_owner) || >>>> + sdata->vif.type == NL80211_IFTYPE_NAN)) >>> >>> Might be more clear to move this up right after P2P_DEVICE check. >> >> Why? It's a completely separate new condition - so it goes to the end. > >> I would say readability. Both P2P_DEVICE and NAN checks are single >> comparisons as opposed to the MONITOR check. > >>> >>>>return; >>>> >>>>if (!check_sdata_in_driver(sdata)) @@ -1165,4 +1166,30 @@ static >>>> inline void drv_wake_tx_queue(struct >>> ieee80211_local *local, >>>>local->ops->wake_tx_queue(&local->hw, &txq->txq); } >>>> >>>> +static inline int drv_start_nan(struct ieee80211_local *local, >>>> + struct ieee80211_sub_if_data *sdata, >>>> + struct cfg80211_nan_conf *conf) { >>>> + int ret; >>>> + >>>> + might_sleep(); >>>> + check_sdata_in_driver(sdata); >>>> + >>>> + trace_drv_start_nan(local, sdata, conf); >>>> + ret = local->ops->start_nan(&local->hw, &sdata->vif, conf); >>>> + trace_drv_return_int(local, ret); >>>> + return ret; >>>> +} >>>> + >>>> +static inline void drv_stop_nan(struct ieee80211_local *local, >>>> + struct ieee80211_sub_if_data *sdata) { >>>> + might_sleep(); >>>> + check_sdata_in_driver(sdata); >>>> + >>>> + trace_drv_stop_nan(local, sdata); >>>> + local->ops->stop_nan(&local->hw, &sdata->vif); >>>> + trace_drv_return_void(local); >>>> +} >>>> + >>>> #endif /* __MAC80211_DRIVER_OPS */ >>>> diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index >&g
Re: [PATCH v2 2/9] mac80211: add boilerplate code for start / stop NAN
Hi Arend, On Tue, 2016-09-20 at 14:29 +0200, Arend Van Spriel wrote: > On 20-9-2016 13:45, Beker, Ayala wrote: > > I don't think there is something in common to those interface types > > that can fit such a function semantically, so I decided not to > > change it. > > Do you have any idea? > > What is common is that these are both non-netdev interface types. I tend to agree with you. I also thought about an ieee80211_has_netdev() function for this, but I didn't check whether this was exactly what we need... In any case, do you mind if we address this in a separate patch? -- Cheers, Luca.
Re: [PATCH v2 2/9] mac80211: add boilerplate code for start / stop NAN
On 20-9-2016 16:36, Luca Coelho wrote: > Hi Arend, > > On Tue, 2016-09-20 at 14:29 +0200, Arend Van Spriel wrote: >> On 20-9-2016 13:45, Beker, Ayala wrote: >>> I don't think there is something in common to those interface types >>> that can fit such a function semantically, so I decided not to >>> change it. >>> Do you have any idea? >> >> What is common is that these are both non-netdev interface types. > > I tend to agree with you. I also thought about an > ieee80211_has_netdev() function for this, but I didn't check whether > this was exactly what we need... Maybe it does not fit all instances, but quite a few checks are there to skip netdev related stuff. > In any case, do you mind if we address this in a separate patch? Fine by me. Regards, Arend > -- > Cheers, > Luca. >