Lines Matching refs:nlh
643 struct nlmsghdr *nlh, gfp_t flags) in rtnl_notify() argument
648 if (nlh) in rtnl_notify()
649 report = nlmsg_report(nlh); in rtnl_notify()
1199 struct nlmsghdr *nlh; in rtnl_fill_ifinfo() local
1205 nlh = nlmsg_put(skb, pid, seq, type, sizeof(*ifm), flags); in rtnl_fill_ifinfo()
1206 if (nlh == NULL) in rtnl_fill_ifinfo()
1209 ifm = nlmsg_data(nlh); in rtnl_fill_ifinfo()
1335 nlmsg_end(skb, nlh); in rtnl_fill_ifinfo()
1339 nlmsg_cancel(skb, nlh); in rtnl_fill_ifinfo()
1441 hdrlen = nlmsg_len(cb->nlh) < sizeof(struct ifinfomsg) ? in rtnl_dump_ifinfo()
1444 if (nlmsg_parse(cb->nlh, hdrlen, tb, IFLA_MAX, ifla_policy) >= 0) { in rtnl_dump_ifinfo()
1458 cb->nlh->nlmsg_seq, 0, in rtnl_dump_ifinfo()
1947 static int rtnl_setlink(struct sk_buff *skb, struct nlmsghdr *nlh) in rtnl_setlink() argument
1956 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy); in rtnl_setlink()
1966 ifm = nlmsg_data(nlh); in rtnl_setlink()
2040 static int rtnl_dellink(struct sk_buff *skb, struct nlmsghdr *nlh) in rtnl_dellink() argument
2049 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy); in rtnl_dellink()
2056 ifm = nlmsg_data(nlh); in rtnl_dellink()
2165 static int rtnl_newlink(struct sk_buff *skb, struct nlmsghdr *nlh) in rtnl_newlink() argument
2183 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy); in rtnl_newlink()
2192 ifm = nlmsg_data(nlh); in rtnl_newlink()
2272 if (nlh->nlmsg_flags & NLM_F_EXCL) in rtnl_newlink()
2274 if (nlh->nlmsg_flags & NLM_F_REPLACE) in rtnl_newlink()
2302 if (!(nlh->nlmsg_flags & NLM_F_CREATE)) { in rtnl_newlink()
2410 static int rtnl_getlink(struct sk_buff *skb, struct nlmsghdr* nlh) in rtnl_getlink() argument
2421 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy); in rtnl_getlink()
2431 ifm = nlmsg_data(nlh); in rtnl_getlink()
2447 nlh->nlmsg_seq, 0, 0, ext_filter_mask); in rtnl_getlink()
2458 static u16 rtnl_calcit(struct sk_buff *skb, struct nlmsghdr *nlh) in rtnl_calcit() argument
2468 hdrlen = nlmsg_len(nlh) < sizeof(struct ifinfomsg) ? in rtnl_calcit()
2471 if (nlmsg_parse(nlh, hdrlen, tb, IFLA_MAX, ifla_policy) >= 0) { in rtnl_calcit()
2499 int type = cb->nlh->nlmsg_type-RTM_BASE; in rtnl_dump_all()
2571 struct nlmsghdr *nlh; in nlmsg_populate_fdb_fill() local
2574 nlh = nlmsg_put(skb, pid, seq, type, sizeof(*ndm), nlflags); in nlmsg_populate_fdb_fill()
2575 if (!nlh) in nlmsg_populate_fdb_fill()
2578 ndm = nlmsg_data(nlh); in nlmsg_populate_fdb_fill()
2593 nlmsg_end(skb, nlh); in nlmsg_populate_fdb_fill()
2597 nlmsg_cancel(skb, nlh); in nlmsg_populate_fdb_fill()
2688 static int rtnl_fdb_add(struct sk_buff *skb, struct nlmsghdr *nlh) in rtnl_fdb_add() argument
2698 err = nlmsg_parse(nlh, sizeof(*ndm), tb, NDA_MAX, NULL); in rtnl_fdb_add()
2702 ndm = nlmsg_data(nlh); in rtnl_fdb_add()
2734 nlh->nlmsg_flags); in rtnl_fdb_add()
2746 nlh->nlmsg_flags); in rtnl_fdb_add()
2749 nlh->nlmsg_flags); in rtnl_fdb_add()
2787 static int rtnl_fdb_del(struct sk_buff *skb, struct nlmsghdr *nlh) in rtnl_fdb_del() argument
2800 err = nlmsg_parse(nlh, sizeof(*ndm), tb, NDA_MAX, NULL); in rtnl_fdb_del()
2804 ndm = nlmsg_data(nlh); in rtnl_fdb_del()
2872 seq = cb->nlh->nlmsg_seq; in nlmsg_populate_fdb()
2924 struct ifinfomsg *ifm = nlmsg_data(cb->nlh); in rtnl_fdb_dump()
2930 if (nlmsg_parse(cb->nlh, sizeof(struct ifinfomsg), tb, IFLA_MAX, in rtnl_fdb_dump()
3003 struct nlmsghdr *nlh; in ndo_dflt_bridge_getlink() local
3011 nlh = nlmsg_put(skb, pid, seq, RTM_NEWLINK, sizeof(*ifm), nlflags); in ndo_dflt_bridge_getlink()
3012 if (nlh == NULL) in ndo_dflt_bridge_getlink()
3015 ifm = nlmsg_data(nlh); in ndo_dflt_bridge_getlink()
3086 nlmsg_end(skb, nlh); in ndo_dflt_bridge_getlink()
3089 nlmsg_cancel(skb, nlh); in ndo_dflt_bridge_getlink()
3100 u32 seq = cb->nlh->nlmsg_seq; in rtnl_bridge_getlink()
3104 if (nlmsg_len(cb->nlh) > sizeof(struct ifinfomsg)) { in rtnl_bridge_getlink()
3107 extfilt = nlmsg_find_attr(cb->nlh, sizeof(struct ifinfomsg), in rtnl_bridge_getlink()
3198 static int rtnl_bridge_setlink(struct sk_buff *skb, struct nlmsghdr *nlh) in rtnl_bridge_setlink() argument
3208 if (nlmsg_len(nlh) < sizeof(*ifm)) in rtnl_bridge_setlink()
3211 ifm = nlmsg_data(nlh); in rtnl_bridge_setlink()
3221 br_spec = nlmsg_find_attr(nlh, sizeof(struct ifinfomsg), IFLA_AF_SPEC); in rtnl_bridge_setlink()
3243 err = br_dev->netdev_ops->ndo_bridge_setlink(dev, nlh, flags); in rtnl_bridge_setlink()
3254 err = dev->netdev_ops->ndo_bridge_setlink(dev, nlh, in rtnl_bridge_setlink()
3272 static int rtnl_bridge_dellink(struct sk_buff *skb, struct nlmsghdr *nlh) in rtnl_bridge_dellink() argument
3282 if (nlmsg_len(nlh) < sizeof(*ifm)) in rtnl_bridge_dellink()
3285 ifm = nlmsg_data(nlh); in rtnl_bridge_dellink()
3295 br_spec = nlmsg_find_attr(nlh, sizeof(struct ifinfomsg), IFLA_AF_SPEC); in rtnl_bridge_dellink()
3317 err = br_dev->netdev_ops->ndo_bridge_dellink(dev, nlh, flags); in rtnl_bridge_dellink()
3328 err = dev->netdev_ops->ndo_bridge_dellink(dev, nlh, in rtnl_bridge_dellink()
3349 static int rtnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) in rtnetlink_rcv_msg() argument
3358 type = nlh->nlmsg_type; in rtnetlink_rcv_msg()
3365 if (nlmsg_len(nlh) < sizeof(struct rtgenmsg)) in rtnetlink_rcv_msg()
3368 family = ((struct rtgenmsg *)nlmsg_data(nlh))->rtgen_family; in rtnetlink_rcv_msg()
3375 if (kind == 2 && nlh->nlmsg_flags&NLM_F_DUMP) { in rtnetlink_rcv_msg()
3386 min_dump_alloc = calcit(skb, nlh); in rtnetlink_rcv_msg()
3395 err = netlink_dump_start(rtnl, skb, nlh, &c); in rtnetlink_rcv_msg()
3405 return doit(skb, nlh); in rtnetlink_rcv_msg()