• Home
  • Raw
  • Download

Lines Matching full:link

4  * @ingroup link
6 * ip6vti link module
9 * \b Link Type Name: "vti6"
25 #include <netlink/route/link/ip6vti.h>
28 #include "link-api.h"
39 uint32_t link; member
57 static int ip6vti_alloc(struct rtnl_link *link) in ip6vti_alloc() argument
61 if (link->l_info) in ip6vti_alloc()
62 memset(link->l_info, 0, sizeof(*ip6vti)); in ip6vti_alloc()
68 link->l_info = ip6vti; in ip6vti_alloc()
74 static int ip6vti_parse(struct rtnl_link *link, struct nlattr *data, in ip6vti_parse() argument
81 NL_DBG(3, "Parsing IP6VTI link info\n"); in ip6vti_parse()
87 err = ip6vti_alloc(link); in ip6vti_parse()
91 ip6vti = link->l_info; in ip6vti_parse()
94 ip6vti->link = nla_get_u32(tb[IFLA_VTI_LINK]); in ip6vti_parse()
129 static int ip6vti_put_attrs(struct nl_msg *msg, struct rtnl_link *link) in ip6vti_put_attrs() argument
131 struct ip6vti_info *ip6vti = link->l_info; in ip6vti_put_attrs()
139 NLA_PUT_U32(msg, IFLA_VTI_LINK, ip6vti->link); in ip6vti_put_attrs()
163 static void ip6vti_free(struct rtnl_link *link) in ip6vti_free() argument
165 struct ip6vti_info *ip6vti = link->l_info; in ip6vti_free()
168 link->l_info = NULL; in ip6vti_free()
171 static void ip6vti_dump_line(struct rtnl_link *link, struct nl_dump_params *p) in ip6vti_dump_line() argument
173 nl_dump(p, "ip6vti : %s", link->l_name); in ip6vti_dump_line()
176 static void ip6vti_dump_details(struct rtnl_link *link, struct nl_dump_params *p) in ip6vti_dump_details() argument
178 struct ip6vti_info *ip6vti = link->l_info; in ip6vti_dump_details()
183 nl_dump(p, " link "); in ip6vti_dump_details()
184 name = rtnl_link_get_name(link); in ip6vti_dump_details()
188 nl_dump_line(p, "%u\n", ip6vti->link); in ip6vti_dump_details()
253 #define IS_IP6VTI_LINK_ASSERT(link) \ argument
254 if ((link)->l_info_ops != &ip6vti_info_ops) { \
255 APPBUG("Link is not a ip6vti link. set type \"vti6\" first."); \
265 struct rtnl_link *link; in rtnl_link_ip6vti_alloc() local
268 link = rtnl_link_alloc(); in rtnl_link_ip6vti_alloc()
269 if (!link) in rtnl_link_ip6vti_alloc()
272 err = rtnl_link_set_type(link, "vti6"); in rtnl_link_ip6vti_alloc()
274 rtnl_link_put(link); in rtnl_link_ip6vti_alloc()
278 return link; in rtnl_link_ip6vti_alloc()
282 * Check if link is a IP6VTI link
283 * @arg link Link object
285 * @return True if link is a IP6VTI link, otherwise 0 is returned.
287 int rtnl_link_is_ip6vti(struct rtnl_link *link) in rtnl_link_is_ip6vti() argument
289 return link->l_info_ops && !strcmp(link->l_info_ops->io_name, "vti6"); in rtnl_link_is_ip6vti()
301 struct rtnl_link *link; in rtnl_link_ip6vti_add() local
304 link = rtnl_link_ip6vti_alloc(); in rtnl_link_ip6vti_add()
305 if (!link) in rtnl_link_ip6vti_add()
309 rtnl_link_set_name(link, name); in rtnl_link_ip6vti_add()
311 err = rtnl_link_add(sk, link, NLM_F_CREATE); in rtnl_link_ip6vti_add()
312 rtnl_link_put(link); in rtnl_link_ip6vti_add()
318 * @arg link Link object
323 int rtnl_link_ip6vti_set_link(struct rtnl_link *link, uint32_t index) in rtnl_link_ip6vti_set_link() argument
325 struct ip6vti_info *ip6vti = link->l_info; in rtnl_link_ip6vti_set_link()
327 IS_IP6VTI_LINK_ASSERT(link); in rtnl_link_ip6vti_set_link()
329 ip6vti->link = index; in rtnl_link_ip6vti_set_link()
337 * @arg link Link object
342 int rtnl_link_ip6vti_get_link(struct rtnl_link *link, uint32_t *index) in rtnl_link_ip6vti_get_link() argument
344 struct ip6vti_info *ip6vti = link->l_info; in rtnl_link_ip6vti_get_link()
346 IS_IP6VTI_LINK_ASSERT(link); in rtnl_link_ip6vti_get_link()
350 *index = ip6vti->link; in rtnl_link_ip6vti_get_link()
357 * @arg link Link object
362 int rtnl_link_ip6vti_set_ikey(struct rtnl_link *link, uint32_t ikey) in rtnl_link_ip6vti_set_ikey() argument
364 struct ip6vti_info *ip6vti = link->l_info; in rtnl_link_ip6vti_set_ikey()
366 IS_IP6VTI_LINK_ASSERT(link); in rtnl_link_ip6vti_set_ikey()
376 * @arg link Link object
381 int rtnl_link_ip6vti_get_ikey(struct rtnl_link *link, uint32_t *ikey) in rtnl_link_ip6vti_get_ikey() argument
383 struct ip6vti_info *ip6vti = link->l_info; in rtnl_link_ip6vti_get_ikey()
385 IS_IP6VTI_LINK_ASSERT(link); in rtnl_link_ip6vti_get_ikey()
396 * @arg link Link object
401 int rtnl_link_ip6vti_set_okey(struct rtnl_link *link, uint32_t okey) in rtnl_link_ip6vti_set_okey() argument
403 struct ip6vti_info *ip6vti = link->l_info; in rtnl_link_ip6vti_set_okey()
405 IS_IP6VTI_LINK_ASSERT(link); in rtnl_link_ip6vti_set_okey()
415 * @arg link Link object
420 int rtnl_link_ip6vti_get_okey(struct rtnl_link *link, uint32_t *okey) in rtnl_link_ip6vti_get_okey() argument
422 struct ip6vti_info *ip6vti = link->l_info; in rtnl_link_ip6vti_get_okey()
424 IS_IP6VTI_LINK_ASSERT(link); in rtnl_link_ip6vti_get_okey()
435 * @arg link Link object
440 int rtnl_link_ip6vti_set_local(struct rtnl_link *link, struct in6_addr *local) in rtnl_link_ip6vti_set_local() argument
442 struct ip6vti_info *ip6vti = link->l_info; in rtnl_link_ip6vti_set_local()
444 IS_IP6VTI_LINK_ASSERT(link); in rtnl_link_ip6vti_set_local()
454 * @arg link Link object
459 int rtnl_link_ip6vti_get_local(struct rtnl_link *link, struct in6_addr *local) in rtnl_link_ip6vti_get_local() argument
461 struct ip6vti_info *ip6vti = link->l_info; in rtnl_link_ip6vti_get_local()
463 IS_IP6VTI_LINK_ASSERT(link); in rtnl_link_ip6vti_get_local()
474 * @arg link Link object
479 int rtnl_link_ip6vti_set_remote(struct rtnl_link *link, struct in6_addr *remote) in rtnl_link_ip6vti_set_remote() argument
481 struct ip6vti_info *ip6vti = link->l_info; in rtnl_link_ip6vti_set_remote()
483 IS_IP6VTI_LINK_ASSERT(link); in rtnl_link_ip6vti_set_remote()
493 * @arg link Link object
498 int rtnl_link_ip6vti_get_remote(struct rtnl_link *link, struct in6_addr *remote) in rtnl_link_ip6vti_get_remote() argument
500 struct ip6vti_info *ip6vti = link->l_info; in rtnl_link_ip6vti_get_remote()
502 IS_IP6VTI_LINK_ASSERT(link); in rtnl_link_ip6vti_get_remote()
513 * @arg link Link object
518 int rtnl_link_ip6vti_set_fwmark(struct rtnl_link *link, uint32_t fwmark) in rtnl_link_ip6vti_set_fwmark() argument
520 struct ip6vti_info *ip6vti = link->l_info; in rtnl_link_ip6vti_set_fwmark()
522 IS_IP6VTI_LINK_ASSERT(link); in rtnl_link_ip6vti_set_fwmark()
532 * @arg link Link object
537 int rtnl_link_ip6vti_get_fwmark(struct rtnl_link *link, uint32_t *fwmark) in rtnl_link_ip6vti_get_fwmark() argument
539 struct ip6vti_info *ip6vti = link->l_info; in rtnl_link_ip6vti_get_fwmark()
541 IS_IP6VTI_LINK_ASSERT(link); in rtnl_link_ip6vti_get_fwmark()