• Home
  • Raw
  • Download

Lines Matching full:link

2  * lib/route/link/macvlan.c     MACVLAN Link Info
13 * @ingroup link
15 * MAC-based Virtual LAN link module
18 * \b Link Type Name: "macvlan"
32 #include <netlink-private/route/link/api.h>
33 #include <netlink/route/link/macvlan.h>
34 #include <netlink/route/link/macvtap.h>
64 static int macvlan_alloc(struct rtnl_link *link) in macvlan_alloc() argument
69 if (link->l_info) { in macvlan_alloc()
70 mvi = link->l_info; in macvlan_alloc()
79 link->l_info = mvi; in macvlan_alloc()
86 static int macvlan_parse(struct rtnl_link *link, struct nlattr *data, in macvlan_parse() argument
95 NL_DBG(3, "Parsing %s link info", link->l_info_ops->io_name); in macvlan_parse()
100 if ((err = macvlan_alloc(link)) < 0) in macvlan_parse()
103 mvi = link->l_info; in macvlan_parse()
146 static void macvlan_free(struct rtnl_link *link) in macvlan_free() argument
151 mvi = link->l_info; in macvlan_free()
158 link->l_info = NULL; in macvlan_free()
161 static void macvlan_dump_details(struct rtnl_link *link, struct nl_dump_params *p) in macvlan_dump_details() argument
165 struct macvlan_info *mvi = link->l_info; in macvlan_dump_details()
169 nl_dump(p, " %s-mode %s", link->l_info_ops->io_name, buf); in macvlan_dump_details()
174 nl_dump(p, " %s-flags %s", link->l_info_ops->io_name, buf); in macvlan_dump_details()
219 static int macvlan_put_attrs(struct nl_msg *msg, struct rtnl_link *link) in macvlan_put_attrs() argument
221 struct macvlan_info *mvi = link->l_info; in macvlan_put_attrs()
284 #define IS_MACVLAN_LINK_ASSERT(link) \ argument
285 if ((link)->l_info_ops != &macvlan_info_ops) { \
286 APPBUG("Link is not a macvlan link. set type \"macvlan\" first."); \
290 #define IS_MACVTAP_LINK_ASSERT(link) \ argument
291 if ((link)->l_info_ops != &macvtap_info_ops) { \
292 APPBUG("Link is not a macvtap link. set type \"macvtap\" first."); \
303 * Allocate link object of type MACVLAN
305 * @return Allocated link object or NULL.
309 struct rtnl_link *link; in rtnl_link_macvlan_alloc() local
312 if (!(link = rtnl_link_alloc())) in rtnl_link_macvlan_alloc()
315 if ((err = rtnl_link_set_type(link, "macvlan")) < 0) { in rtnl_link_macvlan_alloc()
316 rtnl_link_put(link); in rtnl_link_macvlan_alloc()
320 return link; in rtnl_link_macvlan_alloc()
324 * Check if link is a MACVLAN link
325 * @arg link Link object
327 * @return True if link is a MACVLAN link, otherwise false is returned.
329 int rtnl_link_is_macvlan(struct rtnl_link *link) in rtnl_link_is_macvlan() argument
331 return link->l_info_ops && !strcmp(link->l_info_ops->io_name, "macvlan"); in rtnl_link_is_macvlan()
336 * @arg link Link object
341 int rtnl_link_macvlan_set_mode(struct rtnl_link *link, uint32_t mode) in rtnl_link_macvlan_set_mode() argument
343 struct macvlan_info *mvi = link->l_info; in rtnl_link_macvlan_set_mode()
346 IS_MACVLAN_LINK_ASSERT(link); in rtnl_link_macvlan_set_mode()
366 * @arg link Link object
370 uint32_t rtnl_link_macvlan_get_mode(struct rtnl_link *link) in rtnl_link_macvlan_get_mode() argument
372 struct macvlan_info *mvi = link->l_info; in rtnl_link_macvlan_get_mode()
374 IS_MACVLAN_LINK_ASSERT(link); in rtnl_link_macvlan_get_mode()
384 * @arg link Link object
391 int rtnl_link_macvlan_set_macmode(struct rtnl_link *link, uint32_t macmode) in rtnl_link_macvlan_set_macmode() argument
393 struct macvlan_info *mvi = link->l_info; in rtnl_link_macvlan_set_macmode()
395 IS_MACVLAN_LINK_ASSERT(link); in rtnl_link_macvlan_set_macmode()
409 * @arg link Link object
416 int rtnl_link_macvlan_get_macmode(struct rtnl_link *link, uint32_t *out_macmode) in rtnl_link_macvlan_get_macmode() argument
418 struct macvlan_info *mvi = link->l_info; in rtnl_link_macvlan_get_macmode()
420 IS_MACVLAN_LINK_ASSERT(link); in rtnl_link_macvlan_get_macmode()
436 * @arg link Link object
441 int rtnl_link_macvlan_set_flags(struct rtnl_link *link, uint16_t flags) in rtnl_link_macvlan_set_flags() argument
443 struct macvlan_info *mvi = link->l_info; in rtnl_link_macvlan_set_flags()
445 IS_MACVLAN_LINK_ASSERT(link); in rtnl_link_macvlan_set_flags()
455 * @arg link Link object
463 int rtnl_link_macvlan_unset_flags(struct rtnl_link *link, uint16_t flags) in rtnl_link_macvlan_unset_flags() argument
465 struct macvlan_info *mvi = link->l_info; in rtnl_link_macvlan_unset_flags()
467 IS_MACVLAN_LINK_ASSERT(link); in rtnl_link_macvlan_unset_flags()
477 * @arg link Link object
481 uint16_t rtnl_link_macvlan_get_flags(struct rtnl_link *link) in rtnl_link_macvlan_get_flags() argument
483 struct macvlan_info *mvi = link->l_info; in rtnl_link_macvlan_get_flags()
485 IS_MACVLAN_LINK_ASSERT(link); in rtnl_link_macvlan_get_flags()
492 * @arg link Link object
497 int rtnl_link_macvlan_count_macaddr(struct rtnl_link *link, uint32_t *out_count) in rtnl_link_macvlan_count_macaddr() argument
499 struct macvlan_info *mvi = link->l_info; in rtnl_link_macvlan_count_macaddr()
501 IS_MACVLAN_LINK_ASSERT(link); in rtnl_link_macvlan_count_macaddr()
517 * @arg link Link object
521 * It is only valid until the address is not removed from this link object
526 int rtnl_link_macvlan_get_macaddr(struct rtnl_link *link, uint32_t idx, in rtnl_link_macvlan_get_macaddr() argument
529 struct macvlan_info *mvi = link->l_info; in rtnl_link_macvlan_get_macaddr()
531 IS_MACVLAN_LINK_ASSERT(link); in rtnl_link_macvlan_get_macaddr()
549 * @arg link Link object
556 int rtnl_link_macvlan_add_macaddr(struct rtnl_link *link, struct nl_addr *addr) in rtnl_link_macvlan_add_macaddr() argument
558 struct macvlan_info *mvi = link->l_info; in rtnl_link_macvlan_add_macaddr()
562 IS_MACVLAN_LINK_ASSERT(link); in rtnl_link_macvlan_add_macaddr()
593 * @arg link Link object
601 int rtnl_link_macvlan_del_macaddr(struct rtnl_link *link, struct nl_addr *addr) in rtnl_link_macvlan_del_macaddr() argument
603 struct macvlan_info *mvi = link->l_info; in rtnl_link_macvlan_del_macaddr()
606 IS_MACVLAN_LINK_ASSERT(link); in rtnl_link_macvlan_del_macaddr()
649 * Allocate link object of type MACVTAP
651 * @return Allocated link object or NULL.
655 struct rtnl_link *link; in rtnl_link_macvtap_alloc() local
658 if (!(link = rtnl_link_alloc())) in rtnl_link_macvtap_alloc()
661 if ((err = rtnl_link_set_type(link, "macvtap")) < 0) { in rtnl_link_macvtap_alloc()
662 rtnl_link_put(link); in rtnl_link_macvtap_alloc()
666 return link; in rtnl_link_macvtap_alloc()
670 * Check if link is a MACVTAP link
671 * @arg link Link object
673 * @return True if link is a MACVTAP link, otherwise false is returned.
675 int rtnl_link_is_macvtap(struct rtnl_link *link) in rtnl_link_is_macvtap() argument
677 return link->l_info_ops && !strcmp(link->l_info_ops->io_name, "macvtap"); in rtnl_link_is_macvtap()
682 * @arg link Link object
687 int rtnl_link_macvtap_set_mode(struct rtnl_link *link, uint32_t mode) in rtnl_link_macvtap_set_mode() argument
689 struct macvlan_info *mvi = link->l_info; in rtnl_link_macvtap_set_mode()
691 IS_MACVTAP_LINK_ASSERT(link); in rtnl_link_macvtap_set_mode()
701 * @arg link Link object
705 uint32_t rtnl_link_macvtap_get_mode(struct rtnl_link *link) in rtnl_link_macvtap_get_mode() argument
707 struct macvlan_info *mvi = link->l_info; in rtnl_link_macvtap_get_mode()
709 IS_MACVTAP_LINK_ASSERT(link); in rtnl_link_macvtap_get_mode()
719 * @arg link Link object
724 int rtnl_link_macvtap_set_flags(struct rtnl_link *link, uint16_t flags) in rtnl_link_macvtap_set_flags() argument
726 struct macvlan_info *mvi = link->l_info; in rtnl_link_macvtap_set_flags()
728 IS_MACVTAP_LINK_ASSERT(link); in rtnl_link_macvtap_set_flags()
738 * @arg link Link object
746 int rtnl_link_macvtap_unset_flags(struct rtnl_link *link, uint16_t flags) in rtnl_link_macvtap_unset_flags() argument
748 struct macvlan_info *mvi = link->l_info; in rtnl_link_macvtap_unset_flags()
750 IS_MACVTAP_LINK_ASSERT(link); in rtnl_link_macvtap_unset_flags()
760 * @arg link Link object
764 uint16_t rtnl_link_macvtap_get_flags(struct rtnl_link *link) in rtnl_link_macvtap_get_flags() argument
766 struct macvlan_info *mvi = link->l_info; in rtnl_link_macvtap_get_flags()
768 IS_MACVTAP_LINK_ASSERT(link); in rtnl_link_macvtap_get_flags()