Lines Matching full:link
7 * @ingroup link
9 * Virtual eXtensible Local Area Network link module
12 * \b Link Type Name: "vxlan"
28 #include <netlink/route/link/vxlan.h>
31 #include "link-api.h"
122 static int vxlan_alloc(struct rtnl_link *link) in vxlan_alloc() argument
126 if (link->l_info) in vxlan_alloc()
127 memset(link->l_info, 0, sizeof(*vxi)); in vxlan_alloc()
132 link->l_info = vxi; in vxlan_alloc()
138 static int vxlan_parse(struct rtnl_link *link, struct nlattr *data, in vxlan_parse() argument
145 NL_DBG(3, "Parsing VXLAN link info\n"); in vxlan_parse()
150 if ((err = vxlan_alloc(link)) < 0) in vxlan_parse()
153 vxi = link->l_info; in vxlan_parse()
297 static void vxlan_free(struct rtnl_link *link) in vxlan_free() argument
299 struct vxlan_info *vxi = link->l_info; in vxlan_free()
302 link->l_info = NULL; in vxlan_free()
305 static void vxlan_dump_line(struct rtnl_link *link, struct nl_dump_params *p) in vxlan_dump_line() argument
307 struct vxlan_info *vxi = link->l_info; in vxlan_dump_line()
312 static void vxlan_dump_details(struct rtnl_link *link, struct nl_dump_params *p) in vxlan_dump_details() argument
314 struct vxlan_info *vxi = link->l_info; in vxlan_dump_details()
331 nl_dump(p, " link "); in vxlan_dump_details()
334 parent = link_lookup(link->ce_cache, vxi->vxi_link); in vxlan_dump_details()
517 static int vxlan_put_attrs(struct nl_msg *msg, struct rtnl_link *link) in vxlan_put_attrs() argument
519 struct vxlan_info *vxi = link->l_info; in vxlan_put_attrs()
677 #define IS_VXLAN_LINK_ASSERT(link) \ argument
678 if ((link)->l_info_ops != &vxlan_info_ops) { \
679 APPBUG("Link is not a vxlan link. set type \"vxlan\" first."); \
690 * Allocate link object of type VXLAN
692 * @return Allocated link object or NULL.
696 struct rtnl_link *link; in rtnl_link_vxlan_alloc() local
698 if (!(link = rtnl_link_alloc())) in rtnl_link_vxlan_alloc()
701 if (rtnl_link_set_type(link, "vxlan") < 0) { in rtnl_link_vxlan_alloc()
702 rtnl_link_put(link); in rtnl_link_vxlan_alloc()
706 return link; in rtnl_link_vxlan_alloc()
710 * Check if link is a VXLAN link
711 * @arg link Link object
713 * @return True if link is a VXLAN link, otherwise false is returned.
715 int rtnl_link_is_vxlan(struct rtnl_link *link) in rtnl_link_is_vxlan() argument
717 return link->l_info_ops && !strcmp(link->l_info_ops->io_name, "vxlan"); in rtnl_link_is_vxlan()
722 * @arg link Link object
727 int rtnl_link_vxlan_set_id(struct rtnl_link *link, uint32_t id) in rtnl_link_vxlan_set_id() argument
729 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_id()
731 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_id()
744 * @arg link Link object
749 int rtnl_link_vxlan_get_id(struct rtnl_link *link, uint32_t *id) in rtnl_link_vxlan_get_id() argument
751 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_id()
753 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_id()
768 * @arg link Link object
773 int rtnl_link_vxlan_set_group(struct rtnl_link *link, struct nl_addr *addr) in rtnl_link_vxlan_set_group() argument
775 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_group()
777 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_group()
799 * @arg link Link object
804 int rtnl_link_vxlan_get_group(struct rtnl_link *link, struct nl_addr **addr) in rtnl_link_vxlan_get_group() argument
806 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_group()
808 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_group()
825 * @arg link Link object
830 int rtnl_link_vxlan_set_link(struct rtnl_link *link, uint32_t index) in rtnl_link_vxlan_set_link() argument
832 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_link()
834 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_link()
844 * @arg link Link object
849 int rtnl_link_vxlan_get_link(struct rtnl_link *link, uint32_t *index) in rtnl_link_vxlan_get_link() argument
851 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_link()
853 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_link()
868 * @arg link Link object
873 int rtnl_link_vxlan_set_local(struct rtnl_link *link, struct nl_addr *addr) in rtnl_link_vxlan_set_local() argument
875 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_local()
877 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_local()
899 * @arg link Link object
904 int rtnl_link_vxlan_get_local(struct rtnl_link *link, struct nl_addr **addr) in rtnl_link_vxlan_get_local() argument
906 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_local()
908 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_local()
925 * @arg link Link object
930 int rtnl_link_vxlan_set_ttl(struct rtnl_link *link, uint8_t ttl) in rtnl_link_vxlan_set_ttl() argument
932 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_ttl()
934 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_ttl()
944 * @arg link Link object
948 int rtnl_link_vxlan_get_ttl(struct rtnl_link *link) in rtnl_link_vxlan_get_ttl() argument
950 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_ttl()
952 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_ttl()
962 * @arg link Link object
967 int rtnl_link_vxlan_set_tos(struct rtnl_link *link, uint8_t tos) in rtnl_link_vxlan_set_tos() argument
969 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_tos()
971 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_tos()
981 * @arg link Link object
985 int rtnl_link_vxlan_get_tos(struct rtnl_link *link) in rtnl_link_vxlan_get_tos() argument
987 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_tos()
989 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_tos()
999 * @arg link Link object
1004 int rtnl_link_vxlan_set_learning(struct rtnl_link *link, uint8_t learning) in rtnl_link_vxlan_set_learning() argument
1006 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_learning()
1008 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_learning()
1018 * @arg link Link object
1022 int rtnl_link_vxlan_get_learning(struct rtnl_link *link) in rtnl_link_vxlan_get_learning() argument
1024 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_learning()
1026 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_learning()
1036 * @arg link Link object
1040 int rtnl_link_vxlan_enable_learning(struct rtnl_link *link) in rtnl_link_vxlan_enable_learning() argument
1042 return rtnl_link_vxlan_set_learning(link, 1); in rtnl_link_vxlan_enable_learning()
1047 * @arg link Link object
1051 int rtnl_link_vxlan_disable_learning(struct rtnl_link *link) in rtnl_link_vxlan_disable_learning() argument
1053 return rtnl_link_vxlan_set_learning(link, 0); in rtnl_link_vxlan_disable_learning()
1058 * @arg link Link object
1063 int rtnl_link_vxlan_set_ageing(struct rtnl_link *link, uint32_t expiry) in rtnl_link_vxlan_set_ageing() argument
1065 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_ageing()
1067 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_ageing()
1077 * @arg link Link object
1082 int rtnl_link_vxlan_get_ageing(struct rtnl_link *link, uint32_t *expiry) in rtnl_link_vxlan_get_ageing() argument
1084 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_ageing()
1086 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_ageing()
1101 * @arg link Link object
1106 int rtnl_link_vxlan_set_limit(struct rtnl_link *link, uint32_t limit) in rtnl_link_vxlan_set_limit() argument
1108 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_limit()
1110 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_limit()
1120 * @arg link Link object
1125 int rtnl_link_vxlan_get_limit(struct rtnl_link *link, uint32_t *limit) in rtnl_link_vxlan_get_limit() argument
1127 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_limit()
1129 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_limit()
1144 * @arg link Link object
1149 int rtnl_link_vxlan_set_port_range(struct rtnl_link *link, in rtnl_link_vxlan_set_port_range() argument
1152 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_port_range()
1154 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_port_range()
1167 * @arg link Link object
1172 int rtnl_link_vxlan_get_port_range(struct rtnl_link *link, in rtnl_link_vxlan_get_port_range() argument
1175 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_port_range()
1177 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_port_range()
1192 * @arg link Link object
1197 int rtnl_link_vxlan_set_proxy(struct rtnl_link *link, uint8_t proxy) in rtnl_link_vxlan_set_proxy() argument
1199 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_proxy()
1201 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_proxy()
1211 * @arg link Link object
1215 int rtnl_link_vxlan_get_proxy(struct rtnl_link *link) in rtnl_link_vxlan_get_proxy() argument
1217 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_proxy()
1219 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_proxy()
1229 * @arg link Link object
1233 int rtnl_link_vxlan_enable_proxy(struct rtnl_link *link) in rtnl_link_vxlan_enable_proxy() argument
1235 return rtnl_link_vxlan_set_proxy(link, 1); in rtnl_link_vxlan_enable_proxy()
1240 * @arg link Link object
1244 int rtnl_link_vxlan_disable_proxy(struct rtnl_link *link) in rtnl_link_vxlan_disable_proxy() argument
1246 return rtnl_link_vxlan_set_proxy(link, 0); in rtnl_link_vxlan_disable_proxy()
1251 * @arg link Link object
1256 int rtnl_link_vxlan_set_rsc(struct rtnl_link *link, uint8_t rsc) in rtnl_link_vxlan_set_rsc() argument
1258 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_rsc()
1260 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_rsc()
1270 * @arg link Link object
1274 int rtnl_link_vxlan_get_rsc(struct rtnl_link *link) in rtnl_link_vxlan_get_rsc() argument
1276 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_rsc()
1278 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_rsc()
1288 * @arg link Link object
1292 int rtnl_link_vxlan_enable_rsc(struct rtnl_link *link) in rtnl_link_vxlan_enable_rsc() argument
1294 return rtnl_link_vxlan_set_rsc(link, 1); in rtnl_link_vxlan_enable_rsc()
1299 * @arg link Link object
1303 int rtnl_link_vxlan_disable_rsc(struct rtnl_link *link) in rtnl_link_vxlan_disable_rsc() argument
1305 return rtnl_link_vxlan_set_rsc(link, 0); in rtnl_link_vxlan_disable_rsc()
1310 * @arg link Link object
1315 int rtnl_link_vxlan_set_l2miss(struct rtnl_link *link, uint8_t miss) in rtnl_link_vxlan_set_l2miss() argument
1317 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_l2miss()
1319 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_l2miss()
1329 * @arg link Link object
1333 int rtnl_link_vxlan_get_l2miss(struct rtnl_link *link) in rtnl_link_vxlan_get_l2miss() argument
1335 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_l2miss()
1337 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_l2miss()
1347 * @arg link Link object
1351 int rtnl_link_vxlan_enable_l2miss(struct rtnl_link *link) in rtnl_link_vxlan_enable_l2miss() argument
1353 return rtnl_link_vxlan_set_l2miss(link, 1); in rtnl_link_vxlan_enable_l2miss()
1358 * @arg link Link object
1362 int rtnl_link_vxlan_disable_l2miss(struct rtnl_link *link) in rtnl_link_vxlan_disable_l2miss() argument
1364 return rtnl_link_vxlan_set_l2miss(link, 0); in rtnl_link_vxlan_disable_l2miss()
1369 * @arg link Link object
1374 int rtnl_link_vxlan_set_l3miss(struct rtnl_link *link, uint8_t miss) in rtnl_link_vxlan_set_l3miss() argument
1376 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_l3miss()
1378 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_l3miss()
1388 * @arg link Link object
1392 int rtnl_link_vxlan_get_l3miss(struct rtnl_link *link) in rtnl_link_vxlan_get_l3miss() argument
1394 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_l3miss()
1396 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_l3miss()
1406 * @arg link Link object
1410 int rtnl_link_vxlan_enable_l3miss(struct rtnl_link *link) in rtnl_link_vxlan_enable_l3miss() argument
1412 return rtnl_link_vxlan_set_l3miss(link, 1); in rtnl_link_vxlan_enable_l3miss()
1417 * @arg link Link object
1421 int rtnl_link_vxlan_disable_l3miss(struct rtnl_link *link) in rtnl_link_vxlan_disable_l3miss() argument
1423 return rtnl_link_vxlan_set_l3miss(link, 0); in rtnl_link_vxlan_disable_l3miss()
1428 * @arg link Link object
1433 int rtnl_link_vxlan_set_port(struct rtnl_link *link, uint32_t port) in rtnl_link_vxlan_set_port() argument
1435 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_port()
1437 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_port()
1447 * @arg link Link object
1452 int rtnl_link_vxlan_get_port(struct rtnl_link *link, uint32_t *port) in rtnl_link_vxlan_get_port() argument
1454 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_port()
1456 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_port()
1471 * @arg link Link object
1476 int rtnl_link_vxlan_set_udp_csum(struct rtnl_link *link, uint8_t csum) in rtnl_link_vxlan_set_udp_csum() argument
1478 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_udp_csum()
1480 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_udp_csum()
1490 * @arg link Link object
1494 int rtnl_link_vxlan_get_udp_csum(struct rtnl_link *link) in rtnl_link_vxlan_get_udp_csum() argument
1496 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_udp_csum()
1498 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_udp_csum()
1508 * @arg link Link object
1513 int rtnl_link_vxlan_set_udp_zero_csum6_tx(struct rtnl_link *link, uint8_t csum) in rtnl_link_vxlan_set_udp_zero_csum6_tx() argument
1515 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_udp_zero_csum6_tx()
1517 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_udp_zero_csum6_tx()
1527 * @arg link Link object
1531 int rtnl_link_vxlan_get_udp_zero_csum6_tx(struct rtnl_link *link) in rtnl_link_vxlan_get_udp_zero_csum6_tx() argument
1533 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_udp_zero_csum6_tx()
1535 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_udp_zero_csum6_tx()
1545 * @arg link Link object
1550 int rtnl_link_vxlan_set_udp_zero_csum6_rx(struct rtnl_link *link, uint8_t csum) in rtnl_link_vxlan_set_udp_zero_csum6_rx() argument
1552 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_udp_zero_csum6_rx()
1554 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_udp_zero_csum6_rx()
1564 * @arg link Link object
1568 int rtnl_link_vxlan_get_udp_zero_csum6_rx(struct rtnl_link *link) in rtnl_link_vxlan_get_udp_zero_csum6_rx() argument
1570 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_udp_zero_csum6_rx()
1572 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_udp_zero_csum6_rx()
1582 * @arg link Link object
1587 int rtnl_link_vxlan_set_remcsum_tx(struct rtnl_link *link, uint8_t csum) in rtnl_link_vxlan_set_remcsum_tx() argument
1589 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_remcsum_tx()
1591 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_remcsum_tx()
1601 * @arg link Link object
1605 int rtnl_link_vxlan_get_remcsum_tx(struct rtnl_link *link) in rtnl_link_vxlan_get_remcsum_tx() argument
1607 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_remcsum_tx()
1609 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_remcsum_tx()
1619 * @arg link Link object
1624 int rtnl_link_vxlan_set_remcsum_rx(struct rtnl_link *link, uint8_t csum) in rtnl_link_vxlan_set_remcsum_rx() argument
1626 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_remcsum_rx()
1628 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_remcsum_rx()
1638 * @arg link Link object
1642 int rtnl_link_vxlan_get_remcsum_rx(struct rtnl_link *link) in rtnl_link_vxlan_get_remcsum_rx() argument
1644 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_remcsum_rx()
1646 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_remcsum_rx()
1656 * @arg link Link object
1661 int rtnl_link_vxlan_set_collect_metadata(struct rtnl_link *link, uint8_t collect) in rtnl_link_vxlan_set_collect_metadata() argument
1663 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_collect_metadata()
1665 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_collect_metadata()
1675 * @arg link Link object
1679 int rtnl_link_vxlan_get_collect_metadata(struct rtnl_link *link) in rtnl_link_vxlan_get_collect_metadata() argument
1681 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_collect_metadata()
1683 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_collect_metadata()
1693 * @arg link Link object
1698 int rtnl_link_vxlan_set_label(struct rtnl_link *link, uint32_t label) in rtnl_link_vxlan_set_label() argument
1700 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_label()
1702 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_label()
1712 * @arg link Link object
1717 int rtnl_link_vxlan_get_label(struct rtnl_link *link, uint32_t *label) in rtnl_link_vxlan_get_label() argument
1719 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_label()
1721 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_label()
1736 * @arg link Link object
1742 int rtnl_link_vxlan_set_flags(struct rtnl_link *link, uint32_t flags, int enable) in rtnl_link_vxlan_set_flags() argument
1744 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_flags()
1746 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_flags()
1761 * @arg link Link object
1766 int rtnl_link_vxlan_get_flags(struct rtnl_link *link, uint32_t *out_flags) in rtnl_link_vxlan_get_flags() argument
1768 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_flags()
1770 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_flags()