Lines Matching full:link
7 * @ingroup link
9 * sit link module
12 * \b Link Type Name: "sit"
28 #include <netlink/route/link/sit.h>
31 #include "link-api.h"
54 uint32_t link; member
81 static int sit_alloc(struct rtnl_link *link) in sit_alloc() argument
85 if (link->l_info) in sit_alloc()
86 memset(link->l_info, 0, sizeof(*sit)); in sit_alloc()
92 link->l_info = sit; in sit_alloc()
98 static int sit_parse(struct rtnl_link *link, struct nlattr *data, in sit_parse() argument
105 NL_DBG(3, "Parsing SIT link info\n"); in sit_parse()
111 err = sit_alloc(link); in sit_parse()
115 sit = link->l_info; in sit_parse()
118 sit->link = nla_get_u32(tb[IFLA_IPTUN_LINK]); in sit_parse()
189 static int sit_put_attrs(struct nl_msg *msg, struct rtnl_link *link) in sit_put_attrs() argument
191 struct sit_info *sit = link->l_info; in sit_put_attrs()
199 NLA_PUT_U32(msg, IFLA_IPTUN_LINK, sit->link); in sit_put_attrs()
244 static void sit_free(struct rtnl_link *link) in sit_free() argument
246 struct sit_info *sit = link->l_info; in sit_free()
249 link->l_info = NULL; in sit_free()
252 static void sit_dump_line(struct rtnl_link *link, struct nl_dump_params *p) in sit_dump_line() argument
254 nl_dump(p, "sit : %s", link->l_name); in sit_dump_line()
257 static void sit_dump_details(struct rtnl_link *link, struct nl_dump_params *p) in sit_dump_details() argument
259 struct sit_info *sit = link->l_info; in sit_dump_details()
264 nl_dump(p, " link "); in sit_dump_details()
267 parent = link_lookup(link->ce_cache, sit->link); in sit_dump_details()
274 nl_dump_line(p, "%u\n", sit->link); in sit_dump_details()
379 #define IS_SIT_LINK_ASSERT(link, sit) \ argument
382 const struct rtnl_link *_link = (link); \
384 APPBUG("Link is not a sit link. set type \"sit\" first."); \
392 struct rtnl_link *link; in rtnl_link_sit_alloc() local
395 link = rtnl_link_alloc(); in rtnl_link_sit_alloc()
396 if (!link) in rtnl_link_sit_alloc()
399 err = rtnl_link_set_type(link, "sit"); in rtnl_link_sit_alloc()
401 rtnl_link_put(link); in rtnl_link_sit_alloc()
405 return link; in rtnl_link_sit_alloc()
409 * Check if link is a SIT link
410 * @arg link Link object
412 * @return True if link is a SIT link, otherwise false is returned.
414 int rtnl_link_is_sit(struct rtnl_link *link) in rtnl_link_is_sit() argument
416 return link->l_info_ops && !strcmp(link->l_info_ops->io_name, "sit"); in rtnl_link_is_sit()
429 struct rtnl_link *link; in rtnl_link_sit_add() local
432 link = rtnl_link_sit_alloc(); in rtnl_link_sit_add()
433 if (!link) in rtnl_link_sit_add()
437 rtnl_link_set_name(link, name); in rtnl_link_sit_add()
439 err = rtnl_link_add(sk, link, NLM_F_CREATE); in rtnl_link_sit_add()
440 rtnl_link_put(link); in rtnl_link_sit_add()
447 * @arg link Link object
452 int rtnl_link_sit_set_link(struct rtnl_link *link, uint32_t index) in rtnl_link_sit_set_link() argument
454 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_link()
456 sit->link = index; in rtnl_link_sit_set_link()
464 * @arg link Link object
468 uint32_t rtnl_link_sit_get_link(struct rtnl_link *link) in rtnl_link_sit_get_link() argument
470 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_link()
472 return sit->link; in rtnl_link_sit_get_link()
477 * @arg link Link object
482 int rtnl_link_sit_set_local(struct rtnl_link *link, uint32_t addr) in rtnl_link_sit_set_local() argument
484 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_local()
494 * @arg link Link object
498 uint32_t rtnl_link_sit_get_local(struct rtnl_link *link) in rtnl_link_sit_get_local() argument
500 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_local()
507 * @arg link Link object
512 int rtnl_link_sit_set_remote(struct rtnl_link *link, uint32_t addr) in rtnl_link_sit_set_remote() argument
514 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_remote()
524 * @arg link Link object
528 uint32_t rtnl_link_sit_get_remote(struct rtnl_link *link) in rtnl_link_sit_get_remote() argument
530 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_remote()
537 * @arg link Link object
542 int rtnl_link_sit_set_ttl(struct rtnl_link *link, uint8_t ttl) in rtnl_link_sit_set_ttl() argument
544 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_ttl()
554 * @arg link Link object
558 uint8_t rtnl_link_sit_get_ttl(struct rtnl_link *link) in rtnl_link_sit_get_ttl() argument
560 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_ttl()
567 * @arg link Link object
572 int rtnl_link_sit_set_tos(struct rtnl_link *link, uint8_t tos) in rtnl_link_sit_set_tos() argument
574 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_tos()
584 * @arg link Link object
588 uint8_t rtnl_link_sit_get_tos(struct rtnl_link *link) in rtnl_link_sit_get_tos() argument
590 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_tos()
597 * @arg link Link object
602 int rtnl_link_sit_set_pmtudisc(struct rtnl_link *link, uint8_t pmtudisc) in rtnl_link_sit_set_pmtudisc() argument
604 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_pmtudisc()
614 * @arg link Link object
618 uint8_t rtnl_link_sit_get_pmtudisc(struct rtnl_link *link) in rtnl_link_sit_get_pmtudisc() argument
620 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_pmtudisc()
627 * @arg link Link object
632 int rtnl_link_sit_set_flags(struct rtnl_link *link, uint16_t flags) in rtnl_link_sit_set_flags() argument
634 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_flags()
644 * @arg link Link object
648 uint16_t rtnl_link_sit_get_flags(struct rtnl_link *link) in rtnl_link_sit_get_flags() argument
650 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_flags()
657 * @arg link Link object
662 int rtnl_link_sit_set_proto(struct rtnl_link *link, uint8_t proto) in rtnl_link_sit_set_proto() argument
664 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_proto()
674 * @arg link Link object
678 uint8_t rtnl_link_sit_get_proto(struct rtnl_link *link) in rtnl_link_sit_get_proto() argument
680 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_proto()
687 * @arg link Link object
692 int rtnl_link_sit_set_ip6rd_prefix(struct rtnl_link *link, const struct in6_addr *prefix) in rtnl_link_sit_set_ip6rd_prefix() argument
694 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_ip6rd_prefix()
703 * @arg link Link object
709 int rtnl_link_sit_get_ip6rd_prefix(const struct rtnl_link *link, struct in6_addr *prefix) in rtnl_link_sit_get_ip6rd_prefix() argument
711 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_ip6rd_prefix()
723 * @arg link Link object
728 int rtnl_link_sit_set_ip6rd_prefixlen(struct rtnl_link *link, uint16_t prefixlen) in rtnl_link_sit_set_ip6rd_prefixlen() argument
730 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_ip6rd_prefixlen()
739 * @arg link Link object
745 int rtnl_link_sit_get_ip6rd_prefixlen(struct rtnl_link *link, uint16_t *prefixlen) in rtnl_link_sit_get_ip6rd_prefixlen() argument
747 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_ip6rd_prefixlen()
759 * @arg link Link object
764 int rtnl_link_sit_set_ip6rd_relay_prefix(struct rtnl_link *link, uint32_t prefix) in rtnl_link_sit_set_ip6rd_relay_prefix() argument
766 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_ip6rd_relay_prefix()
775 * @arg link Link object
781 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
783 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_ip6rd_relay_prefix()
795 * @arg link Link object
800 int rtnl_link_sit_set_ip6rd_relay_prefixlen(struct rtnl_link *link, uint16_t prefixlen) in rtnl_link_sit_set_ip6rd_relay_prefixlen() argument
802 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_ip6rd_relay_prefixlen()
811 * @arg link Link object
817 int rtnl_link_sit_get_ip6rd_relay_prefixlen(struct rtnl_link *link, uint16_t *prefixlen) in rtnl_link_sit_get_ip6rd_relay_prefixlen() argument
819 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_ip6rd_relay_prefixlen()
831 * @arg link Link object
836 int rtnl_link_sit_set_fwmark(struct rtnl_link *link, uint32_t fwmark) in rtnl_link_sit_set_fwmark() argument
838 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_set_fwmark()
848 * @arg link Link object
853 int rtnl_link_sit_get_fwmark(struct rtnl_link *link, uint32_t *fwmark) in rtnl_link_sit_get_fwmark() argument
855 IS_SIT_LINK_ASSERT(link, sit); in rtnl_link_sit_get_fwmark()