• Home
  • Raw
  • Download

Lines Matching full:link

7  * @ingroup link
9 * ipgre link module
12 * \b Link Type Name: "ipgre"
28 #include <netlink/route/link/ipgre.h>
31 #include "link-api.h"
54 uint32_t link; member
75 static int ipgre_alloc(struct rtnl_link *link) in ipgre_alloc() argument
79 if (link->l_info) in ipgre_alloc()
80 memset(link->l_info, 0, sizeof(*ipgre)); in ipgre_alloc()
86 link->l_info = ipgre; in ipgre_alloc()
92 static int ipgre_parse(struct rtnl_link *link, struct nlattr *data, in ipgre_parse() argument
99 NL_DBG(3, "Parsing IPGRE link info\n"); in ipgre_parse()
105 err = ipgre_alloc(link); in ipgre_parse()
109 ipgre = link->l_info; in ipgre_parse()
112 ipgre->link = nla_get_u32(tb[IFLA_GRE_LINK]); in ipgre_parse()
172 static int ipgre_put_attrs(struct nl_msg *msg, struct rtnl_link *link) in ipgre_put_attrs() argument
174 struct ipgre_info *ipgre = link->l_info; in ipgre_put_attrs()
182 NLA_PUT_U32(msg, IFLA_GRE_LINK, ipgre->link); in ipgre_put_attrs()
221 static void ipgre_free(struct rtnl_link *link) in ipgre_free() argument
223 struct ipgre_info *ipgre = link->l_info; in ipgre_free()
226 link->l_info = NULL; in ipgre_free()
229 static void ipgre_dump_line(struct rtnl_link *link, struct nl_dump_params *p) in ipgre_dump_line() argument
231 nl_dump(p, "ipgre : %s", link->l_name); in ipgre_dump_line()
234 static void ipgre_dump_details(struct rtnl_link *link, struct nl_dump_params *p) in ipgre_dump_details() argument
236 struct ipgre_info *ipgre = link->l_info; in ipgre_dump_details()
241 nl_dump(p, " link "); in ipgre_dump_details()
244 parent = link_lookup(link->ce_cache, ipgre->link); in ipgre_dump_details()
251 nl_dump_line(p, "%u\n", ipgre->link); in ipgre_dump_details()
379 #define IS_IPGRE_LINK_ASSERT(link) \ argument
380 if ((link)->l_info_ops != &ipgre_info_ops && \
381 (link)->l_info_ops != &ipgretap_info_ops) { \
382 APPBUG("Link is not a ipgre link. set type \"gre/gretap\" first.");\
388 struct rtnl_link *link; in rtnl_link_ipgre_alloc() local
391 link = rtnl_link_alloc(); in rtnl_link_ipgre_alloc()
392 if (!link) in rtnl_link_ipgre_alloc()
395 err = rtnl_link_set_type(link, "gre"); in rtnl_link_ipgre_alloc()
397 rtnl_link_put(link); in rtnl_link_ipgre_alloc()
401 return link; in rtnl_link_ipgre_alloc()
405 * Check if link is a IPGRE link
406 * @arg link Link object
408 * @return True if link is a IPGRE link, otherwise 0 is returned.
410 int rtnl_link_is_ipgre(struct rtnl_link *link) in rtnl_link_is_ipgre() argument
412 return link->l_info_ops && !strcmp(link->l_info_ops->io_name, "gre"); in rtnl_link_is_ipgre()
425 struct rtnl_link *link; in rtnl_link_ipgre_add() local
428 link = rtnl_link_ipgre_alloc(); in rtnl_link_ipgre_add()
429 if (!link) in rtnl_link_ipgre_add()
433 rtnl_link_set_name(link, name); in rtnl_link_ipgre_add()
435 err = rtnl_link_add(sk, link, NLM_F_CREATE); in rtnl_link_ipgre_add()
436 rtnl_link_put(link); in rtnl_link_ipgre_add()
443 struct rtnl_link *link; in rtnl_link_ipgretap_alloc() local
446 link = rtnl_link_alloc(); in rtnl_link_ipgretap_alloc()
447 if (!link) in rtnl_link_ipgretap_alloc()
450 err = rtnl_link_set_type(link, "gretap"); in rtnl_link_ipgretap_alloc()
452 rtnl_link_put(link); in rtnl_link_ipgretap_alloc()
456 return link; in rtnl_link_ipgretap_alloc()
460 * Check if link is a IPGRETAP link
461 * @arg link Link object
463 * @return True if link is a IPGRETAP link, otherwise 0 is returned.
465 int rtnl_link_is_ipgretap(struct rtnl_link *link) in rtnl_link_is_ipgretap() argument
467 return link->l_info_ops && !strcmp(link->l_info_ops->io_name, "gretap"); in rtnl_link_is_ipgretap()
479 struct rtnl_link *link; in rtnl_link_ipgretap_add() local
482 link = rtnl_link_ipgretap_alloc(); in rtnl_link_ipgretap_add()
483 if (!link) in rtnl_link_ipgretap_add()
487 rtnl_link_set_name(link, name); in rtnl_link_ipgretap_add()
489 err = rtnl_link_add(sk, link, NLM_F_CREATE); in rtnl_link_ipgretap_add()
490 rtnl_link_put(link); in rtnl_link_ipgretap_add()
497 * @arg link Link object
502 int rtnl_link_ipgre_set_link(struct rtnl_link *link, uint32_t index) in rtnl_link_ipgre_set_link() argument
504 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_link()
506 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_link()
508 ipgre->link = index; in rtnl_link_ipgre_set_link()
516 * @arg link Link object
520 uint32_t rtnl_link_ipgre_get_link(struct rtnl_link *link) in rtnl_link_ipgre_get_link() argument
522 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_link()
524 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_link()
526 return ipgre->link; in rtnl_link_ipgre_get_link()
531 * @arg link Link object
536 int rtnl_link_ipgre_set_iflags(struct rtnl_link *link, uint16_t iflags) in rtnl_link_ipgre_set_iflags() argument
538 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_iflags()
540 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_iflags()
550 * @arg link Link object
554 uint16_t rtnl_link_ipgre_get_iflags(struct rtnl_link *link) in rtnl_link_ipgre_get_iflags() argument
556 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_iflags()
558 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_iflags()
565 * @arg link Link object
570 int rtnl_link_ipgre_set_oflags(struct rtnl_link *link, uint16_t oflags) in rtnl_link_ipgre_set_oflags() argument
572 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_oflags()
574 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_oflags()
584 * @arg link Link object
588 uint16_t rtnl_link_ipgre_get_oflags(struct rtnl_link *link) in rtnl_link_ipgre_get_oflags() argument
590 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_oflags()
592 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_oflags()
599 * @arg link Link object
604 int rtnl_link_ipgre_set_ikey(struct rtnl_link *link, uint32_t ikey) in rtnl_link_ipgre_set_ikey() argument
606 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_ikey()
608 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_ikey()
618 * @arg link Link object
622 uint32_t rtnl_link_ipgre_get_ikey(struct rtnl_link *link) in rtnl_link_ipgre_get_ikey() argument
624 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_ikey()
626 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_ikey()
633 * @arg link Link object
638 int rtnl_link_ipgre_set_okey(struct rtnl_link *link, uint32_t okey) in rtnl_link_ipgre_set_okey() argument
640 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_okey()
642 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_okey()
652 * @arg link Link object
656 uint32_t rtnl_link_ipgre_get_okey(struct rtnl_link *link) in rtnl_link_ipgre_get_okey() argument
658 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_okey()
660 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_okey()
667 * @arg link Link object
672 int rtnl_link_ipgre_set_local(struct rtnl_link *link, uint32_t addr) in rtnl_link_ipgre_set_local() argument
674 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_local()
676 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_local()
686 * @arg link Link object
690 uint32_t rtnl_link_ipgre_get_local(struct rtnl_link *link) in rtnl_link_ipgre_get_local() argument
692 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_local()
694 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_local()
701 * @arg link Link object
706 int rtnl_link_ipgre_set_remote(struct rtnl_link *link, uint32_t remote) in rtnl_link_ipgre_set_remote() argument
708 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_remote()
710 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_remote()
720 * @arg link Link object
724 uint32_t rtnl_link_ipgre_get_remote(struct rtnl_link *link) in rtnl_link_ipgre_get_remote() argument
726 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_remote()
728 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_remote()
735 * @arg link Link object
740 int rtnl_link_ipgre_set_ttl(struct rtnl_link *link, uint8_t ttl) in rtnl_link_ipgre_set_ttl() argument
742 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_ttl()
744 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_ttl()
754 * @arg link Link object
758 uint8_t rtnl_link_ipgre_get_ttl(struct rtnl_link *link) in rtnl_link_ipgre_get_ttl() argument
760 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_ttl()
762 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_ttl()
769 * @arg link Link object
774 int rtnl_link_ipgre_set_tos(struct rtnl_link *link, uint8_t tos) in rtnl_link_ipgre_set_tos() argument
776 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_tos()
778 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_tos()
788 * @arg link Link object
792 uint8_t rtnl_link_ipgre_get_tos(struct rtnl_link *link) in rtnl_link_ipgre_get_tos() argument
794 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_tos()
796 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_tos()
803 * @arg link Link object
808 int rtnl_link_ipgre_set_pmtudisc(struct rtnl_link *link, uint8_t pmtudisc) in rtnl_link_ipgre_set_pmtudisc() argument
810 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_pmtudisc()
812 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_pmtudisc()
822 * @arg link Link object
826 uint8_t rtnl_link_ipgre_get_pmtudisc(struct rtnl_link *link) in rtnl_link_ipgre_get_pmtudisc() argument
828 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_pmtudisc()
830 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_pmtudisc()
837 uint8_t rtnl_link_get_pmtudisc(struct rtnl_link *link);
839 uint8_t rtnl_link_get_pmtudisc(struct rtnl_link *link) in rtnl_link_get_pmtudisc() argument
843 return rtnl_link_ipgre_get_pmtudisc (link); in rtnl_link_get_pmtudisc()
848 * @arg link Link object
853 int rtnl_link_ipgre_set_fwmark(struct rtnl_link *link, uint32_t fwmark) in rtnl_link_ipgre_set_fwmark() argument
855 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_set_fwmark()
857 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_set_fwmark()
867 * @arg link Link object
872 int rtnl_link_ipgre_get_fwmark(struct rtnl_link *link, uint32_t *fwmark) in rtnl_link_ipgre_get_fwmark() argument
874 struct ipgre_info *ipgre = link->l_info; in rtnl_link_ipgre_get_fwmark()
876 IS_IPGRE_LINK_ASSERT(link); in rtnl_link_ipgre_get_fwmark()