Setting 100baseTX full-duplex persistently on LAGG members



  • Hi everyone

    You may have seen that I noted in https://forum.pfsense.org/index.php?topic=89085.0 that I have some LAGG interfaces and the upstream colo provider requires we set them at 100baseTX full-duplex. There's no GUI facility to do this on a LAGG and no GUI facility to do this on the LAGG members since they don't have their own config page.

    I can do it on the command line manually with

    ifconfig igb0 media 100baseTX mediaopt full-duplex
    ifconfig bce0 media 100baseTX mediaopt full-duplex

    but that doesn't survive a reboot.

    I attempted to do it by creating /etc/rc.conf.local containing:

    #!/bin/sh
    ifconfig_igb0="media 100baseTX mediaopt full-duplex"
    ifconfig_bce0="media 100baseTX mediaopt full-duplex"

    But that doesn't seem to set it, when run manually or at boot time.

    I also removed each NIC from the LAGG, create a new interface with that NIC, set it at 100baseTX full-duplex, removed the interface and re-added the NIC to the LAGG, that appeared to work but again didn't survive a reboot. I also noticed that I couldn't do it on a NIC that isn't currently connected to the network (one of the NICs in the LAGG is disconnected).

    Without being full-duplex, throughput is noticeably slow and CARP VIPs on the LAGGs are unstable due to packet errors and collisions.

    I also notice that whatever the status of the interface speed and duplex, the LAGG reports itself as "media: Ethernet autoselect"

    Can anybody advise on how to set this so that is persists after a reboot?





  • Thanks for that. I backed up the config for all areas, edited the file in Notepad++ and added:

    <shellcmd>ifconfig igb0 media 100baseTX mediaopt full-duplex</shellcmd>
    <shellcmd>ifconfig bce0 media 100baseTX mediaopt full-duplex</shellcmd>
    

    Immediately above:

    I didn't touch anything else. Restored the config, the firewall rebooted and wouldn't get past the bootloader, throwing the error:

    boot t/config: -S9600 -DNo t/config

    It took me about 90 mins to figure this out, but it seems like the restore process added:

    -S9600 -D

    to /boot.config

    It occurred to me that /boot/loader.conf wasn't getting passed so I passed it manually and the firewall came up.

    Any case, when it came up, I noticed the serial console was now enabled in the GUI. I disabled it and /boot.config was empty again. Config restore bug? I didn't touch it myself…

    Firewall reboots fine now and my interface came up in 100baseTX full-duplex mode, so thanks for your help. I include the above in case others encounter the same issue.



  • Download a package called shellcmd. Add your command in there and it will Survive a reboot.