Lines Matching refs:ifm
854 const struct ifinfomsg *ifm) in rtnl_dev_combine_flags() argument
856 unsigned int flags = ifm->ifi_flags; in rtnl_dev_combine_flags()
859 if (ifm->ifi_change) in rtnl_dev_combine_flags()
860 flags = (flags & ifm->ifi_change) | in rtnl_dev_combine_flags()
861 (rtnl_dev_get_flags(dev) & ~ifm->ifi_change); in rtnl_dev_combine_flags()
1585 struct ifinfomsg *ifm; in rtnl_fill_ifinfo() local
1589 nlh = nlmsg_put(skb, pid, seq, type, sizeof(*ifm), flags); in rtnl_fill_ifinfo()
1593 ifm = nlmsg_data(nlh); in rtnl_fill_ifinfo()
1594 ifm->ifi_family = AF_UNSPEC; in rtnl_fill_ifinfo()
1595 ifm->__ifi_pad = 0; in rtnl_fill_ifinfo()
1596 ifm->ifi_type = dev->type; in rtnl_fill_ifinfo()
1597 ifm->ifi_index = dev->ifindex; in rtnl_fill_ifinfo()
1598 ifm->ifi_flags = dev_get_flags(dev); in rtnl_fill_ifinfo()
1599 ifm->ifi_change = change; in rtnl_fill_ifinfo()
2310 struct net_device *dev, struct ifinfomsg *ifm, in do_setlink() argument
2403 if (ifm->ifi_index > 0 && ifname[0]) { in do_setlink()
2423 if (ifm->ifi_flags || ifm->ifi_change) { in do_setlink()
2424 err = dev_change_flags(dev, rtnl_dev_combine_flags(dev, ifm)); in do_setlink()
2650 struct ifinfomsg *ifm; in rtnl_setlink() local
2656 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy, in rtnl_setlink()
2671 ifm = nlmsg_data(nlh); in rtnl_setlink()
2672 if (ifm->ifi_index > 0) in rtnl_setlink()
2673 dev = __dev_get_by_index(net, ifm->ifi_index); in rtnl_setlink()
2684 err = do_setlink(skb, dev, ifm, extack, tb, ifname, 0); in rtnl_setlink()
2747 struct ifinfomsg *ifm; in rtnl_dellink() local
2753 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy, extack); in rtnl_dellink()
2772 ifm = nlmsg_data(nlh); in rtnl_dellink()
2773 if (ifm->ifi_index > 0) in rtnl_dellink()
2774 dev = __dev_get_by_index(tgt_net, ifm->ifi_index); in rtnl_dellink()
2783 if (tb[IFLA_IFNAME] || ifm->ifi_index > 0) in rtnl_dellink()
2798 int rtnl_configure_link(struct net_device *dev, const struct ifinfomsg *ifm) in rtnl_configure_link() argument
2804 if (ifm && (ifm->ifi_flags || ifm->ifi_change)) { in rtnl_configure_link()
2805 err = __dev_change_flags(dev, rtnl_dev_combine_flags(dev, ifm)); in rtnl_configure_link()
2882 struct ifinfomsg *ifm, in rtnl_group_changelink() argument
2891 err = do_setlink(skb, dev, ifm, extack, tb, NULL, 0); in rtnl_group_changelink()
2908 struct ifinfomsg *ifm; in rtnl_newlink() local
2919 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy, extack); in rtnl_newlink()
2932 ifm = nlmsg_data(nlh); in rtnl_newlink()
2933 if (ifm->ifi_index > 0) in rtnl_newlink()
2934 dev = __dev_get_by_index(net, ifm->ifi_index); in rtnl_newlink()
3043 return do_setlink(skb, dev, ifm, extack, tb, ifname, in rtnl_newlink()
3048 if (ifm->ifi_index == 0 && tb[IFLA_GROUP]) in rtnl_newlink()
3051 ifm, extack, tb); in rtnl_newlink()
3104 dev->ifindex = ifm->ifi_index; in rtnl_newlink()
3126 err = rtnl_configure_link(dev, ifm); in rtnl_newlink()
3163 struct ifinfomsg *ifm; in rtnl_getlink() local
3172 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy, extack); in rtnl_getlink()
3194 ifm = nlmsg_data(nlh); in rtnl_getlink()
3195 if (ifm->ifi_index > 0) in rtnl_getlink()
3196 dev = __dev_get_by_index(tgt_net, ifm->ifi_index); in rtnl_getlink()
3741 struct ifinfomsg *ifm = nlmsg_data(cb->nlh); in rtnl_fdb_dump() local
3770 brport_idx = ifm->ifi_index; in rtnl_fdb_dump()
3866 struct ifinfomsg *ifm; in ndo_dflt_bridge_getlink() local
3873 nlh = nlmsg_put(skb, pid, seq, RTM_NEWLINK, sizeof(*ifm), nlflags); in ndo_dflt_bridge_getlink()
3877 ifm = nlmsg_data(nlh); in ndo_dflt_bridge_getlink()
3878 ifm->ifi_family = AF_BRIDGE; in ndo_dflt_bridge_getlink()
3879 ifm->__ifi_pad = 0; in ndo_dflt_bridge_getlink()
3880 ifm->ifi_type = dev->type; in ndo_dflt_bridge_getlink()
3881 ifm->ifi_index = dev->ifindex; in ndo_dflt_bridge_getlink()
3882 ifm->ifi_flags = dev_get_flags(dev); in ndo_dflt_bridge_getlink()
3883 ifm->ifi_change = 0; in ndo_dflt_bridge_getlink()
4074 struct ifinfomsg *ifm; in rtnl_bridge_setlink() local
4081 if (nlmsg_len(nlh) < sizeof(*ifm)) in rtnl_bridge_setlink()
4084 ifm = nlmsg_data(nlh); in rtnl_bridge_setlink()
4085 if (ifm->ifi_family != AF_BRIDGE) in rtnl_bridge_setlink()
4088 dev = __dev_get_by_index(net, ifm->ifi_index); in rtnl_bridge_setlink()
4149 struct ifinfomsg *ifm; in rtnl_bridge_dellink() local
4156 if (nlmsg_len(nlh) < sizeof(*ifm)) in rtnl_bridge_dellink()
4159 ifm = nlmsg_data(nlh); in rtnl_bridge_dellink()
4160 if (ifm->ifi_family != AF_BRIDGE) in rtnl_bridge_dellink()
4163 dev = __dev_get_by_index(net, ifm->ifi_index); in rtnl_bridge_dellink()