Lines Matching full:link
7 * @ingroup link
9 * sit link module
12 * \b Link Type Name: "sit"
25 #include <netlink/route/link/sit.h>
26 #include <netlink-private/route/link/api.h>
50 uint32_t link; member
77 static int sit_alloc(struct rtnl_link *link) in sit_alloc() argument
81 if (link->l_info) in sit_alloc()
82 memset(link->l_info, 0, sizeof(*sit)); in sit_alloc()
88 link->l_info = sit; in sit_alloc()
94 static int sit_parse(struct rtnl_link *link, struct nlattr *data, in sit_parse() argument
101 NL_DBG(3, "Parsing SIT link info\n"); in sit_parse()
107 err = sit_alloc(link); in sit_parse()
111 sit = link->l_info; in sit_parse()
114 sit->link = nla_get_u32(tb[IFLA_IPTUN_LINK]); in sit_parse()
185 static int sit_put_attrs(struct nl_msg *msg, struct rtnl_link *link) in sit_put_attrs() argument
187 struct sit_info *sit = link->l_info; in sit_put_attrs()
195 NLA_PUT_U32(msg, IFLA_IPTUN_LINK, sit->link); in sit_put_attrs()
240 static void sit_free(struct rtnl_link *link) in sit_free() argument
242 struct sit_info *sit = link->l_info; in sit_free()
245 link->l_info = NULL; in sit_free()
248 static void sit_dump_line(struct rtnl_link *link, struct nl_dump_params *p) in sit_dump_line() argument
250 nl_dump(p, "sit : %s", link->l_name); in sit_dump_line()
253 static void sit_dump_details(struct rtnl_link *link, struct nl_dump_params *p) in sit_dump_details() argument
255 struct sit_info *sit = link->l_info; in sit_dump_details()
260 nl_dump(p, " link "); in sit_dump_details()
263 parent = link_lookup(link->ce_cache, sit->link); in sit_dump_details()
270 nl_dump_line(p, "%u\n", sit->link); in sit_dump_details()
375 #define IS_SIT_LINK_ASSERT(link, sit) \ argument
378 const struct rtnl_link *_link = (link); \
380 APPBUG("Link is not a sit link. set type \"sit\" first."); \
388 struct rtnl_link *link; in rtnl_link_sit_alloc() local
391 link = rtnl_link_alloc(); in rtnl_link_sit_alloc()
392 if (!link) in rtnl_link_sit_alloc()
395 err = rtnl_link_set_type(link, "sit"); in rtnl_link_sit_alloc()
397 rtnl_link_put(link); in rtnl_link_sit_alloc()
401 return link; in rtnl_link_sit_alloc()
405 * Check if link is a SIT link
406 * @arg link Link object
408 * @return True if link is a SIT link, otherwise false is returned.
410 int rtnl_link_is_sit(struct rtnl_link *link) in rtnl_link_is_sit() argument
412 return link->l_info_ops && !strcmp(link->l_info_ops->io_name, "sit"); in rtnl_link_is_sit()
425 struct rtnl_link *link; in rtnl_link_sit_add() local
428 link = rtnl_link_sit_alloc(); in rtnl_link_sit_add()
429 if (!link) in rtnl_link_sit_add()
433 rtnl_link_set_name(link, name); in rtnl_link_sit_add()
435 err = rtnl_link_add(sk, link, NLM_F_CREATE); in rtnl_link_sit_add()
436 rtnl_link_put(link); in rtnl_link_sit_add()
443 * @arg link Link object
448 int rtnl_link_sit_set_link(struct rtnl_link *link, uint32_t index) in rtnl_link_sit_set_link() argument
450 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_link()
452 sit->link = index; in rtnl_link_sit_set_link()
460 * @arg link Link object
464 uint32_t rtnl_link_sit_get_link(struct rtnl_link *link) in rtnl_link_sit_get_link() argument
466 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_link()
468 return sit->link; in rtnl_link_sit_get_link()
473 * @arg link Link object
478 int rtnl_link_sit_set_local(struct rtnl_link *link, uint32_t addr) in rtnl_link_sit_set_local() argument
480 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_local()
490 * @arg link Link object
494 uint32_t rtnl_link_sit_get_local(struct rtnl_link *link) in rtnl_link_sit_get_local() argument
496 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_local()
503 * @arg link Link object
508 int rtnl_link_sit_set_remote(struct rtnl_link *link, uint32_t addr) in rtnl_link_sit_set_remote() argument
510 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_remote()
520 * @arg link Link object
524 uint32_t rtnl_link_sit_get_remote(struct rtnl_link *link) in rtnl_link_sit_get_remote() argument
526 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_remote()
533 * @arg link Link object
538 int rtnl_link_sit_set_ttl(struct rtnl_link *link, uint8_t ttl) in rtnl_link_sit_set_ttl() argument
540 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_ttl()
550 * @arg link Link object
554 uint8_t rtnl_link_sit_get_ttl(struct rtnl_link *link) in rtnl_link_sit_get_ttl() argument
556 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_ttl()
563 * @arg link Link object
568 int rtnl_link_sit_set_tos(struct rtnl_link *link, uint8_t tos) in rtnl_link_sit_set_tos() argument
570 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_tos()
580 * @arg link Link object
584 uint8_t rtnl_link_sit_get_tos(struct rtnl_link *link) in rtnl_link_sit_get_tos() argument
586 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_tos()
593 * @arg link Link object
598 int rtnl_link_sit_set_pmtudisc(struct rtnl_link *link, uint8_t pmtudisc) in rtnl_link_sit_set_pmtudisc() argument
600 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_pmtudisc()
610 * @arg link Link object
614 uint8_t rtnl_link_sit_get_pmtudisc(struct rtnl_link *link) in rtnl_link_sit_get_pmtudisc() argument
616 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_pmtudisc()
623 * @arg link Link object
628 int rtnl_link_sit_set_flags(struct rtnl_link *link, uint16_t flags) in rtnl_link_sit_set_flags() argument
630 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_flags()
640 * @arg link Link object
644 uint16_t rtnl_link_sit_get_flags(struct rtnl_link *link) in rtnl_link_sit_get_flags() argument
646 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_flags()
653 * @arg link Link object
658 int rtnl_link_sit_set_proto(struct rtnl_link *link, uint8_t proto) in rtnl_link_sit_set_proto() argument
660 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_proto()
670 * @arg link Link object
674 uint8_t rtnl_link_sit_get_proto(struct rtnl_link *link) in rtnl_link_sit_get_proto() argument
676 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_proto()
683 * @arg link Link object
688 int rtnl_link_sit_set_ip6rd_prefix(struct rtnl_link *link, const struct in6_addr *prefix) in rtnl_link_sit_set_ip6rd_prefix() argument
690 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_ip6rd_prefix()
699 * @arg link Link object
705 int rtnl_link_sit_get_ip6rd_prefix(const struct rtnl_link *link, struct in6_addr *prefix) in rtnl_link_sit_get_ip6rd_prefix() argument
707 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_ip6rd_prefix()
719 * @arg link Link object
724 int rtnl_link_sit_set_ip6rd_prefixlen(struct rtnl_link *link, uint16_t prefixlen) in rtnl_link_sit_set_ip6rd_prefixlen() argument
726 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_ip6rd_prefixlen()
735 * @arg link Link object
741 int rtnl_link_sit_get_ip6rd_prefixlen(struct rtnl_link *link, uint16_t *prefixlen) in rtnl_link_sit_get_ip6rd_prefixlen() argument
743 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_ip6rd_prefixlen()
755 * @arg link Link object
760 int rtnl_link_sit_set_ip6rd_relay_prefix(struct rtnl_link *link, uint32_t prefix) in rtnl_link_sit_set_ip6rd_relay_prefix() argument
762 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_ip6rd_relay_prefix()
771 * @arg link Link object
777 int rtnl_link_sit_get_ip6rd_relay_prefix(const struct rtnl_link *link, uint32_t *prefix) in rtnl_link_sit_get_ip6rd_relay_prefix() argument
779 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_ip6rd_relay_prefix()
791 * @arg link Link object
796 int rtnl_link_sit_set_ip6rd_relay_prefixlen(struct rtnl_link *link, uint16_t prefixlen) in rtnl_link_sit_set_ip6rd_relay_prefixlen() argument
798 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_ip6rd_relay_prefixlen()
807 * @arg link Link object
813 int rtnl_link_sit_get_ip6rd_relay_prefixlen(struct rtnl_link *link, uint16_t *prefixlen) in rtnl_link_sit_get_ip6rd_relay_prefixlen() argument
815 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_ip6rd_relay_prefixlen()
827 * @arg link Link object
832 int rtnl_link_sit_set_fwmark(struct rtnl_link *link, uint32_t fwmark) in rtnl_link_sit_set_fwmark() argument
834 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_fwmark()
844 * @arg link Link object
849 int rtnl_link_sit_get_fwmark(struct rtnl_link *link, uint32_t *fwmark) in rtnl_link_sit_get_fwmark() argument
851 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_fwmark()