Ok this is the interesting part :-) > + int (*tx_control_port)(struct wiphy *wiphy, > + struct net_device *dev, > + const u8 *buf, size_t len, > + const u8 *dest, const u16 proto, > + const bool noencrypt); (indentation seems off in both patchwork and my email, but whatever) > + wdev_lock(wdev); > + > + switch (wdev->iftype) { > + case NL80211_IFTYPE_STATION: > + if (wdev->current_bss) err, !current_bss? > + buf = nla_data(info->attrs[NL80211_ATTR_FRAME]); > + len = nla_len(info->attrs[NL80211_ATTR_FRAME]); > + dest = nla_data(info->attrs[NL80211_ATTR_MAC]); > + proto = nla_get_u16(info->attrs[NL80211_ATTR_CONTROL_PORT_ETHERTYPE]); > + noencrypt = > + nla_get_flag(info->attrs[NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT]); So this is the data we support here. Jouni and I were talking about this and were thinking we might need "use old key" or something like that. That's rather difficult to do though, I'm not even sure we keep the old key around? Jouni? Do you see how this could work? The other thing we thought about was that maybe we should have "open port after this frame", but since it's an in-band mechanism now you could do that also just before the frame. FWIW, I'm checking with our guy on what other specialities we might want to add into this mix as far as workarounds are concerned. johannes