@@ -18,6 +18,7 @@
#include "ieee802154.h"
#include "core.h"
+#include "trace.h"
/* Maximum number of PAN entries to store */
static int max_pan_entries = 100;
@@ -182,6 +183,8 @@ static void cfg802154_pan_update(struct cfg802154_registered_device *rdev,
found = cfg802154_find_matching_pan(rdev, new);
if (found)
cfg802154_unlink_pan(rdev, found);
+ else
+ trace_802154_new_pan(&new->desc);
if (unlikely(rdev->pan_entries >= max_pan_entries))
cfg802154_expire_oldest_pan(rdev);
@@ -356,6 +356,31 @@ DEFINE_EVENT(802154_wdev_template, 802154_rdev_stop_beacons,
TP_ARGS(wpan_phy, wpan_dev)
);
+DECLARE_EVENT_CLASS(802154_pan_evt,
+ TP_PROTO(struct ieee802154_pan_desc *desc),
+ TP_ARGS(desc),
+ TP_STRUCT__entry(
+ __field(u16, pan_id)
+ __field(__le64, coord_addr)
+ __field(u8, channel)
+ __field(u8, page)
+ ),
+ TP_fast_assign(
+ __entry->page = desc->page;
+ __entry->channel = desc->channel;
+ memcpy(&__entry->pan_id, &desc->coord->pan_id, 2);
+ memcpy(&__entry->coord_addr, &desc->coord->extended_addr, 8);
+ ),
+ TP_printk("panid: %u, coord_addr: 0x%llx, page: %u, channel: %u",
+ __entry->pan_id, __le64_to_cpu(__entry->coord_addr),
+ __entry->page, __entry->channel)
+);
+
+DEFINE_EVENT(802154_pan_evt, 802154_new_pan,
+ TP_PROTO(struct ieee802154_pan_desc *desc),
+ TP_ARGS(desc)
+);
+
TRACE_EVENT(802154_rdev_return_int,
TP_PROTO(struct wpan_phy *wpan_phy, int ret),
TP_ARGS(wpan_phy, ret),