[ipxe-devel] BOOTP_FL_BROADCAST 0x8000 trouble

Juergen Brunk Juergen.Brunk at osys.ch
Fri Apr 20 09:09:07 UTC 2012


Hi Dev-Team

I'm working on a iPXE solution and unfortunately I've run into trouble with the DHCP part. I've checked the forum and found a unanswered question: 
" So how can I ensure that iPXE uses #define BOOTP_FL_BROADCAST 0x8000 when doing DHCP?" 
This discribe my problem exactly.

See the tcpdump here:
***********************************************************************************************************************
Test with standard PXE:
=======================

[root@ ~]# tcpdump -lenx -s 1500 port bootps or port bootpc | dhcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 1500 bytes
TCPdump 3.8.x output
  TIME: 09:27:32.866541
    IP: > (00:0c:29:fb:2c:f5) >  (Broadcast)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: 2afb2cf5
  SECS: 4
 FLAGS: 7f80				<<<=== !

Test with iPXE:
===============

listening on eth0, link-type EN10MB (Ethernet), capture size 1500 bytes
TCPdump 3.8.x output
  TIME: 09:29:49.850330
    IP: > (00:0c:29:fb:2c:f5) >  (Broadcast)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: d63ee953
  SECS: 4
 FLAGS: 0				<<<=== !
***********************************************************************************************************************
I'm using the newest release of iPXE and working in a VMWare environment. Here is my included ipxe-script:

#!ipxe

echo
echo +----- RCH adjusted area -----+
echo
dhcp net0 || echo DHCP error

set timeout 5000

:start
menu iPXE boot menu

item --gap -- ------------------------- select desired task ------------------------------
item --default --key x exit     Exit iPXE and continue BIOS boot
item           --key i install  Install/reinstall OS
item           --key r rescue   Boot a rescue system
item --gap -- ------------------------- Advanced options -------------------------------
item --key c config Configure settings
item shell Drop to iPXE shell
item reboot Reboot computer
item
choose --timeout ${timeout} selected || goto cancel
set timeout 0
goto ${selected}

:cancel
echo You cancelled the menu, dropping you to a shell

:shell
echo Type exit to get the back to the menu
shell
set timeout 0
goto start

:reboot
reboot

:exit
exit

:config
config
goto start

:install
echo
echo Please type the hostname
read hn
set hostname ${hn}
chain tftp:// xxx.xxx.xxx.xxx /pxelinux.cfg/${hn} || goto menu_ip

:rescue
chain tftp:// xxx.xxx.xxx.xxx /pxelinux.cfg/rescue || shell

:menu_ip
echo
echo Please type the IP adresss
read ip
set net0/ip ${ip}
chain tftp://xxx.xxx.xxx.xxx/pxelinux.0 || shell
***********************************************************************************************************************

Without this flag our firewall block such traffic - and unfurtunately it's not option to change something in the firewall.
I'm not a C-Guru and tried to find the problem insite the src c-files but without success. Could you give me an advice how to ensure that the "FLAGS 7f80" is also set with iPXE?



Kind Regards
Jürgen Brunk



More information about the ipxe-devel mailing list