• Home
  • Raw
  • Download

Lines Matching full:link

7  * @ingroup link
9 * ipgre link module
12 * \b Link Type Name: "ipgre"
25 #include <netlink/route/link/ipgre.h>
26 #include <netlink-private/route/link/api.h>
50 uint32_t link; member
71 static int ipgre_alloc(struct rtnl_link *link) in ipgre_alloc() argument
75 if (link->l_info) in ipgre_alloc()
76 memset(link->l_info, 0, sizeof(*ipgre)); in ipgre_alloc()
82 link->l_info = ipgre; in ipgre_alloc()
88 static int ipgre_parse(struct rtnl_link *link, struct nlattr *data, in ipgre_parse() argument
95 NL_DBG(3, "Parsing IPGRE link info\n"); in ipgre_parse()
101 err = ipgre_alloc(link); in ipgre_parse()
105 ipgre = link->l_info; in ipgre_parse()
108 ipgre->link = nla_get_u32(tb[IFLA_GRE_LINK]); in ipgre_parse()
168 static int ipgre_put_attrs(struct nl_msg *msg, struct rtnl_link *link) in ipgre_put_attrs() argument
170 struct ipgre_info *ipgre = link->l_info; in ipgre_put_attrs()
178 NLA_PUT_U32(msg, IFLA_GRE_LINK, ipgre->link); in ipgre_put_attrs()
217 static void ipgre_free(struct rtnl_link *link) in ipgre_free() argument
219 struct ipgre_info *ipgre = link->l_info; in ipgre_free()
222 link->l_info = NULL; in ipgre_free()
225 static void ipgre_dump_line(struct rtnl_link *link, struct nl_dump_params *p) in ipgre_dump_line() argument
227 nl_dump(p, "ipgre : %s", link->l_name); in ipgre_dump_line()
230 static void ipgre_dump_details(struct rtnl_link *link, struct nl_dump_params *p) in ipgre_dump_details() argument
232 struct ipgre_info *ipgre = link->l_info; in ipgre_dump_details()
237 nl_dump(p, " link "); in ipgre_dump_details()
240 parent = link_lookup(link->ce_cache, ipgre->link); in ipgre_dump_details()
247 nl_dump_line(p, "%u\n", ipgre->link); in ipgre_dump_details()
375 #define IS_IPGRE_LINK_ASSERT(link) \ argument
376 if ((link)->l_info_ops != &ipgre_info_ops && \
377 (link)->l_info_ops != &ipgretap_info_ops) { \
378 APPBUG("Link is not a ipgre link. set type \"gre/gretap\" first.");\
384 struct rtnl_link *link; in rtnl_link_ipgre_alloc() local
387 link = rtnl_link_alloc(); in rtnl_link_ipgre_alloc()
388 if (!link) in rtnl_link_ipgre_alloc()
391 err = rtnl_link_set_type(link, "gre"); in rtnl_link_ipgre_alloc()
393 rtnl_link_put(link); in rtnl_link_ipgre_alloc()
397 return link; in rtnl_link_ipgre_alloc()
401 * Check if link is a IPGRE link
402 * @arg link Link object
404 * @return True if link is a IPGRE link, otherwise 0 is returned.
406 int rtnl_link_is_ipgre(struct rtnl_link *link) in rtnl_link_is_ipgre() argument
408 return link->l_info_ops && !strcmp(link->l_info_ops->io_name, "gre"); in rtnl_link_is_ipgre()
421 struct rtnl_link *link; in rtnl_link_ipgre_add() local
424 link = rtnl_link_ipgre_alloc(); in rtnl_link_ipgre_add()
425 if (!link) in rtnl_link_ipgre_add()
429 rtnl_link_set_name(link, name); in rtnl_link_ipgre_add()
431 err = rtnl_link_add(sk, link, NLM_F_CREATE); in rtnl_link_ipgre_add()
432 rtnl_link_put(link); in rtnl_link_ipgre_add()
439 struct rtnl_link *link; in rtnl_link_ipgretap_alloc() local
442 link = rtnl_link_alloc(); in rtnl_link_ipgretap_alloc()
443 if (!link) in rtnl_link_ipgretap_alloc()
446 err = rtnl_link_set_type(link, "gretap"); in rtnl_link_ipgretap_alloc()
448 rtnl_link_put(link); in rtnl_link_ipgretap_alloc()
452 return link; in rtnl_link_ipgretap_alloc()
456 * Check if link is a IPGRETAP link
457 * @arg link Link object
459 * @return True if link is a IPGRETAP link, otherwise 0 is returned.
461 int rtnl_link_is_ipgretap(struct rtnl_link *link) in rtnl_link_is_ipgretap() argument
463 return link->l_info_ops && !strcmp(link->l_info_ops->io_name, "gretap"); in rtnl_link_is_ipgretap()
475 struct rtnl_link *link; in rtnl_link_ipgretap_add() local
478 link = rtnl_link_ipgretap_alloc(); in rtnl_link_ipgretap_add()
479 if (!link) in rtnl_link_ipgretap_add()
483 rtnl_link_set_name(link, name); in rtnl_link_ipgretap_add()
485 err = rtnl_link_add(sk, link, NLM_F_CREATE); in rtnl_link_ipgretap_add()
486 rtnl_link_put(link); in rtnl_link_ipgretap_add()
493 * @arg link Link object
498 int rtnl_link_ipgre_set_link(struct rtnl_link *link, uint32_t index) in rtnl_link_ipgre_set_link() argument
500 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_link()
502 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_link()
504 ipgre->link = index; in rtnl_link_ipgre_set_link()
512 * @arg link Link object
516 uint32_t rtnl_link_ipgre_get_link(struct rtnl_link *link) in rtnl_link_ipgre_get_link() argument
518 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_link()
520 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_link()
522 return ipgre->link; in rtnl_link_ipgre_get_link()
527 * @arg link Link object
532 int rtnl_link_ipgre_set_iflags(struct rtnl_link *link, uint16_t iflags) in rtnl_link_ipgre_set_iflags() argument
534 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_iflags()
536 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_iflags()
546 * @arg link Link object
550 uint16_t rtnl_link_ipgre_get_iflags(struct rtnl_link *link) in rtnl_link_ipgre_get_iflags() argument
552 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_iflags()
554 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_iflags()
561 * @arg link Link object
566 int rtnl_link_ipgre_set_oflags(struct rtnl_link *link, uint16_t oflags) in rtnl_link_ipgre_set_oflags() argument
568 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_oflags()
570 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_oflags()
580 * @arg link Link object
584 uint16_t rtnl_link_ipgre_get_oflags(struct rtnl_link *link) in rtnl_link_ipgre_get_oflags() argument
586 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_oflags()
588 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_oflags()
595 * @arg link Link object
600 int rtnl_link_ipgre_set_ikey(struct rtnl_link *link, uint32_t ikey) in rtnl_link_ipgre_set_ikey() argument
602 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_ikey()
604 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_ikey()
614 * @arg link Link object
618 uint32_t rtnl_link_ipgre_get_ikey(struct rtnl_link *link) in rtnl_link_ipgre_get_ikey() argument
620 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_ikey()
622 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_ikey()
629 * @arg link Link object
634 int rtnl_link_ipgre_set_okey(struct rtnl_link *link, uint32_t okey) in rtnl_link_ipgre_set_okey() argument
636 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_okey()
638 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_okey()
648 * @arg link Link object
652 uint32_t rtnl_link_ipgre_get_okey(struct rtnl_link *link) in rtnl_link_ipgre_get_okey() argument
654 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_okey()
656 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_okey()
663 * @arg link Link object
668 int rtnl_link_ipgre_set_local(struct rtnl_link *link, uint32_t addr) in rtnl_link_ipgre_set_local() argument
670 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_local()
672 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_local()
682 * @arg link Link object
686 uint32_t rtnl_link_ipgre_get_local(struct rtnl_link *link) in rtnl_link_ipgre_get_local() argument
688 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_local()
690 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_local()
697 * @arg link Link object
702 int rtnl_link_ipgre_set_remote(struct rtnl_link *link, uint32_t remote) in rtnl_link_ipgre_set_remote() argument
704 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_remote()
706 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_remote()
716 * @arg link Link object
720 uint32_t rtnl_link_ipgre_get_remote(struct rtnl_link *link) in rtnl_link_ipgre_get_remote() argument
722 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_remote()
724 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_remote()
731 * @arg link Link object
736 int rtnl_link_ipgre_set_ttl(struct rtnl_link *link, uint8_t ttl) in rtnl_link_ipgre_set_ttl() argument
738 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_ttl()
740 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_ttl()
750 * @arg link Link object
754 uint8_t rtnl_link_ipgre_get_ttl(struct rtnl_link *link) in rtnl_link_ipgre_get_ttl() argument
756 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_ttl()
758 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_ttl()
765 * @arg link Link object
770 int rtnl_link_ipgre_set_tos(struct rtnl_link *link, uint8_t tos) in rtnl_link_ipgre_set_tos() argument
772 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_tos()
774 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_tos()
784 * @arg link Link object
788 uint8_t rtnl_link_ipgre_get_tos(struct rtnl_link *link) in rtnl_link_ipgre_get_tos() argument
790 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_tos()
792 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_tos()
799 * @arg link Link object
804 int rtnl_link_ipgre_set_pmtudisc(struct rtnl_link *link, uint8_t pmtudisc) in rtnl_link_ipgre_set_pmtudisc() argument
806 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_pmtudisc()
808 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_pmtudisc()
818 * @arg link Link object
822 uint8_t rtnl_link_ipgre_get_pmtudisc(struct rtnl_link *link) in rtnl_link_ipgre_get_pmtudisc() argument
824 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_pmtudisc()
826 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_pmtudisc()
833 uint8_t rtnl_link_get_pmtudisc(struct rtnl_link *link);
835 uint8_t rtnl_link_get_pmtudisc(struct rtnl_link *link) in rtnl_link_get_pmtudisc() argument
839 return rtnl_link_ipgre_get_pmtudisc (link); in rtnl_link_get_pmtudisc()
844 * @arg link Link object
849 int rtnl_link_ipgre_set_fwmark(struct rtnl_link *link, uint32_t fwmark) in rtnl_link_ipgre_set_fwmark() argument
851 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_fwmark()
853 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_fwmark()
863 * @arg link Link object
868 int rtnl_link_ipgre_get_fwmark(struct rtnl_link *link, uint32_t *fwmark) in rtnl_link_ipgre_get_fwmark() argument
870 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_fwmark()
872 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_fwmark()