Lines Matching refs:ifm

927 					   const struct ifinfomsg *ifm)  in rtnl_dev_combine_flags()  argument
929 unsigned int flags = ifm->ifi_flags; in rtnl_dev_combine_flags()
932 if (ifm->ifi_change) in rtnl_dev_combine_flags()
933 flags = (flags & ifm->ifi_change) | in rtnl_dev_combine_flags()
934 (rtnl_dev_get_flags(dev) & ~ifm->ifi_change); in rtnl_dev_combine_flags()
1813 struct ifinfomsg *ifm; in rtnl_fill_ifinfo() local
1818 nlh = nlmsg_put(skb, pid, seq, type, sizeof(*ifm), flags); in rtnl_fill_ifinfo()
1822 ifm = nlmsg_data(nlh); in rtnl_fill_ifinfo()
1823 ifm->ifi_family = AF_UNSPEC; in rtnl_fill_ifinfo()
1824 ifm->__ifi_pad = 0; in rtnl_fill_ifinfo()
1825 ifm->ifi_type = dev->type; in rtnl_fill_ifinfo()
1826 ifm->ifi_index = dev->ifindex; in rtnl_fill_ifinfo()
1827 ifm->ifi_flags = dev_get_flags(dev); in rtnl_fill_ifinfo()
1828 ifm->ifi_change = change; in rtnl_fill_ifinfo()
2160 struct ifinfomsg *ifm; in rtnl_valid_dump_ifinfo_req() local
2162 if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*ifm))) { in rtnl_valid_dump_ifinfo_req()
2167 ifm = nlmsg_data(nlh); in rtnl_valid_dump_ifinfo_req()
2168 if (ifm->__ifi_pad || ifm->ifi_type || ifm->ifi_flags || in rtnl_valid_dump_ifinfo_req()
2169 ifm->ifi_change) { in rtnl_valid_dump_ifinfo_req()
2173 if (ifm->ifi_index) { in rtnl_valid_dump_ifinfo_req()
2178 return nlmsg_parse_deprecated_strict(nlh, sizeof(*ifm), tb, in rtnl_valid_dump_ifinfo_req()
2777 struct net_device *dev, struct ifinfomsg *ifm, in do_setlink() argument
2881 if (ifm->ifi_index > 0 && ifname[0]) { in do_setlink()
2901 if (ifm->ifi_flags || ifm->ifi_change) { in do_setlink()
2902 err = dev_change_flags(dev, rtnl_dev_combine_flags(dev, ifm), in do_setlink()
3173 struct ifinfomsg *ifm; in rtnl_setlink() local
3178 err = nlmsg_parse_deprecated(nlh, sizeof(*ifm), tb, IFLA_MAX, in rtnl_setlink()
3188 ifm = nlmsg_data(nlh); in rtnl_setlink()
3189 if (ifm->ifi_index > 0) in rtnl_setlink()
3190 dev = __dev_get_by_index(net, ifm->ifi_index); in rtnl_setlink()
3205 err = do_setlink(skb, dev, ifm, extack, tb, 0); in rtnl_setlink()
3269 struct ifinfomsg *ifm; in rtnl_dellink() local
3274 err = nlmsg_parse_deprecated(nlh, sizeof(*ifm), tb, IFLA_MAX, in rtnl_dellink()
3291 ifm = nlmsg_data(nlh); in rtnl_dellink()
3292 if (ifm->ifi_index > 0) in rtnl_dellink()
3293 dev = __dev_get_by_index(tgt_net, ifm->ifi_index); in rtnl_dellink()
3302 if (tb[IFLA_IFNAME] || tb[IFLA_ALT_IFNAME] || ifm->ifi_index > 0) in rtnl_dellink()
3317 int rtnl_configure_link(struct net_device *dev, const struct ifinfomsg *ifm, in rtnl_configure_link() argument
3324 if (ifm && (ifm->ifi_flags || ifm->ifi_change)) { in rtnl_configure_link()
3325 err = __dev_change_flags(dev, rtnl_dev_combine_flags(dev, ifm), in rtnl_configure_link()
3439 struct ifinfomsg *ifm, in rtnl_group_changelink() argument
3451 err = do_setlink(skb, dev, ifm, extack, tb, 0); in rtnl_group_changelink()
3460 static int rtnl_newlink_create(struct sk_buff *skb, struct ifinfomsg *ifm, in rtnl_newlink_create() argument
3511 dev->ifindex = ifm->ifi_index; in rtnl_newlink_create()
3522 err = rtnl_configure_link(dev, ifm, portid, nlh); in rtnl_newlink_create()
3571 struct ifinfomsg *ifm; in __rtnl_newlink() local
3579 err = nlmsg_parse_deprecated(nlh, sizeof(*ifm), tb, IFLA_MAX, in __rtnl_newlink()
3588 ifm = nlmsg_data(nlh); in __rtnl_newlink()
3589 if (ifm->ifi_index > 0) { in __rtnl_newlink()
3591 dev = __dev_get_by_index(net, ifm->ifi_index); in __rtnl_newlink()
3592 } else if (ifm->ifi_index < 0) { in __rtnl_newlink()
3700 return do_setlink(skb, dev, ifm, extack, tb, status); in __rtnl_newlink()
3712 ifm, extack, tb); in __rtnl_newlink()
3734 return rtnl_newlink_create(skb, ifm, ops, nlh, tb, data, extack); in __rtnl_newlink()
3757 struct ifinfomsg *ifm; in rtnl_valid_getlink_req() local
3760 if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*ifm))) { in rtnl_valid_getlink_req()
3766 return nlmsg_parse_deprecated(nlh, sizeof(*ifm), tb, IFLA_MAX, in rtnl_valid_getlink_req()
3769 ifm = nlmsg_data(nlh); in rtnl_valid_getlink_req()
3770 if (ifm->__ifi_pad || ifm->ifi_type || ifm->ifi_flags || in rtnl_valid_getlink_req()
3771 ifm->ifi_change) { in rtnl_valid_getlink_req()
3776 err = nlmsg_parse_deprecated_strict(nlh, sizeof(*ifm), tb, IFLA_MAX, in rtnl_valid_getlink_req()
3805 struct ifinfomsg *ifm; in rtnl_getlink() local
3832 ifm = nlmsg_data(nlh); in rtnl_getlink()
3833 if (ifm->ifi_index > 0) in rtnl_getlink()
3834 dev = __dev_get_by_index(tgt_net, ifm->ifi_index); in rtnl_getlink()
3914 struct ifinfomsg *ifm; in rtnl_linkprop() local
3919 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy, extack); in rtnl_linkprop()
3927 ifm = nlmsg_data(nlh); in rtnl_linkprop()
3928 if (ifm->ifi_index > 0) in rtnl_linkprop()
3929 dev = __dev_get_by_index(net, ifm->ifi_index); in rtnl_linkprop()
4608 struct ifinfomsg *ifm; in valid_fdb_dump_legacy() local
4620 ifm = nlmsg_data(nlh); in valid_fdb_dump_legacy()
4621 *brport_idx = ifm->ifi_index; in valid_fdb_dump_legacy()
4902 struct ifinfomsg *ifm; in ndo_dflt_bridge_getlink() local
4909 nlh = nlmsg_put(skb, pid, seq, RTM_NEWLINK, sizeof(*ifm), nlflags); in ndo_dflt_bridge_getlink()
4913 ifm = nlmsg_data(nlh); in ndo_dflt_bridge_getlink()
4914 ifm->ifi_family = AF_BRIDGE; in ndo_dflt_bridge_getlink()
4915 ifm->__ifi_pad = 0; in ndo_dflt_bridge_getlink()
4916 ifm->ifi_type = dev->type; in ndo_dflt_bridge_getlink()
4917 ifm->ifi_index = dev->ifindex; in ndo_dflt_bridge_getlink()
4918 ifm->ifi_flags = dev_get_flags(dev); in ndo_dflt_bridge_getlink()
4919 ifm->ifi_change = 0; in ndo_dflt_bridge_getlink()
5004 struct ifinfomsg *ifm; in valid_bridge_getlink_req() local
5006 if (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*ifm))) { in valid_bridge_getlink_req()
5011 ifm = nlmsg_data(nlh); in valid_bridge_getlink_req()
5012 if (ifm->__ifi_pad || ifm->ifi_type || ifm->ifi_flags || in valid_bridge_getlink_req()
5013 ifm->ifi_change || ifm->ifi_index) { in valid_bridge_getlink_req()
5165 struct ifinfomsg *ifm; in rtnl_bridge_setlink() local
5171 if (nlmsg_len(nlh) < sizeof(*ifm)) in rtnl_bridge_setlink()
5174 ifm = nlmsg_data(nlh); in rtnl_bridge_setlink()
5175 if (ifm->ifi_family != AF_BRIDGE) in rtnl_bridge_setlink()
5178 dev = __dev_get_by_index(net, ifm->ifi_index); in rtnl_bridge_setlink()
5245 struct ifinfomsg *ifm; in rtnl_bridge_dellink() local
5252 if (nlmsg_len(nlh) < sizeof(*ifm)) in rtnl_bridge_dellink()
5255 ifm = nlmsg_data(nlh); in rtnl_bridge_dellink()
5256 if (ifm->ifi_family != AF_BRIDGE) in rtnl_bridge_dellink()
5259 dev = __dev_get_by_index(net, ifm->ifi_index); in rtnl_bridge_dellink()