On 11/14/17 1:15 PM, David Ahern wrote: > On 11/14/17 12:19 PM, Jon Maloy wrote: >> When I give the command: >> ~$ tipc node set addr 1.1.2 >> >> I get the following response: >> >> error: Numerical result out of range >> Unable to get TIPC nl family id (module loaded?) >> error, message initialisation failed > > tipc is sending a u32 for the family attribute when it should be a u16: > > diff --git a/tipc/msg.c b/tipc/msg.c > index 22c22226bb20..dc09d05048f3 100644 > --- a/tipc/msg.c > +++ b/tipc/msg.c > @@ -125,7 +125,7 @@ static int get_family(void) > genl->cmd = CTRL_CMD_GETFAMILY; > genl->version = 1; > > - mnl_attr_put_u32(nlh, CTRL_ATTR_FAMILY_ID, GENL_ID_CTRL); > + mnl_attr_put_u16(nlh, CTRL_ATTR_FAMILY_ID, GENL_ID_CTRL); > mnl_attr_put_strz(nlh, CTRL_ATTR_FAMILY_NAME, TIPC_GENL_V2_NAME); > > if ((err = msg_query(nlh, family_id_cb, &nl_family))) > > With the above change the tipc command runs fine. >
devlink is similarly broken: diff --git a/devlink/mnlg.c b/devlink/mnlg.c index 9e27de275518..b1e1b0ab32f6 100644 --- a/devlink/mnlg.c +++ b/devlink/mnlg.c @@ -163,7 +163,7 @@ int mnlg_socket_group_add(struct mnlg_socket *nlg, const char *group_name) nlh = __mnlg_msg_prepare(nlg, CTRL_CMD_GETFAMILY, NLM_F_REQUEST | NLM_F_ACK, GENL_ID_CTRL, 1); - mnl_attr_put_u32(nlh, CTRL_ATTR_FAMILY_ID, nlg->id); + mnl_attr_put_u16(nlh, CTRL_ATTR_FAMILY_ID, nlg->id); err = mnlg_socket_send(nlg, nlh); if (err < 0)