[RFC PATCH 0/5] Multiple interfaces support and lots of cmdline parsing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Basically dracut has a problem with netroot when booting with multiple nics. If we have multiple interfaces online at the same time, we don't really know which interface to use for default-route or dhcp root-path source.

This series of patches adresses this problem by delegating the real interface configuration to netroot and introducing a new cmdline argument. I'll try to explain to solution with two use cases:


Case 1: Multiple interfaces with ip=dhcp or ip=client-ip... but no <dev>

The problem here is that we can't up just every eth that pops up. Default-route or whatever will get confused.

The solution here is that ifup and/or dhclient script just write the necessary ip statements into /tmp/net.$dev.* and netroot (which is synchronized by a lock) just uses one interface at a time, deconfiguring it if mounting fails.


Case 2: Multiple interfaces with multiple ip= lines

This is a case where the user expects all interfaces to be up before mounting. Think bonding, iscsi multipathing, etc.

The solution here is that the ip cmdline parsers enforces the presence of <dev> for multiple ip= lines and further demands that the new argument bootdev contains the name of the primary interface to be used for routing etc. Configuration is of course again delegated to netroot but in this case netroot takes additional care to "wait" for all required interfaces to be up.


In order to ensure correct ip= lines I've added a lot of cmdline parseing and some mostly minor rewrites of actual netroot handlers.


Thanks for reviewing (or accepting) the stuff,
Philippe
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux