From: Leon Romanovsky <leon@kernel.org> To: "David S . Miller" <davem@davemloft.net>, Jakub Kicinski <kuba@kernel.org>, Steffen Klassert <steffen.klassert@secunet.com> Cc: Leon Romanovsky <leonro@nvidia.com>, Andy Gospodarek <andy@greyhouse.net>, Ayush Sawal <ayush.sawal@chelsio.com>, Eric Dumazet <edumazet@google.com>, Herbert Xu <herbert@gondor.apana.org.au>, intel-wired-lan@lists.osuosl.org, Jay Vosburgh <j.vosburgh@gmail.com>, Jesse Brandeburg <jesse.brandeburg@intel.com>, Jonathan Corbet <corbet@lwn.net>, linux-doc@vger.kernel.org, netdev@vger.kernel.org, oss-drivers@corigine.com, Paolo Abeni <pabeni@redhat.com>, Raju Rangoju <rajur@chelsio.com>, Saeed Mahameed <saeedm@nvidia.com>, Simon Horman <simon.horman@corigine.com>, Tony Nguyen <anthony.l.nguyen@intel.com>, Veaceslav Falico <vfalico@gmail.com> Subject: [PATCH net-next 01/10] xfrm: extend add policy callback to set failure reason Date: Mon, 23 Jan 2023 16:00:14 +0200 [thread overview] Message-ID: <6048dba5bf83d5ad772b37e351bf0f8ebc7d6a7b.1674481435.git.leon@kernel.org> (raw) In-Reply-To: <cover.1674481435.git.leon@kernel.org> From: Leon Romanovsky <leonro@nvidia.com> Almost all validation logic is in the drivers, but they are missing reliable way to convey failure reason to userspace applications. Let's use extack to return this information to users. Signed-off-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: Leon Romanovsky <leon@kernel.org> --- Documentation/networking/xfrm_device.rst | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c | 3 ++- include/linux/netdevice.h | 2 +- net/xfrm/xfrm_device.c | 3 +-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Documentation/networking/xfrm_device.rst b/Documentation/networking/xfrm_device.rst index c43ace79e320..b9c53e626982 100644 --- a/Documentation/networking/xfrm_device.rst +++ b/Documentation/networking/xfrm_device.rst @@ -73,7 +73,7 @@ Callbacks to implement /* Solely packet offload callbacks */ void (*xdo_dev_state_update_curlft) (struct xfrm_state *x); - int (*xdo_dev_policy_add) (struct xfrm_policy *x); + int (*xdo_dev_policy_add) (struct xfrm_policy *x, struct netlink_ext_ack *extack); void (*xdo_dev_policy_delete) (struct xfrm_policy *x); void (*xdo_dev_policy_free) (struct xfrm_policy *x); }; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c index bb9023957f74..83e0f874484e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c @@ -550,7 +550,8 @@ mlx5e_ipsec_build_accel_pol_attrs(struct mlx5e_ipsec_pol_entry *pol_entry, attrs->reqid = x->xfrm_vec[0].reqid; } -static int mlx5e_xfrm_add_policy(struct xfrm_policy *x) +static int mlx5e_xfrm_add_policy(struct xfrm_policy *x, + struct netlink_ext_ack *extack) { struct net_device *netdev = x->xdo.real_dev; struct mlx5e_ipsec_pol_entry *pol_entry; diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index aad12a179e54..7c43b9fb9aae 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -1042,7 +1042,7 @@ struct xfrmdev_ops { struct xfrm_state *x); void (*xdo_dev_state_advance_esn) (struct xfrm_state *x); void (*xdo_dev_state_update_curlft) (struct xfrm_state *x); - int (*xdo_dev_policy_add) (struct xfrm_policy *x); + int (*xdo_dev_policy_add) (struct xfrm_policy *x, struct netlink_ext_ack *extack); void (*xdo_dev_policy_delete) (struct xfrm_policy *x); void (*xdo_dev_policy_free) (struct xfrm_policy *x); }; diff --git a/net/xfrm/xfrm_device.c b/net/xfrm/xfrm_device.c index 4aff76c6f12e..2cec637a4a9c 100644 --- a/net/xfrm/xfrm_device.c +++ b/net/xfrm/xfrm_device.c @@ -383,14 +383,13 @@ int xfrm_dev_policy_add(struct net *net, struct xfrm_policy *xp, return -EINVAL; } - err = dev->xfrmdev_ops->xdo_dev_policy_add(xp); + err = dev->xfrmdev_ops->xdo_dev_policy_add(xp, extack); if (err) { xdo->dev = NULL; xdo->real_dev = NULL; xdo->type = XFRM_DEV_OFFLOAD_UNSPECIFIED; xdo->dir = 0; netdev_put(dev, &xdo->dev_tracker); - NL_SET_ERR_MSG(extack, "Device failed to offload this policy"); return err; } -- 2.39.1
WARNING: multiple messages have this Message-ID (diff)
From: Leon Romanovsky <leon@kernel.org> To: "David S . Miller" <davem@davemloft.net>, Jakub Kicinski <kuba@kernel.org>, Steffen Klassert <steffen.klassert@secunet.com> Cc: Veaceslav Falico <vfalico@gmail.com>, Herbert Xu <herbert@gondor.apana.org.au>, Jonathan Corbet <corbet@lwn.net>, Jay Vosburgh <j.vosburgh@gmail.com>, oss-drivers@corigine.com, linux-doc@vger.kernel.org, Raju Rangoju <rajur@chelsio.com>, Jesse Brandeburg <jesse.brandeburg@intel.com>, Eric Dumazet <edumazet@google.com>, netdev@vger.kernel.org, intel-wired-lan@lists.osuosl.org, Ayush Sawal <ayush.sawal@chelsio.com>, Simon Horman <simon.horman@corigine.com>, Tony Nguyen <anthony.l.nguyen@intel.com>, Paolo Abeni <pabeni@redhat.com>, Leon Romanovsky <leonro@nvidia.com>, Saeed Mahameed <saeedm@nvidia.com>, Andy Gospodarek <andy@greyhouse.net> Subject: [Intel-wired-lan] [PATCH net-next 01/10] xfrm: extend add policy callback to set failure reason Date: Mon, 23 Jan 2023 16:00:14 +0200 [thread overview] Message-ID: <6048dba5bf83d5ad772b37e351bf0f8ebc7d6a7b.1674481435.git.leon@kernel.org> (raw) In-Reply-To: <cover.1674481435.git.leon@kernel.org> From: Leon Romanovsky <leonro@nvidia.com> Almost all validation logic is in the drivers, but they are missing reliable way to convey failure reason to userspace applications. Let's use extack to return this information to users. Signed-off-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: Leon Romanovsky <leon@kernel.org> --- Documentation/networking/xfrm_device.rst | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c | 3 ++- include/linux/netdevice.h | 2 +- net/xfrm/xfrm_device.c | 3 +-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Documentation/networking/xfrm_device.rst b/Documentation/networking/xfrm_device.rst index c43ace79e320..b9c53e626982 100644 --- a/Documentation/networking/xfrm_device.rst +++ b/Documentation/networking/xfrm_device.rst @@ -73,7 +73,7 @@ Callbacks to implement /* Solely packet offload callbacks */ void (*xdo_dev_state_update_curlft) (struct xfrm_state *x); - int (*xdo_dev_policy_add) (struct xfrm_policy *x); + int (*xdo_dev_policy_add) (struct xfrm_policy *x, struct netlink_ext_ack *extack); void (*xdo_dev_policy_delete) (struct xfrm_policy *x); void (*xdo_dev_policy_free) (struct xfrm_policy *x); }; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c index bb9023957f74..83e0f874484e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c @@ -550,7 +550,8 @@ mlx5e_ipsec_build_accel_pol_attrs(struct mlx5e_ipsec_pol_entry *pol_entry, attrs->reqid = x->xfrm_vec[0].reqid; } -static int mlx5e_xfrm_add_policy(struct xfrm_policy *x) +static int mlx5e_xfrm_add_policy(struct xfrm_policy *x, + struct netlink_ext_ack *extack) { struct net_device *netdev = x->xdo.real_dev; struct mlx5e_ipsec_pol_entry *pol_entry; diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index aad12a179e54..7c43b9fb9aae 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -1042,7 +1042,7 @@ struct xfrmdev_ops { struct xfrm_state *x); void (*xdo_dev_state_advance_esn) (struct xfrm_state *x); void (*xdo_dev_state_update_curlft) (struct xfrm_state *x); - int (*xdo_dev_policy_add) (struct xfrm_policy *x); + int (*xdo_dev_policy_add) (struct xfrm_policy *x, struct netlink_ext_ack *extack); void (*xdo_dev_policy_delete) (struct xfrm_policy *x); void (*xdo_dev_policy_free) (struct xfrm_policy *x); }; diff --git a/net/xfrm/xfrm_device.c b/net/xfrm/xfrm_device.c index 4aff76c6f12e..2cec637a4a9c 100644 --- a/net/xfrm/xfrm_device.c +++ b/net/xfrm/xfrm_device.c @@ -383,14 +383,13 @@ int xfrm_dev_policy_add(struct net *net, struct xfrm_policy *xp, return -EINVAL; } - err = dev->xfrmdev_ops->xdo_dev_policy_add(xp); + err = dev->xfrmdev_ops->xdo_dev_policy_add(xp, extack); if (err) { xdo->dev = NULL; xdo->real_dev = NULL; xdo->type = XFRM_DEV_OFFLOAD_UNSPECIFIED; xdo->dir = 0; netdev_put(dev, &xdo->dev_tracker); - NL_SET_ERR_MSG(extack, "Device failed to offload this policy"); return err; } -- 2.39.1 _______________________________________________ Intel-wired-lan mailing list Intel-wired-lan@osuosl.org https://lists.osuosl.org/mailman/listinfo/intel-wired-lan
next prev parent reply other threads:[~2023-01-23 14:00 UTC|newest] Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-01-23 14:00 [PATCH net-next 00/10] Convert drivers to return XFRM configuration errors through extack Leon Romanovsky 2023-01-23 14:00 ` [Intel-wired-lan] " Leon Romanovsky 2023-01-23 14:00 ` Leon Romanovsky [this message] 2023-01-23 14:00 ` [Intel-wired-lan] [PATCH net-next 01/10] xfrm: extend add policy callback to set failure reason Leon Romanovsky 2023-01-23 14:00 ` [Intel-wired-lan] [PATCH net-next 02/10] net/mlx5e: Fill IPsec policy validation " Leon Romanovsky 2023-01-23 14:00 ` Leon Romanovsky 2023-01-23 14:00 ` [Intel-wired-lan] [PATCH net-next 03/10] xfrm: extend add state callback to set " Leon Romanovsky 2023-01-23 14:00 ` Leon Romanovsky 2023-01-23 14:00 ` [PATCH net-next 04/10] net/mlx5e: Fill IPsec state validation " Leon Romanovsky 2023-01-23 14:00 ` [Intel-wired-lan] " Leon Romanovsky 2023-01-23 17:12 ` Leon Romanovsky 2023-01-23 17:12 ` Leon Romanovsky 2023-01-24 7:59 ` [Intel-wired-lan] " kernel test robot 2023-01-24 7:59 ` kernel test robot 2023-01-23 14:00 ` [PATCH net-next 05/10] netdevsim: " Leon Romanovsky 2023-01-23 14:00 ` [Intel-wired-lan] " Leon Romanovsky 2023-01-23 14:00 ` [Intel-wired-lan] [PATCH net-next 06/10] nfp: fill " Leon Romanovsky 2023-01-23 14:00 ` Leon Romanovsky 2023-01-23 15:09 ` Simon Horman 2023-01-23 15:09 ` [Intel-wired-lan] " Simon Horman 2023-01-23 16:34 ` Leon Romanovsky 2023-01-23 16:34 ` [Intel-wired-lan] " Leon Romanovsky 2023-01-23 14:00 ` [PATCH net-next 07/10] ixgbevf: " Leon Romanovsky 2023-01-23 14:00 ` [Intel-wired-lan] " Leon Romanovsky 2023-01-23 14:00 ` [Intel-wired-lan] [PATCH net-next 08/10] ixgbe: " Leon Romanovsky 2023-01-23 14:00 ` Leon Romanovsky 2023-01-23 14:00 ` [Intel-wired-lan] [PATCH net-next 09/10] bonding: " Leon Romanovsky 2023-01-23 14:00 ` Leon Romanovsky 2023-01-23 23:01 ` [Intel-wired-lan] " Jay Vosburgh 2023-01-23 23:01 ` Jay Vosburgh 2023-01-24 6:22 ` Leon Romanovsky 2023-01-24 6:22 ` Leon Romanovsky 2023-01-23 14:00 ` [PATCH net-next 10/10] cxgb4: " Leon Romanovsky 2023-01-23 14:00 ` [Intel-wired-lan] " Leon Romanovsky 2023-01-24 9:42 ` kernel test robot 2023-01-24 9:42 ` [Intel-wired-lan] " kernel test robot
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=6048dba5bf83d5ad772b37e351bf0f8ebc7d6a7b.1674481435.git.leon@kernel.org \ --to=leon@kernel.org \ --cc=andy@greyhouse.net \ --cc=anthony.l.nguyen@intel.com \ --cc=ayush.sawal@chelsio.com \ --cc=corbet@lwn.net \ --cc=davem@davemloft.net \ --cc=edumazet@google.com \ --cc=herbert@gondor.apana.org.au \ --cc=intel-wired-lan@lists.osuosl.org \ --cc=j.vosburgh@gmail.com \ --cc=jesse.brandeburg@intel.com \ --cc=kuba@kernel.org \ --cc=leonro@nvidia.com \ --cc=linux-doc@vger.kernel.org \ --cc=netdev@vger.kernel.org \ --cc=oss-drivers@corigine.com \ --cc=pabeni@redhat.com \ --cc=rajur@chelsio.com \ --cc=saeedm@nvidia.com \ --cc=simon.horman@corigine.com \ --cc=steffen.klassert@secunet.com \ --cc=vfalico@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.