From owner-freebsd-net Tue Mar 12 12:38:33 2002 Delivered-To: freebsd-net@freebsd.org Received: from ambrisko.com (adsl-64-174-51-42.dsl.snfc21.pacbell.net [64.174.51.42]) by hub.freebsd.org (Postfix) with ESMTP id 7118A37B400 for ; Tue, 12 Mar 2002 12:38:21 -0800 (PST) Received: (from ambrisko@localhost) by ambrisko.com (8.11.6/8.11.6) id g2CKbH609035; Tue, 12 Mar 2002 12:37:17 -0800 (PST) (envelope-from ambrisko) From: Doug Ambrisko Message-Id: <200203122037.g2CKbH609035@ambrisko.com> Subject: Re: bootp tags used in FreeBSD ? In-Reply-To: <20020311232650.E48429@iguana.icir.org> To: Luigi Rizzo Date: Tue, 12 Mar 2002 12:37:17 -0800 (PST) Cc: net@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL94b (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org Luigi Rizzo writes: | Hi, | does anyone have up-to-date information on which bootp/dhcp | tags are used by FreeBSD ? | I am asking because of two reasons: | | + I would like to pass some info from the bootp/dhcp server | to userland, so they can be used at runtime to customize | system's behaviour (specific example: I have ~100 clients | in different labs booting from the same server, where | configuration should be lab-specific but not host-specific. | A bootp server could easily pass the "domain" each host | belong to. I know I could derive this info using the hostname | as a search key, but this would involve an additional configuration | file...). | | + I was going to fix the bootptab manpage and i see that there are | several vendor tags used in bootpc_subr and in etherboot | which are not documented. Even worse, some of those tags are | not consistent across different systems, and even etherboot | and bootpc_subr.c have different ideas on T129 and T130 I'd suggest look at isc-dhcp 3 and get dhclient working in a netboot environment so you can deal with "vendor-class-identifier". Then just have it do the right things without more over loading of common things and then run into a collision which there are several. For example here are parts of my dhcpd.conf file; option etherboot-freebsd-howto code 132 = integer 32; option etherboot-kernel-env code 133 = string; option etherboot-menu-count code 176 = integer 8; option etherboot-menu-config code 160 = string; option etherboot-menu-1 code 192 = string; option etherboot-menu-2 code 193 = string; option etherboot-menu-3 code 194 = string; option etherboot-menu-4 code 195 = string; option etherboot-menu-5 code 196 = string; option etherboot-menu-6 code 197 = string; option freebsd-swap-path code 128 = string; option dhcp-vendor-identifier code 60 = string; option load-control code 160 = string; class "etherboot" { match if substring (option vendor-class-identifier, 0, 9) = "Etherboot"; option etherboot-menu-count 5; option etherboot-menu-config "timeout=30:default=192:"; option etherboot-menu-1 "BSD:::/tftpboot/kernel.bsd:"; option etherboot-menu-2 "DOS:::/tftpboot/netdos:"; option etherboot-menu-3 "TEST:::/tftpboot/kernel.test:"; option etherboot-menu-4 "DISK:::/dev/hda"; option etherboot-menu-5 "GRUB:::/tftpboot/nbgrub"; option etherboot-menu-6 "PXE:::/tftpboot/pxeboot"; option etherboot-kernel-env "hw.ata.wc=1"; # option etherboot-freebsd-howto 0x00001002; # serial & single option etherboot-freebsd-howto 0x00001000; # serial # option etherboot-freebsd-howto 0x00001800; # serial & verbose } class "pxe" { match if substring (option vendor-class-identifier, 0, 9) = "PXEClient"; # filename "/tftpboot/pxeboot"; } class "ambit-load" { match if option dhcp-vendor-identifier = "Load"; option root-path "ftp://192.168.99.254/ambit-1.5.43-am"; option load-control "stuff that only this cares"; } Then in my dhclient.conf (version 3) option load-control code 160 = string; send vendor-class-identifier "Load"; request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name, root-path, option-160; and then dhclient-exit-hooks do what I need with the parameters passed. I also have a fully working proxyDHCP & bootserver functionality so I can do menus, DOS boots etc via PXE compliant roms via patches to isc-dhcp that are on the net. Now I don't have to worry about bpBatch, Etherboot, PXE, FreeBSD, Linux all fighting over the same parameter and making the packet to big. BTW it would be nice to add a Vendor Indentifier to the kernel DHCP request to filter out just those things. I think jdp was working on making dhclient not kill the network when run from a netbooted environment. I forget the status of that. Doug A. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message