def probe_response(msg, arg):
tb = dict((i, None) for i in range(CTRL_ATTR_MAX + <NUM_LIT:1>))<EOL>nlh = nlmsg_hdr(msg)<EOL>ret = arg<EOL>if genlmsg_parse(nlh, <NUM_LIT:0>, tb, CTRL_ATTR_MAX, ctrl_policy):<EOL><INDENT>return NL_SKIP<EOL><DEDENT>if tb[CTRL_ATTR_FAMILY_ID]:<EOL><INDENT>genl_family_set_id(ret, nla_get_u16(tb[CTRL_ATTR_FAMILY_ID]))<EOL><DEDENT>if tb[CTRL_ATTR_MCAST_GROUPS] and parse_mcast_grps(ret, tb[CTRL_ATTR_MCAST_GROUPS]) < <NUM_LIT:0>:<EOL><INDENT>return NL_SKIP<EOL><DEDENT>return NL_STOP<EOL>
Process responses from from the query sent by genl_ctrl_probe_by_name().

    https://github.com/thom311/libnl/blob/libnl3_2_25/lib/genl/ctrl.c#L203

    Process returned messages, filling out the missing information in the genl_family structure.

    Positional arguments:
    msg -- returned message (nl_msg class instance).
    arg -- genl_family class instance to fill out.

    Returns:
    Indicator to keep processing frames or not (NL_SKIP or NL_STOP).