netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net v3 0/2][pull request] ixgbe: bypass devlink phys_port_name generation
@ 2025-08-12 20:52 Tony Nguyen
  2025-08-12 20:52 ` [PATCH net v3 1/2] devlink: let driver opt out of automatic " Tony Nguyen
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Tony Nguyen @ 2025-08-12 20:52 UTC (permalink / raw)
  To: davem, kuba, pabeni, edumazet, andrew+netdev, netdev
  Cc: Tony Nguyen, jedrzej.jagielski, przemyslaw.kitszel,
	jacob.e.keller, jiri, horms, David.Kaplan, dhowells

Jedrzej adds option to skip phys_port_name generation and opts
ixgbe into it as some configurations rely on pre-devlink naming
which could end up broken as a result.
---
v3:
- return -EOPNOTSUPP when flag set
- wrap comment to 80 chars

v2: https://lore.kernel.org/netdev/20250805223346.3293091-1-anthony.l.nguyen@intel.com/
- use shorter flag name (no_phys_port_name)
- move compatibility comment to kdoc
- adjust commit messages and titles

v1: https://lore.kernel.org/netdev/20250801172240.3105730-1-anthony.l.nguyen@intel.com/

The following are changes since commit c04fdca8a98af5fc4eeb6569917f159cfa56b923:
  Merge tag 'ipsec-2025-08-11' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue 10GbE

Jedrzej Jagielski (2):
  devlink: let driver opt out of automatic phys_port_name generation
  ixgbe: prevent from unwanted interface name changes

 drivers/net/ethernet/intel/ixgbe/devlink/devlink.c | 1 +
 include/net/devlink.h                              | 6 +++++-
 net/devlink/port.c                                 | 2 +-
 3 files changed, 7 insertions(+), 2 deletions(-)

-- 
2.47.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH net v3 1/2] devlink: let driver opt out of automatic phys_port_name generation
  2025-08-12 20:52 [PATCH net v3 0/2][pull request] ixgbe: bypass devlink phys_port_name generation Tony Nguyen
@ 2025-08-12 20:52 ` Tony Nguyen
  2025-08-12 20:52 ` [PATCH net v3 2/2] ixgbe: prevent from unwanted interface name changes Tony Nguyen
  2025-08-14  1:20 ` [PATCH net v3 0/2][pull request] ixgbe: bypass devlink phys_port_name generation patchwork-bot+netdevbpf
  2 siblings, 0 replies; 4+ messages in thread
From: Tony Nguyen @ 2025-08-12 20:52 UTC (permalink / raw)
  To: davem, kuba, pabeni, edumazet, andrew+netdev, netdev
  Cc: Jedrzej Jagielski, anthony.l.nguyen, przemyslaw.kitszel,
	jacob.e.keller, jiri, horms, David.Kaplan, dhowells

From: Jedrzej Jagielski <jedrzej.jagielski@intel.com>

Currently when adding devlink port, phys_port_name is automatically
generated within devlink port initialization flow. As a result adding
devlink port support to driver may result in forced changes of interface
names, which breaks already existing network configs.

This is an expected behavior but in some scenarios it would not be
preferable to provide such limitation for legacy driver not being able to
keep 'pre-devlink' interface name.

Add flag no_phys_port_name to devlink_port_attrs struct which indicates
if devlink should not alter name of interface.

Suggested-by: Jiri Pirko <jiri@resnulli.us>
Link: https://lore.kernel.org/all/nbwrfnjhvrcduqzjl4a2jafnvvud6qsbxlvxaxilnryglf4j7r@btuqrimnfuly/
Signed-off-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
---
 include/net/devlink.h | 6 +++++-
 net/devlink/port.c    | 2 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/include/net/devlink.h b/include/net/devlink.h
