Hello,
On a bare metal HP DL380 Gen8 box running V1.3.5, we occasionally lose the interfaces on a Intel 82580 quad eth card. Rebooting the box one more more times usually resolves the situation with all interfaces appearing.
Obviously during the boot process there is something that scans and populates the list of interfaces.
I am hoping there is a way to manually force a interface rescan. I’ve looked through the docs and the forum and can’t find anything helpful (granted my search-fu could be failing).
So is there a way to manually run a rescan for Interfaces?
Thanks
Mark
From the lack of responses either no one else encounters this problem and/or no one knows.
Replying to bump the thread hoping someone with the answer will see it.
I have never encounter this before. Have you try manually trigger a rescan using the following command: sudo dpkg-reconfigure -plow linux-image-$(uname -r). Maybe other community members may have encountered this before. You can open a ticket with VyOS support to see if they can help. I wish I can help more.
I assume something like this should work to rescan interfaces at kernel level:
configure
sudo chmod 0777 /sys/bus/pci/rescan
sudo echo 1 > /sys/bus/pci/rescan
sudo chmod 0220 /sys/bus/pci/rescan
show int
But there is also this script to do something similar (I think this is the correct path and file):
/usr/libexec/vyos/vyos-interface-rescan.py
2 Likes
I found the /sys/bus/pci/rescan aspect of this. However, I presumed that the VyOS layer needs to be informed of the change.
On V1.3.5 I find the following that looks like it might do the trick: /opt/vyatta/sbin/vyatta_interface_rescan
Thanks for the assist!
It looks like /opt/vyatta/sbin/vyatta_interface_rescan needs /lib/udev/vyatta_net_name to be executed to populate /var/udev (per a comment in vyatta_interface_rescan).
While I’ve been using VyOS for a few years I’ve never dived into the code or explored the boot process, specifically how VyOS launches before now…
It’s unclear to me to me how and when vyatta_interface_rescan & vyatta_net_name are executed