Mailing List Archive

[Fwd: pxelinux doesn't suppress common prefix if nothing precedes double colon]
Just a reminder that this remains an issue up to and including the
latest syslinux 3.53-pre (0x473cfc9c).

Additional testing suggests that implicit hostname/IP has never worked,
ever since the common prefix suppression feature was added in version 3.00.

-------- Original Message --------
Subject: pxelinux doesn't suppress common prefix if nothing precedes
double colon
Date: Sat, 25 Aug 2007 22:22:00 -0400
From: Paul Whittaker <whitpa@velocitynet.com.au>
To: syslinux@zytor.com



Contrary to the pxelinux.doc documentation, the common filename prefix
is only suppressed if an explicit hostname or IP address precedes the
double colon, e.g. 192.168.1.1::/foobar. A tcpdump of TFTP requests
reveals that the double colon does nothing in implicit case (::/foobar
is the same as /foobar, i.e. gets mapped to /pxelinux//foobar or
whatever). 0.0.0.0::/foobar also does this.

I first noticed the problem in 3.51, and have confirmed that it still
exists in the current (3.52 0x46d0cdef) git code.

Sorry, my 80x86 assembly skills are too rusty to fix this myself, but it
should be 100% reproduceable.



_______________________________________________
SYSLINUX mailing list
Submissions to SYSLINUX@zytor.com
Unsubscribe or set options at:
http://www.zytor.com/mailman/listinfo/syslinux
Please do not send private replies to mailing list traffic.
Re: [Fwd: pxelinux doesn't suppress common prefix if nothing precedes double colon] [ In reply to ]
Paul Whittaker wrote:
> Just a reminder that this remains an issue up to and including the
> latest syslinux 3.53-pre (0x473cfc9c).
>
> Additional testing suggests that implicit hostname/IP has never worked,
> ever since the common prefix suppression feature was added in version 3.00.

Thanks for the reminder. I will look into it.

-hpa

_______________________________________________
SYSLINUX mailing list
Submissions to SYSLINUX@zytor.com
Unsubscribe or set options at:
http://www.zytor.com/mailman/listinfo/syslinux
Please do not send private replies to mailing list traffic.
Re: [Fwd: pxelinux doesn't suppress common prefix if nothing precedes double colon] [ In reply to ]
Paul Whittaker wrote:
> Just a reminder that this remains an issue up to and including the
> latest syslinux 3.53-pre (0x473cfc9c).
>
> Additional testing suggests that implicit hostname/IP has never worked,
> ever since the common prefix suppression feature was added in version 3.00.
>
> -------- Original Message --------
> Subject: pxelinux doesn't suppress common prefix if nothing precedes
> double colon
> Date: Sat, 25 Aug 2007 22:22:00 -0400
> From: Paul Whittaker <whitpa@velocitynet.com.au>
> To: syslinux@zytor.com
>
> Contrary to the pxelinux.doc documentation, the common filename prefix
> is only suppressed if an explicit hostname or IP address precedes the
> double colon, e.g. 192.168.1.1::/foobar. A tcpdump of TFTP requests
> reveals that the double colon does nothing in implicit case (::/foobar
> is the same as /foobar, i.e. gets mapped to /pxelinux//foobar or
> whatever). 0.0.0.0::/foobar also does this.
>
> I first noticed the problem in 3.51, and have confirmed that it still
> exists in the current (3.52 0x46d0cdef) git code.
>
> Sorry, my 80x86 assembly skills are too rusty to fix this myself, but it
> should be 100% reproduceable.
>

I just tested this on my own system, and I explicitly do *NOT* see this
problem in syslinux-3.53-pre5. I need more details about exactly what
you're trying to do; in particular if you can send me a config file that
reproduces the problem it would help.

-h-pa

_______________________________________________
SYSLINUX mailing list
Submissions to SYSLINUX@zytor.com
Unsubscribe or set options at:
http://www.zytor.com/mailman/listinfo/syslinux
Please do not send private replies to mailing list traffic.
Re: [Fwd: pxelinux doesn't suppress common prefix if nothing precedes double colon] [ In reply to ]
H. Peter Anvin wrote:
> Paul Whittaker wrote:
>
>> Just a reminder that this remains an issue up to and including the
>> latest syslinux 3.53-pre (0x473cfc9c).
>>
>> Additional testing suggests that implicit hostname/IP has never worked,
>> ever since the common prefix suppression feature was added in version 3.00.
>>
>> -------- Original Message --------
>> Subject: pxelinux doesn't suppress common prefix if nothing precedes
>> double colon
>> Date: Sat, 25 Aug 2007 22:22:00 -0400
>> From: Paul Whittaker <whitpa@velocitynet.com.au>
>> To: syslinux@zytor.com
>>
>> Contrary to the pxelinux.doc documentation, the common filename prefix
>> is only suppressed if an explicit hostname or IP address precedes the
>> double colon, e.g. 192.168.1.1::/foobar. A tcpdump of TFTP requests
>> reveals that the double colon does nothing in implicit case (::/foobar
>> is the same as /foobar, i.e. gets mapped to /pxelinux//foobar or
>> whatever). 0.0.0.0::/foobar also does this.
>>
>> I first noticed the problem in 3.51, and have confirmed that it still
>> exists in the current (3.52 0x46d0cdef) git code.
>>
>> Sorry, my 80x86 assembly skills are too rusty to fix this myself, but it
>> should be 100% reproduceable.
>>
>>
>
> I just tested this on my own system, and I explicitly do *NOT* see this
> problem in syslinux-3.53-pre5. I need more details about exactly what
> you're trying to do; in particular if you can send me a config file that
> reproduces the problem it would help.
>
> -h-pa
>

Okay - I've now found out some more about the conditions under which my
problem occurs. While minimalising my config file for inclusion here, I
discovered that most of my problem is actually caused by
[vesa]menu.c32. When you disable the menu, it partly works. I
conducted the tests that follow using "PXELINUX 3.53 0x473e56dd".

The pxelinux.cfg/default file that I was working with originally looked
something like this:

---

prompt 0
timeout 50
implicit 1
ipappend 1
default menu.c32
menu title Boot Image Selection

label DIET-PC
menu label DIET-PC
menu default
kernel ::/diet-pc/bzImage
append root=/dev/ram0 rw console=tty1
initrd=::/diet-pc/initrd.img

---

This config file results in TFTP behaviour as follows:

root@dietpc-dev-x86:/mnt/hgfs/tftpboot/pxelinux,# tcpdump dst port
69 tcpdump: verbose output suppressed, use -v or -vv for full
protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
17:50:35.390143 IP 192.168.1.247.2070 > gemini.mshome.net.tftp: 38 RRQ
"/pxelinux,/pxelinux.0" octet tsize 0
17:50:35.395433 IP 192.168.1.247.2071 > gemini.mshome.net.tftp: 43 RRQ
"/pxelinux,/pxelinux.0" octet blksize 1456
17:50:35.463612 IP 192.168.1.247.57089 > gemini.mshome.net.tftp: 90 RRQ
"/pxelinux,/pxelinux.cfg/564db280-3aea-24e8-bd0b-0f01" [|tftp]
17:50:35.464840 IP 192.168.1.247.57090 > gemini.mshome.net.tftp: 74 RRQ
"/pxelinux,/pxelinux.cfg/01-00-0c-29-c9-05-19" octet t
17:50:35.467588 IP 192.168.1.247.57091 > gemini.mshome.net.tftp: 62 RRQ
"/pxelinux,/pxelinux.cfg/C0A801F7" octet tsize 0 blksi
17:50:35.468179 IP 192.168.1.247.57092 > gemini.mshome.net.tftp: 61 RRQ
"/pxelinux,/pxelinux.cfg/C0A801F" octet tsize 0 blksiz
17:50:35.468731 IP 192.168.1.247.57093 > gemini.mshome.net.tftp: 60 RRQ
"/pxelinux,/pxelinux.cfg/C0A801" octet tsize 0 blksize
17:50:35.469264 IP 192.168.1.247.57094 > gemini.mshome.net.tftp: 59 RRQ
"/pxelinux,/pxelinux.cfg/C0A80" octet tsize 0 blksize
17:50:35.470696 IP 192.168.1.247.57095 > gemini.mshome.net.tftp: 58 RRQ
"/pxelinux,/pxelinux.cfg/C0A8" octet tsize 0 blksize 1
17:50:35.472818 IP 192.168.1.247.57096 > gemini.mshome.net.tftp: 57 RRQ
"/pxelinux,/pxelinux.cfg/C0A" octet tsize 0 blksize 14
17:50:35.474361 IP 192.168.1.247.57097 > gemini.mshome.net.tftp: 56 RRQ
"/pxelinux,/pxelinux.cfg/C0" octet tsize 0 blksize 140
17:50:35.475710 IP 192.168.1.247.57098 > gemini.mshome.net.tftp: 55 RRQ
"/pxelinux,/pxelinux.cfg/C" octet tsize 0 blksize 1408
17:50:35.477101 IP 192.168.1.247.57099 > gemini.mshome.net.tftp: 61 RRQ
"/pxelinux,/pxelinux.cfg/default" octet tsize 0 blksiz
17:50:35.478610 IP 192.168.1.247.57100 > gemini.mshome.net.tftp: 49 RRQ
"/pxelinux,/menu.c32" octet tsize 0 blksize 1408
17:50:36.454024 IP 192.168.1.247.57101 > gemini.mshome.net.tftp: 61 RRQ
"/pxelinux,/pxelinux.cfg/default" octet tsize 0 blksiz
17:50:37.992667 IP 192.168.1.247.57102 > gemini.mshome.net.tftp: 57 RRQ
"/pxelinux,//diet-pc/bzImage" octet tsize 0 blksize 14

16 packets captured
16 packets received by filter
0 packets dropped by kernel

What I expect it to load is "/diet-pc/bzImage" (followed by
/diet-pc/initrd.img), but it doesn't even attempt this.

The comma at the end of "/pxelinux," is deliberate, BTW, put there for
obscure reasons relating to Micromonitor boot ROM behaviour. Don't
worry about it (see
http://diet-pc.sourceforge.net/arm/hot-e/debian-howto.html#pxe for the
full story if you really care). The TFTP server is Windows 2000's (RIS)
TFTP server, although it is actually running on Windows XP (using
http://www.simonsen.bz/Download/TFTPDaemon_v1.1.zip, c.f.
http://diet-pc.sourceforge.net/windows/etherboot-w2k.html#tftp). The
TFTP server is not on the same machine as the DHCP server (which is
udhcpd, running on a LinkSys WRT54G). The hardware being booted is a
VMWare (6.0.1) virtual machine.

When I take menu.c32 out of the equation, using the config file:

---

prompt 0
timeout 50
implicit 1
ipappend 1
default DIET-PC

label DIET-PC
kernel ::/diet-pc/bzImage
append root=/dev/ram0 rw console=tty1
initrd=::/diet-pc/initrd.img


---

... I get the following behaviour:

root@dietpc-dev-x86:/mnt/hgfs/tftpboot/pxelinux,# tcpdump dst port 69
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
18:12:51.765021 IP 192.168.1.247.2070 > gemini.mshome.net.tftp: 38 RRQ
"/pxelinux,/pxelinux.0" octet tsize 0
18:12:51.766825 IP 192.168.1.247.2071 > gemini.mshome.net.tftp: 43 RRQ
"/pxelinux,/pxelinux.0" octet blksize 1456
18:12:52.770531 IP 192.168.1.247.57089 > gemini.mshome.net.tftp: 90 RRQ
"/pxelinux,/pxelinux.cfg/564db280-3aea-24e8-bd0b-0f01" [|tftp]
18:12:52.773574 IP 192.168.1.247.57090 > gemini.mshome.net.tftp: 74 RRQ
"/pxelinux,/pxelinux.cfg/01-00-0c-29-c9-05-19" octet t
18:12:52.774806 IP 192.168.1.247.57091 > gemini.mshome.net.tftp: 62 RRQ
"/pxelinux,/pxelinux.cfg/C0A801F7" octet tsize 0 blksi
18:12:52.775384 IP 192.168.1.247.57092 > gemini.mshome.net.tftp: 61 RRQ
"/pxelinux,/pxelinux.cfg/C0A801F" octet tsize 0 blksiz
18:12:52.778525 IP 192.168.1.247.57093 > gemini.mshome.net.tftp: 60 RRQ
"/pxelinux,/pxelinux.cfg/C0A801" octet tsize 0 blksize
18:12:52.779047 IP 192.168.1.247.57094 > gemini.mshome.net.tftp: 59 RRQ
"/pxelinux,/pxelinux.cfg/C0A80" octet tsize 0 blksize
18:12:52.782426 IP 192.168.1.247.57095 > gemini.mshome.net.tftp: 58 RRQ
"/pxelinux,/pxelinux.cfg/C0A8" octet tsize 0 blksize 1
18:12:52.785775 IP 192.168.1.247.57096 > gemini.mshome.net.tftp: 57 RRQ
"/pxelinux,/pxelinux.cfg/C0A" octet tsize 0 blksize 14
18:12:52.787681 IP 192.168.1.247.57097 > gemini.mshome.net.tftp: 56 RRQ
"/pxelinux,/pxelinux.cfg/C0" octet tsize 0 blksize 140
18:12:52.789916 IP 192.168.1.247.57098 > gemini.mshome.net.tftp: 55 RRQ
"/pxelinux,/pxelinux.cfg/C" octet tsize 0 blksize 1408
18:12:52.794284 IP 192.168.1.247.57099 > gemini.mshome.net.tftp: 61 RRQ
"/pxelinux,/pxelinux.cfg/default" octet tsize 0 blksiz
18:12:52.797891 IP 192.168.1.247.57100 > gemini.mshome.net.tftp: 46 RRQ
"/diet-pc/bzImage" octet tsize 0 blksize 1408
18:13:50.933504 IP 192.168.1.247.57101 > gemini.mshome.net.tftp: 60 RRQ
"/pxelinux,//diet-pc/initrd.img" octet tsize 0 blksize
18:13:55.857478 IP 192.168.1.247.57102 > gemini.mshome.net.tftp: 46 RRQ
"/diet-pc/bzImage" octet tsize 0 blksize 1408

16 packets captured
16 packets received by filter
0 packets dropped by kernel

As you can see, this loads the kernel (/diet-pc/bzImage) correctly, but
fails to remove the /pxelinux,/ prefix from the initrd. Is this simply
because prefix suppression is not supported on initrd filenames? The
documentation - and a quick look at runkernel.inc - gives me no reason
to suspect that prefix suppression is limited to kernels only.

_______________________________________________
SYSLINUX mailing list
Submissions to SYSLINUX@zytor.com
Unsubscribe or set options at:
http://www.zytor.com/mailman/listinfo/syslinux
Please do not send private replies to mailing list traffic.
Re: [Fwd: pxelinux doesn't suppress common prefix if nothing precedes double colon] [ In reply to ]
Paul Whittaker wrote:
>
> As you can see, this loads the kernel (/diet-pc/bzImage) correctly, but
> fails to remove the /pxelinux,/ prefix from the initrd. Is this simply
> because prefix suppression is not supported on initrd filenames? The
> documentation - and a quick look at runkernel.inc - gives me no reason
> to suspect that prefix suppression is limited to kernels only.
>

It's not. I suspect there is a bug in the codepath taken by the menu
systems, specifically in comboot API function 0016h ("Run kernel
image"). Investigating.

-hpa

_______________________________________________
SYSLINUX mailing list
Submissions to SYSLINUX@zytor.com
Unsubscribe or set options at:
http://www.zytor.com/mailman/listinfo/syslinux
Please do not send private replies to mailing list traffic.
Re: [Fwd: pxelinux doesn't suppress common prefix if nothing precedes double colon] [ In reply to ]
Paul Whittaker wrote:
>
> Okay - I've now found out some more about the conditions under which my
> problem occurs. While minimalising my config file for inclusion here, I
> discovered that most of my problem is actually caused by
> [vesa]menu.c32. When you disable the menu, it partly works. I
> conducted the tests that follow using "PXELINUX 3.53 0x473e56dd".
>

Okay, I found and fixed the bug and pushed it out as syslinux-3.53-pre6.

-hpa

_______________________________________________
SYSLINUX mailing list
Submissions to SYSLINUX@zytor.com
Unsubscribe or set options at:
http://www.zytor.com/mailman/listinfo/syslinux
Please do not send private replies to mailing list traffic.
Re: [Fwd: pxelinux doesn't suppress common prefix if nothing precedes double colon] [ In reply to ]
H. Peter Anvin wrote:
> Paul Whittaker wrote:
>
>> Okay - I've now found out some more about the conditions under which my
>> problem occurs. While minimalising my config file for inclusion here, I
>> discovered that most of my problem is actually caused by
>> [vesa]menu.c32. When you disable the menu, it partly works. I
>> conducted the tests that follow using "PXELINUX 3.53 0x473e56dd".
>>
>>
>
> Okay, I found and fixed the bug and pushed it out as syslinux-3.53-pre6.
>
> -hpa
>

Works perfectly in all cases (menu.c32, vesamenu.c32, no com32). Thanks!

_______________________________________________
SYSLINUX mailing list
Submissions to SYSLINUX@zytor.com
Unsubscribe or set options at:
http://www.zytor.com/mailman/listinfo/syslinux
Please do not send private replies to mailing list traffic.