Lines Matching full:link
7 * @ingroup link
9 * ipip link module
12 * \b Link Type Name: "ipip"
25 #include <netlink/route/link/ipip.h>
26 #include <netlink-private/route/link/api.h>
42 uint32_t link; member
59 static int ipip_alloc(struct rtnl_link *link) in ipip_alloc() argument
63 if (link->l_info) in ipip_alloc()
64 memset(link->l_info, 0, sizeof(*ipip)); in ipip_alloc()
70 link->l_info = ipip; in ipip_alloc()
76 static int ipip_parse(struct rtnl_link *link, struct nlattr *data, in ipip_parse() argument
83 NL_DBG(3, "Parsing IPIP link info\n"); in ipip_parse()
89 err = ipip_alloc(link); in ipip_parse()
93 ipip = link->l_info; in ipip_parse()
96 ipip->link = nla_get_u32(tb[IFLA_IPTUN_LINK]); in ipip_parse()
136 static int ipip_put_attrs(struct nl_msg *msg, struct rtnl_link *link) in ipip_put_attrs() argument
138 struct ipip_info *ipip = link->l_info; in ipip_put_attrs()
146 NLA_PUT_U32(msg, IFLA_IPTUN_LINK, ipip->link); in ipip_put_attrs()
172 static void ipip_free(struct rtnl_link *link) in ipip_free() argument
174 struct ipip_info *ipip = link->l_info; in ipip_free()
177 link->l_info = NULL; in ipip_free()
180 static void ipip_dump_line(struct rtnl_link *link, struct nl_dump_params *p) in ipip_dump_line() argument
182 nl_dump(p, "ipip : %s", link->l_name); in ipip_dump_line()
185 static void ipip_dump_details(struct rtnl_link *link, struct nl_dump_params *p) in ipip_dump_details() argument
187 struct ipip_info *ipip = link->l_info; in ipip_dump_details()
192 nl_dump(p, " link "); in ipip_dump_details()
195 parent = link_lookup(link->ce_cache, ipip->link); in ipip_dump_details()
202 nl_dump_line(p, "%u\n", ipip->link); in ipip_dump_details()
276 #define IS_IPIP_LINK_ASSERT(link) \ argument
277 if ((link)->l_info_ops != &ipip_info_ops) { \
278 APPBUG("Link is not a ipip link. set type \"ipip\" first."); \
284 struct rtnl_link *link; in rtnl_link_ipip_alloc() local
287 link = rtnl_link_alloc(); in rtnl_link_ipip_alloc()
288 if (!link) in rtnl_link_ipip_alloc()
291 err = rtnl_link_set_type(link, "ipip"); in rtnl_link_ipip_alloc()
293 rtnl_link_put(link); in rtnl_link_ipip_alloc()
297 return link; in rtnl_link_ipip_alloc()
301 * Check if link is a IPIP link
302 * @arg link Link object
304 * @return True if link is a IPIP link, otherwise false is returned.
306 int rtnl_link_is_ipip(struct rtnl_link *link) in rtnl_link_is_ipip() argument
308 return link->l_info_ops && !strcmp(link->l_info_ops->io_name, "ipip"); in rtnl_link_is_ipip()
321 struct rtnl_link *link; in rtnl_link_ipip_add() local
324 link = rtnl_link_ipip_alloc(); in rtnl_link_ipip_add()
325 if (!link) in rtnl_link_ipip_add()
329 rtnl_link_set_name(link, name); in rtnl_link_ipip_add()
331 err = rtnl_link_add(sk, link, NLM_F_CREATE); in rtnl_link_ipip_add()
332 rtnl_link_put(link); in rtnl_link_ipip_add()
339 * @arg link Link object
344 int rtnl_link_ipip_set_link(struct rtnl_link *link, uint32_t index) in rtnl_link_ipip_set_link() argument
346 struct ipip_info *ipip = link->l_info; in rtnl_link_ipip_set_link()
348 IS_IPIP_LINK_ASSERT(link); in rtnl_link_ipip_set_link()
350 ipip->link = index; in rtnl_link_ipip_set_link()
358 * @arg link Link object
362 uint32_t rtnl_link_ipip_get_link(struct rtnl_link *link) in rtnl_link_ipip_get_link() argument
364 struct ipip_info *ipip = link->l_info; in rtnl_link_ipip_get_link()
366 IS_IPIP_LINK_ASSERT(link); in rtnl_link_ipip_get_link()
368 return ipip->link; in rtnl_link_ipip_get_link()
373 * @arg link Link object
378 int rtnl_link_ipip_set_local(struct rtnl_link *link, uint32_t addr) in rtnl_link_ipip_set_local() argument
380 struct ipip_info *ipip = link->l_info; in rtnl_link_ipip_set_local()
382 IS_IPIP_LINK_ASSERT(link); in rtnl_link_ipip_set_local()
392 * @arg link Link object
396 uint32_t rtnl_link_ipip_get_local(struct rtnl_link *link) in rtnl_link_ipip_get_local() argument
398 struct ipip_info *ipip = link->l_info; in rtnl_link_ipip_get_local()
400 IS_IPIP_LINK_ASSERT(link); in rtnl_link_ipip_get_local()
407 * @arg link Link object
412 int rtnl_link_ipip_set_remote(struct rtnl_link *link, uint32_t addr) in rtnl_link_ipip_set_remote() argument
414 struct ipip_info *ipip = link->l_info; in rtnl_link_ipip_set_remote()
416 IS_IPIP_LINK_ASSERT(link); in rtnl_link_ipip_set_remote()
426 * @arg link Link object
430 uint32_t rtnl_link_ipip_get_remote(struct rtnl_link *link) in rtnl_link_ipip_get_remote() argument
432 struct ipip_info *ipip = link->l_info; in rtnl_link_ipip_get_remote()
434 IS_IPIP_LINK_ASSERT(link); in rtnl_link_ipip_get_remote()
441 * @arg link Link object
446 int rtnl_link_ipip_set_ttl(struct rtnl_link *link, uint8_t ttl) in rtnl_link_ipip_set_ttl() argument
448 struct ipip_info *ipip = link->l_info; in rtnl_link_ipip_set_ttl()
450 IS_IPIP_LINK_ASSERT(link); in rtnl_link_ipip_set_ttl()
460 * @arg link Link object
464 uint8_t rtnl_link_ipip_get_ttl(struct rtnl_link *link) in rtnl_link_ipip_get_ttl() argument
466 struct ipip_info *ipip = link->l_info; in rtnl_link_ipip_get_ttl()
468 IS_IPIP_LINK_ASSERT(link); in rtnl_link_ipip_get_ttl()
475 * @arg link Link object
480 int rtnl_link_ipip_set_tos(struct rtnl_link *link, uint8_t tos) in rtnl_link_ipip_set_tos() argument
482 struct ipip_info *ipip = link->l_info; in rtnl_link_ipip_set_tos()
484 IS_IPIP_LINK_ASSERT(link); in rtnl_link_ipip_set_tos()
494 * @arg link Link object
498 uint8_t rtnl_link_ipip_get_tos(struct rtnl_link *link) in rtnl_link_ipip_get_tos() argument
500 struct ipip_info *ipip = link->l_info; in rtnl_link_ipip_get_tos()
502 IS_IPIP_LINK_ASSERT(link); in rtnl_link_ipip_get_tos()
509 * @arg link Link object
514 int rtnl_link_ipip_set_pmtudisc(struct rtnl_link *link, uint8_t pmtudisc) in rtnl_link_ipip_set_pmtudisc() argument
516 struct ipip_info *ipip = link->l_info; in rtnl_link_ipip_set_pmtudisc()
518 IS_IPIP_LINK_ASSERT(link); in rtnl_link_ipip_set_pmtudisc()
528 * @arg link Link object
532 uint8_t rtnl_link_ipip_get_pmtudisc(struct rtnl_link *link) in rtnl_link_ipip_get_pmtudisc() argument
534 struct ipip_info *ipip = link->l_info; in rtnl_link_ipip_get_pmtudisc()
536 IS_IPIP_LINK_ASSERT(link); in rtnl_link_ipip_get_pmtudisc()
543 * @arg link Link object
548 int rtnl_link_ipip_set_fwmark(struct rtnl_link *link, uint32_t fwmark) in rtnl_link_ipip_set_fwmark() argument
550 struct ipip_info *ipip = link->l_info; in rtnl_link_ipip_set_fwmark()
552 IS_IPIP_LINK_ASSERT(link); in rtnl_link_ipip_set_fwmark()
562 * @arg link Link object
567 int rtnl_link_ipip_get_fwmark(struct rtnl_link *link, uint32_t *fwmark) in rtnl_link_ipip_get_fwmark() argument
569 struct ipip_info *ipip = link->l_info; in rtnl_link_ipip_get_fwmark()
571 IS_IPIP_LINK_ASSERT(link); in rtnl_link_ipip_get_fwmark()