]> git.ipfire.org Git - thirdparty/iw.git/blobdiff - info.c
iw: add packet offset information for wowlan pattern
[thirdparty/iw.git] / info.c
diff --git a/info.c b/info.c
index 4cdbda70a5a628be2a7a45e7bc3b1a5adee6871d..390ef6dbd7e6faa54f979633cebe6a7449095f54 100644 (file)
--- a/info.c
+++ b/info.c
@@ -400,9 +400,7 @@ broken_combination:
                        [NL80211_WOWLAN_TRIG_ANY] = { .type = NLA_FLAG },
                        [NL80211_WOWLAN_TRIG_DISCONNECT] = { .type = NLA_FLAG },
                        [NL80211_WOWLAN_TRIG_MAGIC_PKT] = { .type = NLA_FLAG },
-                       [NL80211_WOWLAN_TRIG_PKT_PATTERN] = {
-                               .minlen = sizeof(struct nl80211_wowlan_pattern_support),
-                       },
+                       [NL80211_WOWLAN_TRIG_PKT_PATTERN] = { .minlen = 12 },
                        [NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED] = { .type = NLA_FLAG },
                        [NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE] = { .type = NLA_FLAG },
                        [NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST] = { .type = NLA_FLAG },
@@ -429,8 +427,11 @@ broken_combination:
                                printf("\t\t * wake up on magic packet\n");
                        if (tb_wowlan[NL80211_WOWLAN_TRIG_PKT_PATTERN]) {
                                pat = nla_data(tb_wowlan[NL80211_WOWLAN_TRIG_PKT_PATTERN]);
-                               printf("\t\t * wake up on pattern match, up to %u patterns of %u-%u bytes\n",
-                                       pat->max_patterns, pat->min_pattern_len, pat->max_pattern_len);
+                               printf("\t\t * wake up on pattern match, up to %u patterns of %u-%u bytes,\n"
+                                       "\t\t   maximum packet offset %u bytes\n",
+                                       pat->max_patterns, pat->min_pattern_len, pat->max_pattern_len,
+                                       (nla_len(tb_wowlan[NL80211_WOWLAN_TRIG_PKT_PATTERN]) <
+                                       sizeof(*pat)) ? 0 : pat->max_pkt_offset);
                        }
                        if (tb_wowlan[NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED])
                                printf("\t\t * can do GTK rekeying\n");