Jaroslaw.Polok at cern.ch
2002-Jun-07 09:00 UTC
[syslinux] pxelinux problem (plus a fix proposal)
Hello I'm using the ISC-dhcp 3.0pl1 + pxe patch (from http://savannah.gnu.org/download/pxe-toolkit/) and pxelinux as the loader program. It turns out that in my configuration pxelinux specific DHCP options are sent out by the server encapsulated within vendor extension option (option 43, RFC 1533). Currently pxelinux cannot parse this correctly (the full option 43 with it's contents is treated as unknown and skipped). Please find enclosed patch proposal and dump of dhcp packet sent out from the server. Best Regards Jaroslaw PS: I know that my assembly knowledge is .. er .. basic, so I'm sure you can fix it in a better way .. And feel free to contact me if you need/want more information. -- ------------------------------------------------------- _ Jaroslaw_Polok ___________________ CERN - IT/ADC/LE _ _ http://home.cern.ch/~jpolok ___ tel_+41_22_767_1834 _ ______________________________________+41_78_7920795___ -------------- next part -------------- Frame 37 (381 on wire, 381 captured) Arrival Time: Jun 7, 2002 10:53:33.8691 Time delta from previous packet: 0.002881 seconds Time relative to first packet: 0.169983 seconds Frame Number: 37 Packet Length: 381 bytes Capture Length: 381 bytes Ethernet II Destination: 0a:00:30:89:b5:c1 (0a:00:30:89:b5:c1) Source: 00:a0:cc:73:39:49 (Lite-On_73:39:49) Type: IP (0x0800) Internet Protocol Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 367 Identification: 0x0000 Flags: 0x04 .1.. = Don't fragment: Set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0x4f7c (correct) Source: lxnfs2.cern.ch (137.138.181.199) Destination: asis-w5.cern.ch (137.138.33.38) User Datagram Protocol Source port: pxe (4011) Destination port: pxe (4011) Length: 347 Checksum: 0xbca4 (correct) Data (339 bytes) 0 0201 0600 5a34 cf34 0005 0000 898a 2126 ....Z4.4......!& 10 0000 0000 898a b5c7 0000 0000 00d0 5934 ..............Y4 20 cf34 0000 0000 0000 0000 0000 0000 0000 .4.............. 30 0000 0000 0000 0000 0000 0000 0000 0000 ................ 40 0000 0000 0000 0000 0000 0000 0000 0000 ................ 50 0000 0000 0000 0000 0000 0000 0000 0000 ................ 60 0000 0000 0000 0000 0000 0000 7078 656c ............pxel 70 696e 7578 2e30 0000 0000 0000 0000 0000 inux.0.......... 80 0000 0000 0000 0000 0000 0000 0000 0000 ................ 90 0000 0000 0000 0000 0000 0000 0000 0000 ................ a0 0000 0000 0000 0000 0000 0000 0000 0000 ................ b0 0000 0000 0000 0000 0000 0000 0000 0000 ................ c0 0000 0000 0000 0000 0000 0000 0000 0000 ................ d0 0000 0000 0000 0000 0000 0000 0000 0000 ................ e0 0000 0000 0000 0000 0000 0000 6382 5363 ............c.Sc f0 3501 0536 0489 8ab5 c701 04ff ff00 0003 5..6............ 100 0489 8a01 0106 0889 8a10 0589 8a11 050f ................ 110 0763 6572 6e2e 6368 2b2d d004 f100 747e .cern.ch+-....t~ ^^^^ 120 d112 313a 303a 6430 3a35 393a 3334 3a63 ..1:0:d0:59:34:c 130 663a 3334 d205 6169 6d73 2fd3 0400 0000 f:34..aims/..... 140 0547 0400 0300 003c 0950 5845 436c 6965 .G.....<.PXEClie 150 6e74 ff nt. -------------- next part -------------- *** pxelinux.asm.org Wed Jun 5 11:33:29 2002 --- pxelinux.asm Wed Jun 5 11:37:05 2002 *************** *** 2081,2090 **** --- 2081,2103 ---- cmp al, 0 ; PAD option je .loop cmp al,255 ; END option je .done + ; + ; ISC-dhcp v 3.X + PXE patch encapsulates pxelinux options into + ; vendor-extension (rfc 1533, option 43) Jaroslaw.Polok at cern.ch + ; for now just skip option byte and length byte + + cmp al, 43 ; VENDOR EXTENSION option + jne .not_vendor_exts + lodsb + dec cx + jmp short .loop + + .not_vendor_exts: + ; Anything else will have a length field mov dl,al ; DL <- option number xor ax,ax lodsb ; AX <- option length dec cx
Jaroslaw.Polok at cern.ch wrote:> Hello > > I'm using the ISC-dhcp 3.0pl1 + pxe patch > (from http://savannah.gnu.org/download/pxe-toolkit/) > and pxelinux as the loader program. > > It turns out that in my configuration pxelinux specific > DHCP options are sent out by the server encapsulated > within vendor extension option (option 43, RFC 1533). >Then fix your configuration file. -hpa
Jarek Polok wrote:> On Fri, 7 Jun 2002, H. Peter Anvin wrote: > > >>>It turns out that in my configuration pxelinux specific >>>DHCP options are sent out by the server encapsulated >>>within vendor extension option (option 43, RFC 1533). >>> >> >>Then fix your configuration file. >>> > Thank you for your attention, but I do not think > that strictly speaking this is illegal behaviour.. >No, it's a misconfiguration on your part.> Anyway , Best Regards > > Jarek > > PS: And unfortunately I cannot change my config: I need > three separate vendor-option-space(s), one of them > being for pxelinux related setup .... (to avoid > options clash with other ones)> PXELINUX doesn't use a vendor-option-space, it uses a site-option-space. See the pxelinux documentation. -hpa