From owner-freebsd-net@FreeBSD.ORG Sun Jan 11 21:31:13 2009 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C61EA1065673 for ; Sun, 11 Jan 2009 21:31:13 +0000 (UTC) (envelope-from joost@jodocus.org) Received: from viefep19-int.chello.at (viefep19-int.chello.at [62.179.121.39]) by mx1.freebsd.org (Postfix) with ESMTP id 21BC98FC22 for ; Sun, 11 Jan 2009 21:31:12 +0000 (UTC) (envelope-from joost@jodocus.org) Received: from edge01.upc.biz ([192.168.13.236]) by viefep19-int.chello.at (InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id <20090111211417.YUMP27723.viefep19-int.chello.at@edge01.upc.biz> for ; Sun, 11 Jan 2009 22:14:17 +0100 Received: from bps.jodocus.org ([77.248.200.61]) by edge01.upc.biz with edge id 2MEG1b00z1Kyz9101MEHfl; Sun, 11 Jan 2009 22:14:17 +0100 X-SourceIP: 77.248.200.61 Received: from jodocus.org (localhost [IPv6:::1]) by bps.jodocus.org (8.14.2/8.14.2) with ESMTP id n0BLEGfl053954 for ; Sun, 11 Jan 2009 22:14:16 +0100 (CET) (envelope-from joost@jodocus.org) Received: from 192.168.100.227 (SquirrelMail authenticated user joost) by jodocus.org with HTTP; Sun, 11 Jan 2009 22:14:16 +0100 (CET) Message-ID: <1694.192.168.100.227.1231708456.squirrel@jodocus.org> Date: Sun, 11 Jan 2009 22:14:16 +0100 (CET) From: "Joost Bekkers" To: freebsd-net@freebsd.org User-Agent: SquirrelMail/1.4.13 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-3.0 (bps.jodocus.org [IPv6:::1]); Sun, 11 Jan 2009 22:14:16 +0100 (CET) X-Virus-Scanned: ClamAV 0.94.2/8852/Sun Jan 11 20:31:01 2009 on bps.jodocus.org X-Virus-Status: Clean Subject: pxeboot(8) after pxelinux X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jan 2009 21:31:14 -0000 Hello I've been playing with chainloading pxeboot after pxelinux and its menu feature. It's working, but I had to do something weird. I'm wondering if anybody can come up with a logical explanation. (and feeding the search engines for people experiencing the same problem is a nice added bonus) After pxeboot starts it first does a dhcp request and proceeds to load /boot/loader.rc, which fails if pxelinux was part of the process. tftp requests leave the host, answers are send back, but are ignored by the client and the download times out. The loader then proceeds to try /boot/boot.conf, this succeeds (read: the client receives a ENOTFOUND and reacts accordingly. It does NOT time-out) The only significant event I could find between the two downloads was the closing and re-opening of the pxe socket (netif_close() and netif_open()) And indeed if I add netif_close() and netif_open() to the dhcp code in pxe_open() everything works. I checked the pxe documentation and didn't see anything about not being allowed to receive packets on different ports, the API looks to have been written to specificaly support it. I don't think pxeboot is at fault here, but I'd really like to know if there is a good explanation for this behaviour. Thanks, Joost Bekkers