Lines Matching refs:tb

1424 	struct nlattr *tb[IFLA_MAX+1];  in rtnl_dump_ifinfo()  local
1444 if (nlmsg_parse(cb->nlh, hdrlen, tb, IFLA_MAX, ifla_policy) >= 0) { in rtnl_dump_ifinfo()
1446 if (tb[IFLA_EXT_MASK]) in rtnl_dump_ifinfo()
1447 ext_filter_mask = nla_get_u32(tb[IFLA_EXT_MASK]); in rtnl_dump_ifinfo()
1481 int rtnl_nla_parse_ifla(struct nlattr **tb, const struct nlattr *head, int len) in rtnl_nla_parse_ifla() argument
1483 return nla_parse(tb, IFLA_MAX, head, len, ifla_policy); in rtnl_nla_parse_ifla()
1487 struct net *rtnl_link_get_net(struct net *src_net, struct nlattr *tb[]) in rtnl_link_get_net() argument
1493 if (tb[IFLA_NET_NS_PID]) in rtnl_link_get_net()
1494 net = get_net_ns_by_pid(nla_get_u32(tb[IFLA_NET_NS_PID])); in rtnl_link_get_net()
1495 else if (tb[IFLA_NET_NS_FD]) in rtnl_link_get_net()
1496 net = get_net_ns_by_fd(nla_get_u32(tb[IFLA_NET_NS_FD])); in rtnl_link_get_net()
1503 static int validate_linkmsg(struct net_device *dev, struct nlattr *tb[]) in validate_linkmsg() argument
1506 if (tb[IFLA_ADDRESS] && in validate_linkmsg()
1507 nla_len(tb[IFLA_ADDRESS]) < dev->addr_len) in validate_linkmsg()
1510 if (tb[IFLA_BROADCAST] && in validate_linkmsg()
1511 nla_len(tb[IFLA_BROADCAST]) < dev->addr_len) in validate_linkmsg()
1515 if (tb[IFLA_AF_SPEC]) { in validate_linkmsg()
1519 nla_for_each_nested(af, tb[IFLA_AF_SPEC], rem) { in validate_linkmsg()
1539 static int do_setvfinfo(struct net_device *dev, struct nlattr **tb) in do_setvfinfo() argument
1544 if (tb[IFLA_VF_MAC]) { in do_setvfinfo()
1545 struct ifla_vf_mac *ivm = nla_data(tb[IFLA_VF_MAC]); in do_setvfinfo()
1555 if (tb[IFLA_VF_VLAN]) { in do_setvfinfo()
1556 struct ifla_vf_vlan *ivv = nla_data(tb[IFLA_VF_VLAN]); in do_setvfinfo()
1566 if (tb[IFLA_VF_TX_RATE]) { in do_setvfinfo()
1567 struct ifla_vf_tx_rate *ivt = nla_data(tb[IFLA_VF_TX_RATE]); in do_setvfinfo()
1585 if (tb[IFLA_VF_RATE]) { in do_setvfinfo()
1586 struct ifla_vf_rate *ivt = nla_data(tb[IFLA_VF_RATE]); in do_setvfinfo()
1597 if (tb[IFLA_VF_SPOOFCHK]) { in do_setvfinfo()
1598 struct ifla_vf_spoofchk *ivs = nla_data(tb[IFLA_VF_SPOOFCHK]); in do_setvfinfo()
1608 if (tb[IFLA_VF_LINK_STATE]) { in do_setvfinfo()
1609 struct ifla_vf_link_state *ivl = nla_data(tb[IFLA_VF_LINK_STATE]); in do_setvfinfo()
1619 if (tb[IFLA_VF_RSS_QUERY_EN]) { in do_setvfinfo()
1623 ivrssq_en = nla_data(tb[IFLA_VF_RSS_QUERY_EN]); in do_setvfinfo()
1631 if (tb[IFLA_VF_TRUST]) { in do_setvfinfo()
1632 struct ifla_vf_trust *ivt = nla_data(tb[IFLA_VF_TRUST]); in do_setvfinfo()
1684 struct nlattr **tb, char *ifname, int status) in do_setlink() argument
1689 if (tb[IFLA_NET_NS_PID] || tb[IFLA_NET_NS_FD]) { in do_setlink()
1690 struct net *net = rtnl_link_get_net(dev_net(dev), tb); in do_setlink()
1707 if (tb[IFLA_MAP]) { in do_setlink()
1721 u_map = nla_data(tb[IFLA_MAP]); in do_setlink()
1736 if (tb[IFLA_ADDRESS]) { in do_setlink()
1747 memcpy(sa->sa_data, nla_data(tb[IFLA_ADDRESS]), in do_setlink()
1756 if (tb[IFLA_MTU]) { in do_setlink()
1757 err = dev_set_mtu(dev, nla_get_u32(tb[IFLA_MTU])); in do_setlink()
1763 if (tb[IFLA_GROUP]) { in do_setlink()
1764 dev_set_group(dev, nla_get_u32(tb[IFLA_GROUP])); in do_setlink()
1780 if (tb[IFLA_IFALIAS]) { in do_setlink()
1781 err = dev_set_alias(dev, nla_data(tb[IFLA_IFALIAS]), in do_setlink()
1782 nla_len(tb[IFLA_IFALIAS])); in do_setlink()
1788 if (tb[IFLA_BROADCAST]) { in do_setlink()
1789 nla_memcpy(dev->broadcast, tb[IFLA_BROADCAST], dev->addr_len); in do_setlink()
1799 if (tb[IFLA_MASTER]) { in do_setlink()
1800 err = do_set_master(dev, nla_get_u32(tb[IFLA_MASTER])); in do_setlink()
1806 if (tb[IFLA_CARRIER]) { in do_setlink()
1807 err = dev_change_carrier(dev, nla_get_u8(tb[IFLA_CARRIER])); in do_setlink()
1813 if (tb[IFLA_TXQLEN]) { in do_setlink()
1814 unsigned long value = nla_get_u32(tb[IFLA_TXQLEN]); in do_setlink()
1822 if (tb[IFLA_OPERSTATE]) in do_setlink()
1823 set_operstate(dev, nla_get_u8(tb[IFLA_OPERSTATE])); in do_setlink()
1825 if (tb[IFLA_LINKMODE]) { in do_setlink()
1826 unsigned char value = nla_get_u8(tb[IFLA_LINKMODE]); in do_setlink()
1835 if (tb[IFLA_VFINFO_LIST]) { in do_setlink()
1840 nla_for_each_nested(attr, tb[IFLA_VFINFO_LIST], rem) { in do_setlink()
1858 if (tb[IFLA_VF_PORTS]) { in do_setlink()
1868 nla_for_each_nested(attr, tb[IFLA_VF_PORTS], rem) { in do_setlink()
1891 if (tb[IFLA_PORT_SELF]) { in do_setlink()
1895 tb[IFLA_PORT_SELF], ifla_port_policy); in do_setlink()
1907 if (tb[IFLA_AF_SPEC]) { in do_setlink()
1911 nla_for_each_nested(af, tb[IFLA_AF_SPEC], rem) { in do_setlink()
1926 if (tb[IFLA_PROTO_DOWN]) { in do_setlink()
1928 nla_get_u8(tb[IFLA_PROTO_DOWN])); in do_setlink()
1953 struct nlattr *tb[IFLA_MAX+1]; in rtnl_setlink() local
1956 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy); in rtnl_setlink()
1960 if (tb[IFLA_IFNAME]) in rtnl_setlink()
1961 nla_strlcpy(ifname, tb[IFLA_IFNAME], IFNAMSIZ); in rtnl_setlink()
1969 else if (tb[IFLA_IFNAME]) in rtnl_setlink()
1979 err = validate_linkmsg(dev, tb); in rtnl_setlink()
1983 err = do_setlink(skb, dev, ifm, tb, ifname, 0); in rtnl_setlink()
2046 struct nlattr *tb[IFLA_MAX+1]; in rtnl_dellink() local
2049 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy); in rtnl_dellink()
2053 if (tb[IFLA_IFNAME]) in rtnl_dellink()
2054 nla_strlcpy(ifname, tb[IFLA_IFNAME], IFNAMSIZ); in rtnl_dellink()
2059 else if (tb[IFLA_IFNAME]) in rtnl_dellink()
2061 else if (tb[IFLA_GROUP]) in rtnl_dellink()
2062 return rtnl_group_dellink(net, nla_get_u32(tb[IFLA_GROUP])); in rtnl_dellink()
2093 const struct rtnl_link_ops *ops, struct nlattr *tb[]) in rtnl_create_link() argument
2100 if (tb[IFLA_NUM_TX_QUEUES]) in rtnl_create_link()
2101 num_tx_queues = nla_get_u32(tb[IFLA_NUM_TX_QUEUES]); in rtnl_create_link()
2105 if (tb[IFLA_NUM_RX_QUEUES]) in rtnl_create_link()
2106 num_rx_queues = nla_get_u32(tb[IFLA_NUM_RX_QUEUES]); in rtnl_create_link()
2120 if (tb[IFLA_MTU]) in rtnl_create_link()
2121 dev->mtu = nla_get_u32(tb[IFLA_MTU]); in rtnl_create_link()
2122 if (tb[IFLA_ADDRESS]) { in rtnl_create_link()
2123 memcpy(dev->dev_addr, nla_data(tb[IFLA_ADDRESS]), in rtnl_create_link()
2124 nla_len(tb[IFLA_ADDRESS])); in rtnl_create_link()
2127 if (tb[IFLA_BROADCAST]) in rtnl_create_link()
2128 memcpy(dev->broadcast, nla_data(tb[IFLA_BROADCAST]), in rtnl_create_link()
2129 nla_len(tb[IFLA_BROADCAST])); in rtnl_create_link()
2130 if (tb[IFLA_TXQLEN]) in rtnl_create_link()
2131 dev->tx_queue_len = nla_get_u32(tb[IFLA_TXQLEN]); in rtnl_create_link()
2132 if (tb[IFLA_OPERSTATE]) in rtnl_create_link()
2133 set_operstate(dev, nla_get_u8(tb[IFLA_OPERSTATE])); in rtnl_create_link()
2134 if (tb[IFLA_LINKMODE]) in rtnl_create_link()
2135 dev->link_mode = nla_get_u8(tb[IFLA_LINKMODE]); in rtnl_create_link()
2136 if (tb[IFLA_GROUP]) in rtnl_create_link()
2137 dev_set_group(dev, nla_get_u32(tb[IFLA_GROUP])); in rtnl_create_link()
2149 struct nlattr **tb) in rtnl_group_changelink() argument
2156 err = do_setlink(skb, dev, ifm, tb, NULL, 0); in rtnl_group_changelink()
2175 struct nlattr *tb[IFLA_MAX+1]; in rtnl_newlink() local
2183 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy); in rtnl_newlink()
2187 if (tb[IFLA_IFNAME]) in rtnl_newlink()
2188 nla_strlcpy(ifname, tb[IFLA_IFNAME], IFNAMSIZ); in rtnl_newlink()
2208 err = validate_linkmsg(dev, tb); in rtnl_newlink()
2212 if (tb[IFLA_LINKINFO]) { in rtnl_newlink()
2214 tb[IFLA_LINKINFO], ifla_info_policy); in rtnl_newlink()
2245 err = ops->validate(tb, data); in rtnl_newlink()
2263 err = m_ops->slave_validate(tb, slave_data); in rtnl_newlink()
2282 err = ops->changelink(dev, tb, data); in rtnl_newlink()
2293 tb, slave_data); in rtnl_newlink()
2299 return do_setlink(skb, dev, ifm, tb, ifname, status); in rtnl_newlink()
2303 if (ifm->ifi_index == 0 && tb[IFLA_GROUP]) in rtnl_newlink()
2305 nla_get_u32(tb[IFLA_GROUP]), in rtnl_newlink()
2306 ifm, tb); in rtnl_newlink()
2310 if (tb[IFLA_MAP] || tb[IFLA_MASTER] || tb[IFLA_PROTINFO]) in rtnl_newlink()
2335 dest_net = rtnl_link_get_net(net, tb); in rtnl_newlink()
2343 if (tb[IFLA_LINK_NETNSID]) { in rtnl_newlink()
2344 int id = nla_get_s32(tb[IFLA_LINK_NETNSID]); in rtnl_newlink()
2357 name_assign_type, ops, tb); in rtnl_newlink()
2366 err = ops->newlink(link_net ? : net, dev, tb, data); in rtnl_newlink()
2415 struct nlattr *tb[IFLA_MAX+1]; in rtnl_getlink() local
2421 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy); in rtnl_getlink()
2425 if (tb[IFLA_IFNAME]) in rtnl_getlink()
2426 nla_strlcpy(ifname, tb[IFLA_IFNAME], IFNAMSIZ); in rtnl_getlink()
2428 if (tb[IFLA_EXT_MASK]) in rtnl_getlink()
2429 ext_filter_mask = nla_get_u32(tb[IFLA_EXT_MASK]); in rtnl_getlink()
2434 else if (tb[IFLA_IFNAME]) in rtnl_getlink()
2462 struct nlattr *tb[IFLA_MAX+1]; in rtnl_calcit() local
2471 if (nlmsg_parse(nlh, hdrlen, tb, IFLA_MAX, ifla_policy) >= 0) { in rtnl_calcit()
2472 if (tb[IFLA_EXT_MASK]) in rtnl_calcit()
2473 ext_filter_mask = nla_get_u32(tb[IFLA_EXT_MASK]); in rtnl_calcit()
2633 struct nlattr *tb[], in ndo_dflt_fdb_add() argument
2692 struct nlattr *tb[NDA_MAX+1]; in rtnl_fdb_add() local
2698 err = nlmsg_parse(nlh, sizeof(*ndm), tb, NDA_MAX, NULL); in rtnl_fdb_add()
2714 if (!tb[NDA_LLADDR] || nla_len(tb[NDA_LLADDR]) != ETH_ALEN) { in rtnl_fdb_add()
2719 addr = nla_data(tb[NDA_LLADDR]); in rtnl_fdb_add()
2721 err = fdb_vid_parse(tb[NDA_VLAN], &vid); in rtnl_fdb_add()
2733 err = ops->ndo_fdb_add(ndm, tb, dev, addr, vid, in rtnl_fdb_add()
2744 err = dev->netdev_ops->ndo_fdb_add(ndm, tb, dev, addr, in rtnl_fdb_add()
2748 err = ndo_dflt_fdb_add(ndm, tb, dev, addr, vid, in rtnl_fdb_add()
2764 struct nlattr *tb[], in ndo_dflt_fdb_del() argument
2791 struct nlattr *tb[NDA_MAX+1]; in rtnl_fdb_del() local
2800 err = nlmsg_parse(nlh, sizeof(*ndm), tb, NDA_MAX, NULL); in rtnl_fdb_del()
2816 if (!tb[NDA_LLADDR] || nla_len(tb[NDA_LLADDR]) != ETH_ALEN) { in rtnl_fdb_del()
2821 addr = nla_data(tb[NDA_LLADDR]); in rtnl_fdb_del()
2823 err = fdb_vid_parse(tb[NDA_VLAN], &vid); in rtnl_fdb_del()
2836 err = ops->ndo_fdb_del(ndm, tb, dev, addr, vid); in rtnl_fdb_del()
2847 err = dev->netdev_ops->ndo_fdb_del(ndm, tb, dev, addr, in rtnl_fdb_del()
2850 err = ndo_dflt_fdb_del(ndm, tb, dev, addr, vid); in rtnl_fdb_del()
2920 struct nlattr *tb[IFLA_MAX+1]; in rtnl_fdb_dump() local
2930 if (nlmsg_parse(cb->nlh, sizeof(struct ifinfomsg), tb, IFLA_MAX, in rtnl_fdb_dump()
2932 if (tb[IFLA_MASTER]) in rtnl_fdb_dump()
2933 br_idx = nla_get_u32(tb[IFLA_MASTER]); in rtnl_fdb_dump()