da503fd5ce
In essence, the pxe preference doesn't apply to ppc64le. This is because PXE data loading is part of the firmware and does not use an intermediate boot loader like ipxe, syslinux, or even grub. Changes the logic to always set the stage for PXE based deployments and enables boot setting awareness for ppc64le based on the TFTP defaults. This allows ppc64le to coexist with an environment preferring HTTP transport like those used with iPXE. Change-Id: I27fa53700c1b44f14725bc66b929732553da58f8
69 lines
2.5 KiB
Plaintext
69 lines
2.5 KiB
Plaintext
port=0
|
|
interface=<%= @dnsmasq_interface %>
|
|
<% if @dhcp_debug %>
|
|
log-dhcp
|
|
log-queries
|
|
<% end %>
|
|
<% @dnsmasq_ip_subnets_real.each do |s| -%>
|
|
<% if s['tag'] and s['netmask'] -%>
|
|
dhcp-range=set:<%= s['tag'] -%>,<%= s['ip_range'] -%>,<%= s['netmask'] -%>,10m
|
|
<% elsif s['tag'] -%>
|
|
dhcp-range=set:<%= s['tag'] -%>,<%= s['ip_range'] -%>,10m
|
|
<% else -%>
|
|
dhcp-range=<%= s['ip_range'] -%>,10m
|
|
<% end -%>
|
|
<% if s['gateway'] -%>
|
|
<% if s['tag'] -%>
|
|
dhcp-option=tag:<%= s['tag'] -%>,option:router,<%= s['gateway'] %>
|
|
<% else -%>
|
|
dhcp-option=option:router,<%= s['gateway'] %>
|
|
<% end -%>
|
|
<% end -%>
|
|
<% if s['mtu'] -%>
|
|
<% if s['tag'] -%>
|
|
dhcp-option-force=tag:<%= s['tag'] -%>,option:mtu,<%= s['mtu'] %>
|
|
<% else -%>
|
|
dhcp-option-force=option:mtu,<%= s['mtu'] %>
|
|
<% end -%>
|
|
<% end -%>
|
|
<% if s['classless_static_routes'] -%>
|
|
<%- @_routes = [] -%>
|
|
<%- s['classless_static_routes'].each do |route| -%>
|
|
<%- @_routes << route['destination'] + ',' + route['nexthop'] -%>
|
|
<% end -%>
|
|
<% if s['tag'] -%>
|
|
dhcp-option=tag:<%= s['tag'] -%>,option:classless-static-route,<%= @_routes.join(',') -%>
|
|
<% else -%>
|
|
dhcp-option=option:classless-static-route,<%= @_routes.join(',') -%>
|
|
<% end -%>
|
|
<% end -%>
|
|
<% end -%>
|
|
dhcp-sequential-ip
|
|
dhcp-match=ipxe,175
|
|
dhcp-match=set:efi,option:client-arch,7
|
|
dhcp-match=set:efi,option:client-arch,9
|
|
dhcp-match=set:efi,option:client-arch,11
|
|
# dhcpv6s for Client System Architecture Type (61)
|
|
dhcp-match=set:efi6,option6:61,0007
|
|
dhcp-match=set:efi6,option6:61,0009
|
|
dhcp-match=set:efi6,option6:61,0011
|
|
dhcp-userclass=set:ipxe6,iPXE
|
|
# Client is already running iPXE; move to next stage of chainloading
|
|
dhcp-boot=tag:ipxe,http://<%= @dnsmasq_local_ip_real %>:<%= @http_port_real %>/inspector.ipxe
|
|
dhcp-option=tag:ipxe6,option6:bootfile-url,http://<%= @dnsmasq_local_ip_real %>:<%= @http_port_real %>/inspector.ipxe
|
|
# Client is PXE booting over EFI without iPXE ROM; send EFI version of iPXE chainloader
|
|
dhcp-boot=tag:efi,tag:!ipxe,ipxe.efi
|
|
dhcp-option=tag:efi6,tag:!ipxe6,option6:bootfile-url,tftp://<%= @dnsmasq_local_ip_real %>/ipxe.efi
|
|
# Client is running PXE over BIOS; send BIOS version of iPXE chainloader
|
|
dhcp-boot=undionly.kpxe,localhost.localdomain,<%= @dnsmasq_local_ip %>
|
|
<% if @dnsmasq_dhcp_hostsdir %>
|
|
dhcp-hostsdir=<%= @dnsmasq_dhcp_hostsdir %>
|
|
<% end %>
|
|
<% if @enable_ppc64le -%>
|
|
# Client is ppc64le (OPAL) box and doesn't need a chain loader, but does need a custom config
|
|
dhcp-match=set:ppc64le,option:client-arch,14
|
|
dhcp-boot=tag:ppc64le,
|
|
dhcp-option=tag:ppc64le, 210,<%= @tftp_root_real %>/ppc64le/
|
|
dhcp-option=tag:ppc64le, 209,default
|
|
<% end -%>
|