Lines Matching refs:tb

2387 				      bool strict_check, struct nlattr **tb,  in rtnl_valid_dump_ifinfo_req()  argument
2411 return nlmsg_parse_deprecated_strict(nlh, sizeof(*ifm), tb, in rtnl_valid_dump_ifinfo_req()
2426 return nlmsg_parse_deprecated(nlh, hdrlen, tb, IFLA_MAX, ifla_policy, in rtnl_valid_dump_ifinfo_req()
2437 struct nlattr *tb[IFLA_MAX+1]; in rtnl_dump_ifinfo() local
2449 err = rtnl_valid_dump_ifinfo_req(nlh, cb->strict_check, tb, extack); in rtnl_dump_ifinfo()
2458 if (!tb[i]) in rtnl_dump_ifinfo()
2464 netnsid = nla_get_s32(tb[i]); in rtnl_dump_ifinfo()
2474 ext_filter_mask = nla_get_u32(tb[i]); in rtnl_dump_ifinfo()
2477 master_idx = nla_get_u32(tb[i]); in rtnl_dump_ifinfo()
2480 kind_ops = linkinfo_to_kind_ops(tb[i], &ops_srcu_index); in rtnl_dump_ifinfo()
2522 int rtnl_nla_parse_ifinfomsg(struct nlattr **tb, const struct nlattr *nla_peer, in rtnl_nla_parse_ifinfomsg() argument
2539 return nla_parse_deprecated(tb, IFLA_MAX, attrs, len, ifla_policy, in rtnl_nla_parse_ifinfomsg()
2544 static struct net *rtnl_link_get_net_ifla(struct nlattr *tb[]) in rtnl_link_get_net_ifla() argument
2551 if (tb[IFLA_NET_NS_PID]) in rtnl_link_get_net_ifla()
2552 net = get_net_ns_by_pid(nla_get_u32(tb[IFLA_NET_NS_PID])); in rtnl_link_get_net_ifla()
2553 else if (tb[IFLA_NET_NS_FD]) in rtnl_link_get_net_ifla()
2554 net = get_net_ns_by_fd(nla_get_u32(tb[IFLA_NET_NS_FD])); in rtnl_link_get_net_ifla()
2559 struct net *rtnl_link_get_net(struct net *src_net, struct nlattr *tb[]) in rtnl_link_get_net() argument
2561 struct net *net = rtnl_link_get_net_ifla(tb); in rtnl_link_get_net()
2578 struct nlattr *tb[]) in rtnl_link_get_net_by_nlattr() argument
2582 if (tb[IFLA_NET_NS_PID] || tb[IFLA_NET_NS_FD]) in rtnl_link_get_net_by_nlattr()
2583 return rtnl_link_get_net(src_net, tb); in rtnl_link_get_net_by_nlattr()
2585 if (!tb[IFLA_TARGET_NETNSID]) in rtnl_link_get_net_by_nlattr()
2588 net = get_net_ns_by_id(src_net, nla_get_u32(tb[IFLA_TARGET_NETNSID])); in rtnl_link_get_net_by_nlattr()
2597 struct nlattr *tb[], int cap) in rtnl_link_get_net_capable() argument
2601 net = rtnl_link_get_net_by_nlattr(src_net, tb); in rtnl_link_get_net_capable()
2616 static int rtnl_ensure_unique_netns(struct nlattr *tb[], in rtnl_ensure_unique_netns() argument
2622 if (!tb[IFLA_NET_NS_PID] && !tb[IFLA_NET_NS_FD]) in rtnl_ensure_unique_netns()
2629 if (tb[IFLA_TARGET_NETNSID] && (tb[IFLA_NET_NS_PID] || tb[IFLA_NET_NS_FD])) in rtnl_ensure_unique_netns()
2632 if (tb[IFLA_NET_NS_PID] && (tb[IFLA_TARGET_NETNSID] || tb[IFLA_NET_NS_FD])) in rtnl_ensure_unique_netns()
2635 if (tb[IFLA_NET_NS_FD] && (tb[IFLA_TARGET_NETNSID] || tb[IFLA_NET_NS_PID])) in rtnl_ensure_unique_netns()
2658 static int validate_linkmsg(struct net_device *dev, struct nlattr *tb[], in validate_linkmsg() argument
2661 if (tb[IFLA_ADDRESS] && in validate_linkmsg()
2662 nla_len(tb[IFLA_ADDRESS]) < dev->addr_len) in validate_linkmsg()
2665 if (tb[IFLA_BROADCAST] && in validate_linkmsg()
2666 nla_len(tb[IFLA_BROADCAST]) < dev->addr_len) in validate_linkmsg()
2669 if (tb[IFLA_GSO_MAX_SIZE] && in validate_linkmsg()
2670 nla_get_u32(tb[IFLA_GSO_MAX_SIZE]) > dev->tso_max_size) { in validate_linkmsg()
2675 if (tb[IFLA_GSO_MAX_SEGS] && in validate_linkmsg()
2676 (nla_get_u32(tb[IFLA_GSO_MAX_SEGS]) > GSO_MAX_SEGS || in validate_linkmsg()
2677 nla_get_u32(tb[IFLA_GSO_MAX_SEGS]) > dev->tso_max_segs)) { in validate_linkmsg()
2682 if (tb[IFLA_GRO_MAX_SIZE] && in validate_linkmsg()
2683 nla_get_u32(tb[IFLA_GRO_MAX_SIZE]) > GRO_MAX_SIZE) { in validate_linkmsg()
2688 if (tb[IFLA_GSO_IPV4_MAX_SIZE] && in validate_linkmsg()
2689 nla_get_u32(tb[IFLA_GSO_IPV4_MAX_SIZE]) > dev->tso_max_size) { in validate_linkmsg()
2694 if (tb[IFLA_GRO_IPV4_MAX_SIZE] && in validate_linkmsg()
2695 nla_get_u32(tb[IFLA_GRO_IPV4_MAX_SIZE]) > GRO_MAX_SIZE) { in validate_linkmsg()
2700 if (tb[IFLA_AF_SPEC]) { in validate_linkmsg()
2704 nla_for_each_nested(af, tb[IFLA_AF_SPEC], rem) { in validate_linkmsg()
2745 static int do_setvfinfo(struct net_device *dev, struct nlattr **tb) in do_setvfinfo() argument
2750 if (tb[IFLA_VF_MAC]) { in do_setvfinfo()
2751 struct ifla_vf_mac *ivm = nla_data(tb[IFLA_VF_MAC]); in do_setvfinfo()
2763 if (tb[IFLA_VF_VLAN]) { in do_setvfinfo()
2764 struct ifla_vf_vlan *ivv = nla_data(tb[IFLA_VF_VLAN]); in do_setvfinfo()
2777 if (tb[IFLA_VF_VLAN_LIST]) { in do_setvfinfo()
2786 nla_for_each_nested(attr, tb[IFLA_VF_VLAN_LIST], rem) { in do_setvfinfo()
2808 if (tb[IFLA_VF_TX_RATE]) { in do_setvfinfo()
2809 struct ifla_vf_tx_rate *ivt = nla_data(tb[IFLA_VF_TX_RATE]); in do_setvfinfo()
2826 if (tb[IFLA_VF_RATE]) { in do_setvfinfo()
2827 struct ifla_vf_rate *ivt = nla_data(tb[IFLA_VF_RATE]); in do_setvfinfo()
2838 if (tb[IFLA_VF_SPOOFCHK]) { in do_setvfinfo()
2839 struct ifla_vf_spoofchk *ivs = nla_data(tb[IFLA_VF_SPOOFCHK]); in do_setvfinfo()
2851 if (tb[IFLA_VF_LINK_STATE]) { in do_setvfinfo()
2852 struct ifla_vf_link_state *ivl = nla_data(tb[IFLA_VF_LINK_STATE]); in do_setvfinfo()
2864 if (tb[IFLA_VF_RSS_QUERY_EN]) { in do_setvfinfo()
2868 ivrssq_en = nla_data(tb[IFLA_VF_RSS_QUERY_EN]); in do_setvfinfo()
2878 if (tb[IFLA_VF_TRUST]) { in do_setvfinfo()
2879 struct ifla_vf_trust *ivt = nla_data(tb[IFLA_VF_TRUST]); in do_setvfinfo()
2890 if (tb[IFLA_VF_IB_NODE_GUID]) { in do_setvfinfo()
2891 struct ifla_vf_guid *ivt = nla_data(tb[IFLA_VF_IB_NODE_GUID]); in do_setvfinfo()
2900 if (tb[IFLA_VF_IB_PORT_GUID]) { in do_setvfinfo()
2901 struct ifla_vf_guid *ivt = nla_data(tb[IFLA_VF_IB_PORT_GUID]); in do_setvfinfo()
3024 struct nlattr **tb, int status) in do_setlink() argument
3030 err = validate_linkmsg(dev, tb, extack); in do_setlink()
3034 if (tb[IFLA_IFNAME]) in do_setlink()
3035 nla_strscpy(ifname, tb[IFLA_IFNAME], IFNAMSIZ); in do_setlink()
3043 new_ifindex = nla_get_s32_default(tb[IFLA_NEW_IFINDEX], 0); in do_setlink()
3055 if (tb[IFLA_MAP]) { in do_setlink()
3069 u_map = nla_data(tb[IFLA_MAP]); in do_setlink()
3084 if (tb[IFLA_ADDRESS]) { in do_setlink()
3094 memcpy(ss.__data, nla_data(tb[IFLA_ADDRESS]), dev->addr_len); in do_setlink()
3105 if (tb[IFLA_MTU]) { in do_setlink()
3106 err = netif_set_mtu_ext(dev, nla_get_u32(tb[IFLA_MTU]), extack); in do_setlink()
3112 if (tb[IFLA_GROUP]) { in do_setlink()
3113 netif_set_group(dev, nla_get_u32(tb[IFLA_GROUP])); in do_setlink()
3129 if (tb[IFLA_IFALIAS]) { in do_setlink()
3130 err = netif_set_alias(dev, nla_data(tb[IFLA_IFALIAS]), in do_setlink()
3131 nla_len(tb[IFLA_IFALIAS])); in do_setlink()
3137 if (tb[IFLA_BROADCAST]) { in do_setlink()
3138 nla_memcpy(dev->broadcast, tb[IFLA_BROADCAST], dev->addr_len); in do_setlink()
3149 if (tb[IFLA_MASTER]) { in do_setlink()
3150 err = do_set_master(dev, nla_get_u32(tb[IFLA_MASTER]), extack); in do_setlink()
3156 if (tb[IFLA_CARRIER]) { in do_setlink()
3157 err = netif_change_carrier(dev, nla_get_u8(tb[IFLA_CARRIER])); in do_setlink()
3163 if (tb[IFLA_TXQLEN]) { in do_setlink()
3164 unsigned int value = nla_get_u32(tb[IFLA_TXQLEN]); in do_setlink()
3172 if (tb[IFLA_GSO_MAX_SIZE]) { in do_setlink()
3173 u32 max_size = nla_get_u32(tb[IFLA_GSO_MAX_SIZE]); in do_setlink()
3181 if (tb[IFLA_GSO_MAX_SEGS]) { in do_setlink()
3182 u32 max_segs = nla_get_u32(tb[IFLA_GSO_MAX_SEGS]); in do_setlink()
3190 if (tb[IFLA_GRO_MAX_SIZE]) { in do_setlink()
3191 u32 gro_max_size = nla_get_u32(tb[IFLA_GRO_MAX_SIZE]); in do_setlink()
3199 if (tb[IFLA_GSO_IPV4_MAX_SIZE]) { in do_setlink()
3200 u32 max_size = nla_get_u32(tb[IFLA_GSO_IPV4_MAX_SIZE]); in do_setlink()
3208 if (tb[IFLA_GRO_IPV4_MAX_SIZE]) { in do_setlink()
3209 u32 gro_max_size = nla_get_u32(tb[IFLA_GRO_IPV4_MAX_SIZE]); in do_setlink()
3217 if (tb[IFLA_OPERSTATE]) in do_setlink()
3218 set_operstate(dev, nla_get_u8(tb[IFLA_OPERSTATE])); in do_setlink()
3220 if (tb[IFLA_LINKMODE]) { in do_setlink()
3221 unsigned char value = nla_get_u8(tb[IFLA_LINKMODE]); in do_setlink()
3228 if (tb[IFLA_VFINFO_LIST]) { in do_setlink()
3233 nla_for_each_nested(attr, tb[IFLA_VFINFO_LIST], rem) { in do_setlink()
3253 if (tb[IFLA_VF_PORTS]) { in do_setlink()
3263 nla_for_each_nested(attr, tb[IFLA_VF_PORTS], rem) { in do_setlink()
3288 if (tb[IFLA_PORT_SELF]) { in do_setlink()
3292 tb[IFLA_PORT_SELF], in do_setlink()
3305 if (tb[IFLA_AF_SPEC]) { in do_setlink()
3309 nla_for_each_nested(af, tb[IFLA_AF_SPEC], rem) { in do_setlink()
3330 if (tb[IFLA_PROTO_DOWN] || tb[IFLA_PROTO_DOWN_REASON]) { in do_setlink()
3331 err = do_set_proto_down(dev, tb[IFLA_PROTO_DOWN], in do_setlink()
3332 tb[IFLA_PROTO_DOWN_REASON], extack); in do_setlink()
3338 if (tb[IFLA_XDP]) { in do_setlink()
3343 tb[IFLA_XDP], in do_setlink()
3403 struct nlattr *tb[]) in rtnl_dev_get() argument
3407 if (tb[IFLA_IFNAME]) in rtnl_dev_get()
3408 nla_strscpy(ifname, tb[IFLA_IFNAME], IFNAMSIZ); in rtnl_dev_get()
3409 else if (tb[IFLA_ALT_IFNAME]) in rtnl_dev_get()
3410 nla_strscpy(ifname, tb[IFLA_ALT_IFNAME], ALTIFNAMSIZ); in rtnl_dev_get()
3422 struct nlattr *tb[IFLA_MAX+1]; in rtnl_setlink() local
3428 err = nlmsg_parse_deprecated(nlh, sizeof(*ifm), tb, IFLA_MAX, in rtnl_setlink()
3433 err = rtnl_ensure_unique_netns(tb, extack, false); in rtnl_setlink()
3437 tgt_net = rtnl_link_get_net_capable(skb, net, tb, CAP_NET_ADMIN); in rtnl_setlink()
3451 else if (tb[IFLA_IFNAME] || tb[IFLA_ALT_IFNAME]) in rtnl_setlink()
3452 dev = rtnl_dev_get(net, tb); in rtnl_setlink()
3457 err = do_setlink(skb, dev, tgt_net, ifm, extack, tb, 0); in rtnl_setlink()
3525 struct nlattr *tb[IFLA_MAX+1]; in rtnl_dellink() local
3531 err = nlmsg_parse_deprecated(nlh, sizeof(*ifm), tb, IFLA_MAX, in rtnl_dellink()
3536 err = rtnl_ensure_unique_netns(tb, extack, true); in rtnl_dellink()
3540 if (tb[IFLA_TARGET_NETNSID]) { in rtnl_dellink()
3541 netnsid = nla_get_s32(tb[IFLA_TARGET_NETNSID]); in rtnl_dellink()
3551 else if (tb[IFLA_IFNAME] || tb[IFLA_ALT_IFNAME]) in rtnl_dellink()
3552 dev = rtnl_dev_get(tgt_net, tb); in rtnl_dellink()
3556 else if (ifm->ifi_index > 0 || tb[IFLA_IFNAME] || tb[IFLA_ALT_IFNAME]) in rtnl_dellink()
3558 else if (tb[IFLA_GROUP]) in rtnl_dellink()
3559 err = rtnl_group_dellink(tgt_net, nla_get_u32(tb[IFLA_GROUP])); in rtnl_dellink()
3599 struct nlattr *tb[], in rtnl_create_link() argument
3607 if (tb[IFLA_NUM_TX_QUEUES]) in rtnl_create_link()
3608 num_tx_queues = nla_get_u32(tb[IFLA_NUM_TX_QUEUES]); in rtnl_create_link()
3612 if (tb[IFLA_NUM_RX_QUEUES]) in rtnl_create_link()
3613 num_rx_queues = nla_get_u32(tb[IFLA_NUM_RX_QUEUES]); in rtnl_create_link()
3628 dev = ops->alloc(tb, ifname, name_assign_type, in rtnl_create_link()
3641 err = validate_linkmsg(dev, tb, extack); in rtnl_create_link()
3651 if (tb[IFLA_MTU]) { in rtnl_create_link()
3652 u32 mtu = nla_get_u32(tb[IFLA_MTU]); in rtnl_create_link()
3661 if (tb[IFLA_ADDRESS]) { in rtnl_create_link()
3662 __dev_addr_set(dev, nla_data(tb[IFLA_ADDRESS]), in rtnl_create_link()
3663 nla_len(tb[IFLA_ADDRESS])); in rtnl_create_link()
3666 if (tb[IFLA_BROADCAST]) in rtnl_create_link()
3667 memcpy(dev->broadcast, nla_data(tb[IFLA_BROADCAST]), in rtnl_create_link()
3668 nla_len(tb[IFLA_BROADCAST])); in rtnl_create_link()
3669 if (tb[IFLA_TXQLEN]) in rtnl_create_link()
3670 dev->tx_queue_len = nla_get_u32(tb[IFLA_TXQLEN]); in rtnl_create_link()
3671 if (tb[IFLA_OPERSTATE]) in rtnl_create_link()
3672 set_operstate(dev, nla_get_u8(tb[IFLA_OPERSTATE])); in rtnl_create_link()
3673 if (tb[IFLA_LINKMODE]) in rtnl_create_link()
3674 dev->link_mode = nla_get_u8(tb[IFLA_LINKMODE]); in rtnl_create_link()
3675 if (tb[IFLA_GROUP]) in rtnl_create_link()
3676 netif_set_group(dev, nla_get_u32(tb[IFLA_GROUP])); in rtnl_create_link()
3677 if (tb[IFLA_GSO_MAX_SIZE]) in rtnl_create_link()
3678 netif_set_gso_max_size(dev, nla_get_u32(tb[IFLA_GSO_MAX_SIZE])); in rtnl_create_link()
3679 if (tb[IFLA_GSO_MAX_SEGS]) in rtnl_create_link()
3680 netif_set_gso_max_segs(dev, nla_get_u32(tb[IFLA_GSO_MAX_SEGS])); in rtnl_create_link()
3681 if (tb[IFLA_GRO_MAX_SIZE]) in rtnl_create_link()
3682 netif_set_gro_max_size(dev, nla_get_u32(tb[IFLA_GRO_MAX_SIZE])); in rtnl_create_link()
3683 if (tb[IFLA_GSO_IPV4_MAX_SIZE]) in rtnl_create_link()
3684 netif_set_gso_ipv4_max_size(dev, nla_get_u32(tb[IFLA_GSO_IPV4_MAX_SIZE])); in rtnl_create_link()
3685 if (tb[IFLA_GRO_IPV4_MAX_SIZE]) in rtnl_create_link()
3686 netif_set_gro_ipv4_max_size(dev, nla_get_u32(tb[IFLA_GRO_IPV4_MAX_SIZE])); in rtnl_create_link()
3693 struct nlattr *tb[IFLA_MAX + 1]; member
3707 struct nlattr ** const tb = tbs->tb; in rtnl_changelink() local
3721 err = ops->changelink(dev, tb, data, extack); in rtnl_changelink()
3754 err = m_ops->slave_changelink(master_dev, dev, tb, slave_data, extack); in rtnl_changelink()
3761 return do_setlink(skb, dev, tgt_net, nlmsg_data(nlh), extack, tb, status); in rtnl_changelink()
3768 struct nlattr **tb) in rtnl_group_changelink() argument
3775 err = do_setlink(skb, dev, tgt_net, ifm, extack, tb, 0); in rtnl_group_changelink()
3789 struct nlattr **tb, struct nlattr **data, in rtnl_newlink_create() argument
3797 .tb = tb, in rtnl_newlink_create()
3808 if (tb[IFLA_IFNAME]) { in rtnl_newlink_create()
3809 nla_strscpy(ifname, tb[IFLA_IFNAME], IFNAMSIZ); in rtnl_newlink_create()
3815 dev = rtnl_create_link(tgt_net, ifname, name_assign_type, ops, tb, in rtnl_newlink_create()
3838 if (tb[IFLA_MASTER]) { in rtnl_newlink_create()
3839 err = do_set_master(dev, nla_get_u32(tb[IFLA_MASTER]), extack); in rtnl_newlink_create()
3865 struct nlattr *tb[IFLA_MAX + 1]; in rtnl_get_peer_net() local
3871 err = rtnl_nla_parse_ifinfomsg(tb, data[ops->peer_type], extack); in rtnl_get_peer_net()
3876 err = ops->validate(tb, NULL, extack); in rtnl_get_peer_net()
3881 return rtnl_link_get_net_ifla(tb); in rtnl_get_peer_net()
3892 struct nlattr ** const tb = tbs->tb; in __rtnl_newlink() local
3911 } else if (tb[IFLA_IFNAME] || tb[IFLA_ALT_IFNAME]) { in __rtnl_newlink()
3913 dev = rtnl_dev_get(device_net, tb); in __rtnl_newlink()
3926 if (link_specified || !tb[IFLA_GROUP]) in __rtnl_newlink()
3930 nla_get_u32(tb[IFLA_GROUP]), in __rtnl_newlink()
3931 ifm, extack, tb); in __rtnl_newlink()
3934 if (tb[IFLA_MAP] || tb[IFLA_PROTINFO]) in __rtnl_newlink()
3943 tb, data, extack); in __rtnl_newlink()
3950 struct nlattr **tb, **linkinfo, **data = NULL; in rtnl_newlink() local
3961 tb = tbs->tb; in rtnl_newlink()
3962 ret = nlmsg_parse_deprecated(nlh, sizeof(struct ifinfomsg), tb, in rtnl_newlink()
3967 ret = rtnl_ensure_unique_netns(tb, extack, false); in rtnl_newlink()
3972 if (tb[IFLA_LINKINFO]) { in rtnl_newlink()
3974 tb[IFLA_LINKINFO], in rtnl_newlink()
4014 ret = ops->validate(tb, data, extack); in rtnl_newlink()
4020 peer_net = rtnl_get_peer_net(ops, tb, data, extack); in rtnl_newlink()
4030 tgt_net = rtnl_link_get_net_capable(skb, sock_net(skb->sk), tb, CAP_NET_ADMIN); in rtnl_newlink()
4038 if (tb[IFLA_LINK_NETNSID]) { in rtnl_newlink()
4039 int id = nla_get_s32(tb[IFLA_LINK_NETNSID]); in rtnl_newlink()
4072 struct nlattr **tb, in rtnl_valid_getlink_req() argument
4085 return nlmsg_parse_deprecated(nlh, sizeof(*ifm), tb, IFLA_MAX, in rtnl_valid_getlink_req()
4094 err = nlmsg_parse_deprecated_strict(nlh, sizeof(*ifm), tb, IFLA_MAX, in rtnl_valid_getlink_req()
4100 if (!tb[i]) in rtnl_valid_getlink_req()
4124 struct nlattr *tb[IFLA_MAX+1]; in rtnl_getlink() local
4131 err = rtnl_valid_getlink_req(skb, nlh, tb, extack); in rtnl_getlink()
4135 err = rtnl_ensure_unique_netns(tb, extack, true); in rtnl_getlink()
4139 if (tb[IFLA_TARGET_NETNSID]) { in rtnl_getlink()
4140 netnsid = nla_get_s32(tb[IFLA_TARGET_NETNSID]); in rtnl_getlink()
4146 if (tb[IFLA_EXT_MASK]) in rtnl_getlink()
4147 ext_filter_mask = nla_get_u32(tb[IFLA_EXT_MASK]); in rtnl_getlink()
4153 else if (tb[IFLA_IFNAME] || tb[IFLA_ALT_IFNAME]) in rtnl_getlink()
4154 dev = rtnl_dev_get(tgt_net, tb); in rtnl_getlink()
4238 struct nlattr *tb[IFLA_MAX + 1]; in rtnl_linkprop() local
4245 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy, extack); in rtnl_linkprop()
4249 err = rtnl_ensure_unique_netns(tb, extack, true); in rtnl_linkprop()
4256 else if (tb[IFLA_IFNAME] || tb[IFLA_ALT_IFNAME]) in rtnl_linkprop()
4257 dev = rtnl_dev_get(net, tb); in rtnl_linkprop()
4264 if (!tb[IFLA_PROP_LIST]) in rtnl_linkprop()
4267 nla_for_each_nested(attr, tb[IFLA_PROP_LIST], rem) { in rtnl_linkprop()
4526 struct nlattr *tb[], in ndo_dflt_fdb_add() argument
4541 if (tb[NDA_FLAGS_EXT]) { in ndo_dflt_fdb_add()
4591 struct nlattr *tb[NDA_MAX+1]; in rtnl_fdb_add() local
4597 err = nlmsg_parse_deprecated(nlh, sizeof(*ndm), tb, NDA_MAX, NULL, in rtnl_fdb_add()
4614 if (!tb[NDA_LLADDR] || nla_len(tb[NDA_LLADDR]) != ETH_ALEN) { in rtnl_fdb_add()
4624 addr = nla_data(tb[NDA_LLADDR]); in rtnl_fdb_add()
4626 err = fdb_vid_parse(tb[NDA_VLAN], &vid, extack); in rtnl_fdb_add()
4639 err = ops->ndo_fdb_add(ndm, tb, dev, addr, vid, in rtnl_fdb_add()
4652 err = dev->netdev_ops->ndo_fdb_add(ndm, tb, dev, addr, in rtnl_fdb_add()
4657 err = ndo_dflt_fdb_add(ndm, tb, dev, addr, vid, in rtnl_fdb_add()
4674 struct nlattr *tb[], in ndo_dflt_fdb_del() argument
4704 struct nlattr *tb[NDA_MAX+1]; in rtnl_fdb_del() local
4714 err = nlmsg_parse_deprecated(nlh, sizeof(*ndm), tb, NDA_MAX, in rtnl_fdb_del()
4720 err = nlmsg_parse(nlh, sizeof(*ndm), tb, NDA_MAX, NULL, extack); in rtnl_fdb_del()
4738 if (!tb[NDA_LLADDR] || nla_len(tb[NDA_LLADDR]) != ETH_ALEN) { in rtnl_fdb_del()
4742 addr = nla_data(tb[NDA_LLADDR]); in rtnl_fdb_del()
4744 err = fdb_vid_parse(tb[NDA_VLAN], &vid, extack); in rtnl_fdb_del()
4765 err = ops->ndo_fdb_del(ndm, tb, dev, addr, vid, in rtnl_fdb_del()
4785 err = ops->ndo_fdb_del(ndm, tb, dev, addr, vid, in rtnl_fdb_del()
4788 err = ndo_dflt_fdb_del(ndm, tb, dev, addr, vid); in rtnl_fdb_del()
4874 struct nlattr *tb[NDA_MAX + 1]; in valid_fdb_dump_strict() local
4890 err = nlmsg_parse_deprecated_strict(nlh, sizeof(struct ndmsg), tb, in valid_fdb_dump_strict()
4897 if (!tb[i]) in valid_fdb_dump_strict()
4902 if (nla_len(tb[i]) != sizeof(u32)) { in valid_fdb_dump_strict()
4906 *brport_idx = nla_get_u32(tb[NDA_IFINDEX]); in valid_fdb_dump_strict()
4909 if (nla_len(tb[i]) != sizeof(u32)) { in valid_fdb_dump_strict()
4913 *br_idx = nla_get_u32(tb[NDA_MASTER]); in valid_fdb_dump_strict()
4928 struct nlattr *tb[IFLA_MAX+1]; in valid_fdb_dump_legacy() local
4944 tb, IFLA_MAX, ifla_policy, in valid_fdb_dump_legacy()
4949 if (tb[IFLA_MASTER]) in valid_fdb_dump_legacy()
4950 *br_idx = nla_get_u32(tb[IFLA_MASTER]); in valid_fdb_dump_legacy()
5039 struct nlattr **tb, u8 *ndm_flags, in valid_fdb_get_strict() argument
5063 err = nlmsg_parse_deprecated_strict(nlh, sizeof(struct ndmsg), tb, in valid_fdb_get_strict()
5071 if (!tb[i]) in valid_fdb_get_strict()
5076 *br_idx = nla_get_u32(tb[i]); in valid_fdb_get_strict()
5079 if (nla_len(tb[i]) != ETH_ALEN) { in valid_fdb_get_strict()
5083 *addr = nla_data(tb[i]); in valid_fdb_get_strict()
5086 err = fdb_vid_parse(tb[i], vid, extack); in valid_fdb_get_strict()
5107 struct nlattr *tb[NDA_MAX + 1]; in rtnl_fdb_get() local
5116 err = valid_fdb_get_strict(nlh, tb, &ndm_flags, &br_idx, in rtnl_fdb_get()
5185 err = ops->ndo_fdb_get(skb, tb, dev, addr, vid, in rtnl_fdb_get()
5312 struct nlattr *tb[IFLA_MAX+1]; in valid_bridge_getlink_req() local
5332 tb, IFLA_MAX, ifla_policy, in valid_bridge_getlink_req()
5336 tb, IFLA_MAX, ifla_policy, in valid_bridge_getlink_req()
5344 if (!tb[i]) in valid_bridge_getlink_req()
5349 *filter_mask = nla_get_u32(tb[i]); in valid_bridge_getlink_req()
6160 struct nlattr *tb[IFLA_STATS_MAX + 1]; in rtnl_stats_get_parse_filters() local
6164 err = nla_parse_nested(tb, IFLA_STATS_MAX, ifla_filters, in rtnl_stats_get_parse_filters()
6170 if (tb[at]) { in rtnl_stats_get_parse_filters()
6175 filters->mask[at] = nla_get_u32(tb[at]); in rtnl_stats_get_parse_filters()
6187 struct nlattr *tb[IFLA_STATS_GETSET_MAX + 1]; in rtnl_stats_get_parse() local
6195 err = nlmsg_parse(nlh, sizeof(struct if_stats_msg), tb, in rtnl_stats_get_parse()
6200 if (tb[IFLA_STATS_GET_FILTERS]) { in rtnl_stats_get_parse()
6201 err = rtnl_stats_get_parse_filters(tb[IFLA_STATS_GET_FILTERS], in rtnl_stats_get_parse()
6385 struct nlattr *tb[IFLA_STATS_GETSET_MAX + 1]; in rtnl_stats_set() local
6416 err = nlmsg_parse(nlh, sizeof(*ifsm), tb, IFLA_STATS_GETSET_MAX, in rtnl_stats_set()
6421 if (tb[IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS]) { in rtnl_stats_set()
6422 u8 req = nla_get_u8(tb[IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS]); in rtnl_stats_set()
6566 struct nlattr *tb[MDBA_GET_ENTRY_MAX + 1]; in rtnl_mdb_get() local
6572 err = nlmsg_parse(nlh, sizeof(struct br_port_msg), tb, in rtnl_mdb_get()
6589 if (NL_REQ_ATTR_CHECK(extack, NULL, tb, MDBA_GET_ENTRY)) { in rtnl_mdb_get()
6599 return dev->netdev_ops->ndo_mdb_get(dev, tb, NETLINK_CB(in_skb).portid, in rtnl_mdb_get()
6669 struct nlattr *tb[MDBA_SET_ENTRY_MAX + 1]; in rtnl_mdb_add() local
6675 err = nlmsg_parse_deprecated(nlh, sizeof(*bpm), tb, in rtnl_mdb_add()
6692 if (NL_REQ_ATTR_CHECK(extack, NULL, tb, MDBA_SET_ENTRY)) { in rtnl_mdb_add()
6702 return dev->netdev_ops->ndo_mdb_add(dev, tb, nlh->nlmsg_flags, extack); in rtnl_mdb_add()
6750 struct nlattr *tb[MDBA_SET_ENTRY_MAX + 1]; in rtnl_mdb_del() local
6757 err = nlmsg_parse_deprecated(nlh, sizeof(*bpm), tb, in rtnl_mdb_del()
6761 err = nlmsg_parse(nlh, sizeof(*bpm), tb, MDBA_SET_ENTRY_MAX, in rtnl_mdb_del()
6778 if (NL_REQ_ATTR_CHECK(extack, NULL, tb, MDBA_SET_ENTRY)) { in rtnl_mdb_del()
6788 return dev->netdev_ops->ndo_mdb_del_bulk(dev, tb, extack); in rtnl_mdb_del()
6796 return dev->netdev_ops->ndo_mdb_del(dev, tb, extack); in rtnl_mdb_del()