[syslinux] pxelinux problem (plus a fix proposal)
Jaroslaw.Polok at cern.ch
Jaroslaw.Polok at cern.ch
Fri Jun 7 02:00:31 PDT 2002
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
More information about the Syslinux
mailing list