[FROG] IS-IS Error
Mark Tinka
mark.tinka at seacom.mu
Sat Apr 18 20:47:59 EDT 2020
On 17/Apr/20 12:51, Donald Sharp wrote:
> Mark -
>
> Some quick googling led me down this rat hole:
>
> https://www.freebsd.org/cgi/man.cgi?write(2)
>
> You are receiving a EIO error message from the os. The version of FRR
> that you are using uses BPF for sending data. This is a broadcast
> frame attempt at being sent. From another search of freebsd bpf and
> EIO I got this:
>
> https://github.com/OpenAoE/vblade/issues/7
>
> and this:
>
> https://github.com/freebsd/freebsd/pull/131
>
> and finally this:
>
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=205164
>
> The discussion boils down to the bpf backend has a limit of packet
> data limited to a page size( 4k ). From my recollection you are using
> a very large MTU size. I suspect that this would be the problem for
> you. If you compile your own version of FRR( I cannot recall ), I
> would recommend modifying the configure.ac file for figuring out the
> ISIS backend to use:
>
> diff --git a/configure.ac b/configure.ac
> index 6f7ca9def..b01b8655b 100755
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1401,22 +1401,18 @@ case "$host_os" in
> ISIS_METHOD_MACRO="ISIS_METHOD_DLPI"
> ;;
> *)
> - if test "$ac_cv_header_net_bpf_h" = "no"; then
> - if test "$ac_cv_header_sys_dlpi_h" = "no"; then
> - AC_MSG_RESULT([none])
> - if test "$enable_isisd" = "yes" -o "$enable_fabricd" = "yes"; then
> - AC_MSG_FAILURE([IS-IS support requested but no packet backend found])
> - fi
> - AC_MSG_WARN([*** IS-IS support will not be built ***])
> - enable_isisd="no"
> - enable_fabricd="no"
> - else
> - AC_MSG_RESULT([DLPI])
> + if test "$ac_cv_header_sys_dlpi_h" = "no"; then
> + AC_MSG_RESULT([none])
> + if test "$enable_isisd" = "yes" -o "$enable_fabricd" = "yes"; then
> + AC_MSG_FAILURE([IS-IS support requested but no packet backend found])
> fi
> - ISIS_METHOD_MACRO="ISIS_METHOD_DLPI"
> + AC_MSG_WARN([*** IS-IS support will not be built ***])
> + enable_isisd="no"
> + enable_fabricd="no"
> else
> - AC_MSG_RESULT([BPF])
> - ISIS_METHOD_MACRO="ISIS_METHOD_BPF"
> + AC_MSG_RESULT([DLPI])
> + fi
> + ISIS_METHOD_MACRO="ISIS_METHOD_DLPI"
> fi
> ;;
> esac
>
>
> and see if this works for you in forcing a different backend. Please
> note I have not tried this, but would be interested in understanding
> if this works for you and if so we can add a custom configure option
> for freebsd to get around this issue.
Thanks for the very helpful feedback, Donald.
As we discussed on Slack, looks like we need to find a way for FRR on
FreeBSD to understand that for IS-IS, there is a size limit for the PSNP
of 4,096 bytes.
Mark.
More information about the frog
mailing list