Hi guys, I have a new link driver that registers a rtnl_link_ops. For many things, the rtnl interfaces are perfectly suited: I can use netlink in userspace to check out packet counts, adjust interface parameters, and all sorts of things. There is even the "fill_info" function exporting interface-specific types of data to userspace through the standard netlink interfaces. I'm glad this is here, because it's exactly what I want.
Problem: sometimes I want to export a *lot* of data to userspace. When this happens, even if I make the netlink socket receive buffer really huge, this code path is still reached in rtnetlink.c: err = rtnl_fill_ifinfo(skb, dev, RTM_NEWLINK, NETLINK_CB(cb->skb).portid, cb->nlh->nlmsg_seq, 0, NLM_F_MULTI, ext_filter_mask); /* If we ran out of room on the first message, * we're in trouble */ WARN_ON((err == -EMSGSIZE) && (skb->len == 0)); That is -- it tries to fill the skb (for sending it back to userspace), but doesn't have enough room, so it returns -EMSGSIZE. That seems like reasonable behavior, but it doesn't really help me obtain my goal. I'd like to send quite a bit of data back to userspace for a network interface, and I'd like to do it using the standard netlink APIs. Is this possible? Thanks, Jason -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/