• Home
  • Raw
  • Download

Lines Matching full:link

7  * @ingroup link
9 * Virtual eXtensible Local Area Network link module
12 * \b Link Type Name: "vxlan"
25 #include <netlink-private/route/link/api.h>
26 #include <netlink/route/link/vxlan.h>
119 static int vxlan_alloc(struct rtnl_link *link) in vxlan_alloc() argument
123 if (link->l_info) in vxlan_alloc()
124 memset(link->l_info, 0, sizeof(*vxi)); in vxlan_alloc()
129 link->l_info = vxi; in vxlan_alloc()
135 static int vxlan_parse(struct rtnl_link *link, struct nlattr *data, in vxlan_parse() argument
142 NL_DBG(3, "Parsing VXLAN link info\n"); in vxlan_parse()
147 if ((err = vxlan_alloc(link)) < 0) in vxlan_parse()
150 vxi = link->l_info; in vxlan_parse()
294 static void vxlan_free(struct rtnl_link *link) in vxlan_free() argument
296 struct vxlan_info *vxi = link->l_info; in vxlan_free()
299 link->l_info = NULL; in vxlan_free()
302 static void vxlan_dump_line(struct rtnl_link *link, struct nl_dump_params *p) in vxlan_dump_line() argument
304 struct vxlan_info *vxi = link->l_info; in vxlan_dump_line()
309 static void vxlan_dump_details(struct rtnl_link *link, struct nl_dump_params *p) in vxlan_dump_details() argument
311 struct vxlan_info *vxi = link->l_info; in vxlan_dump_details()
328 nl_dump(p, " link "); in vxlan_dump_details()
331 parent = link_lookup(link->ce_cache, vxi->vxi_link); in vxlan_dump_details()
514 static int vxlan_put_attrs(struct nl_msg *msg, struct rtnl_link *link) in vxlan_put_attrs() argument
516 struct vxlan_info *vxi = link->l_info; in vxlan_put_attrs()
623 diff |= VXLAN_DIFF(LINK, a->vxi_link != b->vxi_link); in vxlan_compare()
669 #define IS_VXLAN_LINK_ASSERT(link) \ argument
670 if ((link)->l_info_ops != &vxlan_info_ops) { \
671 APPBUG("Link is not a vxlan link. set type \"vxlan\" first."); \
682 * Allocate link object of type VXLAN
684 * @return Allocated link object or NULL.
688 struct rtnl_link *link; in rtnl_link_vxlan_alloc() local
690 if (!(link = rtnl_link_alloc())) in rtnl_link_vxlan_alloc()
693 if (rtnl_link_set_type(link, "vxlan") < 0) { in rtnl_link_vxlan_alloc()
694 rtnl_link_put(link); in rtnl_link_vxlan_alloc()
698 return link; in rtnl_link_vxlan_alloc()
702 * Check if link is a VXLAN link
703 * @arg link Link object
705 * @return True if link is a VXLAN link, otherwise false is returned.
707 int rtnl_link_is_vxlan(struct rtnl_link *link) in rtnl_link_is_vxlan() argument
709 return link->l_info_ops && !strcmp(link->l_info_ops->io_name, "vxlan"); in rtnl_link_is_vxlan()
714 * @arg link Link object
719 int rtnl_link_vxlan_set_id(struct rtnl_link *link, uint32_t id) in rtnl_link_vxlan_set_id() argument
721 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_id()
723 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_id()
736 * @arg link Link object
741 int rtnl_link_vxlan_get_id(struct rtnl_link *link, uint32_t *id) in rtnl_link_vxlan_get_id() argument
743 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_id()
745 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_id()
760 * @arg link Link object
765 int rtnl_link_vxlan_set_group(struct rtnl_link *link, struct nl_addr *addr) in rtnl_link_vxlan_set_group() argument
767 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_group()
769 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_group()
791 * @arg link Link object
796 int rtnl_link_vxlan_get_group(struct rtnl_link *link, struct nl_addr **addr) in rtnl_link_vxlan_get_group() argument
798 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_group()
800 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_group()
817 * @arg link Link object
822 int rtnl_link_vxlan_set_link(struct rtnl_link *link, uint32_t index) in rtnl_link_vxlan_set_link() argument
824 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_link()
826 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_link()
836 * @arg link Link object
841 int rtnl_link_vxlan_get_link(struct rtnl_link *link, uint32_t *index) in rtnl_link_vxlan_get_link() argument
843 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_link()
845 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_link()
860 * @arg link Link object
865 int rtnl_link_vxlan_set_local(struct rtnl_link *link, struct nl_addr *addr) in rtnl_link_vxlan_set_local() argument
867 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_local()
869 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_local()
891 * @arg link Link object
896 int rtnl_link_vxlan_get_local(struct rtnl_link *link, struct nl_addr **addr) in rtnl_link_vxlan_get_local() argument
898 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_local()
900 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_local()
917 * @arg link Link object
922 int rtnl_link_vxlan_set_ttl(struct rtnl_link *link, uint8_t ttl) in rtnl_link_vxlan_set_ttl() argument
924 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_ttl()
926 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_ttl()
936 * @arg link Link object
940 int rtnl_link_vxlan_get_ttl(struct rtnl_link *link) in rtnl_link_vxlan_get_ttl() argument
942 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_ttl()
944 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_ttl()
954 * @arg link Link object
959 int rtnl_link_vxlan_set_tos(struct rtnl_link *link, uint8_t tos) in rtnl_link_vxlan_set_tos() argument
961 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_tos()
963 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_tos()
973 * @arg link Link object
977 int rtnl_link_vxlan_get_tos(struct rtnl_link *link) in rtnl_link_vxlan_get_tos() argument
979 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_tos()
981 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_tos()
991 * @arg link Link object
996 int rtnl_link_vxlan_set_learning(struct rtnl_link *link, uint8_t learning) in rtnl_link_vxlan_set_learning() argument
998 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_learning()
1000 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_learning()
1010 * @arg link Link object
1014 int rtnl_link_vxlan_get_learning(struct rtnl_link *link) in rtnl_link_vxlan_get_learning() argument
1016 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_learning()
1018 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_learning()
1028 * @arg link Link object
1032 int rtnl_link_vxlan_enable_learning(struct rtnl_link *link) in rtnl_link_vxlan_enable_learning() argument
1034 return rtnl_link_vxlan_set_learning(link, 1); in rtnl_link_vxlan_enable_learning()
1039 * @arg link Link object
1043 int rtnl_link_vxlan_disable_learning(struct rtnl_link *link) in rtnl_link_vxlan_disable_learning() argument
1045 return rtnl_link_vxlan_set_learning(link, 0); in rtnl_link_vxlan_disable_learning()
1050 * @arg link Link object
1055 int rtnl_link_vxlan_set_ageing(struct rtnl_link *link, uint32_t expiry) in rtnl_link_vxlan_set_ageing() argument
1057 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_ageing()
1059 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_ageing()
1069 * @arg link Link object
1074 int rtnl_link_vxlan_get_ageing(struct rtnl_link *link, uint32_t *expiry) in rtnl_link_vxlan_get_ageing() argument
1076 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_ageing()
1078 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_ageing()
1093 * @arg link Link object
1098 int rtnl_link_vxlan_set_limit(struct rtnl_link *link, uint32_t limit) in rtnl_link_vxlan_set_limit() argument
1100 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_limit()
1102 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_limit()
1112 * @arg link Link object
1117 int rtnl_link_vxlan_get_limit(struct rtnl_link *link, uint32_t *limit) in rtnl_link_vxlan_get_limit() argument
1119 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_limit()
1121 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_limit()
1136 * @arg link Link object
1141 int rtnl_link_vxlan_set_port_range(struct rtnl_link *link, in rtnl_link_vxlan_set_port_range() argument
1144 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_port_range()
1146 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_port_range()
1159 * @arg link Link object
1164 int rtnl_link_vxlan_get_port_range(struct rtnl_link *link, in rtnl_link_vxlan_get_port_range() argument
1167 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_port_range()
1169 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_port_range()
1184 * @arg link Link object
1189 int rtnl_link_vxlan_set_proxy(struct rtnl_link *link, uint8_t proxy) in rtnl_link_vxlan_set_proxy() argument
1191 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_proxy()
1193 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_proxy()
1203 * @arg link Link object
1207 int rtnl_link_vxlan_get_proxy(struct rtnl_link *link) in rtnl_link_vxlan_get_proxy() argument
1209 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_proxy()
1211 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_proxy()
1221 * @arg link Link object
1225 int rtnl_link_vxlan_enable_proxy(struct rtnl_link *link) in rtnl_link_vxlan_enable_proxy() argument
1227 return rtnl_link_vxlan_set_proxy(link, 1); in rtnl_link_vxlan_enable_proxy()
1232 * @arg link Link object
1236 int rtnl_link_vxlan_disable_proxy(struct rtnl_link *link) in rtnl_link_vxlan_disable_proxy() argument
1238 return rtnl_link_vxlan_set_proxy(link, 0); in rtnl_link_vxlan_disable_proxy()
1243 * @arg link Link object
1248 int rtnl_link_vxlan_set_rsc(struct rtnl_link *link, uint8_t rsc) in rtnl_link_vxlan_set_rsc() argument
1250 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_rsc()
1252 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_rsc()
1262 * @arg link Link object
1266 int rtnl_link_vxlan_get_rsc(struct rtnl_link *link) in rtnl_link_vxlan_get_rsc() argument
1268 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_rsc()
1270 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_rsc()
1280 * @arg link Link object
1284 int rtnl_link_vxlan_enable_rsc(struct rtnl_link *link) in rtnl_link_vxlan_enable_rsc() argument
1286 return rtnl_link_vxlan_set_rsc(link, 1); in rtnl_link_vxlan_enable_rsc()
1291 * @arg link Link object
1295 int rtnl_link_vxlan_disable_rsc(struct rtnl_link *link) in rtnl_link_vxlan_disable_rsc() argument
1297 return rtnl_link_vxlan_set_rsc(link, 0); in rtnl_link_vxlan_disable_rsc()
1302 * @arg link Link object
1307 int rtnl_link_vxlan_set_l2miss(struct rtnl_link *link, uint8_t miss) in rtnl_link_vxlan_set_l2miss() argument
1309 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_l2miss()
1311 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_l2miss()
1321 * @arg link Link object
1325 int rtnl_link_vxlan_get_l2miss(struct rtnl_link *link) in rtnl_link_vxlan_get_l2miss() argument
1327 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_l2miss()
1329 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_l2miss()
1339 * @arg link Link object
1343 int rtnl_link_vxlan_enable_l2miss(struct rtnl_link *link) in rtnl_link_vxlan_enable_l2miss() argument
1345 return rtnl_link_vxlan_set_l2miss(link, 1); in rtnl_link_vxlan_enable_l2miss()
1350 * @arg link Link object
1354 int rtnl_link_vxlan_disable_l2miss(struct rtnl_link *link) in rtnl_link_vxlan_disable_l2miss() argument
1356 return rtnl_link_vxlan_set_l2miss(link, 0); in rtnl_link_vxlan_disable_l2miss()
1361 * @arg link Link object
1366 int rtnl_link_vxlan_set_l3miss(struct rtnl_link *link, uint8_t miss) in rtnl_link_vxlan_set_l3miss() argument
1368 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_l3miss()
1370 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_l3miss()
1380 * @arg link Link object
1384 int rtnl_link_vxlan_get_l3miss(struct rtnl_link *link) in rtnl_link_vxlan_get_l3miss() argument
1386 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_l3miss()
1388 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_l3miss()
1398 * @arg link Link object
1402 int rtnl_link_vxlan_enable_l3miss(struct rtnl_link *link) in rtnl_link_vxlan_enable_l3miss() argument
1404 return rtnl_link_vxlan_set_l3miss(link, 1); in rtnl_link_vxlan_enable_l3miss()
1409 * @arg link Link object
1413 int rtnl_link_vxlan_disable_l3miss(struct rtnl_link *link) in rtnl_link_vxlan_disable_l3miss() argument
1415 return rtnl_link_vxlan_set_l3miss(link, 0); in rtnl_link_vxlan_disable_l3miss()
1420 * @arg link Link object
1425 int rtnl_link_vxlan_set_port(struct rtnl_link *link, uint32_t port) in rtnl_link_vxlan_set_port() argument
1427 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_port()
1429 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_port()
1439 * @arg link Link object
1444 int rtnl_link_vxlan_get_port(struct rtnl_link *link, uint32_t *port) in rtnl_link_vxlan_get_port() argument
1446 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_port()
1448 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_port()
1463 * @arg link Link object
1468 int rtnl_link_vxlan_set_udp_csum(struct rtnl_link *link, uint8_t csum) in rtnl_link_vxlan_set_udp_csum() argument
1470 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_udp_csum()
1472 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_udp_csum()
1482 * @arg link Link object
1486 int rtnl_link_vxlan_get_udp_csum(struct rtnl_link *link) in rtnl_link_vxlan_get_udp_csum() argument
1488 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_udp_csum()
1490 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_udp_csum()
1500 * @arg link Link object
1505 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
1507 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_udp_zero_csum6_tx()
1509 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_udp_zero_csum6_tx()
1519 * @arg link Link object
1523 int rtnl_link_vxlan_get_udp_zero_csum6_tx(struct rtnl_link *link) in rtnl_link_vxlan_get_udp_zero_csum6_tx() argument
1525 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_udp_zero_csum6_tx()
1527 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_udp_zero_csum6_tx()
1537 * @arg link Link object
1542 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
1544 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_udp_zero_csum6_rx()
1546 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_udp_zero_csum6_rx()
1556 * @arg link Link object
1560 int rtnl_link_vxlan_get_udp_zero_csum6_rx(struct rtnl_link *link) in rtnl_link_vxlan_get_udp_zero_csum6_rx() argument
1562 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_udp_zero_csum6_rx()
1564 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_udp_zero_csum6_rx()
1574 * @arg link Link object
1579 int rtnl_link_vxlan_set_remcsum_tx(struct rtnl_link *link, uint8_t csum) in rtnl_link_vxlan_set_remcsum_tx() argument
1581 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_remcsum_tx()
1583 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_remcsum_tx()
1593 * @arg link Link object
1597 int rtnl_link_vxlan_get_remcsum_tx(struct rtnl_link *link) in rtnl_link_vxlan_get_remcsum_tx() argument
1599 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_remcsum_tx()
1601 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_remcsum_tx()
1611 * @arg link Link object
1616 int rtnl_link_vxlan_set_remcsum_rx(struct rtnl_link *link, uint8_t csum) in rtnl_link_vxlan_set_remcsum_rx() argument
1618 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_remcsum_rx()
1620 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_remcsum_rx()
1630 * @arg link Link object
1634 int rtnl_link_vxlan_get_remcsum_rx(struct rtnl_link *link) in rtnl_link_vxlan_get_remcsum_rx() argument
1636 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_remcsum_rx()
1638 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_remcsum_rx()
1648 * @arg link Link object
1653 int rtnl_link_vxlan_set_collect_metadata(struct rtnl_link *link, uint8_t collect) in rtnl_link_vxlan_set_collect_metadata() argument
1655 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_collect_metadata()
1657 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_collect_metadata()
1667 * @arg link Link object
1671 int rtnl_link_vxlan_get_collect_metadata(struct rtnl_link *link) in rtnl_link_vxlan_get_collect_metadata() argument
1673 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_collect_metadata()
1675 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_collect_metadata()
1685 * @arg link Link object
1690 int rtnl_link_vxlan_set_label(struct rtnl_link *link, uint32_t label) in rtnl_link_vxlan_set_label() argument
1692 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_label()
1694 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_label()
1704 * @arg link Link object
1709 int rtnl_link_vxlan_get_label(struct rtnl_link *link, uint32_t *label) in rtnl_link_vxlan_get_label() argument
1711 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_label()
1713 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_label()
1728 * @arg link Link object
1734 int rtnl_link_vxlan_set_flags(struct rtnl_link *link, uint32_t flags, int enable) in rtnl_link_vxlan_set_flags() argument
1736 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_set_flags()
1738 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_set_flags()
1753 * @arg link Link object
1758 int rtnl_link_vxlan_get_flags(struct rtnl_link *link, uint32_t *out_flags) in rtnl_link_vxlan_get_flags() argument
1760 struct vxlan_info *vxi = link->l_info; in rtnl_link_vxlan_get_flags()
1762 IS_VXLAN_LINK_ASSERT(link); in rtnl_link_vxlan_get_flags()