mac80211: add p2p device type support
When a driver advertises p2p device support, mac80211 will handle it, but internally it will rewrite the interface type to STA/AP rather than P2P-STA/GO since otherwise a lot of paths need to be touched that are otherwise identical. A p2p boolean tells drivers whether or not a given interface will be used for p2p or not. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
074ac8df9f
commit
2ca27bcff7
@ -25,12 +25,14 @@ static inline void trace_ ## name(proto) {}
|
||||
#define STA_PR_FMT " sta:%pM"
|
||||
#define STA_PR_ARG __entry->sta_addr
|
||||
|
||||
#define VIF_ENTRY __field(enum nl80211_iftype, vif_type) __field(void *, sdata) \
|
||||
#define VIF_ENTRY __field(enum nl80211_iftype, vif_type) __field(void *, sdata) \
|
||||
__field(bool, p2p) \
|
||||
__string(vif_name, sdata->dev ? sdata->dev->name : "<nodev>")
|
||||
#define VIF_ASSIGN __entry->vif_type = sdata->vif.type; __entry->sdata = sdata; \
|
||||
#define VIF_ASSIGN __entry->vif_type = sdata->vif.type; __entry->sdata = sdata; \
|
||||
__entry->p2p = sdata->vif.p2p; \
|
||||
__assign_str(vif_name, sdata->dev ? sdata->dev->name : "<nodev>")
|
||||
#define VIF_PR_FMT " vif:%s(%d)"
|
||||
#define VIF_PR_ARG __get_str(vif_name), __entry->vif_type
|
||||
#define VIF_PR_FMT " vif:%s(%d%s)"
|
||||
#define VIF_PR_ARG __get_str(vif_name), __entry->vif_type, __entry->p2p ? "/p2p" : ""
|
||||
|
||||
/*
|
||||
* Tracing for driver callbacks.
|
||||
@ -139,25 +141,28 @@ TRACE_EVENT(drv_add_interface,
|
||||
TRACE_EVENT(drv_change_interface,
|
||||
TP_PROTO(struct ieee80211_local *local,
|
||||
struct ieee80211_sub_if_data *sdata,
|
||||
enum nl80211_iftype type),
|
||||
enum nl80211_iftype type, bool p2p),
|
||||
|
||||
TP_ARGS(local, sdata, type),
|
||||
TP_ARGS(local, sdata, type, p2p),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
LOCAL_ENTRY
|
||||
VIF_ENTRY
|
||||
__field(u32, new_type)
|
||||
__field(bool, new_p2p)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
LOCAL_ASSIGN;
|
||||
VIF_ASSIGN;
|
||||
__entry->new_type = type;
|
||||
__entry->new_p2p = p2p;
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
LOCAL_PR_FMT VIF_PR_FMT " new type:%d",
|
||||
LOCAL_PR_ARG, VIF_PR_ARG, __entry->new_type
|
||||
LOCAL_PR_FMT VIF_PR_FMT " new type:%d%s",
|
||||
LOCAL_PR_ARG, VIF_PR_ARG, __entry->new_type,
|
||||
__entry->new_p2p ? "/p2p" : ""
|
||||
)
|
||||
);
|
||||
|
||||
|
Reference in New Issue
Block a user