[ipxe-devel] REG: Query on 9K MTU Testing flow

Michael Brown mcb30 at ipxe.org
Tue Mar 14 13:45:00 UTC 2023


On 13/03/2023 21:31, Michael Brown via ipxe-devel wrote:
> There is what looks like a bug when using DHCP to change MTU: the change 
> of MTU requires the interface to be closed and reopened, but closing the 
> interface will cause the initiating DHCP transaction itself to be aborted.
> 
> This probably requires the code in netdevice.c to be refactored slightly 
> to allow for a netdev_reopen() call, which skips the intf_close() calls.

This is going to be very messy to support cleanly.  The combination of 
performing a close and reopen is fairly disruptive.  There are several 
other side effects from netdev_close() and netdev_open() (e.g. moving 
the device to the front of the "opened devices" list), which should 
probably be bypassed on an MTU change.

I have a draft change in the "mtureset" branch.  However, even with this 
added complexity, there is still the problem that on several drivers a 
close/reopen will have other disruptive side effects such as restarting 
autonegotiation.

I don't see a resolution to this any time soon.  Arguably the simplest 
workaround would be to remove the

    .tag = DHCP_MTU,

from the definition of mtu_setting.  This would prevent the MTU from 
being changed automatically by DHCP.  A script could still set the MTU 
explicitly using e.g.

   set netX/mtu ${netX.dhcp/26}

Michael




More information about the ipxe-devel mailing list