Received: by 2002:a05:7412:f690:b0:e2:908c:2ebd with SMTP id ej16csp180708rdb; Thu, 19 Oct 2023 00:40:56 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFlz01D0ZyyNW6/Trtao6ENkiK8h9ByGwmaSMbjkk0FM+sApMAsp2QvZw8ELS0RY2zGEuTW X-Received: by 2002:a05:6a20:7343:b0:16b:e2e5:fe55 with SMTP id v3-20020a056a20734300b0016be2e5fe55mr1467871pzc.51.1697701255952; Thu, 19 Oct 2023 00:40:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697701255; cv=none; d=google.com; s=arc-20160816; b=Pv9IyzyINK/IBV+MiJrPqrOzI8GzlyjLrzhLA0Tw4I1JgAL1U6A4tRf6+0OrAZXY31 WJeGV0rcrb62dtKTul4IwW2gUlIEO3LcqiGGitAPVNYyuLztN3gMcOTSSkth3E68Vk58 6YQEO1HHrfcNuiqhmNTX7Psfqv2OIXtY2THhNjgy5HsXpY0OzJ+gUOXzBCsRQNbNoKSY z1pU+nexVYrkGC7NT85oyybvFhnV6LLz3v7qV6aIAq25AVMSqPdPvuZisymJsvjvRe7y E4pWMG86PA+vf1DOwjiaq65Ji4dNxN5p6ry0BvbnWmVlOftH3MJdfAsBvD+EWTnvRjDU 10ZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=iMXFMiqxRF4ZrXNIYCvGVYO9hGUxAK8o3g4c4gAh3KE=; fh=x0k6qa9ULBROgHZYHjqYExgPN4rEr9Vl1NHF15GTrIg=; b=fh6TYsk/KlDwsEyhH8f7hIWV+BWFXrtFmvzyDJpYuyQpIOu2/sb7WKblChzXr6/Vzt byTapufjYEsPHrkpcOX84NobGmtNY5jxkLyit4mb3WzA3pOLHog9f9tIBVNUqWHySWxl Ce7e8jFjO9P5YPoQDjF2IqFZCLKzqbUULbJOLFd+nlIDeopM9ibYTWWyBl8yc7Mfr42e ihoote3l6a6dVvld4ZvGZQ5m1MJgTV9JPmvxJgZbZKBsoN6BWxtRqCbESONVGwa40bKL VJFlCWJKk8uDJgG1gHU/YUVWLeQ9kDGXM7mBb4Yerd0qi4qGnyYUo6oPdQj3OYJDeEx0 rWcA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@morsemicro-com.20230601.gappssmtp.com header.s=20230601 header.b="nBaPH/cc"; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id ha15-20020a17090af3cf00b002774e11ca41si1606143pjb.67.2023.10.19.00.40.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Oct 2023 00:40:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@morsemicro-com.20230601.gappssmtp.com header.s=20230601 header.b="nBaPH/cc"; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id D086081356BC; Thu, 19 Oct 2023 00:40:52 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232858AbjJSHkv (ORCPT + 52 others); Thu, 19 Oct 2023 03:40:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38632 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232769AbjJSHku (ORCPT ); Thu, 19 Oct 2023 03:40:50 -0400 Received: from mail-pj1-x102b.google.com (mail-pj1-x102b.google.com [IPv6:2607:f8b0:4864:20::102b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B7994126 for ; Thu, 19 Oct 2023 00:40:48 -0700 (PDT) Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-27db9fdec0dso2355550a91.0 for ; Thu, 19 Oct 2023 00:40:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=morsemicro-com.20230601.gappssmtp.com; s=20230601; t=1697701248; x=1698306048; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=iMXFMiqxRF4ZrXNIYCvGVYO9hGUxAK8o3g4c4gAh3KE=; b=nBaPH/ccJuIcnDd/R5tI5PgtnwYSsJiT34qmA0uUqQSMteOkp/zusfuvgNQLUVBVkN onj6Yypn70p0cC7vc6gG8a7ZAwS0fZCD82hOCJI72gpSyakQhKne9jeBzPs9fvw8HyRf 6DCOv4GGFcAEAtmKvZTgMgyjODHLHnzUMRjMWfgR0EqwldLlPfAWbk5kPkN3IZ/B1209 CWjbDKE3y/dzjKlg++LIVy5DxH7UA5LBQ0EAMNq5JcXbJ6TirQXN04hSq93hRAvNiWgx tK+zoddIXME75lLTiC/ZgrY6lrrueO3r76EZ6qqbJYPxb09V1nl1NGfr/zWGhLALZk45 XB3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697701248; x=1698306048; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=iMXFMiqxRF4ZrXNIYCvGVYO9hGUxAK8o3g4c4gAh3KE=; b=CNZbPuS6d/7WNoIz+x5ahoQ4k2t33TSKD83iRXZyYzSNpEPy2xyTtB/tq1rF8nPq40 EnZpn3Ow2tNVs4rCp+2/3XF9p34zT/jpV/jOB+KA9E0MuDlZ36pp5ZaNbDOeSp6o/ATa mRU5CKeqUzis1wFvSBqGgxXFv4Udp7uVlGQVRdoIS0D8lx908h2LUd6vuQ9Mw/WOcaHJ edTAy3IeQHP+mAQApe31EwRcnufaPQzKDGhOMBLy3XASxA8hodB79X+WRJxv8OMeYwVO 3kEUUgbax8/IGi5zGt3MbIMWa4kXP2HGObX2eHve4sch718UhPACmGZz9vby1wu5WMN3 D7hQ== X-Gm-Message-State: AOJu0YwD9SixFL6PJpG5CszESN+xmAk8J7PzmjsXsYpb+Exp0EIovH6p MYcdOpUpnUjqAvxwXWkGlwQpggWBYpynYEaXT8WJIg== X-Received: by 2002:a17:90b:3c0f:b0:27d:e1c:5345 with SMTP id pb15-20020a17090b3c0f00b0027d0e1c5345mr1380758pjb.15.1697701247832; Thu, 19 Oct 2023 00:40:47 -0700 (PDT) Received: from bassem.sydney.mm.lcl (60-242-93-14.static.tpgi.com.au. [60.242.93.14]) by smtp.googlemail.com with ESMTPSA id rj12-20020a17090b3e8c00b00262eb0d141esm980596pjb.28.2023.10.19.00.40.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Oct 2023 00:40:47 -0700 (PDT) From: Bassem Dawood To: linux-wireless@vger.kernel.org Cc: Bassem Dawood Subject: [PATCH] iw: S1G: add 802.11ah support for link command display Date: Thu, 19 Oct 2023 18:40:19 +1100 Message-Id: <20231019074019.2246629-1-bassem@morsemicro.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Thu, 19 Oct 2023 00:40:52 -0700 (PDT) Amending the link command which depends on kernal changes for 802.11ah bandwidths/MCS/NSS NL80211_RATE_INFO_ attributes. S1G frequency offset being used as well for the MHz units print. Signed-off-by: Bassem Dawood --- link.c | 9 +++++++-- station.c | 10 ++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/link.c b/link.c index a090100..a7ee963 100644 --- a/link.c +++ b/link.c @@ -29,6 +29,7 @@ static int link_bss_handler(struct nl_msg *msg, void *arg) static struct nla_policy bss_policy[NL80211_BSS_MAX + 1] = { [NL80211_BSS_TSF] = { .type = NLA_U64 }, [NL80211_BSS_FREQUENCY] = { .type = NLA_U32 }, + [NL80211_BSS_FREQUENCY_OFFSET] = { .type = NLA_U32 }, [NL80211_BSS_BSSID] = { }, [NL80211_BSS_BEACON_INTERVAL] = { .type = NLA_U16 }, [NL80211_BSS_CAPABILITY] = { .type = NLA_U16 }, @@ -41,6 +42,7 @@ static int link_bss_handler(struct nl_msg *msg, void *arg) char mac_addr[20], dev[20], link_addr[20]; int link_id = -1; const char *indent = "\t"; + int freq_offset = 0; nla_parse(tb, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0), genlmsg_attrlen(gnlh, 0), NULL); @@ -121,9 +123,12 @@ static int link_bss_handler(struct nl_msg *msg, void *arg) nla_len(bss[NL80211_BSS_INFORMATION_ELEMENTS]), false, result->mld ? PRINT_LINK_MLO_LINK : PRINT_LINK); + if (bss[NL80211_BSS_FREQUENCY_OFFSET]) + freq_offset = nla_get_u32(bss[NL80211_BSS_FREQUENCY_OFFSET]); + if (bss[NL80211_BSS_FREQUENCY]) - printf("%sfreq: %d\n", indent, - nla_get_u32(bss[NL80211_BSS_FREQUENCY])); + printf("%sfreq: %d.%d\n", indent, + nla_get_u32(bss[NL80211_BSS_FREQUENCY]), freq_offset); if (nla_get_u32(bss[NL80211_BSS_STATUS]) != NL80211_BSS_STATUS_ASSOCIATED) return NL_SKIP; diff --git a/station.c b/station.c index da1feae..bf7c0f5 100644 --- a/station.c +++ b/station.c @@ -241,6 +241,16 @@ void parse_bitrate(struct nlattr *bitrate_attr, char *buf, int buflen) pos += snprintf(pos, buflen - (pos - buf), " 160MHz"); if (rinfo[NL80211_RATE_INFO_320_MHZ_WIDTH]) pos += snprintf(pos, buflen - (pos - buf), " 320MHz"); + if (rinfo[NL80211_RATE_INFO_1_MHZ_WIDTH]) + pos += snprintf(pos, buflen - (pos - buf), " 1MHz"); + if (rinfo[NL80211_RATE_INFO_2_MHZ_WIDTH]) + pos += snprintf(pos, buflen - (pos - buf), " 2MHz"); + if (rinfo[NL80211_RATE_INFO_4_MHZ_WIDTH]) + pos += snprintf(pos, buflen - (pos - buf), " 4MHz"); + if (rinfo[NL80211_RATE_INFO_8_MHZ_WIDTH]) + pos += snprintf(pos, buflen - (pos - buf), " 8MHz"); + if (rinfo[NL80211_RATE_INFO_16_MHZ_WIDTH]) + pos += snprintf(pos, buflen - (pos - buf), " 16MHz"); if (rinfo[NL80211_RATE_INFO_SHORT_GI]) pos += snprintf(pos, buflen - (pos - buf), " short GI"); if (rinfo[NL80211_RATE_INFO_VHT_NSS]) -- 2.25.1