]> git.ipfire.org Git - thirdparty/iw.git/blobdiff - survey.c
parse more extended capabilities
[thirdparty/iw.git] / survey.c
index f9f25089e2587074ae06d508419b11e3f20f0210..39cd7b8cd1531dfa8b48318ac4dde1903f2a987d 100644 (file)
--- a/survey.c
+++ b/survey.c
@@ -44,18 +44,35 @@ static int print_survey_handler(struct nl_msg *msg, void *arg)
        }
 
        if (sinfo[NL80211_SURVEY_INFO_FREQUENCY])
-               printf("\tfrequency:\t%u MHz\n",
-                       nla_get_u32(sinfo[NL80211_SURVEY_INFO_FREQUENCY]));
+               printf("\tfrequency:\t\t\t%u MHz%s\n",
+                       nla_get_u32(sinfo[NL80211_SURVEY_INFO_FREQUENCY]),
+                       sinfo[NL80211_SURVEY_INFO_IN_USE] ? " [in use]" : "");
        if (sinfo[NL80211_SURVEY_INFO_NOISE])
-               printf("\tnoise:\t\t%d dBm\n",
+               printf("\tnoise:\t\t\t\t%d dBm\n",
                        (int8_t)nla_get_u8(sinfo[NL80211_SURVEY_INFO_NOISE]));
+       if (sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME])
+               printf("\tchannel active time:\t\t%llu ms\n",
+                       (unsigned long long)nla_get_u64(sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME]));
+       if (sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY])
+               printf("\tchannel busy time:\t\t%llu ms\n",
+                       (unsigned long long)nla_get_u64(sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY]));
+       if (sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY])
+               printf("\textension channel busy time:\t%llu ms\n",
+                       (unsigned long long)nla_get_u64(sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY]));
+       if (sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_RX])
+               printf("\tchannel receive time:\t\t%llu ms\n",
+                       (unsigned long long)nla_get_u64(sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_RX]));
+       if (sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_TX])
+               printf("\tchannel transmit time:\t\t%llu ms\n",
+                       (unsigned long long)nla_get_u64(sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_TX]));
        return NL_SKIP;
 }
 
 static int handle_survey_dump(struct nl80211_state *state,
-                              struct nl_cb *cb,
-                              struct nl_msg *msg,
-                              int argc, char **argv)
+                             struct nl_cb *cb,
+                             struct nl_msg *msg,
+                             int argc, char **argv,
+                             enum id_input id)
 {
        nl_cb_set(cb, NL_CB_VALID, NL_CB_CUSTOM, print_survey_handler, NULL);
        return 0;