Lines Matching refs:skb
35 static int fill_addr(struct sk_buff *skb, struct net_device *dev, u8 addr,
40 struct sk_buff *skb; in phonet_address_notify() local
43 skb = nlmsg_new(NLMSG_ALIGN(sizeof(struct ifaddrmsg)) + in phonet_address_notify()
45 if (skb == NULL) in phonet_address_notify()
47 err = fill_addr(skb, dev, addr, 0, 0, event); in phonet_address_notify()
50 kfree_skb(skb); in phonet_address_notify()
53 rtnl_notify(skb, dev_net(dev), 0, in phonet_address_notify()
64 static int addr_doit(struct sk_buff *skb, struct nlmsghdr *nlh) in addr_doit() argument
66 struct net *net = sock_net(skb->sk); in addr_doit()
73 if (!netlink_capable(skb, CAP_NET_ADMIN)) in addr_doit()
76 if (!netlink_capable(skb, CAP_SYS_ADMIN)) in addr_doit()
106 static int fill_addr(struct sk_buff *skb, struct net_device *dev, u8 addr, in fill_addr() argument
112 nlh = nlmsg_put(skb, portid, seq, event, sizeof(*ifm), 0); in fill_addr()
122 if (nla_put_u8(skb, IFA_LOCAL, addr)) in fill_addr()
124 nlmsg_end(skb, nlh); in fill_addr()
128 nlmsg_cancel(skb, nlh); in fill_addr()
132 static int getaddr_dumpit(struct sk_buff *skb, struct netlink_callback *cb) in getaddr_dumpit() argument
139 pndevs = phonet_device_list(sock_net(skb->sk)); in getaddr_dumpit()
154 if (fill_addr(skb, pnd->netdev, addr << 2, in getaddr_dumpit()
155 NETLINK_CB(cb->skb).portid, in getaddr_dumpit()
166 return skb->len; in getaddr_dumpit()
171 static int fill_route(struct sk_buff *skb, struct net_device *dev, u8 dst, in fill_route() argument
177 nlh = nlmsg_put(skb, portid, seq, event, sizeof(*rtm), 0); in fill_route()
191 if (nla_put_u8(skb, RTA_DST, dst) || in fill_route()
192 nla_put_u32(skb, RTA_OIF, dev->ifindex)) in fill_route()
194 nlmsg_end(skb, nlh); in fill_route()
198 nlmsg_cancel(skb, nlh); in fill_route()
204 struct sk_buff *skb; in rtm_phonet_notify() local
207 skb = nlmsg_new(NLMSG_ALIGN(sizeof(struct ifaddrmsg)) + in rtm_phonet_notify()
209 if (skb == NULL) in rtm_phonet_notify()
211 err = fill_route(skb, dev, dst, 0, 0, event); in rtm_phonet_notify()
214 kfree_skb(skb); in rtm_phonet_notify()
217 rtnl_notify(skb, dev_net(dev), 0, in rtm_phonet_notify()
229 static int route_doit(struct sk_buff *skb, struct nlmsghdr *nlh) in route_doit() argument
231 struct net *net = sock_net(skb->sk); in route_doit()
238 if (!netlink_capable(skb, CAP_NET_ADMIN)) in route_doit()
241 if (!netlink_capable(skb, CAP_SYS_ADMIN)) in route_doit()
272 static int route_dumpit(struct sk_buff *skb, struct netlink_callback *cb) in route_dumpit() argument
274 struct net *net = sock_net(skb->sk); in route_dumpit()
284 if (fill_route(skb, dev, addr << 2, NETLINK_CB(cb->skb).portid, in route_dumpit()
293 return skb->len; in route_dumpit()