question on netlink_overrun()
Subsystems (2)
Hi all,
Currently we set netlink_overrun() on the socket in both the unicast and broadcast paths. If I understand things correctly this should result in the receiver getting ENOBUFS the next time they try a socket-related syscall.
However, in the netlink_dump() code we don't call it--was this an oversight or an intentional design decision?
I have a userspace app that would like to know if it ran out of buffer space in the receive socket (and hence lost some packets) while dumping SA information in xfrm_user_rcv_msg().
Thanks,
Chris
Quoted 5 lines · Chris Friesen
Currently we set
netlink_overrun()on the socket in both the unicast and broadcast paths. If I understand things correctly this should result in the receiver getting ENOBUFS the next time they try a socket-related syscall.However, in the
netlink_dump()code we don't call it--was this an oversight or an intentional design decision?I have a userspace app that would like to know if it ran out of buffer space in the receive socket (and hence lost some packets) while dumping SA information in
xfrm_user_rcv_msg().
The dump should never overrun since it has flow control based on available socket memory. Once the decision has been made to send a dump packet and it has been sucessfully allocated, it is never dropped. Except when explicitly filtered.