mac80211: notify driver for change in multicast rates
PATCH v3 1/1 mac80211: notify driver for change in multicast rates
It is required to pass the rate information to driver/firmware when rate control is offloaded to firmware. This helps in changing multicast traffic rates thereby improving the network performance.
Signed-off-by Pradeep Kumar Chitrapu <[email protected]>
---
V3:
- Added Documentation
V2:
- Set the flag in missing places
include/net/mac80211.h | 3 +++ net/mac80211/cfg.c | 2 ++ net/mac80211/ibss.c | 2 +- net/mac80211/mesh.c | 3 ++- net/mac80211/util.c | 3 ++- 5 files changed, 10 insertions(+), 3 deletions(-)
include/net/mac80211.h +3 -0
@@ -309,6 +309,8 @@ struct ieee80211_vif_chanctx_switch {* @BSS_CHANGED_MU_GROUPS: VHT MU-MIMO group id or user position changed * @BSS_CHANGED_KEEP_ALIVE: keep alive options (idle period or protected * keep alive) changed. +* @BSS_CHANGED_MCAST_RATE: Multicast Rate setting changed for this interface +* */ enum ieee80211_bss_change {BSS_CHANGED_ASSOC =1 <<0 ,
@@ -336,6 +338,7 @@ enum ieee80211_bss_change {BSS_CHANGED_OCB =1 <<22 ,BSS_CHANGED_MU_GROUPS =1 <<23 ,BSS_CHANGED_KEEP_ALIVE =1 <<24 , + BSS_CHANGED_MCAST_RATE = 1<<25, /* when adding here, make sure to change ieee80211_reconfig */ };
net/mac80211/cfg.c +2 -0
@@ -2313,6 +2313,8 @@ static int ieee80211_set_mcast_rate(struct wiphy *wiphy, struct net_device *dev,memcpy (sdata->vif.bss_conf.mcast_rate, rate,sizeof (int ) *NUM_NL80211_BANDS ); +ieee80211_bss_info_change_notify (sdata,BSS_CHANGED_MCAST_RATE ); +return 0 ; }
net/mac80211/ibss.c +1 -1
@@ -1840,7 +1840,7 @@ int ieee80211_ibss_join(struct ieee80211_sub_if_data *sdata,IEEE80211_HT_OP_MODE_PROTECTION_NONHT_MIXED |IEEE80211_HT_PARAM_RIFS_MODE ; - changed |=BSS_CHANGED_HT ; + changed |=BSS_CHANGED_HT |BSS_CHANGED_MCAST_RATE ;ieee80211_bss_info_change_notify (sdata, changed); sdata->smps_mode =IEEE80211_SMPS_OFF ;
net/mac80211/mesh.c +2 -1
@@ -884,7 +884,8 @@ int ieee80211_start_mesh(struct ieee80211_sub_if_data *sdata)BSS_CHANGED_BEACON_ENABLED |BSS_CHANGED_HT |BSS_CHANGED_BASIC_RATES | -BSS_CHANGED_BEACON_INT ; +BSS_CHANGED_BEACON_INT | +BSS_CHANGED_MCAST_RATE ; local->fif_other_bss++;/* mesh ifaces must set allmulti to forward mcast traffic */
net/mac80211/util.c +2 -1
@@ -1971,7 +1971,8 @@ int ieee80211_reconfig(struct ieee80211_local *local)BSS_CHANGED_CQM |BSS_CHANGED_QOS |BSS_CHANGED_IDLE | -BSS_CHANGED_TXPOWER ; +BSS_CHANGED_TXPOWER | +BSS_CHANGED_MCAST_RATE ;if (sdata->vif.mu_mimo_owner) changed |=BSS_CHANGED_MU_GROUPS ;
Signature · 1 line
1.9.1