So BOOTIF is expanded by xnba (or elilo with xnba) to be 'the mac address of whatever network adapter successfully performed PXE'. The expansion is done client side prior to linux running.
The server side mac table is used to feed into the dhcp definitition, to make sure that a fixed-address reservation exists. There is some extended syntax to support multiple network cards that can be tricky, so we used client-side expansion of the mac address where possible. Also supporting multiple interfaces is a bit easier. -----Original Message----- From: Thomas HUMMEL <thomas.hum...@pasteur.fr> Sent: Tuesday, January 22, 2019 6:48 AM To: xcat-user@lists.sourceforge.net Subject: [External] [xcat-user] xnba, noderes nics and BOOTIF Hello, I'm using a somehow old xCAT version (2.11) to provision stateless OSimages using switch based discovery. Everything works fine but I cannot fully understand how the whole PXE process works : my understanding is that, starting from scratch, it goes like this : Unknown node : 1. C: native PXE client request 2. S : xCAT answers by providing xnba 3. C: xnba make another PXE request 4. S : xCAT answers by providing the 'net' (/tftpboot/xcat/xnba/nets/<net>) gpxe script 5 C : xnba executes the 'net' gpxe script which http-downloads genesis image which kernel is given the BOOTIF parameter : expanded to what ? [genesis does its job. BTW : I thought a nodeset was done at the end of chain to instruct to next boot on the final osimage (provided 'osimage=' ends up chain) but it does not seems to be an exactg equivalent to nodeset since the prescripts in that context aren't executed : am I right ?] 1. - 3. : same as above 4. S: xCAT answers by providing the 'node' (/tfptboot/xcat/xnba/nodes/<node>) gpxe script 5 C : xnba executes the 'node' gpxe script which http-downloads the final osimage which kernel is given the BOOTIF parameter : expanded to what ? Though my setup works, I'm having a hard time figuring out exactly what are the use/relevance and links (if any) between [install|primary|discovery]nics in the noderes table and the BOOTIF kernel parameter as well as what exactly gets BOOTIF expdanded to. I'm (successfully) provisionning on nodes like this - eth0, eth1 : 2 built-in 1G ethernet interfaces - eth2 : 1 additionnal PCI-E 10G ethernet card - bios configured to PXE through the latter (eth2) So it seems to me everything from the first native PXE request to the os image download, goes through this 10G/eth2 interface. This is as a matter of fact what I want. But : - how is it that it works in spite of my noderes table being set up (probably from a previous trial) like this : "compute",,"xnba","xcat",,"xcat",,,"eth1","eth0",,,,,,,,,,, -> installnic is == eth1 - how does (step 2. above) xnba "know" what interface to use for it's own PXE request since no BOOTIF nor kernel has been passed yet ? Thanks -- Thomas HUMMEL _______________________________________________ xCAT-user mailing list xCAT-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xcat-user _______________________________________________ xCAT-user mailing list xCAT-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xcat-user