Increase SO_RCVBUF used in IpClientLinkObserver to 4MB and ignore ENOBUFS.

ENOBUFS error can happen when lIpClientLinkObserver is listening to the
netlink messages, especially we observe that when wifi is trying to
set multicast filter frequently and ApfFilter is blocking to install a
new program, if the netlink messages bursts at this point, this can
overflow the receive buffer. Set a default receive buffer size(4MB) to
avoid ENOBUFS as much as possible. We can do experiments based on the
socket receive buffer size to decide the appropriate value.

This CL also ignores ENOBUFS if that happens when IpClientLinkObserver
is listening to the netlink events, and continues reading and wait for
receive buffer gets recovered.

Bug: 232680956
Test: atest testNetlinkSocketReceiveENOBUFS
Merged-In: Ifdfcf8a9541346e3357081e4aff806b89681e192
Change-Id: Ifdfcf8a9541346e3357081e4aff806b89681e192
3 files changed