Re: wait link up before route configuration

From: yann.masson@thehomecave.fr <yann.masson_at_thehomecave.fr>
Date: Wed, 28 Aug 2024 16:33:23 UTC
/etc/rc.d/netwait dependencies are
# PROVIDE: netwait
# REQUIRE: devd ipfw pf routing

[truncated] rcorder -p /etc/rc.d/*
/etc/rc.d/netif
/etc/rc.d/routing
/etc/rc.d/netwait

I've tested netwait. It doesn't work


If i configure routing like that:
# /etc/rc.conf.d/routing route_defaultgw="-host 203.0.113.1 -link 
-interface lagg0" route_default="-net 0.0.0.0/0 -interface lagg0 
203.0.113.1" static_routes="defaultgw default"

It works, but the routing table went from
# netstat -rn Routing tables Internet: Destination Gateway Flags Netif 
Expire default 203.0.113.1 UGS lagg0 198.51.100.1 link#10 UH lo0 
203.0.113.1 link#10 UHS lagg0 127.0.0.1 link#3 UHS lo0

to
Internet: Destination Gateway Flags Netif Expire default link#10 US 
lagg0 198.51.100.1 link#10 UH lo0 203.0.113.1 link#10 UHS lagg0 
127.0.0.1 link#3 UHS lo0

I don't know if it's good or not.



On 8/28/24 17:40, Freddie Cash wrote:
> On Wed, Aug 28, 2024 at 1:21 AM yann.masson@thehomecave.fr 
> <yann.masson@thehomecave.fr> wrote:
>
>     After configuring interfaces and routes, and triggering a 'service
>     netif restart && service routing restart' is there a way to wait
>     for the 'carrier up' of the interface before route
>     reconfiguration? My use case is a server with 2 Mellanox and a
>     Lagg. The 2 mce interfaces are UP in milliseconds but the lagg
>     interface takes a few seconds to be UP, and the routing service
>     says 'Network unreachable'. The subnet is a /32 and the gateway
>     need a static route like: # /etc/rc.conf.d/netif
>     cloned_interfaces="lagg0" ifconfig_mce0="up" ifconfig_mce1="up"
>     ifconfig_lagg0="laggproto lacp laggport mce0 laggport mce1
>     198.51.100.1 netmask 255.255.255.255 mtu 1500" #
>     /etc/rc.conf.d/routing route_defaultgw="-host 203.0.113.1 -link
>     -interface lagg0" defaultrouter="203.0.113.1"
>     static_routes="defaultgw" If I run 'service netif restart && sleep
>     5 && service routing restart', everything is ok. I didn't find any
>     options for that, and was thinking about a patch in the routing
>     script. Thanks
>
> Read through the comments in /etc/rc.d/netwait as that should do what 
> you're looking for (wait until the interface is active or wait until 
> you get a ping response from an IP before continuing with network 
> configuration).
>
> -- 
> Freddie Cash
> fjwcash@gmail.com