*     with short barker preamble
  * @NL80211_STA_FLAG_WME: station is WME/QoS capable
  * @NL80211_STA_FLAG_MFP: station uses management frame protection
+ * @NL80211_STA_FLAG_AUTHENTICATED: station is authenticated
  * @NL80211_STA_FLAG_MAX: highest station flag number currently defined
  * @__NL80211_STA_FLAG_AFTER_LAST: internal use
  */
        NL80211_STA_FLAG_SHORT_PREAMBLE,
        NL80211_STA_FLAG_WME,
        NL80211_STA_FLAG_MFP,
+       NL80211_STA_FLAG_AUTHENTICATED,
 
        /* keep last */
        __NL80211_STA_FLAG_AFTER_LAST,
 
                if (set & BIT(NL80211_STA_FLAG_MFP))
                        sta->flags |= WLAN_STA_MFP;
        }
+
+       if (mask & BIT(NL80211_STA_FLAG_AUTHENTICATED)) {
+               sta->flags &= ~WLAN_STA_AUTH;
+               if (set & BIT(NL80211_STA_FLAG_AUTHENTICATED))
+                       sta->flags |= WLAN_STA_AUTH;
+       }
        spin_unlock_irqrestore(&sta->flaglock, flags);
 
        /*
 
        [NL80211_STA_FLAG_SHORT_PREAMBLE] = { .type = NLA_FLAG },
        [NL80211_STA_FLAG_WME] = { .type = NLA_FLAG },
        [NL80211_STA_FLAG_MFP] = { .type = NLA_FLAG },
+       [NL80211_STA_FLAG_AUTHENTICATED] = { .type = NLA_FLAG },
 };
 
 static int parse_station_flags(struct genl_info *info,
                        err = -EINVAL;
                if (params.supported_rates)
                        err = -EINVAL;
-               if (params.sta_flags_mask)
+               if (params.sta_flags_mask &
+                               ~(BIT(NL80211_STA_FLAG_AUTHENTICATED) |
+                                 BIT(NL80211_STA_FLAG_AUTHORIZED)))
                        err = -EINVAL;
                break;
        default: