* [PATCHv3 net-next 0/4] doc/netlink: add a YAML spec for team
@ 2024-03-29 8:28 Hangbin Liu
2024-03-29 8:28 ` [PATCHv3 net-next 1/4] Documentation: netlink: " Hangbin Liu
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Hangbin Liu @ 2024-03-29 8:28 UTC (permalink / raw)
To: netdev
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Donald Hunter, Jiri Pirko, Jacob Keller, Stanislav Fomichev,
Hangbin Liu
Add a YAML spec for team. As we need to link two objects together to form
the team module, rename team to team_core for linking.
v3:
1. remove item/list-option from request as they are not attributes (Jakub Kicinski)
v2:
1. adjust the continuation line (Jakub Kicinski)
2. adjust the family maxattr (Jakub Kicinski)
v1:
1. remove dump from team options. (Jiri Pirko)
Hangbin Liu (4):
Documentation: netlink: add a YAML spec for team
net: team: rename team to team_core for linking
net: team: use policy generated by YAML spec
uapi: team: use header file generated from YAML spec
Documentation/netlink/specs/team.yaml | 204 +++++++++++++++++++++++
MAINTAINERS | 1 +
drivers/net/team/Makefile | 1 +
drivers/net/team/{team.c => team_core.c} | 63 +------
drivers/net/team/team_nl.c | 59 +++++++
drivers/net/team/team_nl.h | 29 ++++
include/uapi/linux/if_team.h | 116 +++++--------
7 files changed, 346 insertions(+), 127 deletions(-)
create mode 100644 Documentation/netlink/specs/team.yaml
rename drivers/net/team/{team.c => team_core.c} (97%)
create mode 100644 drivers/net/team/team_nl.c
create mode 100644 drivers/net/team/team_nl.h
--
2.43.0
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCHv3 net-next 1/4] Documentation: netlink: add a YAML spec for team 2024-03-29 8:28 [PATCHv3 net-next 0/4] doc/netlink: add a YAML spec for team Hangbin Liu @ 2024-03-29 8:28 ` Hangbin Liu 2024-03-29 8:28 ` [PATCHv3 net-next 2/4] net: team: rename team to team_core for linking Hangbin Liu ` (2 subsequent siblings) 3 siblings, 0 replies; 8+ messages in thread From: Hangbin Liu @ 2024-03-29 8:28 UTC (permalink / raw) To: netdev Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Donald Hunter, Jiri Pirko, Jacob Keller, Stanislav Fomichev, Hangbin Liu Add a YAML specification for team. Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> --- Documentation/netlink/specs/team.yaml | 206 ++++++++++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 207 insertions(+) create mode 100644 Documentation/netlink/specs/team.yaml diff --git a/Documentation/netlink/specs/team.yaml b/Documentation/netlink/specs/team.yaml new file mode 100644 index 000000000000..907f54c1f2e3 --- /dev/null +++ b/Documentation/netlink/specs/team.yaml @@ -0,0 +1,206 @@ +# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) + +name: team + +protocol: genetlink-legacy + +doc: | + Network team device driver. + +c-family-name: team-genl-name +c-version-name: team-genl-version +kernel-policy: global +uapi-header: linux/if_team.h + +definitions: + - + name: string-max-len + type: const + value: 32 + - + name: genl-change-event-mc-grp-name + type: const + value: change_event + +attribute-sets: + - + name: team + doc: + The team nested layout of get/set msg looks like + [TEAM_ATTR_LIST_OPTION] + [TEAM_ATTR_ITEM_OPTION] + [TEAM_ATTR_OPTION_*], ... + [TEAM_ATTR_ITEM_OPTION] + [TEAM_ATTR_OPTION_*], ... + ... + [TEAM_ATTR_LIST_PORT] + [TEAM_ATTR_ITEM_PORT] + [TEAM_ATTR_PORT_*], ... + [TEAM_ATTR_ITEM_PORT] + [TEAM_ATTR_PORT_*], ... + ... + name-prefix: team-attr- + attributes: + - + name: unspec + type: unused + value: 0 + - + name: team-ifindex + type: u32 + - + name: list-option + type: nest + nested-attributes: item-option + - + name: list-port + type: nest + nested-attributes: item-port + - + name: item-option + name-prefix: team-attr-item- + attr-cnt-name: __team-attr-item-option-max + attr-max-name: team-attr-item-option-max + attributes: + - + name: option-unspec + type: unused + value: 0 + - + name: option + type: nest + nested-attributes: attr-option + - + name: attr-option + name-prefix: team-attr-option- + attributes: + - + name: unspec + type: unused + value: 0 + - + name: name + type: string + checks: + max-len: string-max-len + unterminated-ok: true + - + name: changed + type: flag + - + name: type + type: u8 + - + name: data + type: binary + - + name: removed + type: flag + - + name: port-ifindex + type: u32 + doc: for per-port options + - + name: array-index + type: u32 + doc: for array options + - + name: item-port + name-prefix: team-attr-item- + attr-cnt-name: __team-attr-item-port-max + attr-max-name: team-attr-item-port-max + attributes: + - + name: port-unspec + type: unused + value: 0 + - + name: port + type: nest + nested-attributes: attr-port + - + name: attr-port + name-prefix: team-attr-port- + attributes: + - + name: unspec + type: unused + value: 0 + - + name: ifindex + type: u32 + - + name: changed + type: flag + - + name: linkup + type: flag + - + name: speed + type: u32 + - + name: duplex + type: u8 + - + name: removed + type: flag + +operations: + list: + - + name: noop + doc: No operation + value: 0 + attribute-set: team + dont-validate: [ strict ] + + do: + # Actually it only reply the team netlink family + reply: + attributes: + - team-ifindex + + - + name: options-set + doc: Set team options + attribute-set: team + dont-validate: [ strict ] + flags: [ admin-perm ] + + do: + request: &option_attrs + attributes: + - team-ifindex + - list-option + reply: *option_attrs + + - + name: options-get + doc: Get team options info + attribute-set: team + dont-validate: [ strict ] + flags: [ admin-perm ] + + do: + request: + attributes: + - team-ifindex + reply: *option_attrs + + - + name: port-list-get + doc: Get team ports info + attribute-set: team + dont-validate: [ strict ] + flags: [ admin-perm ] + + do: + request: + attributes: + - team-ifindex + reply: &port_attrs + attributes: + - team-ifindex + - list-port + - item-port + - attr-port diff --git a/MAINTAINERS b/MAINTAINERS index 6a233e1a3cf2..909c2c531d8e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -21665,6 +21665,7 @@ TEAM DRIVER M: Jiri Pirko <jiri@resnulli.us> L: netdev@vger.kernel.org S: Supported +F: Documentation/netlink/specs/team.yaml F: drivers/net/team/ F: include/linux/if_team.h F: include/uapi/linux/if_team.h -- 2.43.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCHv3 net-next 2/4] net: team: rename team to team_core for linking 2024-03-29 8:28 [PATCHv3 net-next 0/4] doc/netlink: add a YAML spec for team Hangbin Liu 2024-03-29 8:28 ` [PATCHv3 net-next 1/4] Documentation: netlink: " Hangbin Liu @ 2024-03-29 8:28 ` Hangbin Liu 2024-03-29 22:08 ` Jakub Kicinski 2024-03-29 8:28 ` [PATCHv3 net-next 3/4] net: team: use policy generated by YAML spec Hangbin Liu 2024-03-29 8:28 ` [PATCHv3 net-next 4/4] uapi: team: use header file generated from " Hangbin Liu 3 siblings, 1 reply; 8+ messages in thread From: Hangbin Liu @ 2024-03-29 8:28 UTC (permalink / raw) To: netdev Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Donald Hunter, Jiri Pirko, Jacob Keller, Stanislav Fomichev, Hangbin Liu Similar with commit 08d323234d10 ("net: fou: rename the source for linking"), We'll need to link two objects together to form the team module. This means the source can't be called team, the build system expects team.o to be the combined object. Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> --- Documentation/netlink/specs/team.yaml | 2 -- drivers/net/team/Makefile | 1 + drivers/net/team/{team.c => team_core.c} | 0 3 files changed, 1 insertion(+), 2 deletions(-) rename drivers/net/team/{team.c => team_core.c} (100%) diff --git a/Documentation/netlink/specs/team.yaml b/Documentation/netlink/specs/team.yaml index 907f54c1f2e3..c13529e011c9 100644 --- a/Documentation/netlink/specs/team.yaml +++ b/Documentation/netlink/specs/team.yaml @@ -202,5 +202,3 @@ operations: attributes: - team-ifindex - list-port - - item-port - - attr-port diff --git a/drivers/net/team/Makefile b/drivers/net/team/Makefile index f582d81a5091..244db32c1060 100644 --- a/drivers/net/team/Makefile +++ b/drivers/net/team/Makefile @@ -3,6 +3,7 @@ # Makefile for the network team driver # +team-y:= team_core.o obj-$(CONFIG_NET_TEAM) += team.o obj-$(CONFIG_NET_TEAM_MODE_BROADCAST) += team_mode_broadcast.o obj-$(CONFIG_NET_TEAM_MODE_ROUNDROBIN) += team_mode_roundrobin.o diff --git a/drivers/net/team/team.c b/drivers/net/team/team_core.c similarity index 100% rename from drivers/net/team/team.c rename to drivers/net/team/team_core.c -- 2.43.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCHv3 net-next 2/4] net: team: rename team to team_core for linking 2024-03-29 8:28 ` [PATCHv3 net-next 2/4] net: team: rename team to team_core for linking Hangbin Liu @ 2024-03-29 22:08 ` Jakub Kicinski 2024-03-29 22:08 ` Jakub Kicinski 2024-04-01 2:41 ` Hangbin Liu 0 siblings, 2 replies; 8+ messages in thread From: Jakub Kicinski @ 2024-03-29 22:08 UTC (permalink / raw) To: Hangbin Liu Cc: netdev, David S. Miller, Eric Dumazet, Paolo Abeni, Donald Hunter, Jiri Pirko, Jacob Keller, Stanislav Fomichev On Fri, 29 Mar 2024 16:28:45 +0800 Hangbin Liu wrote: > diff --git a/Documentation/netlink/specs/team.yaml b/Documentation/netlink/specs/team.yaml > index 907f54c1f2e3..c13529e011c9 100644 > --- a/Documentation/netlink/specs/team.yaml > +++ b/Documentation/netlink/specs/team.yaml > @@ -202,5 +202,3 @@ operations: > attributes: > - team-ifindex > - list-port > - - item-port > - - attr-port I think you squashed this into the wrong patch :S -- pw-bot: cr ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCHv3 net-next 2/4] net: team: rename team to team_core for linking 2024-03-29 22:08 ` Jakub Kicinski @ 2024-03-29 22:08 ` Jakub Kicinski 2024-04-01 2:41 ` Hangbin Liu 1 sibling, 0 replies; 8+ messages in thread From: Jakub Kicinski @ 2024-03-29 22:08 UTC (permalink / raw) To: Hangbin Liu Cc: netdev, David S. Miller, Eric Dumazet, Paolo Abeni, Donald Hunter, Jiri Pirko, Jacob Keller, Stanislav Fomichev On Fri, 29 Mar 2024 16:28:45 +0800 Hangbin Liu wrote: > diff --git a/Documentation/netlink/specs/team.yaml b/Documentation/netlink/specs/team.yaml > index 907f54c1f2e3..c13529e011c9 100644 > --- a/Documentation/netlink/specs/team.yaml > +++ b/Documentation/netlink/specs/team.yaml > @@ -202,5 +202,3 @@ operations: > attributes: > - team-ifindex > - list-port > - - item-port > - - attr-port I think you squashed this into the wrong patch :S -- pw-bot: cr X-sender: <netdev+bounces-83472-steffen.klassert=secunet.com@vger.kernel.org> X-Receiver: <steffen.klassert@secunet.com> ORCPT=rfc822;steffen.klassert@secunet.com NOTIFY=NEVER; X-ExtendedProps=BQAVABYAAgAAAAUAFAARAPDFCS25BAlDktII2g02frgPADUAAABNaWNyb3NvZnQuRXhjaGFuZ2UuVHJhbnNwb3J0LkRpcmVjdG9yeURhdGEuSXNSZXNvdXJjZQIAAAUAagAJAAEAAAAAAAAABQAWAAIAAAUAQwACAAAFAEYABwADAAAABQBHAAIAAAUAEgAPAGIAAAAvbz1zZWN1bmV0L291PUV4Y2hhbmdlIEFkbWluaXN0cmF0aXZlIEdyb3VwIChGWURJQk9IRjIzU1BETFQpL2NuPVJlY2lwaWVudHMvY249U3RlZmZlbiBLbGFzc2VydDY4YwUACwAXAL4AAACheZxkHSGBRqAcAp3ukbifQ049REI2LENOPURhdGFiYXNlcyxDTj1FeGNoYW5nZSBBZG1pbmlzdHJhdGl2ZSBHcm91cCAoRllESUJPSEYyM1NQRExUKSxDTj1BZG1pbmlzdHJhdGl2ZSBHcm91cHMsQ049c2VjdW5ldCxDTj1NaWNyb3NvZnQgRXhjaGFuZ2UsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1zZWN1bmV0LERDPWRlBQAOABEABiAS9uuMOkqzwmEZDvWNNQUAHQAPAAwAAABtYngtZXNzZW4tMDIFADwAAgAADwA2AAAATWljcm9zb2Z0LkV4Y2hhbmdlLlRyYW5zcG9ydC5NYWlsUmVjaXBpZW50LkRpc3BsYXlOYW1lDwARAAAAS2xhc3NlcnQsIFN0ZWZmZW4FAAwAAgAABQBsAAIAAAUAWAAXAEoAAADwxQktuQQJQ5LSCNoNNn64Q049S2xhc3NlcnQgU3RlZmZlbixPVT1Vc2VycyxPVT1NaWdyYXRpb24sREM9c2VjdW5ldCxEQz1kZQUAJgACAAEFACIADwAxAAAAQXV0b1Jlc3BvbnNlU3VwcHJlc3M6IDANClRyYW5zbWl0SGlzdG9yeTogRmFsc2UNCg8ALwAAAE1pY3Jvc29mdC5FeGNoYW5nZS5UcmFuc3BvcnQuRXhwYW5zaW9uR3JvdXBUeXBlDwAVAAAATWVtYmVyc0dyb3VwRXhwYW5zaW9uBQAjAAIAAQ== X-CreatedBy: MSExchange15 X-HeloDomain: b.mx.secunet.com X-ExtendedProps: BQBjAAoAq5Lp8x1Q3AgFAGEACAABAAAABQA3AAIAAA8APAAAAE1pY3Jvc29mdC5FeGNoYW5nZS5UcmFuc3BvcnQuTWFpbFJlY2lwaWVudC5Pcmdhbml6YXRpb25TY29wZREAAAAAAAAAAAAAAAAAAAAAAAUASQACAAEFAGIACgAaAAAAjIoAAAUABAAUIAEAAAAcAAAAc3RlZmZlbi5rbGFzc2VydEBzZWN1bmV0LmNvbQUABgACAAEFACkAAgABDwAJAAAAQ0lBdWRpdGVkAgABBQACAAcAAQAAAAUAAwAHAAAAAAAFAAUAAgABBQBkAA8AAwAAAEh1Yg== X-Source: SMTP:Default MBX-DRESDEN-01 X-SourceIPAddress: 62.96.220.37 X-EndOfInjectedXHeaders: 9409 Received: from cas-essen-02.secunet.de (10.53.40.202) by mbx-dresden-01.secunet.de (10.53.40.199) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.37; Fri, 29 Mar 2024 23:08:12 +0100 Received: from b.mx.secunet.com (62.96.220.37) by cas-essen-02.secunet.de (10.53.40.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Fri, 29 Mar 2024 23:08:12 +0100 Received: from localhost (localhost [127.0.0.1]) by b.mx.secunet.com (Postfix) with ESMTP id 83CB92032C for <steffen.klassert@secunet.com>; Fri, 29 Mar 2024 23:08:12 +0100 (CET) X-Virus-Scanned: by secunet X-Spam-Flag: NO X-Spam-Score: -5.399 X-Spam-Level: X-Spam-Status: No, score=-5.399 tagged_above=-999 required=2.1 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.099, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no Authentication-Results: a.mx.secunet.com (amavisd-new); dkim=pass (2048-bit key) header.d=kernel.org Received: from b.mx.secunet.com ([127.0.0.1]) by localhost (a.mx.secunet.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lQM26VSCzU5P for <steffen.klassert@secunet.com>; Fri, 29 Mar 2024 23:08:12 +0100 (CET) Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=139.178.88.99; helo=sv.mirrors.kernel.org; envelope-from=netdev+bounces-83472-steffen.klassert=secunet.com@vger.kernel.org; receiver=steffen.klassert@secunet.com DKIM-Filter: OpenDKIM Filter v2.11.0 b.mx.secunet.com C00CD200BB Authentication-Results: b.mx.secunet.com; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="B7k6wgpO" Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org [139.178.88.99]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by b.mx.secunet.com (Postfix) with ESMTPS id C00CD200BB for <steffen.klassert@secunet.com>; Fri, 29 Mar 2024 23:08:11 +0100 (CET) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 07830283CC4 for <steffen.klassert@secunet.com>; Fri, 29 Mar 2024 22:08:10 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7947613CF86; Fri, 29 Mar 2024 22:08:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="B7k6wgpO" X-Original-To: netdev@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DF37C79DF for <netdev@vger.kernel.org>; Fri, 29 Mar 2024 22:08:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711750086; cv=none; b=oV+q68HQeTF748KBPLD+dQjQdQpb5iJwQh/clFRJnPotjznqr0YLXyt7QSE+T6FgLWGuZRORpSZJrROJfDX8f97NCFff8e/YChchGqZFHLuRmHJBL/QM+5pc4teb6Jwkr130D1Fz+vv8dspH+OqTmcLuBaLOf/zP5w0hiFTWr0s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711750086; c=relaxed/simple; bh=kWMETMXKh9pRUAzvZSWq7Bz15B/8zNSH35OZ7BKefWM=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=a0x6I1P/VLoP8CEBqZPizhsHJAFAxf5EuycvfYcERObgS0DnMShjS06JWH7y6nJ0asvwOgYM/vEoI2pOXKmsGpm29Zsaicn+5kmZq6LbhCJ5/PsnTfTfIjM4H+nPwK5lDNxVpcmDehQrpjXB7PwogkrcOVupvblyNA1PnqIgPMY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=B7k6wgpO; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 00A4CC433C7; Fri, 29 Mar 2024 22:08:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711750085; bh=kWMETMXKh9pRUAzvZSWq7Bz15B/8zNSH35OZ7BKefWM=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=B7k6wgpOpYCMZtcHeZgurRFEn9jwJGxtaPhDeWWiz57ABGohoPp8cFuvxp3seywVT i41cH1D3ebkuoAu6ufLjBgDQYfeitlzDYOUzXDZ3kBiORHqgtYjRP0uJVkR10UB5Ob Lq7Fids2QxfuGxkMzqTUX4/a4sknbiCphzl/eRhmVuUBmF+tlk4qFf5BDiAA/nYn4c 5hAcpDR2aXLfShBWguJq/QpgsDd5X28Fd3ALXRVmAb865rwQALLZSqJ/K+PefRhJdO 8mTdDVfx1gqowAa5QH0Xx2rfwHeqBnB2HBEaTvME6QONh698m8tTEmNLy4eY9csIG0 ZcIa7WOCHRlQQ== Date: Fri, 29 Mar 2024 15:08:04 -0700 From: Jakub Kicinski <kuba@kernel.org> To: Hangbin Liu <liuhangbin@gmail.com> Cc: netdev@vger.kernel.org, "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Paolo Abeni <pabeni@redhat.com>, Donald Hunter <donald.hunter@gmail.com>, Jiri Pirko <jiri@resnulli.us>, Jacob Keller <jacob.e.keller@intel.com>, Stanislav Fomichev <sdf@google.com> Subject: Re: [PATCHv3 net-next 2/4] net: team: rename team to team_core for linking Message-ID: <20240329150804.7189ced3@kernel.org> In-Reply-To: <20240329082847.1902685-3-liuhangbin@gmail.com> References: <20240329082847.1902685-1-liuhangbin@gmail.com> <20240329082847.1902685-3-liuhangbin@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: <netdev.vger.kernel.org> List-Subscribe: <mailto:netdev+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:netdev+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Return-Path: netdev+bounces-83472-steffen.klassert=secunet.com@vger.kernel.org X-MS-Exchange-Organization-OriginalArrivalTime: 29 Mar 2024 22:08:12.5732 (UTC) X-MS-Exchange-Organization-Network-Message-Id: 29ccca30-b85c-4536-b324-08dc503cb9d4 X-MS-Exchange-Organization-OriginalClientIPAddress: 62.96.220.37 X-MS-Exchange-Organization-OriginalServerIPAddress: 10.53.40.202 X-MS-Exchange-Organization-Cross-Premises-Headers-Processed: cas-essen-02.secunet.de X-MS-Exchange-Organization-OrderedPrecisionLatencyInProgress: LSRV=mbx-dresden-01.secunet.de:TOTAL-HUB=0.400|SMR=0.335(SMRDE=0.034|SMRC=0.301(SMRCL=0.101|X-SMRCR=0.301))|CAT=0.063(CATOS=0.011 (CATSM=0.011(CATSM-Malware Agent=0.010))|CATRESL=0.040(CATRESLP2R=0.017)|CATORES=0.009 (CATRS=0.009(CATRS-Index Routing Agent=0.008)));2024-03-29T22:08:12.995Z X-MS-Exchange-Forest-ArrivalHubServer: mbx-dresden-01.secunet.de X-MS-Exchange-Organization-AuthSource: cas-essen-02.secunet.de X-MS-Exchange-Organization-AuthAs: Anonymous X-MS-Exchange-Organization-FromEntityHeader: Internet X-MS-Exchange-Organization-OriginalSize: 6938 X-MS-Exchange-Organization-HygienePolicy: Standard X-MS-Exchange-Organization-MessageLatency: SRV=cas-essen-02.secunet.de:TOTAL-FE=0.025|SMR=0.025(SMRPI=0.022(SMRPI-FrontendProxyAgent=0.022)) X-MS-Exchange-Organization-AVStamp-Enterprise: 1.0 X-MS-Exchange-Organization-Recipient-Limit-Verified: True X-MS-Exchange-Organization-TotalRecipientCount: 1 X-MS-Exchange-Organization-Rules-Execution-History: 0b0cf904-14ac-4724-8bdf-482ee6223cf2%%%fd34672d-751c-45ae-a963-ed177fcabe23%%%d8080257-b0c3-47b4-b0db-23bc0c8ddb3c%%%95e591a2-5d7d-4afa-b1d0-7573d6c0a5d9%%%f7d0f6bc-4dcc-4876-8c5d-b3d6ddbb3d55%%%16355082-c50b-4214-9c7d-d39575f9f79b X-MS-Exchange-Forest-RulesExecuted: mbx-dresden-01 X-MS-Exchange-Organization-RulesExecuted: mbx-dresden-01 X-MS-Exchange-Forest-IndexAgent-0: AQ0CZW4AAa0BAAAPAAADH4sIAAAAAAAEAJVRQW7bMBBcKqIky5avBX Io9taDTVuS5dTWIcghKFqgRQ55AS1TNhGbUiQKqR/S/4ZUCrRBXCAl CHAwsxzuLH+5dwq/NHKK6Rp/8AbTOM0wucrTVZ4tcRKv4hi/crXbSI XfZYdPTaVFHoXXuJVliYztpEY+v62K7iiU5lpWaq6EPkj1MG9rUbRz LfhxduLHA27eV2fdpdqKn7iOP5fLrEjKVCxmsyJZLNO1iJOkWGMSx1 dZZksZY+/twJZPJpP/aeTmBpkZytQMwx4LS1S1aPqLbT+JvxbXupGb Tos3CiJDa8xk2Wc7Ix9kq1ldNbpP9VqTWhz/pdlHf2tR+A313kTBU9 Vh+9jxdi+2lmrNSHVlkLB/qHZYc13sMb+PQsaisH5im0rnWDTWBMCB iwugDoGh2Ra7LqEBQEAGFICC50NgSAqhC74BhMAncCIYG96oLlCzz5 EWjGA8IpEH4MH4XM3oDEmGLphnKAEgxPmDgYZwGcJHl8AIqA+XBgys yYc3ICDgGDfTbQCDlw77CB4Fn4BvwnovqZ8BAwbm1xYDAAABDs4BUm V0cmlldmVyT3BlcmF0b3IsMTAsMDtSZXRyaWV2ZXJPcGVyYXRvciwx MSwwO1Bvc3REb2NQYXJzZXJPcGVyYXRvciwxMCwwO1Bvc3REb2NQYX JzZXJPcGVyYXRvciwxMSwwO1Bvc3RXb3JkQnJlYWtlckRpYWdub3N0 aWNPcGVyYXRvciwxMCwwO1Bvc3RXb3JkQnJlYWtlckRpYWdub3N0aW NPcGVyYXRvciwxMSwwO1RyYW5zcG9ydFdyaXRlclByb2R1Y2VyLDIw LDQ= X-MS-Exchange-Forest-IndexAgent: 1 650 X-MS-Exchange-Forest-EmailMessageHash: B7CBA98D X-MS-Exchange-Forest-Language: en X-MS-Exchange-Organization-Processed-By-Journaling: Journal Agent On Fri, 29 Mar 2024 16:28:45 +0800 Hangbin Liu wrote: > diff --git a/Documentation/netlink/specs/team.yaml b/Documentation/netlink/specs/team.yaml > index 907f54c1f2e3..c13529e011c9 100644 > --- a/Documentation/netlink/specs/team.yaml > +++ b/Documentation/netlink/specs/team.yaml > @@ -202,5 +202,3 @@ operations: > attributes: > - team-ifindex > - list-port > - - item-port > - - attr-port I think you squashed this into the wrong patch :S -- pw-bot: cr ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCHv3 net-next 2/4] net: team: rename team to team_core for linking 2024-03-29 22:08 ` Jakub Kicinski 2024-03-29 22:08 ` Jakub Kicinski @ 2024-04-01 2:41 ` Hangbin Liu 1 sibling, 0 replies; 8+ messages in thread From: Hangbin Liu @ 2024-04-01 2:41 UTC (permalink / raw) To: Jakub Kicinski Cc: netdev, David S. Miller, Eric Dumazet, Paolo Abeni, Donald Hunter, Jiri Pirko, Jacob Keller, Stanislav Fomichev On Fri, Mar 29, 2024 at 03:08:04PM -0700, Jakub Kicinski wrote: > On Fri, 29 Mar 2024 16:28:45 +0800 Hangbin Liu wrote: > > diff --git a/Documentation/netlink/specs/team.yaml b/Documentation/netlink/specs/team.yaml > > index 907f54c1f2e3..c13529e011c9 100644 > > --- a/Documentation/netlink/specs/team.yaml > > +++ b/Documentation/netlink/specs/team.yaml > > @@ -202,5 +202,3 @@ operations: > > attributes: > > - team-ifindex > > - list-port > > - - item-port > > - - attr-port > > I think you squashed this into the wrong patch :S Ah, my bad. I need more careful and double checks before post them... Hangbin ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCHv3 net-next 3/4] net: team: use policy generated by YAML spec 2024-03-29 8:28 [PATCHv3 net-next 0/4] doc/netlink: add a YAML spec for team Hangbin Liu 2024-03-29 8:28 ` [PATCHv3 net-next 1/4] Documentation: netlink: " Hangbin Liu 2024-03-29 8:28 ` [PATCHv3 net-next 2/4] net: team: rename team to team_core for linking Hangbin Liu @ 2024-03-29 8:28 ` Hangbin Liu 2024-03-29 8:28 ` [PATCHv3 net-next 4/4] uapi: team: use header file generated from " Hangbin Liu 3 siblings, 0 replies; 8+ messages in thread From: Hangbin Liu @ 2024-03-29 8:28 UTC (permalink / raw) To: netdev Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Donald Hunter, Jiri Pirko, Jacob Keller, Stanislav Fomichev, Hangbin Liu generated with: $ ./tools/net/ynl/ynl-gen-c.py --mode kernel \ > --spec Documentation/netlink/specs/team.yaml --source \ > -o drivers/net/team/team_nl.c $ ./tools/net/ynl/ynl-gen-c.py --mode kernel \ > --spec Documentation/netlink/specs/team.yaml --header \ > -o drivers/net/team/team_nl.h The TEAM_ATTR_LIST_PORT in team_nl_policy is removed as it is only in the port list reply attributes. Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> --- drivers/net/team/Makefile | 2 +- drivers/net/team/team_core.c | 63 ++++++------------------------------ drivers/net/team/team_nl.c | 59 +++++++++++++++++++++++++++++++++ drivers/net/team/team_nl.h | 29 +++++++++++++++++ 4 files changed, 98 insertions(+), 55 deletions(-) create mode 100644 drivers/net/team/team_nl.c create mode 100644 drivers/net/team/team_nl.h diff --git a/drivers/net/team/Makefile b/drivers/net/team/Makefile index 244db32c1060..7a5aa20d286b 100644 --- a/drivers/net/team/Makefile +++ b/drivers/net/team/Makefile @@ -3,7 +3,7 @@ # Makefile for the network team driver # -team-y:= team_core.o +team-y:= team_core.o team_nl.o obj-$(CONFIG_NET_TEAM) += team.o obj-$(CONFIG_NET_TEAM_MODE_BROADCAST) += team_mode_broadcast.o obj-$(CONFIG_NET_TEAM_MODE_ROUNDROBIN) += team_mode_roundrobin.o diff --git a/drivers/net/team/team_core.c b/drivers/net/team/team_core.c index 0a44bbdcfb7b..4e3c8d404957 100644 --- a/drivers/net/team/team_core.c +++ b/drivers/net/team/team_core.c @@ -27,6 +27,8 @@ #include <net/sch_generic.h> #include <linux/if_team.h> +#include "team_nl.h" + #define DRV_NAME "team" @@ -2254,28 +2256,7 @@ static struct rtnl_link_ops team_link_ops __read_mostly = { static struct genl_family team_nl_family; -static const struct nla_policy team_nl_policy[TEAM_ATTR_MAX + 1] = { - [TEAM_ATTR_UNSPEC] = { .type = NLA_UNSPEC, }, - [TEAM_ATTR_TEAM_IFINDEX] = { .type = NLA_U32 }, - [TEAM_ATTR_LIST_OPTION] = { .type = NLA_NESTED }, - [TEAM_ATTR_LIST_PORT] = { .type = NLA_NESTED }, -}; - -static const struct nla_policy -team_nl_option_policy[TEAM_ATTR_OPTION_MAX + 1] = { - [TEAM_ATTR_OPTION_UNSPEC] = { .type = NLA_UNSPEC, }, - [TEAM_ATTR_OPTION_NAME] = { - .type = NLA_STRING, - .len = TEAM_STRING_MAX_LEN, - }, - [TEAM_ATTR_OPTION_CHANGED] = { .type = NLA_FLAG }, - [TEAM_ATTR_OPTION_TYPE] = { .type = NLA_U8 }, - [TEAM_ATTR_OPTION_DATA] = { .type = NLA_BINARY }, - [TEAM_ATTR_OPTION_PORT_IFINDEX] = { .type = NLA_U32 }, - [TEAM_ATTR_OPTION_ARRAY_INDEX] = { .type = NLA_U32 }, -}; - -static int team_nl_cmd_noop(struct sk_buff *skb, struct genl_info *info) +int team_nl_noop_doit(struct sk_buff *skb, struct genl_info *info) { struct sk_buff *msg; void *hdr; @@ -2513,7 +2494,7 @@ static int team_nl_send_options_get(struct team *team, u32 portid, u32 seq, return err; } -static int team_nl_cmd_options_get(struct sk_buff *skb, struct genl_info *info) +int team_nl_options_get_doit(struct sk_buff *skb, struct genl_info *info) { struct team *team; struct team_option_inst *opt_inst; @@ -2538,7 +2519,7 @@ static int team_nl_cmd_options_get(struct sk_buff *skb, struct genl_info *info) static int team_nl_send_event_options_get(struct team *team, struct list_head *sel_opt_inst_list); -static int team_nl_cmd_options_set(struct sk_buff *skb, struct genl_info *info) +int team_nl_options_set_doit(struct sk_buff *skb, struct genl_info *info) { struct team *team; int err = 0; @@ -2579,7 +2560,7 @@ static int team_nl_cmd_options_set(struct sk_buff *skb, struct genl_info *info) err = nla_parse_nested_deprecated(opt_attrs, TEAM_ATTR_OPTION_MAX, nl_option, - team_nl_option_policy, + team_attr_option_nl_policy, info->extack); if (err) goto team_put; @@ -2802,8 +2783,8 @@ static int team_nl_send_port_list_get(struct team *team, u32 portid, u32 seq, return err; } -static int team_nl_cmd_port_list_get(struct sk_buff *skb, - struct genl_info *info) +int team_nl_port_list_get_doit(struct sk_buff *skb, + struct genl_info *info) { struct team *team; int err; @@ -2820,32 +2801,6 @@ static int team_nl_cmd_port_list_get(struct sk_buff *skb, return err; } -static const struct genl_small_ops team_nl_ops[] = { - { - .cmd = TEAM_CMD_NOOP, - .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, - .doit = team_nl_cmd_noop, - }, - { - .cmd = TEAM_CMD_OPTIONS_SET, - .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, - .doit = team_nl_cmd_options_set, - .flags = GENL_ADMIN_PERM, - }, - { - .cmd = TEAM_CMD_OPTIONS_GET, - .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, - .doit = team_nl_cmd_options_get, - .flags = GENL_ADMIN_PERM, - }, - { - .cmd = TEAM_CMD_PORT_LIST_GET, - .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, - .doit = team_nl_cmd_port_list_get, - .flags = GENL_ADMIN_PERM, - }, -}; - static const struct genl_multicast_group team_nl_mcgrps[] = { { .name = TEAM_GENL_CHANGE_EVENT_MC_GRP_NAME, }, }; @@ -2853,7 +2808,7 @@ static const struct genl_multicast_group team_nl_mcgrps[] = { static struct genl_family team_nl_family __ro_after_init = { .name = TEAM_GENL_NAME, .version = TEAM_GENL_VERSION, - .maxattr = TEAM_ATTR_MAX, + .maxattr = ARRAY_SIZE(team_nl_policy), .policy = team_nl_policy, .netnsok = true, .module = THIS_MODULE, diff --git a/drivers/net/team/team_nl.c b/drivers/net/team/team_nl.c new file mode 100644 index 000000000000..208424ab78f5 --- /dev/null +++ b/drivers/net/team/team_nl.c @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) +/* Do not edit directly, auto-generated from: */ +/* Documentation/netlink/specs/team.yaml */ +/* YNL-GEN kernel source */ + +#include <net/netlink.h> +#include <net/genetlink.h> + +#include "team_nl.h" + +#include <uapi/linux/if_team.h> + +/* Common nested types */ +const struct nla_policy team_attr_option_nl_policy[TEAM_ATTR_OPTION_ARRAY_INDEX + 1] = { + [TEAM_ATTR_OPTION_NAME] = { .type = NLA_STRING, .len = TEAM_STRING_MAX_LEN, }, + [TEAM_ATTR_OPTION_CHANGED] = { .type = NLA_FLAG, }, + [TEAM_ATTR_OPTION_TYPE] = { .type = NLA_U8, }, + [TEAM_ATTR_OPTION_DATA] = { .type = NLA_BINARY, }, + [TEAM_ATTR_OPTION_REMOVED] = { .type = NLA_FLAG, }, + [TEAM_ATTR_OPTION_PORT_IFINDEX] = { .type = NLA_U32, }, + [TEAM_ATTR_OPTION_ARRAY_INDEX] = { .type = NLA_U32, }, +}; + +const struct nla_policy team_item_option_nl_policy[TEAM_ATTR_ITEM_OPTION + 1] = { + [TEAM_ATTR_ITEM_OPTION] = NLA_POLICY_NESTED(team_attr_option_nl_policy), +}; + +/* Global operation policy for team */ +const struct nla_policy team_nl_policy[TEAM_ATTR_LIST_OPTION + 1] = { + [TEAM_ATTR_TEAM_IFINDEX] = { .type = NLA_U32, }, + [TEAM_ATTR_LIST_OPTION] = NLA_POLICY_NESTED(team_item_option_nl_policy), +}; + +/* Ops table for team */ +const struct genl_small_ops team_nl_ops[4] = { + { + .cmd = TEAM_CMD_NOOP, + .validate = GENL_DONT_VALIDATE_STRICT, + .doit = team_nl_noop_doit, + }, + { + .cmd = TEAM_CMD_OPTIONS_SET, + .validate = GENL_DONT_VALIDATE_STRICT, + .doit = team_nl_options_set_doit, + .flags = GENL_ADMIN_PERM, + }, + { + .cmd = TEAM_CMD_OPTIONS_GET, + .validate = GENL_DONT_VALIDATE_STRICT, + .doit = team_nl_options_get_doit, + .flags = GENL_ADMIN_PERM, + }, + { + .cmd = TEAM_CMD_PORT_LIST_GET, + .validate = GENL_DONT_VALIDATE_STRICT, + .doit = team_nl_port_list_get_doit, + .flags = GENL_ADMIN_PERM, + }, +}; diff --git a/drivers/net/team/team_nl.h b/drivers/net/team/team_nl.h new file mode 100644 index 000000000000..c9ec1b22ac4d --- /dev/null +++ b/drivers/net/team/team_nl.h @@ -0,0 +1,29 @@ +/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ +/* Do not edit directly, auto-generated from: */ +/* Documentation/netlink/specs/team.yaml */ +/* YNL-GEN kernel header */ + +#ifndef _LINUX_TEAM_GEN_H +#define _LINUX_TEAM_GEN_H + +#include <net/netlink.h> +#include <net/genetlink.h> + +#include <uapi/linux/if_team.h> + +/* Common nested types */ +extern const struct nla_policy team_attr_option_nl_policy[TEAM_ATTR_OPTION_ARRAY_INDEX + 1]; +extern const struct nla_policy team_item_option_nl_policy[TEAM_ATTR_ITEM_OPTION + 1]; + +/* Global operation policy for team */ +extern const struct nla_policy team_nl_policy[TEAM_ATTR_LIST_OPTION + 1]; + +/* Ops table for team */ +extern const struct genl_small_ops team_nl_ops[4]; + +int team_nl_noop_doit(struct sk_buff *skb, struct genl_info *info); +int team_nl_options_set_doit(struct sk_buff *skb, struct genl_info *info); +int team_nl_options_get_doit(struct sk_buff *skb, struct genl_info *info); +int team_nl_port_list_get_doit(struct sk_buff *skb, struct genl_info *info); + +#endif /* _LINUX_TEAM_GEN_H */ -- 2.43.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCHv3 net-next 4/4] uapi: team: use header file generated from YAML spec 2024-03-29 8:28 [PATCHv3 net-next 0/4] doc/netlink: add a YAML spec for team Hangbin Liu ` (2 preceding siblings ...) 2024-03-29 8:28 ` [PATCHv3 net-next 3/4] net: team: use policy generated by YAML spec Hangbin Liu @ 2024-03-29 8:28 ` Hangbin Liu 3 siblings, 0 replies; 8+ messages in thread From: Hangbin Liu @ 2024-03-29 8:28 UTC (permalink / raw) To: netdev Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Donald Hunter, Jiri Pirko, Jacob Keller, Stanislav Fomichev, Hangbin Liu generated with: $ ./tools/net/ynl/ynl-gen-c.py --mode uapi \ > --spec Documentation/netlink/specs/team.yaml \ > --header -o include/uapi/linux/if_team.h Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> --- include/uapi/linux/if_team.h | 116 +++++++++++++---------------------- 1 file changed, 43 insertions(+), 73 deletions(-) diff --git a/include/uapi/linux/if_team.h b/include/uapi/linux/if_team.h index 13c61fecb78b..a5c06243a435 100644 --- a/include/uapi/linux/if_team.h +++ b/include/uapi/linux/if_team.h @@ -1,108 +1,78 @@ -/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ -/* - * include/linux/if_team.h - Network team device driver header - * Copyright (c) 2011 Jiri Pirko <jpirko@redhat.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - */ +/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ +/* Do not edit directly, auto-generated from: */ +/* Documentation/netlink/specs/team.yaml */ +/* YNL-GEN uapi header */ -#ifndef _UAPI_LINUX_IF_TEAM_H_ -#define _UAPI_LINUX_IF_TEAM_H_ +#ifndef _UAPI_LINUX_IF_TEAM_H +#define _UAPI_LINUX_IF_TEAM_H +#define TEAM_GENL_NAME "team" +#define TEAM_GENL_VERSION 1 -#define TEAM_STRING_MAX_LEN 32 - -/********************************** - * NETLINK_GENERIC netlink family. - **********************************/ - -enum { - TEAM_CMD_NOOP, - TEAM_CMD_OPTIONS_SET, - TEAM_CMD_OPTIONS_GET, - TEAM_CMD_PORT_LIST_GET, - - __TEAM_CMD_MAX, - TEAM_CMD_MAX = (__TEAM_CMD_MAX - 1), -}; +#define TEAM_STRING_MAX_LEN 32 +#define TEAM_GENL_CHANGE_EVENT_MC_GRP_NAME "change_event" enum { TEAM_ATTR_UNSPEC, - TEAM_ATTR_TEAM_IFINDEX, /* u32 */ - TEAM_ATTR_LIST_OPTION, /* nest */ - TEAM_ATTR_LIST_PORT, /* nest */ + TEAM_ATTR_TEAM_IFINDEX, + TEAM_ATTR_LIST_OPTION, + TEAM_ATTR_LIST_PORT, __TEAM_ATTR_MAX, - TEAM_ATTR_MAX = __TEAM_ATTR_MAX - 1, + TEAM_ATTR_MAX = (__TEAM_ATTR_MAX - 1) }; -/* Nested layout of get/set msg: - * - * [TEAM_ATTR_LIST_OPTION] - * [TEAM_ATTR_ITEM_OPTION] - * [TEAM_ATTR_OPTION_*], ... - * [TEAM_ATTR_ITEM_OPTION] - * [TEAM_ATTR_OPTION_*], ... - * ... - * [TEAM_ATTR_LIST_PORT] - * [TEAM_ATTR_ITEM_PORT] - * [TEAM_ATTR_PORT_*], ... - * [TEAM_ATTR_ITEM_PORT] - * [TEAM_ATTR_PORT_*], ... - * ... - */ - enum { TEAM_ATTR_ITEM_OPTION_UNSPEC, - TEAM_ATTR_ITEM_OPTION, /* nest */ + TEAM_ATTR_ITEM_OPTION, __TEAM_ATTR_ITEM_OPTION_MAX, - TEAM_ATTR_ITEM_OPTION_MAX = __TEAM_ATTR_ITEM_OPTION_MAX - 1, + TEAM_ATTR_ITEM_OPTION_MAX = (__TEAM_ATTR_ITEM_OPTION_MAX - 1) }; enum { TEAM_ATTR_OPTION_UNSPEC, - TEAM_ATTR_OPTION_NAME, /* string */ - TEAM_ATTR_OPTION_CHANGED, /* flag */ - TEAM_ATTR_OPTION_TYPE, /* u8 */ - TEAM_ATTR_OPTION_DATA, /* dynamic */ - TEAM_ATTR_OPTION_REMOVED, /* flag */ - TEAM_ATTR_OPTION_PORT_IFINDEX, /* u32 */ /* for per-port options */ - TEAM_ATTR_OPTION_ARRAY_INDEX, /* u32 */ /* for array options */ + TEAM_ATTR_OPTION_NAME, + TEAM_ATTR_OPTION_CHANGED, + TEAM_ATTR_OPTION_TYPE, + TEAM_ATTR_OPTION_DATA, + TEAM_ATTR_OPTION_REMOVED, + TEAM_ATTR_OPTION_PORT_IFINDEX, + TEAM_ATTR_OPTION_ARRAY_INDEX, __TEAM_ATTR_OPTION_MAX, - TEAM_ATTR_OPTION_MAX = __TEAM_ATTR_OPTION_MAX - 1, + TEAM_ATTR_OPTION_MAX = (__TEAM_ATTR_OPTION_MAX - 1) }; enum { TEAM_ATTR_ITEM_PORT_UNSPEC, - TEAM_ATTR_ITEM_PORT, /* nest */ + TEAM_ATTR_ITEM_PORT, __TEAM_ATTR_ITEM_PORT_MAX, - TEAM_ATTR_ITEM_PORT_MAX = __TEAM_ATTR_ITEM_PORT_MAX - 1, + TEAM_ATTR_ITEM_PORT_MAX = (__TEAM_ATTR_ITEM_PORT_MAX - 1) }; enum { TEAM_ATTR_PORT_UNSPEC, - TEAM_ATTR_PORT_IFINDEX, /* u32 */ - TEAM_ATTR_PORT_CHANGED, /* flag */ - TEAM_ATTR_PORT_LINKUP, /* flag */ - TEAM_ATTR_PORT_SPEED, /* u32 */ - TEAM_ATTR_PORT_DUPLEX, /* u8 */ - TEAM_ATTR_PORT_REMOVED, /* flag */ + TEAM_ATTR_PORT_IFINDEX, + TEAM_ATTR_PORT_CHANGED, + TEAM_ATTR_PORT_LINKUP, + TEAM_ATTR_PORT_SPEED, + TEAM_ATTR_PORT_DUPLEX, + TEAM_ATTR_PORT_REMOVED, __TEAM_ATTR_PORT_MAX, - TEAM_ATTR_PORT_MAX = __TEAM_ATTR_PORT_MAX - 1, + TEAM_ATTR_PORT_MAX = (__TEAM_ATTR_PORT_MAX - 1) }; -/* - * NETLINK_GENERIC related info - */ -#define TEAM_GENL_NAME "team" -#define TEAM_GENL_VERSION 0x1 -#define TEAM_GENL_CHANGE_EVENT_MC_GRP_NAME "change_event" +enum { + TEAM_CMD_NOOP, + TEAM_CMD_OPTIONS_SET, + TEAM_CMD_OPTIONS_GET, + TEAM_CMD_PORT_LIST_GET, + + __TEAM_CMD_MAX, + TEAM_CMD_MAX = (__TEAM_CMD_MAX - 1) +}; -#endif /* _UAPI_LINUX_IF_TEAM_H_ */ +#endif /* _UAPI_LINUX_IF_TEAM_H */ -- 2.43.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-04-01 2:41 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-03-29 8:28 [PATCHv3 net-next 0/4] doc/netlink: add a YAML spec for team Hangbin Liu 2024-03-29 8:28 ` [PATCHv3 net-next 1/4] Documentation: netlink: " Hangbin Liu 2024-03-29 8:28 ` [PATCHv3 net-next 2/4] net: team: rename team to team_core for linking Hangbin Liu 2024-03-29 22:08 ` Jakub Kicinski 2024-03-29 22:08 ` Jakub Kicinski 2024-04-01 2:41 ` Hangbin Liu 2024-03-29 8:28 ` [PATCHv3 net-next 3/4] net: team: use policy generated by YAML spec Hangbin Liu 2024-03-29 8:28 ` [PATCHv3 net-next 4/4] uapi: team: use header file generated from " Hangbin Liu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).