Checking for network online

Johnathan Mantey johnathanx.mantey at intel.com
Sat Feb 19 03:11:00 AEDT 2022


Reading the --any switch in the systemd-networkd-wait-online man page 
doesn't look like it would be helpful. That flag permits the service to 
move on when one of the NICs achieves 'online' functionality. In the 
case of a NIC w/o a cable connection 'online' never happens. Thus the 
default 120 second timeout is still going to elapse, BMC ready is going 
to be held off, BIOS is going to delay completion (in our BIOS), and an 
error message is still going to be logged.

It appears, based on comments so far, that my best way forward with the 
current implementation of wait-online is to assign "--timeout 
<number-smaller-than-120> -q" to reduce the amount of time for testing 
the NIC state, and to never log an error because the NIC was unplugged.

Gating on operational state, and issuing --ignore flags didn't work, 
leaving a large blunt instrument for a solution.

On 2/17/22 18:29, Lei Yu wrote:
> On Fri, Feb 18, 2022 at 8:11 AM Jeremy Kerr<jk at codeconstruct.com.au>  wrote:
>> Hi Johnathan,
>>
>>> Issue: systemd-networkd-wait-online.service stalls for 120 seconds
>>> when the managed NICs do not have a network connection.
>>>
>>> TLDR: Should OpenBMC remove systemd-networkd-wait-online.service
>>> universally?
>> Probably not, it's required to implement network-online,target, which
>> is standard, and may be referred to by arbitrary packages.
>>
>> There's some good background on the issues you're experiencing here:
>>
>>   https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/
>>
>> in short: most services should be able to start before network-
>> online.target, and be able to adapt to changes in network configuration
>> after that point.
>>
>> For your specific issue there:
>>
>>> Issues: This service blocks entry to multi-user.target.
>>> phosphor-state-manager uses multi-user.target to report the BMC is
>>> ready to use.
>>> This is reported via IPMI Get Device ID.
>> That sounds like more of an issue of whether that reported state
>> actually represents the expected BMC state...
> We have an internal "override" config to start
> systemd-networkd-wait-online with --any option:
>
>   # override.conf
>   [Service]
>   ExecStart=
>   ExecStart=/lib/systemd/systemd-networkd-wait-online --any
>
> This is mostly about fixing the QEMU CI.
> In the real environment the network *should* be up and online so the
> above makes the systemd-networkd-wait-online starts OK in both cases.

-- 
Johnathan Mantey
Senior Software Engineer
*azad te**chnology partners*
Contributing to Technology Innovation since 1992
Phone: (503) 712-6764
Email: johnathanx.mantey at intel.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20220218/33591dcf/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 495 bytes
Desc: OpenPGP digital signature
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20220218/33591dcf/attachment-0001.sig>


More information about the openbmc mailing list