On Fri, 13 Nov 2020 16:08:39 +0100 Karsten Graul wrote: > On 11/11/2020 23:34, Jakub Kicinski wrote: > > On Mon, 9 Nov 2020 16:18:08 +0100 Karsten Graul wrote: > >> @@ -295,6 +377,14 @@ static int smc_diag_dump(struct sk_buff *skb, struct netlink_callback *cb) > >> > >> static int smc_diag_dump_ext(struct sk_buff *skb, struct netlink_callback *cb) > >> { > >> + struct smc_diag_req_v2 *req = nlmsg_data(cb->nlh); > >> + > >> + if (req->cmd == SMC_DIAG_GET_LGR_INFO) { > >> + if ((req->cmd_ext & (1 << (SMC_DIAG_LGR_INFO_SMCR - 1)))) > >> + smc_diag_fill_lgr_list(smc_diag_ops->get_lgr_list(), > >> + skb, cb, req); > >> + } > >> + > >> return skb->len; > >> } > > > > IDK if this is appropriate for socket diag handler. > > > > Is there precedent for funneling commands through socket diag instead > > of just creating a genetlink family? > > Thank you for your valuable comments. We are looking into a better way > to retrieve the various information from the kernel into user space, > and we will come up with a v5 for that. Thanks, but do double check that no other socket type is doing this, I'm far from a socket layer expert.