Re: PXE-compliant boot server request?

Roland Kuhn <[email protected]> Wed, 15 Feb 2006 11:24:33 +0100
Newsgroups gmane.network.etherboot.devel
Message-ID <[email protected]>
Hi Marty!

On 6 Feb 2006, at 15:57, Marty Connor wrote:

> On Feb 5, 2006, at 3:28 PM, Roland Kuhn wrote:
>> Hi!
>> I'm struggling with the automatic network installation setup at  
>> our institute, which requires more PXE-compliance than currently  
>> offered by etherboot. To be specific, it requires the  
>> PXE_BOOT_ITEM selection to be present in the DHCPREQUEST, and it  
>> requests via DHCP_DISCOVERY_CONTROL that neither broadcast nor  
>> multicast be used for that packet. I'm thinking about adding that  
>> functionality, but there are two ways: hard-coding the specifics  
>> for this setup or handling the involved protocol. What do you  
>> think? Does this have a chance of inclusion?
>> Ciao,
>>                     Roland
>
> Improved PXE compatibility is certainly one of our goals, and if  
> your changes work toward that end, they are likely to be included.
> Handling the protocol would be more likely to be included, of  
> course (as I am sure you would do).
>
> Thanks for writing, and we look forward to seeing what you come up  
> with.
>
Okay, it took some more time that I had hoped, but I think I managed  
some steps in the right direction. The problem is that the system I'm  
testing this on has a network card which is not completely supported:  
The UDP checksum of the received answers from the server are messed  
up because bytes are missing here and there throughout the packets.  
At first I thought that somehow my code for parsing the boot menu was  
buggered, but when I dumped the raw bytes it became obvious that e.g.  
the third octet from an IP address was missing and some characters in  
the boot menu strings were simply not there.

The card in question is a 3com996B-T with the bcm5701 chipset, lspci - 
vvvnxx output is

00:08.0 Class 0200: 14e4:1645 (rev 15)
         Subsystem: 10b7:1006
         Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-  
ParErr+ Stepping- SERR+ FastB2B-
         Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium  
 >TAbort- <TAbort- <MAbort- >SERR- <PERR-
         Latency: 64 (16000ns min), cache line size 10
         Interrupt: pin A routed to IRQ 11
         Region 0: Memory at f4800000 (64-bit, non-prefetchable)  
[size=64K]
         Capabilities: [40] PCI-X non-bridge device.
                 Command: DPERE- ERO- RBC=0 OST=0
                 Status: Bus=255 Dev=31 Func=1 64bit+ 133MHz+ SCD-  
USC-, DC=simple, DMMRBC=0, DMOST=0, DMCRS=0, RSCEM-
         Capabilities: [48] Power Management version 2
                 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME 
(D0-,D1-,D2-,D3hot+,D3cold+)
                 Status: D0 PME-Enable- DSel=0 DScale=1 PME-
         Capabilities: [50] Vital Product Data
         Capabilities: [58] Message Signalled Interrupts: 64bit+  
Queue=0/3 Enable-
                 Address: 64d30400de1e7900  Data: 0388
00: e4 14 45 16 46 01 b0 02 15 00 00 02 10 40 00 00
10: 04 00 80 f4 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 b7 10 06 10
30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 40 00
40: 07 48 00 00 f9 ff 03 00 01 50 02 c0 00 20 00 64
50: 03 58 fc 80 00 00 00 78 05 00 86 00 00 79 1e de
60: 00 04 d3 64 88 03 00 00 98 00 05 01 0f 08 ff 76
70: 86 10 00 00 3f 00 00 80 50 00 00 00 00 00 00 00
80: 03 58 fc 80 44 56 34 11 34 00 11 24 82 00 00 00
90: 09 06 00 01 00 00 00 00 00 00 00 00 bf 01 00 00
a0: 00 00 00 00 f7 00 00 00 00 00 00 00 d6 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

I have tried to make some additions to bring tg3.c a bit closer to  
the current linux kernel version, but without success. I'm hunting in  
the dark here... If anybody has an idea I'd be glad to hear it.  
Meanwhile I'll try if I can make that card running at 100MBit only to  
see if that makes it any better (though I also have no idea how to  
achieve that, either).

Ciao,
                     Roland

--
TU Muenchen, Physik-Department E18, James-Franck-Str., 85748 Garching
Telefon 089/289-12575; Telefax 089/289-12570
--
CERN office: 892-1-D23 phone: +41 22 7676540 mobile: +41 76 487 4482
--
UNIX was not designed to stop you from doing stupid things, because that
would also stop you from doing clever things.
	-Doug Gwyn
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GS/CS/M/MU d-(++) s:+ a-> C+++ UL++++ P+++ L+++ E(+) W+ !N K- w--- M 
+ !V Y+
PGP++ t+(++) 5 R+ tv-- b+ DI++ e+++>++++ h---- y+++
------END GEEK CODE BLOCK------
PGP.sig (application/pgp-signature, 186 B) - not displayed