[FROG] IS-IS Error

Donald Sharp sharpd at cumulusnetworks.com
Fri Apr 17 06:51:36 EDT 2020


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.

On Fri, Apr 17, 2020 at 6:04 AM Mark Tinka <mark.tinka at seacom.mu> wrote:
>
> Hi all.
>
> I'm almost there getting IS-IS to work without issue. I'm now faced with the following error log:
>
> 2020/04/17 10:02:01 ISIS: IS-IS bpf: could not transmit packet on em0: Input/output error
> 2020/04/17 10:02:01 ISIS: [EC 67108865] ISIS-Snp (1): Send L2 PSNP on em0 failed
>
> This repeats every second.
>
> Anyone know what this could be?
>
> Systems is FreeBSD-12.1-RELEASE-p3.
>
> Despite the error, IS-IS is running and routing is good, talking to a Cisco IOS XE implementation on the other side. So the error is throwing me off.
>
> Mark.
> _______________________________________________
> frog mailing list
> frog at lists.frrouting.org
> https://lists.frrouting.org/listinfo/frog



More information about the frog mailing list