https://github.com/thom311/libnl/blob/libnl3_2_25/lib/genl/family.c#L45.

    Positional arguments:
    c -- nl_object-derived class instance.

def family_free_data(c):
    """https://github.com/thom311/libnl/blob/libnl3_2_25/lib/genl/family.c#L45.

    Positional arguments:
    c -- nl_object-derived class instance.
    """
    family = c
    if not hasattr(family, 'gf_ops'):
        setattr(family, 'gf_ops', nl_list_head(container_of=family))
    if not hasattr(family, 'gf_mc_grps'):
        setattr(family, 'gf_mc_grps', nl_list_head(container_of=family))
    ops = tmp = genl_family_op()
    grp = t_grp = genl_family_grp()
    if family is None:
        return
    for ops in nl_list_for_each_entry_safe(ops, tmp, family.gf_ops, 'o_list'):
        nl_list_del(ops.o_list)
    for grp in nl_list_for_each_entry_safe(grp, t_grp, family.gf_mc_grps, 'list_'):
        nl_list_del(grp.list_)