Lines Matching refs:nlh
642 struct nlmsghdr *nlh, gfp_t flags) in rtnl_notify() argument
647 if (nlh) in rtnl_notify()
648 report = nlmsg_report(nlh); in rtnl_notify()
1027 struct nlmsghdr *nlh; in rtnl_fill_ifinfo() local
1035 nlh = nlmsg_put(skb, pid, seq, type, sizeof(*ifm), flags); in rtnl_fill_ifinfo()
1036 if (nlh == NULL) in rtnl_fill_ifinfo()
1039 ifm = nlmsg_data(nlh); in rtnl_fill_ifinfo()
1244 nlmsg_end(skb, nlh); in rtnl_fill_ifinfo()
1248 nlmsg_cancel(skb, nlh); in rtnl_fill_ifinfo()
1338 hdrlen = nlmsg_len(cb->nlh) < sizeof(struct ifinfomsg) ? in rtnl_dump_ifinfo()
1341 if (nlmsg_parse(cb->nlh, hdrlen, tb, IFLA_MAX, ifla_policy) >= 0) { in rtnl_dump_ifinfo()
1355 cb->nlh->nlmsg_seq, 0, in rtnl_dump_ifinfo()
1823 static int rtnl_setlink(struct sk_buff *skb, struct nlmsghdr *nlh) in rtnl_setlink() argument
1832 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy); in rtnl_setlink()
1842 ifm = nlmsg_data(nlh); in rtnl_setlink()
1900 static int rtnl_dellink(struct sk_buff *skb, struct nlmsghdr *nlh) in rtnl_dellink() argument
1911 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy); in rtnl_dellink()
1918 ifm = nlmsg_data(nlh); in rtnl_dellink()
2033 static int rtnl_newlink(struct sk_buff *skb, struct nlmsghdr *nlh) in rtnl_newlink() argument
2051 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy); in rtnl_newlink()
2060 ifm = nlmsg_data(nlh); in rtnl_newlink()
2140 if (nlh->nlmsg_flags & NLM_F_EXCL) in rtnl_newlink()
2142 if (nlh->nlmsg_flags & NLM_F_REPLACE) in rtnl_newlink()
2170 if (!(nlh->nlmsg_flags & NLM_F_CREATE)) { in rtnl_newlink()
2278 static int rtnl_getlink(struct sk_buff *skb, struct nlmsghdr* nlh) in rtnl_getlink() argument
2289 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy); in rtnl_getlink()
2299 ifm = nlmsg_data(nlh); in rtnl_getlink()
2315 nlh->nlmsg_seq, 0, 0, ext_filter_mask); in rtnl_getlink()
2326 static u16 rtnl_calcit(struct sk_buff *skb, struct nlmsghdr *nlh) in rtnl_calcit() argument
2336 hdrlen = nlmsg_len(nlh) < sizeof(struct ifinfomsg) ? in rtnl_calcit()
2339 if (nlmsg_parse(nlh, hdrlen, tb, IFLA_MAX, ifla_policy) >= 0) { in rtnl_calcit()
2367 int type = cb->nlh->nlmsg_type-RTM_BASE; in rtnl_dump_all()
2439 struct nlmsghdr *nlh; in nlmsg_populate_fdb_fill() local
2442 nlh = nlmsg_put(skb, pid, seq, type, sizeof(*ndm), nlflags); in nlmsg_populate_fdb_fill()
2443 if (!nlh) in nlmsg_populate_fdb_fill()
2446 ndm = nlmsg_data(nlh); in nlmsg_populate_fdb_fill()
2461 nlmsg_end(skb, nlh); in nlmsg_populate_fdb_fill()
2465 nlmsg_cancel(skb, nlh); in nlmsg_populate_fdb_fill()
2556 static int rtnl_fdb_add(struct sk_buff *skb, struct nlmsghdr *nlh) in rtnl_fdb_add() argument
2566 err = nlmsg_parse(nlh, sizeof(*ndm), tb, NDA_MAX, NULL); in rtnl_fdb_add()
2570 ndm = nlmsg_data(nlh); in rtnl_fdb_add()
2602 nlh->nlmsg_flags); in rtnl_fdb_add()
2614 nlh->nlmsg_flags); in rtnl_fdb_add()
2617 nlh->nlmsg_flags); in rtnl_fdb_add()
2655 static int rtnl_fdb_del(struct sk_buff *skb, struct nlmsghdr *nlh) in rtnl_fdb_del() argument
2668 err = nlmsg_parse(nlh, sizeof(*ndm), tb, NDA_MAX, NULL); in rtnl_fdb_del()
2672 ndm = nlmsg_data(nlh); in rtnl_fdb_del()
2740 seq = cb->nlh->nlmsg_seq; in nlmsg_populate_fdb()
2792 struct ifinfomsg *ifm = nlmsg_data(cb->nlh); in rtnl_fdb_dump()
2798 if (nlmsg_parse(cb->nlh, sizeof(struct ifinfomsg), tb, IFLA_MAX, in rtnl_fdb_dump()
2867 struct nlmsghdr *nlh; in ndo_dflt_bridge_getlink() local
2874 nlh = nlmsg_put(skb, pid, seq, RTM_NEWLINK, sizeof(*ifm), nlflags); in ndo_dflt_bridge_getlink()
2875 if (nlh == NULL) in ndo_dflt_bridge_getlink()
2878 ifm = nlmsg_data(nlh); in ndo_dflt_bridge_getlink()
2942 nlmsg_end(skb, nlh); in ndo_dflt_bridge_getlink()
2945 nlmsg_cancel(skb, nlh); in ndo_dflt_bridge_getlink()
2956 u32 seq = cb->nlh->nlmsg_seq; in rtnl_bridge_getlink()
2959 if (nlmsg_len(cb->nlh) > sizeof(struct ifinfomsg)) { in rtnl_bridge_getlink()
2962 extfilt = nlmsg_find_attr(cb->nlh, sizeof(struct ifinfomsg), in rtnl_bridge_getlink()
3048 static int rtnl_bridge_setlink(struct sk_buff *skb, struct nlmsghdr *nlh) in rtnl_bridge_setlink() argument
3058 if (nlmsg_len(nlh) < sizeof(*ifm)) in rtnl_bridge_setlink()
3061 ifm = nlmsg_data(nlh); in rtnl_bridge_setlink()
3071 br_spec = nlmsg_find_attr(nlh, sizeof(struct ifinfomsg), IFLA_AF_SPEC); in rtnl_bridge_setlink()
3093 err = br_dev->netdev_ops->ndo_bridge_setlink(dev, nlh, flags); in rtnl_bridge_setlink()
3104 err = dev->netdev_ops->ndo_bridge_setlink(dev, nlh, in rtnl_bridge_setlink()
3122 static int rtnl_bridge_dellink(struct sk_buff *skb, struct nlmsghdr *nlh) in rtnl_bridge_dellink() argument
3132 if (nlmsg_len(nlh) < sizeof(*ifm)) in rtnl_bridge_dellink()
3135 ifm = nlmsg_data(nlh); in rtnl_bridge_dellink()
3145 br_spec = nlmsg_find_attr(nlh, sizeof(struct ifinfomsg), IFLA_AF_SPEC); in rtnl_bridge_dellink()
3167 err = br_dev->netdev_ops->ndo_bridge_dellink(dev, nlh, flags); in rtnl_bridge_dellink()
3178 err = dev->netdev_ops->ndo_bridge_dellink(dev, nlh, in rtnl_bridge_dellink()
3199 static int rtnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) in rtnetlink_rcv_msg() argument
3208 type = nlh->nlmsg_type; in rtnetlink_rcv_msg()
3215 if (nlmsg_len(nlh) < sizeof(struct rtgenmsg)) in rtnetlink_rcv_msg()
3218 family = ((struct rtgenmsg *)nlmsg_data(nlh))->rtgen_family; in rtnetlink_rcv_msg()
3225 if (kind == 2 && nlh->nlmsg_flags&NLM_F_DUMP) { in rtnetlink_rcv_msg()
3236 min_dump_alloc = calcit(skb, nlh); in rtnetlink_rcv_msg()
3245 err = netlink_dump_start(rtnl, skb, nlh, &c); in rtnetlink_rcv_msg()
3255 return doit(skb, nlh); in rtnetlink_rcv_msg()