Home | History | Annotate | Download | only in link

Lines Matching refs:link

2  * lib/route/link/ipgre.c        IPGRE Link Info
13 * @ingroup link
15 * ipgre link module
18 * \b Link Type Name: "ipgre"
31 #include <netlink-private/route/link/api.h>
54 uint32_t link;
73 static int ipgre_alloc(struct rtnl_link *link)
81 link->l_info = ipgre;
86 static int ipgre_parse(struct rtnl_link *link, struct nlattr *data,
93 NL_DBG(3, "Parsing IPGRE link info");
99 err = ipgre_alloc(link);
103 ipgre = link->l_info;
106 ipgre->link = nla_get_u32(tb[IFLA_GRE_LINK]);
161 static int ipgre_put_attrs(struct nl_msg *msg, struct rtnl_link *link)
163 struct ipgre_info *ipgre = link->l_info;
171 NLA_PUT_U32(msg, IFLA_GRE_LINK, ipgre->link);
207 static void ipgre_free(struct rtnl_link *link)
209 struct ipgre_info *ipgre = link->l_info;
212 link->l_info = NULL;
215 static void ipgre_dump_line(struct rtnl_link *link, struct nl_dump_params *p)
217 nl_dump(p, "ipgre : %s", link->l_name);
220 static void ipgre_dump_details(struct rtnl_link *link, struct nl_dump_params *p)
222 struct ipgre_info *ipgre = link->l_info;
226 nl_dump(p, " link ");
227 name = rtnl_link_get_name(link);
231 nl_dump_line(p, "%u\n", ipgre->link);
320 #define IS_IPGRE_LINK_ASSERT(link) \
321 if ((link)->l_info_ops != &ipgre_info_ops) { \
322 APPBUG("Link is not a ipgre link. set type \"gre\" first.");\
328 struct rtnl_link *link;
331 link = rtnl_link_alloc();
332 if (!link)
335 err = rtnl_link_set_type(link, "gre");
337 rtnl_link_put(link);
341 return link;
345 * Check if link is a IPGRE link
346 * @arg link Link object
348 * @return True if link is a IPGRE link, otherwise 0 is returned.
350 int rtnl_link_is_ipgre(struct rtnl_link *link)
352 return link->l_info_ops && !strcmp(link->l_info_ops->io_name, "gre");
364 struct rtnl_link *link;
367 link = rtnl_link_ipgre_alloc();
368 if (!link)
372 rtnl_link_set_name(link, name);
374 err = rtnl_link_add(sk, link, NLM_F_CREATE);
375 rtnl_link_put(link);
381 * @arg link Link object
386 int rtnl_link_ipgre_set_link(struct rtnl_link *link, uint32_t index)
388 struct ipgre_info *ipgre = link->l_info;
390 IS_IPGRE_LINK_ASSERT(link);
392 ipgre->link = index;
400 * @arg link Link object
404 uint32_t rtnl_link_ipgre_get_link(struct rtnl_link *link)
406 struct ipgre_info *ipgre = link->l_info;
408 IS_IPGRE_LINK_ASSERT(link);
410 return ipgre->link;
415 * @arg link Link object
420 int rtnl_link_ipgre_set_iflags(struct rtnl_link *link, uint16_t iflags)
422 struct ipgre_info *ipgre = link->l_info;
424 IS_IPGRE_LINK_ASSERT(link);
434 * @arg link Link object
438 uint16_t rtnl_link_ipgre_get_iflags(struct rtnl_link *link)
440 struct ipgre_info *ipgre = link->l_info;
442 IS_IPGRE_LINK_ASSERT(link);
449 * @arg link Link object
454 int rtnl_link_ipgre_set_oflags(struct rtnl_link *link, uint16_t oflags)
456 struct ipgre_info *ipgre = link->l_info;
458 IS_IPGRE_LINK_ASSERT(link);
468 * @arg link Link object
472 uint16_t rtnl_link_ipgre_get_oflags(struct rtnl_link *link)
474 struct ipgre_info *ipgre = link->l_info;
476 IS_IPGRE_LINK_ASSERT(link);
483 * @arg link Link object
488 int rtnl_link_ipgre_set_ikey(struct rtnl_link *link, uint32_t ikey)
490 struct ipgre_info *ipgre = link->l_info;
492 IS_IPGRE_LINK_ASSERT(link);
502 * @arg link Link object
506 uint32_t rtnl_link_ipgre_get_ikey(struct rtnl_link *link)
508 struct ipgre_info *ipgre = link->l_info;
510 IS_IPGRE_LINK_ASSERT(link);
517 * @arg link Link object
522 int rtnl_link_ipgre_set_okey(struct rtnl_link *link, uint32_t okey)
524 struct ipgre_info *ipgre = link->l_info;
526 IS_IPGRE_LINK_ASSERT(link);
536 * @arg link Link object
540 uint32_t rtnl_link_ipgre_get_okey(struct rtnl_link *link)
542 struct ipgre_info *ipgre = link->l_info;
544 IS_IPGRE_LINK_ASSERT(link);
551 * @arg link Link object
556 int rtnl_link_ipgre_set_local(struct rtnl_link *link, uint32_t addr)
558 struct ipgre_info *ipgre = link->l_info;
560 IS_IPGRE_LINK_ASSERT(link);
570 * @arg link Link object
574 uint32_t rtnl_link_ipgre_get_local(struct rtnl_link *link)
576 struct ipgre_info *ipgre = link->l_info;
578 IS_IPGRE_LINK_ASSERT(link);
585 * @arg link Link object
590 int rtnl_link_ipgre_set_remote(struct rtnl_link *link, uint32_t remote)
592 struct ipgre_info *ipgre = link->l_info;
594 IS_IPGRE_LINK_ASSERT(link);
604 * @arg link Link object
608 uint32_t rtnl_link_ipgre_get_remote(struct rtnl_link *link)
610 struct ipgre_info *ipgre = link->l_info;
612 IS_IPGRE_LINK_ASSERT(link);
619 * @arg link Link object
624 int rtnl_link_ipgre_set_ttl(struct rtnl_link *link, uint8_t ttl)
626 struct ipgre_info *ipgre = link->l_info;
628 IS_IPGRE_LINK_ASSERT(link);
638 * @arg link Link object
642 uint8_t rtnl_link_ipgre_get_ttl(struct rtnl_link *link)
644 struct ipgre_info *ipgre = link->l_info;
646 IS_IPGRE_LINK_ASSERT(link);
653 * @arg link Link object
658 int rtnl_link_ipgre_set_tos(struct rtnl_link *link, uint8_t tos)
660 struct ipgre_info *ipgre = link->l_info;
662 IS_IPGRE_LINK_ASSERT(link);
672 * @arg link Link object
676 uint8_t rtnl_link_ipgre_get_tos(struct rtnl_link *link)
678 struct ipgre_info *ipgre = link->l_info;
680 IS_IPGRE_LINK_ASSERT(link);
687 * @arg link Link object
692 int rtnl_link_ipgre_set_pmtudisc(struct rtnl_link *link, uint8_t pmtudisc)
694 struct ipgre_info *ipgre = link->l_info;
696 IS_IPGRE_LINK_ASSERT(link);
706 * @arg link Link object
710 uint8_t rtnl_link_get_pmtudisc(struct rtnl_link *link)
712 struct ipgre_info *ipgre = link->l_info;
714 IS_IPGRE_LINK_ASSERT(link);