zebra: Make the --nl-bufsize arg set the input parse buffer too

* See bug #887. Existing statically sized NL_PKT_BUF_SIZE input parse buffer
  in netlink_parse_info may not be enough. As an initial hacky fix, at least
  give admins a runtime way to change this buffer, with the existing
  --nl-bufsize argument to zebra.
* rt_netlink.c: (nl_rcvbuf) static input buffer and length.
  (netlink_parse_info) replace the local fixed size buffer with nl_rcvbuf.
  Improve warning on MSG_TRUNC to advise admin on what to do.
  (kernel_init) Dynamically allocate nl_rcvbuf input parse buffer to
  at least 2 pages, or nl_rcvbufsize argument, whichever is greater.

Based on the debugging and investigation of:

  Konstantin <tempest921@gmail.com>
2 files changed