Re: [PATCH iproute2] devlink: don't enforce NETLINK_{CAP,EXT}_ACK sock opts

2018-06-01 Thread Jiri Pirko
Fri, Jun 01, 2018 at 10:18:49AM CEST, ivec...@redhat.com wrote:
>Since commit 049c58539f5d ("devlink: mnlg: Add support for extended ack")
>devlink requires NETLINK_{CAP,EXT}_ACK. This prevents devlink from
>working with older kernels that don't support these features.
>
>host # ./devlink/devlink
>Failed to connect to devlink Netlink
>
>Fixes: 049c58539f5d ("devlink: mnlg: Add support for extended ack")

Acked-by: Jiri Pirko 

Thanks!


[PATCH iproute2] devlink: don't enforce NETLINK_{CAP,EXT}_ACK sock opts

2018-06-01 Thread Ivan Vecera
Since commit 049c58539f5d ("devlink: mnlg: Add support for extended ack")
devlink requires NETLINK_{CAP,EXT}_ACK. This prevents devlink from
working with older kernels that don't support these features.

host # ./devlink/devlink
Failed to connect to devlink Netlink

Fixes: 049c58539f5d ("devlink: mnlg: Add support for extended ack")
Cc: Arkadi Sharshevsky 
Cc: Stephen Hemminger 
Signed-off-by: Ivan Vecera 
---
 devlink/mnlg.c | 14 +++---
 1 file changed, 3 insertions(+), 11 deletions(-)

diff --git a/devlink/mnlg.c b/devlink/mnlg.c
index 3d28453a..c33c90be 100644
--- a/devlink/mnlg.c
+++ b/devlink/mnlg.c
@@ -271,15 +271,9 @@ struct mnlg_socket *mnlg_socket_open(const char 
*family_name, uint8_t version)
if (!nlg->nl)
goto err_mnl_socket_open;
 
-   err = mnl_socket_setsockopt(nlg->nl, NETLINK_CAP_ACK, ,
-   sizeof(one));
-   if (err)
-   goto err_mnl_set_ack;
-
-   err = mnl_socket_setsockopt(nlg->nl, NETLINK_EXT_ACK, ,
-   sizeof(one));
-   if (err)
-   goto err_mnl_set_ext_ack;
+   /* Older kernels may no support capped/extended ACK reporting */
+   mnl_socket_setsockopt(nlg->nl, NETLINK_CAP_ACK, , sizeof(one));
+   mnl_socket_setsockopt(nlg->nl, NETLINK_EXT_ACK, , sizeof(one));
 
err = mnl_socket_bind(nlg->nl, 0, MNL_SOCKET_AUTOPID);
if (err < 0)
@@ -305,8 +299,6 @@ struct mnlg_socket *mnlg_socket_open(const char 
*family_name, uint8_t version)
 err_mnlg_socket_recv_run:
 err_mnlg_socket_send:
 err_mnl_socket_bind:
-err_mnl_set_ext_ack:
-err_mnl_set_ack:
mnl_socket_close(nlg->nl);
 err_mnl_socket_open:
free(nlg->buf);
-- 
2.16.1