[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