index 93640a29427c..b32c9ceeb81d 100644
--- a/include/net/devlink.h
+++ b/include/net/devlink.h
@@ -78,6 +78,9 @@ struct devlink_port_pci_sf_attrs {
  * @flavour: flavour of the port
  * @split: indicates if this is split port
  * @splittable: indicates if the port can be split.
+ * @no_phys_port_name: skip automatic phys_port_name generation; for
+ *		       compatibility only, newly added driver/port instance
+ *		       should never set this.
  * @lanes: maximum number of lanes the port supports. 0 value is not passed to netlink.
  * @switch_id: if the port is part of switch, this is buffer with ID, otherwise this is NULL
  * @phys: physical port attributes
@@ -87,7 +90,8 @@ struct devlink_port_pci_sf_attrs {
  */
 struct devlink_port_attrs {
 	u8 split:1,
-	   splittable:1;
+	   splittable:1,
+	   no_phys_port_name:1;
 	u32 lanes;
 	enum devlink_port_flavour flavour;
 	struct netdev_phys_item_id switch_id;
diff --git a/net/devlink/port.c b/net/devlink/port.c
index 939081a0e615..cb8d4df61619 100644
--- a/net/devlink/port.c
+++ b/net/devlink/port.c
@@ -1519,7 +1519,7 @@ static int __devlink_port_phys_port_name_get(struct devlink_port *devlink_port,
 	struct devlink_port_attrs *attrs = &devlink_port->attrs;
 	int n = 0;
 
-	if (!devlink_port->attrs_set)
+	if (!devlink_port->attrs_set || devlink_port->attrs.no_phys_port_name)
 		return -EOPNOTSUPP;
 
 	switch (attrs->flavour) {
-- 
2.47.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH net v3 2/2] ixgbe: prevent from unwanted interface name changes
  2025-08-12 20:52 [PATCH net v3 0/2][pull request] ixgbe: bypass devlink phys_port_name generation Tony Nguyen
  2025-08-12 20:52 ` [PATCH net v3 1/2] devlink: let driver opt out of automatic " Tony Nguyen
@ 2025-08-12 20:52 ` Tony Nguyen
  2025-08-14  1:20 ` [PATCH net v3 0/2][pull request] ixgbe: bypass devlink phys_port_name generation patchwork-bot+netdevbpf
  2 siblings, 0 replies; 4+ messages in thread
From: Tony Nguyen @ 2025-08-12 20:52 UTC (permalink / raw)
  To: davem, kuba, pabeni, edumazet, andrew+netdev, netdev
  Cc: Jedrzej Jagielski, anthony.l.nguyen, przemyslaw.kitszel,
	jacob.e.keller, jiri, horms, David.Kaplan, dhowells, Rinitha S

From: Jedrzej Jagielski <jedrzej.jagielski@intel.com>

Users of the ixgbe driver report that after adding devlink support by
the commit a0285236ab93 ("ixgbe: add initial devlink support") their
configs got broken due to unwanted changes of interface names. It's
caused by automatic phys_port_name generation during devlink port
initialization flow.

To prevent from that set no_phys_port_name flag for ixgbe devlink ports.

Reported-by: David Howells <dhowells@redhat.com>
Closes: https://lore.kernel.org/netdev/3452224.1745518016@warthog.procyon.org.uk/
Reported-by: David Kaplan <David.Kaplan@amd.com>
Closes: https://lore.kernel.org/netdev/LV3PR12MB92658474624CCF60220157199470A@LV3PR12MB9265.namprd12.prod.outlook.com/
Fixes: a0285236ab93 ("ixgbe: add initial devlink support")
Signed-off-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/devlink/devlink.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/intel/ixgbe/devlink/devlink.c b/drivers/net/ethernet/intel/ixgbe/devlink/devlink.c
index 54f1b83dfe42..d227f4d2a2d1 100644
--- a/drivers/net/ethernet/intel/ixgbe/devlink/devlink.c
+++ b/drivers/net/ethernet/intel/ixgbe/devlink/devlink.c
@@ -543,6 +543,7 @@ int ixgbe_devlink_register_port(struct ixgbe_adapter *adapter)
 
 	attrs.flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL;
 	attrs.phys.port_number = adapter->hw.bus.func;
+	attrs.no_phys_port_name = 1;
 	ixgbe_devlink_set_switch_id(adapter, &attrs.switch_id);
 
 	devlink_port_attrs_set(devlink_port, &attrs);
-- 
2.47.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH net v3 0/2][pull request] ixgbe: bypass devlink phys_port_name generation
  2025-08-12 20:52 [PATCH net v3 0/2][pull request] ixgbe: bypass devlink phys_port_name generation Tony Nguyen
  2025-08-12 20:52 ` [PATCH net v3 1/2] devlink: let driver opt out of automatic " Tony Nguyen
  2025-08-12 20:52 ` [PATCH net v3 2/2] ixgbe: prevent from unwanted interface name changes Tony Nguyen
@ 2025-08-14  1:20 ` patchwork-bot+netdevbpf
  2 siblings, 0 replies; 4+ messages in thread
From: patchwork-bot+netdevbpf @ 2025-08-14  1:20 UTC (permalink / raw)
  To: Tony Nguyen
  Cc: davem, kuba, pabeni, edumazet, andrew+netdev, netdev,
	jedrzej.jagielski, przemyslaw.kitszel, jacob.e.keller, jiri,
	horms, David.Kaplan, dhowells

Hello:

This series was applied to netdev/net.git (main)
by Tony Nguyen <anthony.l.nguyen@intel.com>:

On Tue, 12 Aug 2025 13:52:22 -0700 you wrote:
> Jedrzej adds option to skip phys_port_name generation and opts
> ixgbe into it as some configurations rely on pre-devlink naming
> which could end up broken as a result.
> ---
> v3:
> - return -EOPNOTSUPP when flag set
> - wrap comment to 80 chars
> 
> [...]

Here is the summary with links:
  - [net,v3,1/2] devlink: let driver opt out of automatic phys_port_name generation
    https://git.kernel.org/netdev/net/c/c5ec7f49b480
  - [net,v3,2/2] ixgbe: prevent from unwanted interface name changes
    https://git.kernel.org/netdev/net/c/e67a0bc3ed4f

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-08-14  1:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-12 20:52 [PATCH net v3 0/2][pull request] ixgbe: bypass devlink phys_port_name generation Tony Nguyen
2025-08-12 20:52 ` [PATCH net v3 1/2] devlink: let driver opt out of automatic " Tony Nguyen
2025-08-12 20:52 ` [PATCH net v3 2/2] ixgbe: prevent from unwanted interface name changes Tony Nguyen
2025-08-14  1:20 ` [PATCH net v3 0/2][pull request] ixgbe: bypass devlink phys_port_name generation patchwork-bot+netdevbpf

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).