Home | History | Annotate | Download | only in link

Lines Matching refs:link

2  * lib/route/link/ipip.c        IPIP Link Info
13 * @ingroup link
15 * ipip link module
18 * \b Link Type Name: "ipip"
31 #include <netlink-private/route/link/api.h>
46 uint32_t link;
61 static int ipip_alloc(struct rtnl_link *link)
69 link->l_info = ipip;
74 static int ipip_parse(struct rtnl_link *link, struct nlattr *data,
81 NL_DBG(3, "Parsing IPIP link info");
87 err = ipip_alloc(link);
91 ipip = link->l_info;
94 ipip->link = nla_get_u32(tb[IFLA_IPTUN_LINK]);
129 static int ipip_put_attrs(struct nl_msg *msg, struct rtnl_link *link)
131 struct ipip_info *ipip = link->l_info;
139 NLA_PUT_U32(msg, IFLA_IPTUN_LINK, ipip->link);
162 static void ipip_free(struct rtnl_link *link)
164 struct ipip_info *ipip = link->l_info;
167 link->l_info = NULL;
170 static void ipip_dump_line(struct rtnl_link *link, struct nl_dump_params *p)
172 nl_dump(p, "ipip : %s", link->l_name);
175 static void ipip_dump_details(struct rtnl_link *link, struct nl_dump_params *p)
177 struct ipip_info *ipip = link->l_info;
181 nl_dump(p, " link ");
182 name = rtnl_link_get_name(link);
186 nl_dump_line(p, "%u\n", ipip->link);
255 #define IS_IPIP_LINK_ASSERT(link) \
256 if ((link)->l_info_ops != &ipip_info_ops) { \
257 APPBUG("Link is not a ipip link. set type \"ipip\" first."); \
263 struct rtnl_link *link;
266 link = rtnl_link_alloc();
267 if (!link)
270 err = rtnl_link_set_type(link, "ipip");
272 rtnl_link_put(link);
276 return link;
280 * Check if link is a IPIP link
281 * @arg link Link object
283 * @return True if link is a IPIP link, otherwise false is returned.
285 int rtnl_link_is_ipip(struct rtnl_link *link)
287 return link->l_info_ops && !strcmp(link->l_info_ops->io_name, "ipip");
300 struct rtnl_link *link;
303 link = rtnl_link_ipip_alloc();
304 if (!link)
308 rtnl_link_set_name(link, name);
310 err = rtnl_link_add(sk, link, NLM_F_CREATE);
311 rtnl_link_put(link);
318 * @arg link Link object
323 int rtnl_link_ipip_set_link(struct rtnl_link *link, uint32_t index)
325 struct ipip_info *ipip = link->l_info;
327 IS_IPIP_LINK_ASSERT(link);
329 ipip->link = index;
337 * @arg link Link object
341 uint32_t rtnl_link_ipip_get_link(struct rtnl_link *link)
343 struct ipip_info *ipip = link->l_info;
345 IS_IPIP_LINK_ASSERT(link);
347 return ipip->link;
352 * @arg link Link object
357 int rtnl_link_ipip_set_local(struct rtnl_link *link, uint32_t addr)
359 struct ipip_info *ipip = link->l_info;
361 IS_IPIP_LINK_ASSERT(link);
371 * @arg link Link object
375 uint32_t rtnl_link_ipip_get_local(struct rtnl_link *link)
377 struct ipip_info *ipip = link->l_info;
379 IS_IPIP_LINK_ASSERT(link);
386 * @arg link Link object
391 int rtnl_link_ipip_set_remote(struct rtnl_link *link, uint32_t addr)
393 struct ipip_info *ipip = link->l_info;
395 IS_IPIP_LINK_ASSERT(link);
405 * @arg link Link object
409 uint32_t rtnl_link_ipip_get_remote(struct rtnl_link *link)
411 struct ipip_info *ipip = link->l_info;
413 IS_IPIP_LINK_ASSERT(link);
420 * @arg link Link object
425 int rtnl_link_ipip_set_ttl(struct rtnl_link *link, uint8_t ttl)
427 struct ipip_info *ipip = link->l_info;
429 IS_IPIP_LINK_ASSERT(link);
439 * @arg link Link object
443 uint8_t rtnl_link_ipip_get_ttl(struct rtnl_link *link)
445 struct ipip_info *ipip = link->l_info;
447 IS_IPIP_LINK_ASSERT(link);
454 * @arg link Link object
459 int rtnl_link_ipip_set_tos(struct rtnl_link *link, uint8_t tos)
461 struct ipip_info *ipip = link->l_info;
463 IS_IPIP_LINK_ASSERT(link);
473 * @arg link Link object
477 uint8_t rtnl_link_ipip_get_tos(struct rtnl_link *link)
479 struct ipip_info *ipip = link->l_info;
481 IS_IPIP_LINK_ASSERT(link);
488 * @arg link Link object
493 int rtnl_link_ipip_set_pmtudisc(struct rtnl_link *link, uint8_t pmtudisc)
495 struct ipip_info *ipip = link->l_info;
497 IS_IPIP_LINK_ASSERT(link);
507 * @arg link Link object
511 uint8_t rtnl_link_ipip_get_pmtudisc(struct rtnl_link *link)
513 struct ipip_info *ipip = link->l_info;
515 IS_IPIP_LINK_ASSERT(link);