42 #include <netlink-local.h>
43 #include <netlink/netlink.h>
44 #include <netlink/utils.h>
45 #include <netlink/route/link.h>
46 #include <netlink/route/link/api.h>
48 static NL_LIST_HEAD(info_ops);
54 nl_list_for_each_entry(ops, &info_ops, io_list)
55 if (!strcmp(ops->
io_name, name))
78 if ((ops = __rtnl_link_info_ops_lookup(name)))
111 if (__rtnl_link_info_ops_lookup(ops->
io_name))
114 NL_DBG(1,
"Registered link info operations %s\n", ops->
io_name);
116 nl_list_add_tail(&ops->io_list, &info_ops);
138 nl_list_for_each_entry(t, &info_ops, io_list) {
143 nl_list_del(&t->io_list);
145 NL_DBG(1,
"Unregistered link info operations %s\n",
152 return -NLE_OPNOTSUPP;
174 if (family == AF_UNSPEC || family >= AF_MAX)
180 return af_ops[family];
217 if (!link->l_af_data[family]) {
221 link->l_af_data[family] = ops->
ao_alloc(link);
222 if (!link->l_af_data[family])
226 return link->l_af_data[family];
274 NL_DBG(1,
"Registered link address family operations %u\n",
300 return -NLE_OBJ_NOTFOUND;
307 NL_DBG(1,
"Unregistered link address family operations %u\n",