• Home
  • Raw
  • Download

Lines Matching full:link

4  * @ingroup link
6 * ip6gre link module
9 * \b Link Type Name: "ip6gre"
25 #include <netlink/route/link/ip6gre.h>
28 #include "link-api.h"
51 uint32_t link; member
75 static int ip6gre_alloc(struct rtnl_link *link) in ip6gre_alloc() argument
79 if (link->l_info) in ip6gre_alloc()
80 memset(link->l_info, 0, sizeof(*ip6gre)); in ip6gre_alloc()
86 link->l_info = ip6gre; in ip6gre_alloc()
92 static int ip6gre_parse(struct rtnl_link *link, struct nlattr *data, in ip6gre_parse() argument
99 NL_DBG(3, "Parsing IP6GRE link info\n"); in ip6gre_parse()
105 err = ip6gre_alloc(link); in ip6gre_parse()
109 ip6gre = link->l_info; in ip6gre_parse()
112 ip6gre->link = nla_get_u32(tb[IFLA_GRE_LINK]); in ip6gre_parse()
177 static int ip6gre_put_attrs(struct nl_msg *msg, struct rtnl_link *link) in ip6gre_put_attrs() argument
179 struct ip6gre_info *ip6gre = link->l_info; in ip6gre_put_attrs()
187 NLA_PUT_U32(msg, IFLA_GRE_LINK, ip6gre->link); in ip6gre_put_attrs()
229 static void ip6gre_free(struct rtnl_link *link) in ip6gre_free() argument
231 struct ip6gre_info *ip6gre = link->l_info; in ip6gre_free()
234 link->l_info = NULL; in ip6gre_free()
237 static void ip6gre_dump_line(struct rtnl_link *link, struct nl_dump_params *p) in ip6gre_dump_line() argument
239 nl_dump(p, "ip6gre : %s", link->l_name); in ip6gre_dump_line()
242 static void ip6gre_dump_details(struct rtnl_link *link, struct nl_dump_params *p) in ip6gre_dump_details() argument
244 struct ip6gre_info *ip6gre = link->l_info; in ip6gre_dump_details()
249 nl_dump(p, " link "); in ip6gre_dump_details()
250 name = rtnl_link_get_name(link); in ip6gre_dump_details()
254 nl_dump_line(p, "%u\n", ip6gre->link); in ip6gre_dump_details()
349 #define IS_IP6GRE_LINK_ASSERT(link) \ argument
350 if ((link)->l_info_ops != &ip6gre_info_ops) { \
351 APPBUG("Link is not a ip6gre link. set type \"ip6gre\" first.");\
355 #define HAS_IP6GRE_ATTR_ASSERT(link,attr) \ argument
356 if (!((link)->ip6gre_mask & (attr))) \
361 struct rtnl_link *link; in rtnl_link_ip6gre_alloc() local
364 link = rtnl_link_alloc(); in rtnl_link_ip6gre_alloc()
365 if (!link) in rtnl_link_ip6gre_alloc()
368 err = rtnl_link_set_type(link, "ip6gre"); in rtnl_link_ip6gre_alloc()
370 rtnl_link_put(link); in rtnl_link_ip6gre_alloc()
374 return link; in rtnl_link_ip6gre_alloc()
378 * Check if link is a IP6GRE link
379 * @arg link Link object
381 * @return True if link is a IP6GRE link, otherwise 0 is returned.
383 int rtnl_link_is_ip6gre(struct rtnl_link *link) in rtnl_link_is_ip6gre() argument
385 return link->l_info_ops && !strcmp(link->l_info_ops->io_name, "ip6gre"); in rtnl_link_is_ip6gre()
398 struct rtnl_link *link; in rtnl_link_ip6gre_add() local
401 link = rtnl_link_ip6gre_alloc(); in rtnl_link_ip6gre_add()
402 if (!link) in rtnl_link_ip6gre_add()
406 rtnl_link_set_name(link, name); in rtnl_link_ip6gre_add()
408 err = rtnl_link_add(sk, link, NLM_F_CREATE); in rtnl_link_ip6gre_add()
409 rtnl_link_put(link); in rtnl_link_ip6gre_add()
416 * @arg link Link object
421 int rtnl_link_ip6gre_set_link(struct rtnl_link *link, uint32_t index) in rtnl_link_ip6gre_set_link() argument
423 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_set_link()
425 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_set_link()
427 ip6gre->link = index; in rtnl_link_ip6gre_set_link()
435 * @arg link Link object
440 int rtnl_link_ip6gre_get_link(struct rtnl_link *link, uint32_t *index) in rtnl_link_ip6gre_get_link() argument
442 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_get_link()
444 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_get_link()
448 *index = ip6gre->link; in rtnl_link_ip6gre_get_link()
455 * @arg link Link object
460 int rtnl_link_ip6gre_set_iflags(struct rtnl_link *link, uint16_t iflags) in rtnl_link_ip6gre_set_iflags() argument
462 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_set_iflags()
464 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_set_iflags()
474 * @arg link Link object
479 int rtnl_link_ip6gre_get_iflags(struct rtnl_link *link, uint16_t *iflags) in rtnl_link_ip6gre_get_iflags() argument
481 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_get_iflags()
483 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_get_iflags()
494 * @arg link Link object
499 int rtnl_link_ip6gre_set_oflags(struct rtnl_link *link, uint16_t oflags) in rtnl_link_ip6gre_set_oflags() argument
501 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_set_oflags()
503 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_set_oflags()
513 * @arg link Link object
518 int rtnl_link_ip6gre_get_oflags(struct rtnl_link *link, uint16_t *oflags) in rtnl_link_ip6gre_get_oflags() argument
520 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_get_oflags()
522 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_get_oflags()
533 * @arg link Link object
538 int rtnl_link_ip6gre_set_ikey(struct rtnl_link *link, uint32_t ikey) in rtnl_link_ip6gre_set_ikey() argument
540 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_set_ikey()
542 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_set_ikey()
552 * @arg link Link object
557 int rtnl_link_ip6gre_get_ikey(struct rtnl_link *link, uint32_t *ikey) in rtnl_link_ip6gre_get_ikey() argument
559 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_get_ikey()
561 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_get_ikey()
572 * @arg link Link object
577 int rtnl_link_ip6gre_set_okey(struct rtnl_link *link, uint32_t okey) in rtnl_link_ip6gre_set_okey() argument
579 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_set_okey()
581 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_set_okey()
591 * @arg link Link object
596 int rtnl_link_ip6gre_get_okey(struct rtnl_link *link, uint32_t *okey) in rtnl_link_ip6gre_get_okey() argument
598 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_get_okey()
600 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_get_okey()
611 * @arg link Link object
616 int rtnl_link_ip6gre_set_local(struct rtnl_link *link, struct in6_addr *local) in rtnl_link_ip6gre_set_local() argument
618 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_set_local()
620 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_set_local()
630 * @arg link Link object
635 int rtnl_link_ip6gre_get_local(struct rtnl_link *link, struct in6_addr *local) in rtnl_link_ip6gre_get_local() argument
637 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_get_local()
639 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_get_local()
650 * @arg link Link object
655 int rtnl_link_ip6gre_set_remote(struct rtnl_link *link, struct in6_addr *remote) in rtnl_link_ip6gre_set_remote() argument
657 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_set_remote()
659 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_set_remote()
669 * @arg link Link object
674 int rtnl_link_ip6gre_get_remote(struct rtnl_link *link, struct in6_addr *remote) in rtnl_link_ip6gre_get_remote() argument
676 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_get_remote()
678 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_get_remote()
689 * @arg link Link object
694 int rtnl_link_ip6gre_set_ttl(struct rtnl_link *link, uint8_t ttl) in rtnl_link_ip6gre_set_ttl() argument
696 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_set_ttl()
698 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_set_ttl()
708 * @arg link Link object
713 int rtnl_link_ip6gre_get_ttl(struct rtnl_link *link, uint8_t *ttl) in rtnl_link_ip6gre_get_ttl() argument
715 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_get_ttl()
717 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_get_ttl()
728 * @arg link Link object
733 int rtnl_link_ip6gre_set_encaplimit(struct rtnl_link *link, uint8_t encaplimit) in rtnl_link_ip6gre_set_encaplimit() argument
735 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_set_encaplimit()
737 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_set_encaplimit()
747 * @arg link Link object
752 int rtnl_link_ip6gre_get_encaplimit(struct rtnl_link *link, uint8_t *encaplimit) in rtnl_link_ip6gre_get_encaplimit() argument
754 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_get_encaplimit()
756 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_get_encaplimit()
767 * @arg link Link object
772 int rtnl_link_ip6gre_set_flowinfo(struct rtnl_link *link, uint32_t flowinfo) in rtnl_link_ip6gre_set_flowinfo() argument
774 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_set_flowinfo()
776 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_set_flowinfo()
786 * @arg link Link object
791 int rtnl_link_ip6gre_get_flowinfo(struct rtnl_link *link, uint32_t *flowinfo) in rtnl_link_ip6gre_get_flowinfo() argument
793 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_get_flowinfo()
795 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_get_flowinfo()
806 * @arg link Link object
811 int rtnl_link_ip6gre_set_flags(struct rtnl_link *link, uint32_t flags) in rtnl_link_ip6gre_set_flags() argument
813 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_set_flags()
815 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_set_flags()
825 * @arg link Link object
830 int rtnl_link_ip6gre_get_flags(struct rtnl_link *link, uint32_t *flags) in rtnl_link_ip6gre_get_flags() argument
832 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_get_flags()
834 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_get_flags()
845 * @arg link Link object
850 int rtnl_link_ip6gre_set_fwmark(struct rtnl_link *link, uint32_t fwmark) in rtnl_link_ip6gre_set_fwmark() argument
852 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_set_fwmark()
854 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_set_fwmark()
864 * @arg link Link object
869 int rtnl_link_ip6gre_get_fwmark(struct rtnl_link *link, uint32_t *fwmark) in rtnl_link_ip6gre_get_fwmark() argument
871 struct ip6gre_info *ip6gre = link->l_info; in rtnl_link_ip6gre_get_fwmark()
873 IS_IP6GRE_LINK_ASSERT(link); in rtnl_link_ip6gre_get_fwmark()