From patchwork Tue Dec 10 16:14:42 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Donald Hunter X-Patchwork-Id: 850073 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7E7F81AAA0E; Tue, 10 Dec 2024 16:15:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733847302; cv=none; b=A29hFAIbgIU03dPechdfX+TdxMFNKhw3JiZHpHR0XVjmSwbNAK/G04garNtQlO2UBH+wdwKWKpOatWlWntawSv5jAC93/chtZpYE8LMc1f+TWtg9rHywkH2JCDw9/6y4mHRuZctM48THnP0RctJu+oC7K/yMCAuz221KmG3/K6Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733847302; c=relaxed/simple; bh=B4eDaIl47FAQp3+iBlZOG7U4kOJNew7d8XOSbl8degg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=g5cQMWQFWtsSqq1gn8jQrLue3tyHlElgOS6RpfmPC8jDBpYOAGfzRktbjJzW4eL450+MLThzoQb1+4MbZnROft9UaPw9phxTFxMZ0I8YXwCQFN0kYVh8SJhleNt7w+bPc6tZnD+t2t3jiuvI0GPMffHFDrvYet5yzyd6TGUixDU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=jj5ZFaHY; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jj5ZFaHY" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-4361a50e337so3337075e9.0; Tue, 10 Dec 2024 08:15:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733847298; x=1734452098; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UfyKOgt9XE/lehI6wB+uzFWPDlGZk7iREHj4msL9Ld8=; b=jj5ZFaHYDCNBMZNXIOfSahSMfmcSdPo79dBYdN1QqLpD7qaB9Q4MPAh7fJtfrqqfZY 0P4qJr+bXl06Ihe5bdaEagWpV/JowSSSchI18tVsccSul3vdJMaGO7Di3DX92sJfbNwQ e1kyc8SstIyek0IbYFksLPI5iK6+ZWnRVwqmF0wXFwkZJEGa4uTkCU6T6V8f5JFmkOF/ 5nZuBtMT5dHUCerX8zNq+fKZ1xT0ahvrqzbXFuaeQWBwUKuCd0to+7a26uZVq0KRM02i /duDGf8oKfkHHJhuSMcO7Eiaa/6kFW3g+tDmujnqPfmesde+qE5T/YxprcTug1XPwudK stJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733847298; x=1734452098; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UfyKOgt9XE/lehI6wB+uzFWPDlGZk7iREHj4msL9Ld8=; b=vHYNOSIPLor7kY0spF5KKuAmH0Pnp1YJi5tNsxg2jf69qU5pRY9DAvsQfLotznL5NA j9G0UBwNiEKrlpgSjgvyzFwUQF6pODTMlN2yzkEs+M7nBp5H1gZ4NxaLPLYJf/j3Ha6o oL9hNZykKL0zn7Trt6bYT3mYauKixTPkUtaIJrYWBOCg0zm6nop2Osej+wRXiTm/aWPU /NC1zGIknU2ISJFgr2w9eh0mBEXxhR3Id6uTIKu3+oyLgSXpIe7FwWUg42p4cJRGFbKr 8sXDZ2lD/n3TwePT1ELzueo8Clr/9aa9y95SpVoOV9iZ9R7dQ6pZ3W1ARPsahMiKlfZj o6cQ== X-Forwarded-Encrypted: i=1; AJvYcCVJx7jrFaNtHz9dEpepKuQq6yxHlfu+oOnInjIgZJPkM1ZKHfILdogQ1i0cUzySFeVjsfyOOyozoSD2w9aIwQ==@vger.kernel.org X-Gm-Message-State: AOJu0YzExjFZByPh289zklRWXdf0AjxPUZKsrRIHG8u1T9E+ee4LrjUJ grQMwmnEdvk8u0hXO+0XeWKyMWL/+EKWLdsxQf2SD5o6kZWVNFvUUomp1g== X-Gm-Gg: ASbGnct48o9x+4hZVVCX5tnNZTemDAzGJclqrGcMVy9GxzoN0W9ZLeM7ofpkPI8aWoz nNMW7wZfz9nhAeUA8tqIJHlbz5IzSq0b8ORIYEgJtW3RRxB5qNl6YMg43NctHlm+gIK3ekpt54S afeNUr7doYvSqm5MK0PQA4tBFhXxqUchfUnD+gBU3kdfgJWF9/lnrOz+IIhuNUyG/3Hw0KmWhY2 JlTMLSGDk/S3kMKlKwZ45KGkuc+ILRPCtNKhZx+VL29KCk68dExiLauAXO/zDtrs+C/Ln5O X-Google-Smtp-Source: AGHT+IG3QJESz/b68Kb2pqLydDF/12Q+/FhXD4BaT8iyyfmaCymhVEcl+lcGJjKHGQcuS7cmSRpYig== X-Received: by 2002:a05:600c:1d24:b0:434:f219:6b28 with SMTP id 5b1f17b1804b1-434fffd056fmr45145785e9.24.1733847298219; Tue, 10 Dec 2024 08:14:58 -0800 (PST) Received: from imac.lan ([2a02:8010:60a0:0:75bb:8102:943a:2eb2]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-434f30bceadsm102383045e9.41.2024.12.10.08.14.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Dec 2024 08:14:57 -0800 (PST) From: Donald Hunter To: netdev@vger.kernel.org, Jakub Kicinski , "David S. Miller" , Eric Dumazet , Paolo Abeni , Simon Horman , Johannes Berg , linux-wireless@vger.kernel.org Cc: donald.hunter@redhat.com, Donald Hunter Subject: [PATCH net-next v2 1/7] tools/net/ynl: remove extraneous plural from variable names Date: Tue, 10 Dec 2024 16:14:42 +0000 Message-ID: <20241210161448.76799-2-donald.hunter@gmail.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20241210161448.76799-1-donald.hunter@gmail.com> References: <20241210161448.76799-1-donald.hunter@gmail.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 _decode_array_attr() uses variable subattrs in every branch when only one branch decodes more than a single attribute. Change the variable name to subattr in the branches that only decode a single attribute so that the intent is more obvious. Signed-off-by: Donald Hunter Acked-by: Jakub Kicinski --- tools/net/ynl/lib/ynl.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/net/ynl/lib/ynl.py b/tools/net/ynl/lib/ynl.py index 01ec01a90e76..dbc7a0a6ae68 100644 --- a/tools/net/ynl/lib/ynl.py +++ b/tools/net/ynl/lib/ynl.py @@ -644,15 +644,15 @@ class YnlFamily(SpecFamily): subattrs = self._decode(NlAttrs(item.raw), attr_spec['nested-attributes']) decoded.append({ item.type: subattrs }) elif attr_spec["sub-type"] == 'binary': - subattrs = item.as_bin() + subattr = item.as_bin() if attr_spec.display_hint: - subattrs = self._formatted_string(subattrs, attr_spec.display_hint) - decoded.append(subattrs) + subattr = self._formatted_string(subattr, attr_spec.display_hint) + decoded.append(subattr) elif attr_spec["sub-type"] in NlAttr.type_formats: - subattrs = item.as_scalar(attr_spec['sub-type'], attr_spec.byte_order) + subattr = item.as_scalar(attr_spec['sub-type'], attr_spec.byte_order) if attr_spec.display_hint: - subattrs = self._formatted_string(subattrs, attr_spec.display_hint) - decoded.append(subattrs) + subattr = self._formatted_string(subattr, attr_spec.display_hint) + decoded.append(subattr) else: raise Exception(f'Unknown {attr_spec["sub-type"]} with name {attr_spec["name"]}') return decoded From patchwork Tue Dec 10 16:14:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Donald Hunter X-Patchwork-Id: 849119 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CD7EE1FD791; Tue, 10 Dec 2024 16:15:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733847303; cv=none; b=KaRUaX7nUUwXFSKk4qOGNOOEqughd4zdyEqEr1q3r0UZ+SkbgaTXDrG+CGaGdN1tYRvSHXdc2HVpJLnytjlada5pGtJez1IxV94td89qI8UYHmXmtCzXkBfo0SeFz+e0Z6XIFG7iIV07kcX3Nh8UZrocU/0juu764kjDJwyEHM4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733847303; c=relaxed/simple; bh=Va3nsLmUl2P+rfyolzkwe9gtnla6bGra5Fmnc9s9mr4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=T/hnR9TNU+Rdi1dc0WbSratml8ULNGFbCXxZf9nLWQ9nMFLgI++Ff7ei2Atkrf/oIea9N3oC5aePokXglzCQ7vPPS4hWI4/T9I+Kq63CVcTMqoO9c5PjCUEMxmFEdwpbosKXK68kLzEuc+yBiZlEIHH7TNGSL+plCyyjZVrh/g0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Kzb1Xs2H; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Kzb1Xs2H" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-4361b0ec57aso1748305e9.0; Tue, 10 Dec 2024 08:15:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733847300; x=1734452100; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UheW5bGpPD5LwKX8nwzQTUxDQM96C2pEIHtc6nLg4Ng=; b=Kzb1Xs2HHRigemuBrhhjHt2y99giGzTTBsu/zOp/yCZ0yJBR/k1oeK/Ef+yMfYE6d5 e62cDONqDttR0r3LbS0VowCLftXCEZ5PZKm9MXP2qtgMdcj4KuuTCiz7MtIgsei/cUmy cUb/29QMKQ4mj9FxRVPjuIRAkx0LkG2ZGePqkETDkP53TzJe1G4wpssE9Fw9YqcTJra6 2avuyNHuIveaBy7QHA2UP7kaXWJlFcpzldsgtyXKNZ2XUEavwLu6zQnUAt9qAp9NcGEF hsx16mAWtvluqkrG8lht4bwfsxpgGMp6kgQxGgBeyWke/QXZUwtLDtD9Tq9GPT2bAvbw Xnbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733847300; x=1734452100; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UheW5bGpPD5LwKX8nwzQTUxDQM96C2pEIHtc6nLg4Ng=; b=k+mJo8vks32vQmifMNrOjphWZGK+sW8btO9wnI0uIb5lgBbe6gSGRx2s29EHh31HcQ VbJX2/ra2W7Kbtlj2by5U23uNnGyCV8+syexRofSe5oWbTwjgorVUASyIgfcPNMpIxrT YZ8kBPrclaG0Y7Xyyg0PLrzq3yft43bIM7UDjB+4n3ePlweK1MxLO3ercBN+oS3Zulv0 emWReeY2mjU+IyV+ltzim3QxyQCnqbdxWR3WaAVAO5sEIEB1dzXuZALd3eQdCrX9Qp5E /QC7NgmBzzXuF+3IFycZsMf4+H3t1MrhS4vJijK46aZqwRHGtA267esLaXpMYzdcGlIV /Zmw== X-Forwarded-Encrypted: i=1; AJvYcCW5gO/PFDFWWP6oPEB8MtOW7N5xft73XtbWdk/JW9xUUKxsjqhmAQYdtzBXYqhVsw4PpWsft0H5hfZa8lEBNA==@vger.kernel.org X-Gm-Message-State: AOJu0YwFXgvJ9q3XtS30rjVlgF6V6FM1BWOnbJ4Czhk8KEcIThW5xqsu 2veA8axc97N4uReWwBfV/eXqW3W5ZcXtF5tMVBxb6N3oDKGrkRYK3drBMQ== X-Gm-Gg: ASbGncu/wcoGXwGCJ9IzVXqqkawJmq7NiX2bRRy0tieFy9ohAo0uXW9M1SpGeB+lqIO 2cnDDyIWrmsKN7+J8O0FW4EWyAD0g3I9WEjPu1s80SItapvDi1lpHEw/V524QUmi47Z6iPfbOjY MiRPOWCL+UeuT9PiK+GHJxby6b17qnC5X5OyfDhsN6yU16d4YerTC3eGhXwFs0HI/9isvFC65xb xr/D8uZOGi4sx6mksZeuw0Tc8oKMHRmD1WCDx7TaRXA/q4Ry8osbN/cllNNv61HQ1U8yoWS X-Google-Smtp-Source: AGHT+IFuNL26PchbijBb1B5gEkQZE6B1k3FRETLVS9dcHM2Zyy+TYFVoXST5jWZm/NO+RlaouPB+SQ== X-Received: by 2002:a05:600c:4712:b0:434:a746:9c82 with SMTP id 5b1f17b1804b1-434e29f0392mr122500705e9.5.1733847299474; Tue, 10 Dec 2024 08:14:59 -0800 (PST) Received: from imac.lan ([2a02:8010:60a0:0:75bb:8102:943a:2eb2]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-434f30bceadsm102383045e9.41.2024.12.10.08.14.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Dec 2024 08:14:58 -0800 (PST) From: Donald Hunter To: netdev@vger.kernel.org, Jakub Kicinski , "David S. Miller" , Eric Dumazet , Paolo Abeni , Simon Horman , Johannes Berg , linux-wireless@vger.kernel.org Cc: donald.hunter@redhat.com, Donald Hunter Subject: [PATCH net-next v2 2/7] tools/net/ynl: support decoding indexed arrays as enums Date: Tue, 10 Dec 2024 16:14:43 +0000 Message-ID: <20241210161448.76799-3-donald.hunter@gmail.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20241210161448.76799-1-donald.hunter@gmail.com> References: <20241210161448.76799-1-donald.hunter@gmail.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 When decoding an indexed-array with a scalar subtype, it is currently only possible to add a display-hint. Add support for decoding each value as an enum. Signed-off-by: Donald Hunter Acked-by: Jakub Kicinski --- tools/net/ynl/lib/ynl.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/net/ynl/lib/ynl.py b/tools/net/ynl/lib/ynl.py index dbc7a0a6ae68..0d39a83574d5 100644 --- a/tools/net/ynl/lib/ynl.py +++ b/tools/net/ynl/lib/ynl.py @@ -650,7 +650,9 @@ class YnlFamily(SpecFamily): decoded.append(subattr) elif attr_spec["sub-type"] in NlAttr.type_formats: subattr = item.as_scalar(attr_spec['sub-type'], attr_spec.byte_order) - if attr_spec.display_hint: + if 'enum' in attr_spec: + subattr = self._decode_enum(subattr, attr_spec) + elif attr_spec.display_hint: subattr = self._formatted_string(subattr, attr_spec.display_hint) decoded.append(subattr) else: From patchwork Tue Dec 10 16:14:44 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Donald Hunter X-Patchwork-Id: 850072 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C600C231C8A; Tue, 10 Dec 2024 16:15:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733847304; cv=none; b=NFYg3C1aVGGWJ7LFwUN/19b7wuJLcdgJpn+RWb4VBfLlZoHDNsrMnvCcj4Ai+9IBctC+f8cObBejVJOfDDvcba0F0s+ExOX5R8pEsMCFzavqa0xKoou2Hl2zdK1z81QuARKzGZp5Qk/891FPiFoJpOon56ByxQifD3scPA4iUHA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733847304; c=relaxed/simple; bh=R+gI1dVon4DOKCOQXPYqAP++OPWqHLgaKnNN13U/JKQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RC08ab3ozKBjTVZUsK63RNsZAaLzEpC3U4+pJ+wVI5BMm9up1wMI5VDAy5ZZgJijVze1ksOtAD7PNSJO0MFlUkr+BNicq8+mW9eALDXWdbuSxqRtRGYXddf867BBMGIA3mfEUtboFoqumW2cYP9dtYe1znl2OaeSjIv68EL5mXU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=lMt93E6B; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="lMt93E6B" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-434f80457a4so13733045e9.0; Tue, 10 Dec 2024 08:15:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733847301; x=1734452101; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uwPeUXZL4LXTE5jOtux/7BrFO6qrNVnZqff4fvw1AyE=; b=lMt93E6BhlgC+NEKN6ASVRTU9qy6WSOe47zC1i41QRmhk2AubVoB2UZIriJSBzseZU Cw0rycqbZLpBeLz20pLtmB5Z62tiYyAgsw0NFPQfwFfpNQfm/P+55XeqF38t4KiaE74b ys3XA2Vc/8zWsCFZylwZ3cdkH7y8UQMPAOBsACo95YUXnQ3KzrvG1zqcluwKhspj5x4/ 72KqXi9ba6xkcrmAyU9GJU1CsmPAcJJrrrKG4Dphl3ng6dS27zg/dbbkZ81YjJfwS6fu B4AIi3FC8/utYzE6bb2sfXHinePOXxUQpMFGBi7tolTiEj6KH9Mqv76rWLS8yDlmyuw7 Mdpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733847301; x=1734452101; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uwPeUXZL4LXTE5jOtux/7BrFO6qrNVnZqff4fvw1AyE=; b=fvrK57nEHdbNe6N+k06jhc/5rxUf76fXRx3xgc/wyvDAakELJ4UrKHtqHLzFhZTMRd rG/JXyR6c0FnnXebUa4Suwg4ORC3eVof+De/YqA3sLJb7h4SmbScn9LTfaTHgQsAhGpW 1fkxsOiWIP+hR9iJtHrEi3g0vwa1opYp3fILyTIvT7BLUbz4AmUjCJlfzvvoHFp/0j2q 6UUeyCpsCOaGtKm5WqgJBm4h5yrM26abV/5LJRf6zaEKlTEhhRMlnBH9C0p+xZFq4oBR h4FHH0f4LPBXuo+E7ghwfcbuC99+SCB2NOhfYU6m5HDI/Yx8PBz1iE3jUR1RkklY/OuX PIYw== X-Forwarded-Encrypted: i=1; AJvYcCUDjm45vq5b1xHFLOFGW3RboQEAfImB3bG2vpQsvBN6VfZUR8VR/4hYyV4TKc1ugNBKw5zda1RNV0KwXXAe8w==@vger.kernel.org X-Gm-Message-State: AOJu0YzSCxHUlR9oKIVc0/NG6+doDzAnoVH+UwejFGOdRaxmlQ6dRBVM B6+cWu0RdJZQih1lyn+hlyH5Cl9o8f8LXrB/ZDc+KRU/E4LWvifU382rcg== X-Gm-Gg: ASbGncs/6Ft82bqp7c5yjzlWV12xfhr3lgxr/I87cOQelLacq/EOtaSfpfzhMgpbLbW jt4DQS5bRCdXDzLY+uH5jNbo6YXPgCVtz5718viC7hrsVOEgMdxT9DXdTRmoeOhk7W9md/yZPyc hORalmuozYPR56WFeIJOuTZo5e4rkz0hgbmP6Oc7JXs91wVjFcjjmoPCk+aU3UL/lM7LaSYHvfF EFqSzoIs26T+EZzkbOrSCQQUXaWCdhpJ8j12Yi3TFwJ6crOudVPydEcgrTMH8EQzXGRDDbc X-Google-Smtp-Source: AGHT+IEAVitG53IVlwQw+27U8bGL86kla+ZA3V2FZF8+BgxeSrD1N+XvL1mxBYpqn7sgedCNCS0Erw== X-Received: by 2002:a05:600c:19d0:b0:434:ff08:202e with SMTP id 5b1f17b1804b1-4350219d6ebmr30021285e9.8.1733847300797; Tue, 10 Dec 2024 08:15:00 -0800 (PST) Received: from imac.lan ([2a02:8010:60a0:0:75bb:8102:943a:2eb2]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-434f30bceadsm102383045e9.41.2024.12.10.08.14.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Dec 2024 08:15:00 -0800 (PST) From: Donald Hunter To: netdev@vger.kernel.org, Jakub Kicinski , "David S. Miller" , Eric Dumazet , Paolo Abeni , Simon Horman , Johannes Berg , linux-wireless@vger.kernel.org Cc: donald.hunter@redhat.com, Donald Hunter Subject: [PATCH net-next v2 3/7] tools/net/ynl: support rendering C array members to strings Date: Tue, 10 Dec 2024 16:14:44 +0000 Message-ID: <20241210161448.76799-4-donald.hunter@gmail.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20241210161448.76799-1-donald.hunter@gmail.com> References: <20241210161448.76799-1-donald.hunter@gmail.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 The nl80211 family encodes the list of supported ciphers as a C array of u32 values. Add support for translating arrays of scalars into strings for enum names and display hints. Signed-off-by: Donald Hunter Acked-by: Jakub Kicinski --- tools/net/ynl/lib/ynl.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/net/ynl/lib/ynl.py b/tools/net/ynl/lib/ynl.py index 0d39a83574d5..08ad2d8a874e 100644 --- a/tools/net/ynl/lib/ynl.py +++ b/tools/net/ynl/lib/ynl.py @@ -627,6 +627,10 @@ class YnlFamily(SpecFamily): decoded = self._decode_struct(attr.raw, attr_spec.struct_name) elif attr_spec.sub_type: decoded = attr.as_c_array(attr_spec.sub_type) + if 'enum' in attr_spec: + decoded = [ self._decode_enum(x, attr_spec) for x in decoded ] + elif attr_spec.display_hint: + decoded = self._formatted_string(decoded, attr_spec.display_hint) else: decoded = attr.as_bin() if attr_spec.display_hint: From patchwork Tue Dec 10 16:14:45 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Donald Hunter X-Patchwork-Id: 849118 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 32B4F233D9C; Tue, 10 Dec 2024 16:15:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733847305; cv=none; b=H3Elg49WqOYKT/ZYbvbx7fgsS58sWs2zhomD1QUF2DLkpdWdl0HZ0hgqRt0Qt9B6nGFAIiODmU29IWQLBnbICJCuOf+bG3u37sNnzcORLeryOtGIfAau6GJFlfhGAgMfftx7Ury5ORCOhpJ5a72fdDe/ca1Nmo5RlGbBGVO8jcM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733847305; c=relaxed/simple; bh=pPkDNIzYMqAPAZxjZ0L3vUGN0fX5rZxstXxWP0KZjr0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tOoteooKWNKdp5OWAe7dRQDYFRnKaOk+sDj84g1G2wjrXWgNNL3SiKejjl3ot5be/r3bPJPoJFXvsfepsr1otSL4/uAie6yldSH3d6oBv5r6cOcSru22sB0Zk7RYKoOK0ii2dlqJSJwyIjZSbevI2sNdCHElB+bvdU9UaDOJM9c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=J12+VUPT; arc=none smtp.client-ip=209.85.128.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="J12+VUPT" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-435005192d1so14064175e9.3; Tue, 10 Dec 2024 08:15:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733847302; x=1734452102; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=D7MEDGrn8ylg9WFEXDbicDG/hdkSOgHq3gb7E6Fqe/8=; b=J12+VUPT+/PWpflMBUr5p184u9rfAt/7u1f+2Y23wB/W09TBTi7RuUEMSEP0J4YHkl /9AGfa5EU5q+1eaMAFal0bKTiZzbRnmSzAHwL7R7+XLLkZU0ap5fXO1fElghSgJsphbg FbVxmjfolQDJ0bS7v1lGKxrig6HGgrfdPp17PE2J29JJ6EYeP8IQYRTc5DQNV869RBqN Fbamk+PAAUtsm2m5AXB9PxwB0BVRdfy+W97aXeJ0B4NrkVA8bpWuhuj2YJGCj0+pMKJc /FDKQk7LlOZxFgWRjMfzmCyj3FwM6lra4xhGlrzsONU33zMpKiJGcn2IPzDHHYAQorRI o0QQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733847302; x=1734452102; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=D7MEDGrn8ylg9WFEXDbicDG/hdkSOgHq3gb7E6Fqe/8=; b=RM+pDrksumG7oKz0bC5ijkXgw1WNSu+3VOWG1oKKs/LwiTWWFjofIEJmeP+zTofYHJ Dw3dxj72xLg+NbnW04LIkf9MeAFIFNBaUMiVWPp0URdm2rJ0m0F5sLfivw5OZ2q5JqTv i8LdaV0Q/OfCgdNc3CZVjYuNH1xRHkvwoK3jnpLDajSShJ7FDQQxlJp59W3jfqyRRtAM IVZSuBPtNG3OYS1Y2GzwrpF0jzQzQ2V+HpPEQc/zCU13eo0+KNT3doZqLQFFIS33dSEf iJ8mu9+tM1maCnHR/dlfJQgDsjamkodtHgGPzFOv8GW4GSvlSbzbRA1r9epc7YxePrlj jIFA== X-Forwarded-Encrypted: i=1; AJvYcCV/kpsBQxdnpWMQITpyHaX2CjsB6otUdWWyC9PVYLwa0XecdZnYnEXBvz9QgM3wNtUCuri0D6zcfPDP252F7Q==@vger.kernel.org X-Gm-Message-State: AOJu0Yx/y7A8ewW8a3GhuctH9jK+OJRdrwYamOyT8Eu8Hu5L592ia0DM NxhNnuz+mCC7Nu6kDDBOQvufrW69/1CwoNu7ZSK9J5ukp9cvWnV9xBHwVg== X-Gm-Gg: ASbGncu5rKT2/b1+gKuRanf+kNit52q7IU5BAdNxnvniOJ/mqf1h+PYXO6r4wdRy8lH ZGZN9U0E5haoa9qycz10wtV7dhDRMb2yiOliV9McRo2A3qRoZkq2ksD2Sc6I97vGAuIUvwhRrYC XLRpHTsO4VeLTRrgzwldo7tfHncw7rNsJgax0pwwXaPTFqro6/oB0bhYU266j38SdkDvc1tGhai p5yPbHe/ATNgKyRWOXIiWF7yoPNL3B7qIe4uoodFosxRck9z8STJ9vVnNAMa0vEbLizSy5+ X-Google-Smtp-Source: AGHT+IGSRzL2HVe4MCRAeSRNWXAWzTLTtAo/iR/UUaY2zntKwm4zhxMnpV3OYWQzZvfmGnMNpx5whA== X-Received: by 2002:a05:600c:4750:b0:435:192:63fb with SMTP id 5b1f17b1804b1-435019266f3mr43359805e9.3.1733847301962; Tue, 10 Dec 2024 08:15:01 -0800 (PST) Received: from imac.lan ([2a02:8010:60a0:0:75bb:8102:943a:2eb2]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-434f30bceadsm102383045e9.41.2024.12.10.08.15.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Dec 2024 08:15:01 -0800 (PST) From: Donald Hunter To: netdev@vger.kernel.org, Jakub Kicinski , "David S. Miller" , Eric Dumazet , Paolo Abeni , Simon Horman , Johannes Berg , linux-wireless@vger.kernel.org Cc: donald.hunter@redhat.com, Donald Hunter Subject: [PATCH net-next v2 4/7] tools/net/ynl: accept IP string inputs Date: Tue, 10 Dec 2024 16:14:45 +0000 Message-ID: <20241210161448.76799-5-donald.hunter@gmail.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20241210161448.76799-1-donald.hunter@gmail.com> References: <20241210161448.76799-1-donald.hunter@gmail.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 The ynl tool uses display-hint to know when to format IP addresses in printed output, but not to parse IP addresses from --json input. Add support for parsing ipv4 and ipv6 strings. Signed-off-by: Donald Hunter --- tools/net/ynl/lib/ynl.py | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/tools/net/ynl/lib/ynl.py b/tools/net/ynl/lib/ynl.py index 08ad2d8a874e..c9ed356d7ed2 100644 --- a/tools/net/ynl/lib/ynl.py +++ b/tools/net/ynl/lib/ynl.py @@ -536,9 +536,11 @@ class YnlFamily(SpecFamily): try: return int(value) except (ValueError, TypeError) as e: - if 'enum' not in attr_spec: - raise e - return self._encode_enum(attr_spec, value) + if 'enum' in attr_spec: + return self._encode_enum(attr_spec, value) + if attr_spec.display_hint: + return self._from_string(value, attr_spec) + raise e def _add_attr(self, space, name, value, search_attrs): try: @@ -571,7 +573,10 @@ class YnlFamily(SpecFamily): if isinstance(value, bytes): attr_payload = value elif isinstance(value, str): - attr_payload = bytes.fromhex(value) + if attr.display_hint: + attr_payload = self._from_string(value, attr) + else: + attr_payload = bytes.fromhex(value) elif isinstance(value, dict) and attr.struct_name: attr_payload = self._encode_struct(attr.struct_name, value) else: @@ -901,6 +906,18 @@ class YnlFamily(SpecFamily): formatted = raw return formatted + def _from_string(self, string, attr_spec): + if attr_spec.display_hint in ['ipv4', 'ipv6']: + ip = ipaddress.ip_address(string) + if attr_spec['type'] == 'binary': + raw = ip.packed + else: + raw = int(ip) + else: + raise Exception(f"Display hint '{attr_spec.display_hint}' not implemented" + f" when parsing '{attr_spec['name']}'") + return raw + def handle_ntf(self, decoded): msg = dict() if self.include_raw: From patchwork Tue Dec 10 16:14:46 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Donald Hunter X-Patchwork-Id: 850071 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5670923315C; Tue, 10 Dec 2024 16:15:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733847307; cv=none; b=KKtJ1VY8++ohbcb5NRmoCt+Ft2rxHaum/OAIO7Ob8Kv2fQJKu3Xpn8IID+yC2bnk+D+TH0Aws4smiTJlsNYVngO4oTmPk9RVDx8XWEJucpjvujKx256T5B1pB3E5ylrYqBVYI+jnzvsjeQcIiCQvvP/kO3eSUuNXJHeANpCS6DE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733847307; c=relaxed/simple; bh=9NI8NiK7Pl8UWxcrZocddxLe+b2veW5kAMiWu8Q1SqQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jUmVP3mCXnK7EBkh878YeL6G16+EZm20pHwEvRVSiJwUKe40LRiU1cGLcP84oUM3fe4mMB/bpHqHEZMnnNbxi7WUBc3Y37Cwro9pz9sFX0s386B/GV3Uv2Ovh6VzdHOyqpef2t4dYyGU2Qkjs78X/uvfqYgvhbw3pq6Srh2+8Nc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=hbHxWSI0; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hbHxWSI0" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-4361a50e337so3337845e9.0; Tue, 10 Dec 2024 08:15:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733847303; x=1734452103; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=C79PbJdrYfJ7dR5W/njrDxtgWf/K1Zbk95Sw0l32mR8=; b=hbHxWSI0byiK8s3j5AV48T15S7U60THZ2QfvnXTwBV7GdgWcVuIPwFevoQOwuvzqgA 0vutXxSGgKNj1cXE0KF6hWZmcRiqx6zgSUigfAYjLwoAucDXd9LR+GQd0gB+RraXxPkN uolPU55nGdapzQm0yS7iW/CXxUPWMlEr4XY6FRZ0WVeTYZeI/OGII+C8s7/cKdAd8Fpr zUYCn6RK24ExhB8XeSDop3XG7ckioqgWfVkj8Pd6hGLstoUWx1dEjrg7ZUrNoJpVRjG+ AY0PxzvdNU2gXS6ieiCpuyj4V1QKPhvBavHDQl6b1cSZg+zPwsRF0xW8Vi5QQp5G5AN/ UP1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733847303; x=1734452103; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=C79PbJdrYfJ7dR5W/njrDxtgWf/K1Zbk95Sw0l32mR8=; b=m3/CkGNS9KB6JYZOyvuraIkaOu7bClEabrjp0fy13FYJCCPkMQ+RoLzpMLP2UgNZhi YCOYVCj97+EoeeJX2CTr77vb3ZckLa6WlsbddAun09k7PcjqTGah8g81EkgdepgL25aA TFMrVtwCQaZpnrdFgzjE3B91yb6Dulu+oa0z0nDPxDETqPmCkIcSQyX2Gv/moJTQCrtx sq4+Jumqf6wjevon+fcvPqFZy+pqgQaPwLrcHq4k7W9pk0yYVYVowZZyTQrcWKCYPNjP RW1B5EBE/bJ437S6/65IttfhQ5ys/PFU47fn+/7vZzMfL/abJLa+C5SEeiAqavrmpfhV E2bw== X-Forwarded-Encrypted: i=1; AJvYcCUQWoFBz06E4g++MzXtojKvZBYjuMchS+U/uT7I5BtEl6AeYL9DIeY6NKwiTeGfatxFNJpyKo4+f0xr7GuCHw==@vger.kernel.org X-Gm-Message-State: AOJu0Yza68Tcp5HU4u/HJoTDoCkUDGnkBmC0gJkfX/5ytGtlBbJQ0egN O5KEJel+mwLO2y94UWaOFz/l4wHTPICprwRZm9uMZtE6B3IBg6vTzYQ7Aw== X-Gm-Gg: ASbGncsWlN2jw++E+2AcBEF/qJsvtx5VIWq2LZl6+6bc/nHg0tY+fCrwKDUcR81eLFO lAk6mmnwFN5B4kN8qRGTyo41kRCbYNq68pIAC3R4Rag/wCKfIK4JQ0gNrYLmnUTq5rUewy2bkux EZ4s2YzkLKhNBlSCX7FLol0kmgDf0Db0hd6A8yaKftyej/wrl2w/M2pklPLiyH6M/dSRjvfYCx7 5bSe5pmvenWP26V3eyxEUeAxEYEaaf6FYEHAudlKZoVq+P1fJD0k+xosoORGMo5CabYR6vX X-Google-Smtp-Source: AGHT+IHxSTuvbOlEGWKttE1ufcA2mbxzxo6NwytiDcCpwZMc+0qHix3dkVLMpE2GWm8kmuobvYXz4Q== X-Received: by 2002:a05:600c:2947:b0:435:9ed3:5688 with SMTP id 5b1f17b1804b1-4359ed35896mr25672705e9.18.1733847303280; Tue, 10 Dec 2024 08:15:03 -0800 (PST) Received: from imac.lan ([2a02:8010:60a0:0:75bb:8102:943a:2eb2]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-434f30bceadsm102383045e9.41.2024.12.10.08.15.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Dec 2024 08:15:02 -0800 (PST) From: Donald Hunter To: netdev@vger.kernel.org, Jakub Kicinski , "David S. Miller" , Eric Dumazet , Paolo Abeni , Simon Horman , Johannes Berg , linux-wireless@vger.kernel.org Cc: donald.hunter@redhat.com, Donald Hunter Subject: [PATCH net-next v2 5/7] netlink: specs: support nested structs in genetlink legacy Date: Tue, 10 Dec 2024 16:14:46 +0000 Message-ID: <20241210161448.76799-6-donald.hunter@gmail.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20241210161448.76799-1-donald.hunter@gmail.com> References: <20241210161448.76799-1-donald.hunter@gmail.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Nested structs are already supported in netlink-raw. Add the same capability to the genetlink legacy schema. Signed-off-by: Donald Hunter Acked-by: Jakub Kicinski --- Documentation/netlink/genetlink-legacy.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/netlink/genetlink-legacy.yaml b/Documentation/netlink/genetlink-legacy.yaml index 16380e12cabe..7520f63ec3d2 100644 --- a/Documentation/netlink/genetlink-legacy.yaml +++ b/Documentation/netlink/genetlink-legacy.yaml @@ -151,6 +151,9 @@ properties: the right formatting mechanism when displaying values of this type. enum: [ hex, mac, fddi, ipv4, ipv6, uuid ] + struct: + description: Name of the nested struct type. + type: string # End genetlink-legacy attribute-sets: From patchwork Tue Dec 10 16:14:47 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Donald Hunter X-Patchwork-Id: 849117 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BC293234982; Tue, 10 Dec 2024 16:15:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733847308; cv=none; b=RdSXADmAaqUBmp6lOser0JEePfURc6PtuxHv4AJfGk7VIaLJ1n6P5qOrp1DyRMLWQyhUZs2qf4CEUDtGDc8CrE4ipD2vtVLrSoCJMAdkd/KeI0BGsBtzEwVHo8TIU2jLt/gkK3Ilj4v/aB8ENn1/DuLs+MRu4vliPJNA1a7w44M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733847308; c=relaxed/simple; bh=INjc3lTxaTUv0xreNgPhd2hYLMGopGNiP17h3MeQ6GA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tBIo7/xGeJwJhVw9TCzfEYBvyYrIWthGyXMDB4q5BblgCrbQmQZ0JI563iPYjhKjszNSt3ePSpjd+QZQZyg80hh6dBJtuykg4EX6luTaND1TbLXj0tbBhs9DTfr1Udth8by+jcB6D2TSCn832LPVL0lERnSmlmmjav3FJG0xaY8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=JOgPoLaJ; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JOgPoLaJ" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-434a736518eso64293825e9.1; Tue, 10 Dec 2024 08:15:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733847305; x=1734452105; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Q+fKNnTxR7JlpdmFjGqdREB0oT6hlKwkDIMPk35TRKA=; b=JOgPoLaJCG+W8YX2I766gw6jQefNSpYWDIjdR8428wPvYKxJ0+ja6jBE5/waX5cZzC oAKIYnsRtZ+o70ng64kkIwhBb4N88C2NazJSu7eymC0N41CVzz9Cux9o2imiE8R5Jtow YS73hFFihaiGFo+kUREWrSn5j2Sfo+zaMThDXa88x6BkCZBaQvlxFbEYbkyTqof/8ISc V0eWR9Hpw3JqJ7TOb6QA8+ULI+YFo9w8eSSgv7oGo3SxukjlInZ45yKRvD079nPESymu 1Ef1zdJ3lhCx1q4Vr6OUBVIWNTHy/OPeYLftbpO80eil7lVHJ4If69gR4v8o3CBdv8ww Ddsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733847305; x=1734452105; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Q+fKNnTxR7JlpdmFjGqdREB0oT6hlKwkDIMPk35TRKA=; b=iIUuNgCJYJ4R2UK2UqPM7TwAdoSxtdwBoap2b/NjcVTHnBg+XRuE3SycqVHHH1waJP QjK8xXQBsscjwextCEX+DY3BNhWUdXoCYuRoBp9FOqcAveHVKGrkTLNxTCnAp2ffCqzL gxYi8sOlIKAFvftqDgd7nH34LJ2y+2X8cbhhGqMR7CXzvPYuzvl/XDYy10Iop2Dd0gdi 6JiitghmgFEIc+ioomQjj7z5Y0Bp5W7YU20i89R/6M4WM3TrM+piTN5251SF6M2755Sn aKImzvc7X9JJxJo6NMG1jJ6cVMSa95Sy52NSmOIPjmTPXkvE/nzbKfQVPlZea6PhF3xU TGMg== X-Forwarded-Encrypted: i=1; AJvYcCUrwqtbgsJuMXUVxhcgb8L3g63OxHEOg9+sZ126GuW6TM9R8KDe4wzy9l2iCafMgwUgvujcO/fIK0ZWs5r1cQ==@vger.kernel.org X-Gm-Message-State: AOJu0YzM+lbKRViqoDVz2PHWcIepgfSzmnCUv7/BvKR/SIewusDN7lMw dI371wSergJJ17vfVOmAoyim94ZAKuSDxN8sJIqjj2e4DsXefLRA6w9R4Q== X-Gm-Gg: ASbGncu9YycyV4v1/Bz/dqvXxbnxQpKHPHRWjhIvVXcYvjeRZmUnBg66H3GWlrh57mS dPZC0S7iLYrd/C03BHpvSzyOqW7D+MuYSk2IzSByRuDxXqJj+TlQ/Xh/qadU2pim8Tj7ZcI7G5J fN9Wl24Ms4vlJySCU0M6jYNOZ0EHeDx+KmxNwtFdz1h8HmEW1QNGYTKJInK0nXAVUoPn/R0RQTM x2Xfxd7S859BPx9eqn7Y/U12PPwDF6FsbRIJIzEdlXTWlnNdHGblYeR/wDQZ5pqSgXMPJN/ X-Google-Smtp-Source: AGHT+IH5Rp/5Gazb1vICk8qkAqqI1T/UcFMLoV5iYK8V0f4SZz46M1FL/UYomfFbMxwdoqbo255kuQ== X-Received: by 2002:a05:600c:241:b0:436:18d0:aa6e with SMTP id 5b1f17b1804b1-43618d0ab9fmr22529025e9.5.1733847304380; Tue, 10 Dec 2024 08:15:04 -0800 (PST) Received: from imac.lan ([2a02:8010:60a0:0:75bb:8102:943a:2eb2]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-434f30bceadsm102383045e9.41.2024.12.10.08.15.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Dec 2024 08:15:03 -0800 (PST) From: Donald Hunter To: netdev@vger.kernel.org, Jakub Kicinski , "David S. Miller" , Eric Dumazet , Paolo Abeni , Simon Horman , Johannes Berg , linux-wireless@vger.kernel.org Cc: donald.hunter@redhat.com, Donald Hunter Subject: [PATCH net-next v2 6/7] netlink: specs: add s8, s16 to genetlink schemas Date: Tue, 10 Dec 2024 16:14:47 +0000 Message-ID: <20241210161448.76799-7-donald.hunter@gmail.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20241210161448.76799-1-donald.hunter@gmail.com> References: <20241210161448.76799-1-donald.hunter@gmail.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Add s8 and s16 types to the genetlink schemas to align scalar types across all schemas. Signed-off-by: Donald Hunter Reviewed-by: Jakub Kicinski --- Documentation/netlink/genetlink-c.yaml | 2 +- Documentation/netlink/genetlink-legacy.yaml | 2 +- Documentation/netlink/genetlink.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/netlink/genetlink-c.yaml b/Documentation/netlink/genetlink-c.yaml index 9660ffb1ed6a..1cfc8073a120 100644 --- a/Documentation/netlink/genetlink-c.yaml +++ b/Documentation/netlink/genetlink-c.yaml @@ -160,7 +160,7 @@ properties: type: string type: &attr-type enum: [ unused, pad, flag, binary, - uint, sint, u8, u16, u32, u64, s32, s64, + uint, sint, u8, u16, u32, u64, s8, s16, s32, s64, string, nest, indexed-array, nest-type-value ] doc: description: Documentation of the attribute. diff --git a/Documentation/netlink/genetlink-legacy.yaml b/Documentation/netlink/genetlink-legacy.yaml index 7520f63ec3d2..f98ed12a09c0 100644 --- a/Documentation/netlink/genetlink-legacy.yaml +++ b/Documentation/netlink/genetlink-legacy.yaml @@ -206,7 +206,7 @@ properties: type: &attr-type description: The netlink attribute type enum: [ unused, pad, flag, binary, bitfield32, - uint, sint, u8, u16, u32, u64, s32, s64, + uint, sint, u8, u16, u32, u64, s8, s16, s32, s64, string, nest, indexed-array, nest-type-value ] doc: description: Documentation of the attribute. diff --git a/Documentation/netlink/genetlink.yaml b/Documentation/netlink/genetlink.yaml index b036227b46f1..11c1592d49be 100644 --- a/Documentation/netlink/genetlink.yaml +++ b/Documentation/netlink/genetlink.yaml @@ -123,7 +123,7 @@ properties: type: string type: &attr-type enum: [ unused, pad, flag, binary, - uint, sint, u8, u16, u32, u64, s32, s64, + uint, sint, u8, u16, u32, u64, s8, s16, s32, s64, string, nest, indexed-array, nest-type-value ] doc: description: Documentation of the attribute. From patchwork Tue Dec 10 16:14:48 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Donald Hunter X-Patchwork-Id: 850070 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 53CA5237A2B; Tue, 10 Dec 2024 16:15:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733847311; cv=none; b=UXqeuh3DUnvvhWadesaVRZ5+eA3lcvGM8F55ctc7MP9VUloLechrY/9f/ABw9v3HQeJj0mRixKWnLfalRDoY0wluz66l5iyzUahko1RiZMTayoHLSrIYAcB0Yh1eEgdkfe0LVTvcPdqn1FjpVmV9tvt3BT17U71elO4TXQpvHNk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733847311; c=relaxed/simple; bh=8Uqgb2fHinjNCwy66BvqLD3Ru4K88xyMePILKOpl6Tk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=k4CF5LS62RriKByOBCotVM/xkEikOSrvpEwgxLVp7JqonVAGovR70jAB1kon9fsX0QCqZ7M2f+cjTBFlZ9FW0iI39Mu8LllBswiXh8eFbvrcxg8aFAzzxHMQj/YnRBgK2NixkAPgYBP7uWn5Kj/KVx9XxPcq3RD1sITeWP2TydI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=PXEkG5qm; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PXEkG5qm" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-434a736518eso64294315e9.1; Tue, 10 Dec 2024 08:15:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733847306; x=1734452106; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=I/Re7QtAMsq+yAjF58tbutaG0NL6IjsfLrtFNa+tF0A=; b=PXEkG5qmcA065YKzZPb8GqY3co8zJfJEbbEzU6FqTeF8LEs7kqkiCdjBMQS20DByAL syb++pOOqf85UDcTBv6AyZS3JnTs8WcqCX0eJN1zwC7uj+ML6bfeCYqEOB6p06DHSdq4 iCl9dPlDCMQJkTGeOwVTeWuWwr4Idsz3aBKlJ6jL5YgFCcn+qHpUYlmP6EH4P3GbhhTv 5kaban4JiccoiZfU2VjBZ/LC3SJcim5FAjVFO7aUb6LmX81qZow86oSXiduo+YxomyDV SquTtmNLms2rMjFX9LH6BUxDUnLOEmobV2ImFdk6YD7J+bwtwz+buzhIO3OBKX6znOhn 45nA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733847306; x=1734452106; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=I/Re7QtAMsq+yAjF58tbutaG0NL6IjsfLrtFNa+tF0A=; b=VP8I2c3YJ7nLYJLK8ajY7FuaJwqMgFCqXjBtPJMRVhoRS7D6EFz+UJR1zryrjP9/zl c8fn8PN+jFFt0IdG0cTC+SO0aq3oP7sic7+RTLppS2F8SjnKZRlerJCQfgLJTrUnixfk +w34asxj6dgNqSzDNzq3YtLgM4eefxcSz5sR1ZeDcIiJuq1U2ocNGODbp5C5X2ourwGt f7Ut7r0NjFyvlvAzKMMA1ar6+e/QXXveqh/qjo7hQkOLk+KT1QwBLSHj/kB8kNvvwQ9h u2FTveQlgBQXF3jhvAt5ycf/DNG9pTdNSXEF9vu1JhkH2iGfTlm4JJuLIR550NVmN3di Fiug== X-Forwarded-Encrypted: i=1; AJvYcCXlZoiiVF1+ku303m8jejExdjd+Cksr1U4xTymxXak7FwwjmvHbu4ocsD9PrwRZ2RN3waQiE8OgJuWP1GrOgg==@vger.kernel.org X-Gm-Message-State: AOJu0Yzrmmxy6lu+l/fRhywsyAt7GCNa+yCIJDW86QznNBdbMuwgKamw WmsDuV2goU6sUFm1M3lC7Cmz0GTca2cj7zvZBZAONe+Nkh6nVtqXryXoZA== X-Gm-Gg: ASbGncsQkhoc8GYymr2QSLgQKj35CPOXrExi4XrdzRRzwOv5Mknv2x9lpKEgKcvjPZB 9afCIDuhIt5McSb+YOQ5zHimcciRIA7ljlwVc0PVzASZWtqGwpdkC8hm+Nt1UrfIJP7q3P1FSH/ wWjN1hSAiIrRj20/8CYluROQthPikr2Tjgbpq+RS9qJJB0Y8nL/+y827ANabvnpcdr/eT/RqBj9 8PULQxnEsGTxw+PD1xsnymckA+d9MnZSQif7vJyMnGvPIQq2k0qkwv3OPTjJgSIuOK1phs3 X-Google-Smtp-Source: AGHT+IH2IBOkOAhozZU6dKK+jtSeXgglwkbBhODQKTn+RcMmCRgsdtiVFHx3QAFrfTfRpScgYqBIQA== X-Received: by 2002:a05:600c:4511:b0:434:9fac:b157 with SMTP id 5b1f17b1804b1-434fff3de64mr58313115e9.13.1733847305970; Tue, 10 Dec 2024 08:15:05 -0800 (PST) Received: from imac.lan ([2a02:8010:60a0:0:75bb:8102:943a:2eb2]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-434f30bceadsm102383045e9.41.2024.12.10.08.15.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Dec 2024 08:15:05 -0800 (PST) From: Donald Hunter To: netdev@vger.kernel.org, Jakub Kicinski , "David S. Miller" , Eric Dumazet , Paolo Abeni , Simon Horman , Johannes Berg , linux-wireless@vger.kernel.org Cc: donald.hunter@redhat.com, Donald Hunter Subject: [PATCH net-next v2 7/7] netlink: specs: wireless: add a spec for nl80211 Date: Tue, 10 Dec 2024 16:14:48 +0000 Message-ID: <20241210161448.76799-8-donald.hunter@gmail.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20241210161448.76799-1-donald.hunter@gmail.com> References: <20241210161448.76799-1-donald.hunter@gmail.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Add a rudimentary YNL spec for nl80211 that covers get-wiphy, get-interface and get-protocol-features. ./tools/net/ynl/cli.py \ --spec Documentation/netlink/specs/nl80211.yaml \ --do get-protocol-features {'protocol-features': {'split-wiphy-dump'}} ./tools/net/ynl/cli.py \ --spec Documentation/netlink/specs/nl80211.yaml \ --dump get-wiphy --json '{ "split-wiphy-dump": true }' ./tools/net/ynl/cli.py \ --spec Documentation/netlink/specs/nl80211.yaml \ --dump get-interface Signed-off-by: Donald Hunter --- Documentation/netlink/specs/nl80211.yaml | 1938 ++++++++++++++++++++++ 1 file changed, 1938 insertions(+) create mode 100644 Documentation/netlink/specs/nl80211.yaml diff --git a/Documentation/netlink/specs/nl80211.yaml b/Documentation/netlink/specs/nl80211.yaml new file mode 100644 index 000000000000..5c2650d88790 --- /dev/null +++ b/Documentation/netlink/specs/nl80211.yaml @@ -0,0 +1,1938 @@ +# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) + +name: nl80211 +protocol: genetlink-legacy + +doc: + Netlink API for 802.11 wireless devices + +definitions: + - + name: nl80211-commands + type: enum + entries: + - unspec + - get-wiphy + - set-wiphy + - new-wiphy + - del-wiphy + - get-interface + - set-interface + - new-interface + - del-interface + - get-key + - set-key + - new-key + - del-key + - get-beacon + - set-beacon + - new-beacon + - del-beacon + - get-station + - set-station + - new-station + - del-station + - get-mpath + - set-mpath + - new-mpath + - del-mpath + - set-bss + - set-reg + - req-set-reg + - get-mesh-config + - set-mesh-config + - set-mgmt-extra-ie + - get-reg + - get-scan + - trigger-scan + - new-scan-results + - scan-aborted + - reg-change + - authenticate + - associate + - deauthenticate + - disassociate + - michael-mic-failure + - reg-beacon-hint + - join-ibss + - leave-ibss + - testmode + - connect + - roam + - disconnect + - set-wiphy-netns + - get-survey + - new-survey-results + - set-pmksa + - del-pmksa + - flush-pmksa + - remain-on-channel + - cancel-remain-on-channel + - set-tx-bitrate-mask + - register-action + - action + - action-tx-status + - set-power-save + - get-power-save + - set-cqm + - notify-cqm + - set-channel + - set-wds-peer + - frame-wait-cancel + - join-mesh + - leave-mesh + - unprot-deauthenticate + - unprot-disassociate + - new-peer-candidate + - get-wowlan + - set-wowlan + - start-sched-scan + - stop-sched-scan + - sched-scan-results + - sched-scan-stopped + - set-rekey-offload + - pmksa-candidate + - tdls-oper + - tdls-mgmt + - unexpected-frame + - probe-client + - register-beacons + - unexpected-4-addr-frame + - set-noack-map + - ch-switch-notify + - start-p2p-device + - stop-p2p-device + - conn-failed + - set-mcast-rate + - set-mac-acl + - radar-detect + - get-protocol-features + - update-ft-ies + - ft-event + - crit-protocol-start + - crit-protocol-stop + - get-coalesce + - set-coalesce + - channel-switch + - vendor + - set-qos-map + - add-tx-ts + - del-tx-ts + - get-mpp + - join-ocb + - leave-ocb + - ch-switch-started-notify + - tdls-channel-switch + - tdls-cancel-channel-switch + - wiphy-reg-change + - abort-scan + - start-nan + - stop-nan + - add-nan-function + - del-nan-function + - change-nan-config + - nan-match + - set-multicast-to-unicast + - update-connect-params + - set-pmk + - del-pmk + - port-authorized + - reload-regdb + - external-auth + - sta-opmode-changed + - control-port-frame + - get-ftm-responder-stats + - peer-measurement-start + - peer-measurement-result + - peer-measurement-complete + - notify-radar + - update-owe-info + - probe-mesh-link + - set-tid-config + - unprot-beacon + - control-port-frame-tx-status + - set-sar-specs + - obss-color-collision + - color-change-request + - color-change-started + - color-change-aborted + - color-change-completed + - set-fils-aad + - assoc-comeback + - add-link + - remove-link + - add-link-sta + - modify-link-sta + - remove-link-sta + - set-hw-timestamp + - links-removed + - set-tid-to-link-mapping + - + name: feature-flags + type: flags + entries: + - sk-tx-status + - ht-ibss + - inactivity-timer + - cell-base-reg-hints + - p2p-device-needs-channel + - sae + - low-priority-scan + - scan-flush + - ap-scan + - vif-txpower + - need-obss-scan + - p2p-go-ctwin + - p2p-go-oppps + - reserved + - advertise-chan-limits + - full-ap-client-state + - userspace-mpm + - active-monitor + - ap-mode-chan-width-change + - ds-param-set-ie-in-probes + - wfa-tpc-ie-in-proves + - quiet + - tx-power-insertion + - ackto-estimation + - static-smps + - dynamic-smps + - supports-wmm-admission + - mac-on-create + - tdls-channel-switch + - scan-random-mac-addr + - sched-scan-random-mac-addr + - no-random-mac-addr + - + name: ieee80211-mcs-info + type: struct + members: + - + name: rx-mask + type: binary + len: 10 + - + name: rx-highest + type: u16 + byte-order: little-endian + - + name: tx-params + type: u8 + - + name: reserved + type: binary + len: 3 + - + name: ieee80211-vht-mcs-info + type: struct + members: + - + name: rx-mcs-map + type: u16 + byte-order: little-endian + - + name: rx-highest + type: u16 + byte-order: little-endian + - + name: tx-mcs-map + type: u16 + byte-order: little-endian + - + name: tx-highest + type: u16 + byte-order: little-endian + - + name: ieee80211-ht-cap + type: struct + members: + - + name: cap-info + type: u16 + byte-order: little-endian + - + name: ampdu-params-info + type: u8 + - + name: mcs + type: binary + struct: ieee80211-mcs-info + - + name: extended-ht-cap-info + type: u16 + byte-order: little-endian + - + name: tx-bf-cap-info + type: u32 + byte-order: little-endian + - + name: antenna-selection-info + type: u8 + - + name: nl80211-channel-type + type: enum + entries: + - no-ht + - ht20 + - ht40minus + - ht40plus + - + name: nl80211-sta-flag-update + type: struct + members: + - + name: mask + type: u32 + - + name: set + type: u32 + - + name: wlan-cipher-suites + type: enum + entries: + - + name: use-group + value: 0xfac00 + - + name: wep40 + value: 0xfac01 + - + name: tkip + value: 0xfac02 + - + name: reserved + value: 0xfac03 + - + name: ccmp + value: 0xfac04 + - + name: wep104 + value: 0xfac05 + - + name: aes-cmac + value: 0xfac06 + - + name: gcmp + value: 0xfac08 + - + name: gcmp-256 + value: 0xfac09 + - + name: ccmp-256 + value: 0xfac0a + - + name: bip-gmac-128 + value: 0xfac0b + - + name: bip-gmac-256 + value: 0xfac0c + - + name: bip-cmac-256 + value: 0xfac0d + - + name: sms4 + value: 0x147201 + - + name: protocol-features + type: flags + entries: + - split-wiphy-dump + +attribute-sets: + - + name: nl80211-attrs + attributes: + - + name: wiphy + type: u32 + - + name: wiphy-name + type: string + - + name: ifindex + type: u32 + - + name: ifname + type: string + - + name: iftype + type: u32 + - + name: mac + type: binary + display-hint: mac + - + name: key-data + type: binary + - + name: key-idx + type: u8 + - + name: key-cipher + type: u32 + - + name: key-seq + type: binary + - + name: key-default + type: flag + - + name: beacon-interval + type: u32 + - + name: dtim-period + type: u32 + - + name: beacon-head + type: binary + - + name: beacon-tail + type: binary + - + name: sta-aid + type: u16 + - + name: sta-flags + type: binary # TODO: nest + - + name: sta-listen-interval + type: u16 + - + name: sta-supported-rates + type: binary + - + name: sta-vlan + type: u32 + - + name: sta-info + type: binary # TODO: nest + - + name: wiphy-bands + type: nest + nested-attributes: wiphy-bands + - + name: mntr-flags + type: binary # TODO: nest + - + name: mesh-id + type: binary + - + name: sta-plink-action + type: u8 + - + name: mpath-next-hop + type: binary + display-hint: mac + - + name: mpath-info + type: binary # TODO: nest + - + name: bss-cts-prot + type: u8 + - + name: bss-short-preamble + type: u8 + - + name: bss-short-slot-time + type: u8 + - + name: ht-capability + type: binary + - + name: supported-iftypes + type: nest + nested-attributes: supported-iftypes + - + name: reg-alpha2 + type: binary + - + name: reg-rules + type: binary # TODO: nest + - + name: mesh-config + type: binary # TODO: nest + - + name: bss-basic-rates + type: binary + - + name: wiphy-txq-params + type: binary # TODO: nest + - + name: wiphy-freq + type: u32 + - + name: wiphy-channel-type + type: u32 + enum: nl80211-channel-type + - + name: key-default-mgmt + type: flag + - + name: mgmt-subtype + type: u8 + - + name: ie + type: binary + - + name: max-num-scan-ssids + type: u8 + - + name: scan-frequencies + type: binary # TODO: nest + - + name: scan-ssids + type: binary # TODO: nest + - + name: generation + type: u32 + - + name: bss + type: binary # TODO: nest + - + name: reg-initiator + type: u8 + - + name: reg-type + type: u8 + - + name: supported-commands + type: indexed-array + sub-type: u32 + enum: nl80211-commands + - + name: frame + type: binary + - + name: ssid + type: binary + - + name: auth-type + type: u32 + - + name: reason-code + type: u16 + - + name: key-type + type: u32 + - + name: max-scan-ie-len + type: u16 + - + name: cipher-suites + type: binary + sub-type: u32 + enum: wlan-cipher-suites + - + name: freq-before + type: binary # TODO: nest + - + name: freq-after + type: binary # TODO: nest + - + name: freq-fixed + type: flag + - + name: wiphy-retry-short + type: u8 + - + name: wiphy-retry-long + type: u8 + - + name: wiphy-frag-threshold + type: u32 + - + name: wiphy-rts-threshold + type: u32 + - + name: timed-out + type: flag + - + name: use-mfp + type: u32 + - + name: sta-flags2 + type: binary + struct: nl80211-sta-flag-update + - + name: control-port + type: flag + - + name: testdata + type: binary + - + name: privacy + type: flag + - + name: disconnected-by-ap + type: flag + - + name: status-code + type: u16 + - + name: cipher-suites-pairwise + type: binary + - + name: cipher-suite-group + type: u32 + - + name: wpa-versions + type: u32 + - + name: akm-suites + type: binary + - + name: req-ie + type: binary + - + name: resp-ie + type: binary + - + name: prev-bssid + type: binary + - + name: key + type: binary # TODO: nest + - + name: keys + type: binary # TODO: nest + - + name: pid + type: u32 + - + name: 4addr + type: u8 + - + name: survey-info + type: binary # TODO: nest + - + name: pmkid + type: binary + - + name: max-num-pmkids + type: u8 + - + name: duration + type: u32 + - + name: cookie + type: u64 + - + name: wiphy-coverage-class + type: u8 + - + name: tx-rates + type: binary # TODO: nest + - + name: frame-match + type: binary + - + name: ack + type: flag + - + name: ps-state + type: u32 + - + name: cqm + type: binary # TODO: nest + - + name: local-state-change + type: flag + - + name: ap-isolate + type: u8 + - + name: wiphy-tx-power-setting + type: u32 + - + name: wiphy-tx-power-level + type: u32 + - + name: tx-frame-types + type: nest + nested-attributes: nl80211-iftype-attrs + - + name: rx-frame-types + type: nest + nested-attributes: nl80211-iftype-attrs + - + name: frame-type + type: u16 + - + name: control-port-ethertype + type: flag + - + name: control-port-no-encrypt + type: flag + - + name: support-ibss-rsn + type: flag + - + name: wiphy-antenna-tx + type: u32 + - + name: wiphy-antenna-rx + type: u32 + - + name: mcast-rate + type: u32 + - + name: offchannel-tx-ok + type: flag + - + name: bss-ht-opmode + type: u16 + - + name: key-default-types + type: binary # TODO: nest + - + name: max-remain-on-channel-duration + type: u32 + - + name: mesh-setup + type: binary # TODO: nest + - + name: wiphy-antenna-avail-tx + type: u32 + - + name: wiphy-antenna-avail-rx + type: u32 + - + name: support-mesh-auth + type: flag + - + name: sta-plink-state + type: u8 + - + name: wowlan-triggers + type: binary # TODO: nest + - + name: wowlan-triggers-supported + type: nest + nested-attributes: wowlan-triggers-attrs + - + name: sched-scan-interval + type: u32 + - + name: interface-combinations + type: indexed-array + sub-type: nest + nested-attributes: if-combination-attrs + - + name: software-iftypes + type: nest + nested-attributes: supported-iftypes + - + name: rekey-data + type: binary # TODO: nest + - + name: max-num-sched-scan-ssids + type: u8 + - + name: max-sched-scan-ie-len + type: u16 + - + name: scan-supp-rates + type: binary # TODO: nest + - + name: hidden-ssid + type: u32 + - + name: ie-probe-resp + type: binary + - + name: ie-assoc-resp + type: binary + - + name: sta-wme + type: binary # TODO: nest + - + name: support-ap-uapsd + type: flag + - + name: roam-support + type: flag + - + name: sched-scan-match + type: binary # TODO: nest + - + name: max-match-sets + type: u8 + - + name: pmksa-candidate + type: binary # TODO: nest + - + name: tx-no-cck-rate + type: flag + - + name: tdls-action + type: u8 + - + name: tdls-dialog-token + type: u8 + - + name: tdls-operation + type: u8 + - + name: tdls-support + type: flag + - + name: tdls-external-setup + type: flag + - + name: device-ap-sme + type: u32 + - + name: dont-wait-for-ack + type: flag + - + name: feature-flags + type: u32 + enum: feature-flags + enum-as-flags: True + - + name: probe-resp-offload + type: u32 + - + name: probe-resp + type: binary + - + name: dfs-region + type: u8 + - + name: disable-ht + type: flag + - + name: ht-capability-mask + type: binary + struct: ieee80211-ht-cap + - + name: noack-map + type: u16 + - + name: inactivity-timeout + type: u16 + - + name: rx-signal-dbm + type: u32 + - + name: bg-scan-period + type: u16 + - + name: wdev + type: u64 + - + name: user-reg-hint-type + type: u32 + - + name: conn-failed-reason + type: u32 + - + name: auth-data + type: binary + - + name: vht-capability + type: binary + - + name: scan-flags + type: u32 + - + name: channel-width + type: u32 + - + name: center-freq1 + type: u32 + - + name: center-freq2 + type: u32 + - + name: p2p-ctwindow + type: u8 + - + name: p2p-oppps + type: u8 + - + name: local-mesh-power-mode + type: u32 + - + name: acl-policy + type: u32 + - + name: mac-addrs + type: binary # TODO: nest + - + name: mac-acl-max + type: u32 + - + name: radar-event + type: u32 + - + name: ext-capa + type: binary + - + name: ext-capa-mask + type: binary + - + name: sta-capability + type: u16 + - + name: sta-ext-capability + type: binary + - + name: protocol-features + type: u32 + enum: protocol-features + - + name: split-wiphy-dump + type: flag + - + name: disable-vht + type: flag + - + name: vht-capability-mask + type: binary + - + name: mdid + type: u16 + - + name: ie-ric + type: binary + - + name: crit-prot-id + type: u16 + - + name: max-crit-prot-duration + type: u16 + - + name: peer-aid + type: u16 + - + name: coalesce-rule + type: binary # TODO: nest + - + name: ch-switch-count + type: u32 + - + name: ch-switch-block-tx + type: flag + - + name: csa-ies + type: binary # TODO: nest + - + name: cntdwn-offs-beacon + type: binary + - + name: cntdwn-offs-presp + type: binary + - + name: rxmgmt-flags + type: binary + - + name: sta-supported-channels + type: binary + - + name: sta-supported-oper-classes + type: binary + - + name: handle-dfs + type: flag + - + name: support-5-mhz + type: flag + - + name: support-10-mhz + type: flag + - + name: opmode-notif + type: u8 + - + name: vendor-id + type: u32 + - + name: vendor-subcmd + type: u32 + - + name: vendor-data + type: binary + - + name: vendor-events + type: binary + - + name: qos-map + type: binary + - + name: mac-hint + type: binary + display-hint: mac + - + name: wiphy-freq-hint + type: u32 + - + name: max-ap-assoc-sta + type: u32 + - + name: tdls-peer-capability + type: u32 + - + name: socket-owner + type: flag + - + name: csa-c-offsets-tx + type: binary + - + name: max-csa-counters + type: u8 + - + name: tdls-initiator + type: flag + - + name: use-rrm + type: flag + - + name: wiphy-dyn-ack + type: flag + - + name: tsid + type: u8 + - + name: user-prio + type: u8 + - + name: admitted-time + type: u16 + - + name: smps-mode + type: u8 + - + name: oper-class + type: u8 + - + name: mac-mask + type: binary + display-hint: mac + - + name: wiphy-self-managed-reg + type: flag + - + name: ext-features + type: binary + - + name: survey-radio-stats + type: binary + - + name: netns-fd + type: u32 + - + name: sched-scan-delay + type: u32 + - + name: reg-indoor + type: flag + - + name: max-num-sched-scan-plans + type: u32 + - + name: max-scan-plan-interval + type: u32 + - + name: max-scan-plan-iterations + type: u32 + - + name: sched-scan-plans + type: binary # TODO: nest + - + name: pbss + type: flag + - + name: bss-select + type: binary # TODO: nest + - + name: sta-support-p2p-ps + type: u8 + - + name: pad + type: binary + - + name: iftype-ext-capa + type: binary # TODO: nest + - + name: mu-mimo-group-data + type: binary + - + name: mu-mimo-follow-mac-addr + type: binary + display-hint: mac + - + name: scan-start-time-tsf + type: u64 + - + name: scan-start-time-tsf-bssid + type: binary + - + name: measurement-duration + type: u16 + - + name: measurement-duration-mandatory + type: flag + - + name: mesh-peer-aid + type: u16 + - + name: nan-master-pref + type: u8 + - + name: bands + type: u32 + - + name: nan-func + type: binary # TODO: nest + - + name: nan-match + type: binary # TODO: nest + - + name: fils-kek + type: binary + - + name: fils-nonces + type: binary + - + name: multicast-to-unicast-enabled + type: flag + - + name: bssid + type: binary + display-hint: mac + - + name: sched-scan-relative-rssi + type: s8 + - + name: sched-scan-rssi-adjust + type: binary + - + name: timeout-reason + type: u32 + - + name: fils-erp-username + type: binary + - + name: fils-erp-realm + type: binary + - + name: fils-erp-next-seq-num + type: u16 + - + name: fils-erp-rrk + type: binary + - + name: fils-cache-id + type: binary + - + name: pmk + type: binary + - + name: sched-scan-multi + type: flag + - + name: sched-scan-max-reqs + type: u32 + - + name: want-1x-4-way-hs + type: flag + - + name: pmkr0-name + type: binary + - + name: port-authorized + type: binary + - + name: external-auth-action + type: u32 + - + name: external-auth-support + type: flag + - + name: nss + type: u8 + - + name: ack-signal + type: s32 + - + name: control-port-over-nl80211 + type: flag + - + name: txq-stats + type: nest + nested-attributes: txq-stats + - + name: txq-limit + type: u32 + - + name: txq-memory-limit + type: u32 + - + name: txq-quantum + type: u32 + - + name: he-capability + type: binary + - + name: ftm-responder + type: binary # TODO: nest + - + name: ftm-responder-stats + type: binary # TODO: nest + - + name: timeout + type: u32 + - + name: peer-measurements + type: binary # TODO: nest + - + name: airtime-weight + type: u16 + - + name: sta-tx-power-setting + type: u8 + - + name: sta-tx-power + type: s16 + - + name: sae-password + type: binary + - + name: twt-responder + type: flag + - + name: he-obss-pd + type: binary # TODO: nest + - + name: wiphy-edmg-channels + type: u8 + - + name: wiphy-edmg-bw-config + type: u8 + - + name: vlan-id + type: u16 + - + name: he-bss-color + type: binary # TODO: nest + - + name: iftype-akm-suites + type: binary # TODO: nest + - + name: tid-config + type: binary # TODO: nest + - + name: control-port-no-preauth + type: flag + - + name: pmk-lifetime + type: u32 + - + name: pmk-reauth-threshold + type: u8 + - + name: receive-multicast + type: flag + - + name: wiphy-freq-offset + type: u32 + - + name: center-freq1-offset + type: u32 + - + name: scan-freq-khz + type: binary # TODO: nest + - + name: he-6ghz-capability + type: binary + - + name: fils-discovery + type: binary # TOOD: nest + - + name: unsol-bcast-probe-resp + type: binary # TOOD: nest + - + name: s1g-capability + type: binary + - + name: s1g-capability-mask + type: binary + - + name: sae-pwe + type: u8 + - + name: reconnect-requested + type: binary + - + name: sar-spec + type: nest + nested-attributes: sar-spec-attrs + - + name: disable-he + type: flag + - + name: obss-color-bitmap + type: u64 + - + name: color-change-count + type: u8 + - + name: color-change-color + type: u8 + - + name: color-change-elems + type: binary # TODO: nest + - + name: mbssid-config + type: binary # TODO: nest + - + name: mbssid-elems + type: binary # TODO: nest + - + name: radar-background + type: flag + - + name: ap-settings-flags + type: u32 + - + name: eht-capability + type: binary + - + name: disable-eht + type: flag + - + name: mlo-links + type: binary # TODO: nest + - + name: mlo-link-id + type: u8 + - + name: mld-addr + type: binary + display-hint: mac + - + name: mlo-support + type: flag + - + name: max-num-akm-suites + type: binary + - + name: eml-capability + type: u16 + - + name: mld-capa-and-ops + type: u16 + - + name: tx-hw-timestamp + type: u64 + - + name: rx-hw-timestamp + type: u64 + - + name: td-bitmap + type: binary + - + name: punct-bitmap + type: u32 + - + name: max-hw-timestamp-peers + type: u16 + - + name: hw-timestamp-enabled + type: flag + - + name: ema-rnr-elems + type: binary # TODO: nest + - + name: mlo-link-disabled + type: flag + - + name: bss-dump-include-use-data + type: flag + - + name: mlo-ttlm-dlink + type: u16 + - + name: mlo-ttlm-ulink + type: u16 + - + name: assoc-spp-amsdu + type: flag + - + name: wiphy-radios + type: binary # TODO: nest + - + name: wiphy-interface-combinations + type: binary # TODO: nest + - + name: vif-radio-mask + type: u32 + - + name: wiphy-bands + attributes: + - + name: 2ghz + doc: 2.4 GHz ISM band + value: 0 + type: nest + nested-attributes: band-attrs + - + name: 5ghz + doc: around 5 GHz band (4.9 - 5.7 GHz) + type: nest + nested-attributes: band-attrs + - + name: 60ghz + doc: around 60 GHz band (58.32 - 69.12 GHz) + type: binary + - + name: 6ghz + type: nest + nested-attributes: band-attrs + - + name: s1ghz + type: binary + - + name: lc + type: binary + - + name: band-attrs + attributes: + - + name: freqs + type: indexed-array + sub-type: nest + nested-attributes: frequency-attrs + - + name: rates + type: indexed-array + sub-type: nest + nested-attributes: bitrate-attrs + - + name: ht-mcs-set + type: binary + struct: ieee80211-mcs-info + - + name: ht-capa + type: u16 + - + name: ht-ampdu-factor + type: u8 + - + name: ht-ampdu-density + type: u8 + - + name: vht-mcs-set + type: binary + struct: ieee80211-vht-mcs-info + - + name: vht-capa + type: u32 + - + name: iftype-data + type: indexed-array + sub-type: nest + nested-attributes: iftype-data-attrs + - + name: edmg-channels + type: binary + - + name: edmg-bw-config + type: binary + - + name: s1g-mcs-nss-set + type: binary + - + name: s1g-capa + type: binary + - + name: bitrate-attrs + attributes: + - + name: rate + type: u32 + - + name: 2ghz-shortpreamble + type: flag + - + name: frequency-attrs + attributes: + - + name: freq + type: u32 + - + name: disabled + type: flag + - + name: no-ir + type: flag + - + name: no-ibss + type: flag + - + name: radar + type: flag + - + name: max-tx-power + type: u32 + - + name: dfs-state + type: u32 + - + name: dfs-time + type: binary + - + name: no-ht40-minus + type: binary + - + name: no-ht40-plus + type: binary + - + name: no-80mhz + type: binary + - + name: no-160mhz + type: binary + - + name: dfs-cac-time + type: binary + - + name: indoor-only + type: binary + - + name: ir-concurrent + type: binary + - + name: no-20mhz + type: binary + - + name: no-10mhz + type: binary + - + name: wmm + type: indexed-array + sub-type: nest + nested-attributes: wmm-attrs + - + name: no-he + type: binary + - + name: offset + type: u32 + - + name: 1mhz + type: binary + - + name: 2mhz + type: binary + - + name: 4mhz + type: binary + - + name: 8mhz + type: binary + - + name: 16mhz + type: binary + - + name: no-320mhz + type: binary + - + name: no-eht + type: binary + - + name: psd + type: binary + - + name: dfs-concurrent + type: binary + - + name: no-6ghz-vlp-client + type: binary + - + name: no-6ghz-afc-client + type: binary + - + name: can-monitor + type: binary + - + name: allow-6ghz-vlp-ap + type: binary + - + name: if-combination-attrs + attributes: + - + name: limits + type: indexed-array + sub-type: nest + nested-attributes: iface-limit-attrs + - + name: maxnum + type: u32 + - + name: sta-ap-bi-match + type: flag + - + name: num-channels + type: u32 + - + name: radar-detect-widths + type: u32 + - + name: radar-detect-regions + type: u32 + - + name: bi-min-gcd + type: u32 + - + name: iface-limit-attrs + attributes: + - + name: max + type: u32 + - + name: types + type: nest + nested-attributes: supported-iftypes + - + name: iftype-data-attrs + attributes: + - + name: iftypes + type: binary + - + name: he-cap-mac + type: binary + - + name: he-cap-phy + type: binary + - + name: he-cap-mcs-set + type: binary + - + name: he-cap-ppe + type: binary + - + name: eht-cap-mac + type: binary + - + name: eht-cap-phy + type: binary + - + name: eht-cap-mcs-set + type: binary + - + name: eht-cap-ppe + type: binary + - + name: he-6ghz-capa + type: binary + - + name: vendor-elems + type: binary + - + name: nl80211-iftype-attrs + attributes: + - + name: unspecified + type: nest + value: 0 + nested-attributes: nl80211-attrs + - + name: adhoc + type: nest + nested-attributes: nl80211-attrs + - + name: station + type: nest + nested-attributes: nl80211-attrs + - + name: ap + type: nest + nested-attributes: nl80211-attrs + - + name: ap-vlan + type: nest + nested-attributes: nl80211-attrs + - + name: wds + type: nest + nested-attributes: nl80211-attrs + - + name: monitor + type: nest + nested-attributes: nl80211-attrs + - + name: mesh-point + type: nest + nested-attributes: nl80211-attrs + - + name: p2p-client + type: nest + nested-attributes: nl80211-attrs + - + name: p2p-go + type: nest + nested-attributes: nl80211-attrs + - + name: p2p-device + type: nest + nested-attributes: nl80211-attrs + - + name: ocb + type: nest + nested-attributes: nl80211-attrs + - + name: nan + type: nest + nested-attributes: nl80211-attrs + - + name: sar-spec-attrs + attributes: + - + name: type + type: u32 + - + name: specs + type: indexed-array + sub-type: nest + nested-attributes: sar-attr-specs-attrs + - + name: sar-attr-specs-attrs + attributes: + - + name: power + type: s32 + - + name: range-index + type: u32 + - + name: start-freq + type: u32 + - + name: end-freq + type: u32 + - + name: supported-iftypes + attributes: + - + name: adhoc + type: flag + - + name: station + type: flag + - + name: ap + type: flag + - + name: ap-vlan + type: flag + - + name: wds + type: flag + - + name: monitor + type: flag + - + name: mesh-point + type: flag + - + name: p2p-client + type: flag + - + name: p2p-go + type: flag + - + name: p2p-device + type: flag + - + name: ocb + type: flag + - + name: nan + type: flag + - + name: txq-stats + attributes: + - + name: backlog-bytes + type: u32 + - + name: backlog-packets + type: u32 + - + name: flows + type: u32 + - + name: drops + type: u32 + - + name: ecn-marks + type: u32 + - + name: overlimit + type: u32 + - + name: overmemory + type: u32 + - + name: collisions + type: u32 + - + name: tx-bytes + type: u32 + - + name: tx-packets + type: u32 + - + name: max-flows + type: u32 + - + name: txq-stats + type: u32 + - + name: wmm-attrs + attributes: + - + name: cw-min + type: u16 + - + name: cw-max + type: u16 + - + name: aifsn + type: u8 + - + name: txop + type: u16 + - + name: wowlan-triggers-attrs + attributes: + - + name: any + type: flag + - + name: disconnect + type: flag + - + name: magic-pkt + type: flag + - + name: pkt-pattern + type: flag + - + name: gtk-rekey-supported + type: flag + - + name: gtk-rekey-failure + type: flag + - + name: eap-ident-request + type: flag + - + name: 4way-handshake + type: flag + - + name: rfkill-release + type: flag + - + name: wakeup-pkt-80211 + type: flag + - + name: wakeup-pkt-80211-len + type: flag + - + name: wakeup-pkt-8023 + type: flag + - + name: wakeup-pkt-8023-len + type: flag + - + name: tcp-connection + type: flag + - + name: wakeup-tcp-match + type: flag + - + name: wakeup-tcp-connlost + type: flag + - + name: wakeup-tcp-nomoretokens + type: flag + - + name: net-detect + type: flag + - + name: net-detect-results + type: flag + - + name: unprotected-deauth-disassoc + type: flag + +operations: + enum-model: directional + list: + - + name: get-wiphy + doc: | + Get information about a wiphy or dump a list of all wiphys. Requests to dump get-wiphy + should unconditionally include the split-wiphy-dump flag in the request. + attribute-set: nl80211-attrs + do: + request: + value: 1 + attributes: + - wiphy + - wdev + - ifindex + reply: + value: 3 + dump: + request: + attributes: + - wiphy + - wdev + - ifindex + - split-wiphy-dump + - + name: get-interface + doc: Get information about an interface or dump a list of all interfaces + attribute-set: nl80211-attrs + do: + request: + value: 5 + attributes: + - ifname + reply: + value: 7 + dump: + request: + attributes: + - ifname + - + name: get-protocol-features + doc: Get information about supported protocol features + attribute-set: nl80211-attrs + do: + request: + value: 95 + reply: + value: 95 + +mcast-groups: + list: + - + name: config + - + name: scan + - + name: regulatory + - + name: mlme + - + name: vendor + - + name: nan + - + name: testmode