Lines Matching refs:tb
1321 struct nlattr *tb[IFLA_MAX+1]; in rtnl_dump_ifinfo() local
1341 if (nlmsg_parse(cb->nlh, hdrlen, tb, IFLA_MAX, ifla_policy) >= 0) { in rtnl_dump_ifinfo()
1343 if (tb[IFLA_EXT_MASK]) in rtnl_dump_ifinfo()
1344 ext_filter_mask = nla_get_u32(tb[IFLA_EXT_MASK]); in rtnl_dump_ifinfo()
1378 int rtnl_nla_parse_ifla(struct nlattr **tb, const struct nlattr *head, int len) in rtnl_nla_parse_ifla() argument
1380 return nla_parse(tb, IFLA_MAX, head, len, ifla_policy); in rtnl_nla_parse_ifla()
1384 struct net *rtnl_link_get_net(struct net *src_net, struct nlattr *tb[]) in rtnl_link_get_net() argument
1390 if (tb[IFLA_NET_NS_PID]) in rtnl_link_get_net()
1391 net = get_net_ns_by_pid(nla_get_u32(tb[IFLA_NET_NS_PID])); in rtnl_link_get_net()
1392 else if (tb[IFLA_NET_NS_FD]) in rtnl_link_get_net()
1393 net = get_net_ns_by_fd(nla_get_u32(tb[IFLA_NET_NS_FD])); in rtnl_link_get_net()
1400 static int validate_linkmsg(struct net_device *dev, struct nlattr *tb[]) in validate_linkmsg() argument
1403 if (tb[IFLA_ADDRESS] && in validate_linkmsg()
1404 nla_len(tb[IFLA_ADDRESS]) < dev->addr_len) in validate_linkmsg()
1407 if (tb[IFLA_BROADCAST] && in validate_linkmsg()
1408 nla_len(tb[IFLA_BROADCAST]) < dev->addr_len) in validate_linkmsg()
1412 if (tb[IFLA_AF_SPEC]) { in validate_linkmsg()
1416 nla_for_each_nested(af, tb[IFLA_AF_SPEC], rem) { in validate_linkmsg()
1436 static int do_setvfinfo(struct net_device *dev, struct nlattr **tb) in do_setvfinfo() argument
1441 if (tb[IFLA_VF_MAC]) { in do_setvfinfo()
1442 struct ifla_vf_mac *ivm = nla_data(tb[IFLA_VF_MAC]); in do_setvfinfo()
1452 if (tb[IFLA_VF_VLAN]) { in do_setvfinfo()
1453 struct ifla_vf_vlan *ivv = nla_data(tb[IFLA_VF_VLAN]); in do_setvfinfo()
1463 if (tb[IFLA_VF_TX_RATE]) { in do_setvfinfo()
1464 struct ifla_vf_tx_rate *ivt = nla_data(tb[IFLA_VF_TX_RATE]); in do_setvfinfo()
1482 if (tb[IFLA_VF_RATE]) { in do_setvfinfo()
1483 struct ifla_vf_rate *ivt = nla_data(tb[IFLA_VF_RATE]); in do_setvfinfo()
1494 if (tb[IFLA_VF_SPOOFCHK]) { in do_setvfinfo()
1495 struct ifla_vf_spoofchk *ivs = nla_data(tb[IFLA_VF_SPOOFCHK]); in do_setvfinfo()
1505 if (tb[IFLA_VF_LINK_STATE]) { in do_setvfinfo()
1506 struct ifla_vf_link_state *ivl = nla_data(tb[IFLA_VF_LINK_STATE]); in do_setvfinfo()
1516 if (tb[IFLA_VF_RSS_QUERY_EN]) { in do_setvfinfo()
1520 ivrssq_en = nla_data(tb[IFLA_VF_RSS_QUERY_EN]); in do_setvfinfo()
1571 struct nlattr **tb, char *ifname, int status) in do_setlink() argument
1576 if (tb[IFLA_NET_NS_PID] || tb[IFLA_NET_NS_FD]) { in do_setlink()
1577 struct net *net = rtnl_link_get_net(dev_net(dev), tb); in do_setlink()
1594 if (tb[IFLA_MAP]) { in do_setlink()
1608 u_map = nla_data(tb[IFLA_MAP]); in do_setlink()
1623 if (tb[IFLA_ADDRESS]) { in do_setlink()
1634 memcpy(sa->sa_data, nla_data(tb[IFLA_ADDRESS]), in do_setlink()
1643 if (tb[IFLA_MTU]) { in do_setlink()
1644 err = dev_set_mtu(dev, nla_get_u32(tb[IFLA_MTU])); in do_setlink()
1650 if (tb[IFLA_GROUP]) { in do_setlink()
1651 dev_set_group(dev, nla_get_u32(tb[IFLA_GROUP])); in do_setlink()
1667 if (tb[IFLA_IFALIAS]) { in do_setlink()
1668 err = dev_set_alias(dev, nla_data(tb[IFLA_IFALIAS]), in do_setlink()
1669 nla_len(tb[IFLA_IFALIAS])); in do_setlink()
1675 if (tb[IFLA_BROADCAST]) { in do_setlink()
1676 nla_memcpy(dev->broadcast, tb[IFLA_BROADCAST], dev->addr_len); in do_setlink()
1686 if (tb[IFLA_MASTER]) { in do_setlink()
1687 err = do_set_master(dev, nla_get_u32(tb[IFLA_MASTER])); in do_setlink()
1693 if (tb[IFLA_CARRIER]) { in do_setlink()
1694 err = dev_change_carrier(dev, nla_get_u8(tb[IFLA_CARRIER])); in do_setlink()
1700 if (tb[IFLA_TXQLEN]) { in do_setlink()
1701 unsigned long value = nla_get_u32(tb[IFLA_TXQLEN]); in do_setlink()
1709 if (tb[IFLA_OPERSTATE]) in do_setlink()
1710 set_operstate(dev, nla_get_u8(tb[IFLA_OPERSTATE])); in do_setlink()
1712 if (tb[IFLA_LINKMODE]) { in do_setlink()
1713 unsigned char value = nla_get_u8(tb[IFLA_LINKMODE]); in do_setlink()
1722 if (tb[IFLA_VFINFO_LIST]) { in do_setlink()
1727 nla_for_each_nested(attr, tb[IFLA_VFINFO_LIST], rem) { in do_setlink()
1745 if (tb[IFLA_VF_PORTS]) { in do_setlink()
1755 nla_for_each_nested(attr, tb[IFLA_VF_PORTS], rem) { in do_setlink()
1775 if (tb[IFLA_PORT_SELF]) { in do_setlink()
1779 tb[IFLA_PORT_SELF], ifla_port_policy); in do_setlink()
1791 if (tb[IFLA_AF_SPEC]) { in do_setlink()
1795 nla_for_each_nested(af, tb[IFLA_AF_SPEC], rem) { in do_setlink()
1829 struct nlattr *tb[IFLA_MAX+1]; in rtnl_setlink() local
1832 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy); in rtnl_setlink()
1836 if (tb[IFLA_IFNAME]) in rtnl_setlink()
1837 nla_strlcpy(ifname, tb[IFLA_IFNAME], IFNAMSIZ); in rtnl_setlink()
1845 else if (tb[IFLA_IFNAME]) in rtnl_setlink()
1855 err = validate_linkmsg(dev, tb); in rtnl_setlink()
1859 err = do_setlink(skb, dev, ifm, tb, ifname, 0); in rtnl_setlink()
1907 struct nlattr *tb[IFLA_MAX+1]; in rtnl_dellink() local
1911 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy); in rtnl_dellink()
1915 if (tb[IFLA_IFNAME]) in rtnl_dellink()
1916 nla_strlcpy(ifname, tb[IFLA_IFNAME], IFNAMSIZ); in rtnl_dellink()
1921 else if (tb[IFLA_IFNAME]) in rtnl_dellink()
1923 else if (tb[IFLA_GROUP]) in rtnl_dellink()
1924 return rtnl_group_dellink(net, nla_get_u32(tb[IFLA_GROUP])); in rtnl_dellink()
1961 const struct rtnl_link_ops *ops, struct nlattr *tb[]) in rtnl_create_link() argument
1968 if (tb[IFLA_NUM_TX_QUEUES]) in rtnl_create_link()
1969 num_tx_queues = nla_get_u32(tb[IFLA_NUM_TX_QUEUES]); in rtnl_create_link()
1973 if (tb[IFLA_NUM_RX_QUEUES]) in rtnl_create_link()
1974 num_rx_queues = nla_get_u32(tb[IFLA_NUM_RX_QUEUES]); in rtnl_create_link()
1988 if (tb[IFLA_MTU]) in rtnl_create_link()
1989 dev->mtu = nla_get_u32(tb[IFLA_MTU]); in rtnl_create_link()
1990 if (tb[IFLA_ADDRESS]) { in rtnl_create_link()
1991 memcpy(dev->dev_addr, nla_data(tb[IFLA_ADDRESS]), in rtnl_create_link()
1992 nla_len(tb[IFLA_ADDRESS])); in rtnl_create_link()
1995 if (tb[IFLA_BROADCAST]) in rtnl_create_link()
1996 memcpy(dev->broadcast, nla_data(tb[IFLA_BROADCAST]), in rtnl_create_link()
1997 nla_len(tb[IFLA_BROADCAST])); in rtnl_create_link()
1998 if (tb[IFLA_TXQLEN]) in rtnl_create_link()
1999 dev->tx_queue_len = nla_get_u32(tb[IFLA_TXQLEN]); in rtnl_create_link()
2000 if (tb[IFLA_OPERSTATE]) in rtnl_create_link()
2001 set_operstate(dev, nla_get_u8(tb[IFLA_OPERSTATE])); in rtnl_create_link()
2002 if (tb[IFLA_LINKMODE]) in rtnl_create_link()
2003 dev->link_mode = nla_get_u8(tb[IFLA_LINKMODE]); in rtnl_create_link()
2004 if (tb[IFLA_GROUP]) in rtnl_create_link()
2005 dev_set_group(dev, nla_get_u32(tb[IFLA_GROUP])); in rtnl_create_link()
2017 struct nlattr **tb) in rtnl_group_changelink() argument
2024 err = do_setlink(skb, dev, ifm, tb, NULL, 0); in rtnl_group_changelink()
2043 struct nlattr *tb[IFLA_MAX+1]; in rtnl_newlink() local
2051 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy); in rtnl_newlink()
2055 if (tb[IFLA_IFNAME]) in rtnl_newlink()
2056 nla_strlcpy(ifname, tb[IFLA_IFNAME], IFNAMSIZ); in rtnl_newlink()
2076 err = validate_linkmsg(dev, tb); in rtnl_newlink()
2080 if (tb[IFLA_LINKINFO]) { in rtnl_newlink()
2082 tb[IFLA_LINKINFO], ifla_info_policy); in rtnl_newlink()
2113 err = ops->validate(tb, data); in rtnl_newlink()
2131 err = m_ops->slave_validate(tb, slave_data); in rtnl_newlink()
2150 err = ops->changelink(dev, tb, data); in rtnl_newlink()
2161 tb, slave_data); in rtnl_newlink()
2167 return do_setlink(skb, dev, ifm, tb, ifname, status); in rtnl_newlink()
2171 if (ifm->ifi_index == 0 && tb[IFLA_GROUP]) in rtnl_newlink()
2173 nla_get_u32(tb[IFLA_GROUP]), in rtnl_newlink()
2174 ifm, tb); in rtnl_newlink()
2178 if (tb[IFLA_MAP] || tb[IFLA_MASTER] || tb[IFLA_PROTINFO]) in rtnl_newlink()
2203 dest_net = rtnl_link_get_net(net, tb); in rtnl_newlink()
2211 if (tb[IFLA_LINK_NETNSID]) { in rtnl_newlink()
2212 int id = nla_get_s32(tb[IFLA_LINK_NETNSID]); in rtnl_newlink()
2225 name_assign_type, ops, tb); in rtnl_newlink()
2234 err = ops->newlink(link_net ? : net, dev, tb, data); in rtnl_newlink()
2283 struct nlattr *tb[IFLA_MAX+1]; in rtnl_getlink() local
2289 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy); in rtnl_getlink()
2293 if (tb[IFLA_IFNAME]) in rtnl_getlink()
2294 nla_strlcpy(ifname, tb[IFLA_IFNAME], IFNAMSIZ); in rtnl_getlink()
2296 if (tb[IFLA_EXT_MASK]) in rtnl_getlink()
2297 ext_filter_mask = nla_get_u32(tb[IFLA_EXT_MASK]); in rtnl_getlink()
2302 else if (tb[IFLA_IFNAME]) in rtnl_getlink()
2330 struct nlattr *tb[IFLA_MAX+1]; in rtnl_calcit() local
2339 if (nlmsg_parse(nlh, hdrlen, tb, IFLA_MAX, ifla_policy) >= 0) { in rtnl_calcit()
2340 if (tb[IFLA_EXT_MASK]) in rtnl_calcit()
2341 ext_filter_mask = nla_get_u32(tb[IFLA_EXT_MASK]); in rtnl_calcit()
2501 struct nlattr *tb[], in ndo_dflt_fdb_add() argument
2560 struct nlattr *tb[NDA_MAX+1]; in rtnl_fdb_add() local
2566 err = nlmsg_parse(nlh, sizeof(*ndm), tb, NDA_MAX, NULL); in rtnl_fdb_add()
2582 if (!tb[NDA_LLADDR] || nla_len(tb[NDA_LLADDR]) != ETH_ALEN) { in rtnl_fdb_add()
2587 addr = nla_data(tb[NDA_LLADDR]); in rtnl_fdb_add()
2589 err = fdb_vid_parse(tb[NDA_VLAN], &vid); in rtnl_fdb_add()
2601 err = ops->ndo_fdb_add(ndm, tb, dev, addr, vid, in rtnl_fdb_add()
2612 err = dev->netdev_ops->ndo_fdb_add(ndm, tb, dev, addr, in rtnl_fdb_add()
2616 err = ndo_dflt_fdb_add(ndm, tb, dev, addr, vid, in rtnl_fdb_add()
2632 struct nlattr *tb[], in ndo_dflt_fdb_del() argument
2659 struct nlattr *tb[NDA_MAX+1]; in rtnl_fdb_del() local
2668 err = nlmsg_parse(nlh, sizeof(*ndm), tb, NDA_MAX, NULL); in rtnl_fdb_del()
2684 if (!tb[NDA_LLADDR] || nla_len(tb[NDA_LLADDR]) != ETH_ALEN) { in rtnl_fdb_del()
2689 addr = nla_data(tb[NDA_LLADDR]); in rtnl_fdb_del()
2691 err = fdb_vid_parse(tb[NDA_VLAN], &vid); in rtnl_fdb_del()
2704 err = ops->ndo_fdb_del(ndm, tb, dev, addr, vid); in rtnl_fdb_del()
2715 err = dev->netdev_ops->ndo_fdb_del(ndm, tb, dev, addr, in rtnl_fdb_del()
2718 err = ndo_dflt_fdb_del(ndm, tb, dev, addr, vid); in rtnl_fdb_del()
2788 struct nlattr *tb[IFLA_MAX+1]; in rtnl_fdb_dump() local
2798 if (nlmsg_parse(cb->nlh, sizeof(struct ifinfomsg), tb, IFLA_MAX, in rtnl_fdb_dump()
2800 if (tb[IFLA_MASTER]) in rtnl_fdb_dump()
2801 br_idx = nla_get_u32(tb[IFLA_MASTER]); in rtnl_fdb_dump()