Multiple Fibs and INET6

From: Santiago Martinez <sm_at_codenetworks.net>
Date: Fri, 12 Jul 2024 17:06:04 UTC
Hi Everyone.

While adding -F ( fib as used in netstat ) to ping and ping6 I have 
found something that from my understanding is not correct.
Please can you advise?

I have the following setup :

-- two fibs (0 and 1)
-- two  loop-backs (lo0 and lo1).
-- Lo1 has been assigned to fib1
--net.add_addr_allfibs = 0

My interface output looks like this:

ifconfig lo0 | grep inet6
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2

ifconfig lo1 | grep inet6
        inet6 fe80::1%lo1 prefixlen 64 scopeid 0x3

If I do a netstat -rn -6  -F0 I get the following which is was i expected.

Internet6:
Destination                       Gateway                       Flags 
     Netif Expire
::/96                             link#2                        URS 
         lo0
::1                               link#2                        UHS 
         lo0
::ffff:0.0.0.0/96                 link#2                        URS 
         lo0
fe80::%lo0/10                     link#2                        URS 
         lo0
fe80::%lo0/64                     link#2                        U 
           lo0
fe80::1%lo0                       link#2                        UHS 
         lo0
ff02::/16                         link#2                        URS 
         lo0

Now,  netstat -rn -6  -F1 shows  "fe80::1%lo0" which should not be there 
and "fe80::1%lo1" is missing which should be there.

Internet6:
Destination                       Gateway                       Flags 
     Netif Expire
fe80::%lo1/64                     link#3                        U 
           lo1
*fe80::1%lo0                       link#2                        UHS 
         lo0*

What output I was expecting was:

Internet6:
Destination                       Gateway                       Flags 
     Netif Expire
fe80::%lo1/64                     link#3                        U 
           lo1
*fe80::1%lo1                       link#3                        UHS 
         lo1*


This makes the ping -6 -F0 fe80::1%lo0  to work but ping -6 -F1 
fe80::1%l01 to fail which I wanted to use as test case.

Thanks in advance.

Santiago