<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/net/udp, branch openslx</title>
<subtitle>Fork of ipxe; additional commands and features</subtitle>
<id>https://git.openslx.org/openslx-ng/ipxe.git/atom/src/net/udp?h=openslx</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/net/udp?h=openslx'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2026-01-14T16:10:29+00:00</updated>
<entry>
<title>[build] Mark known reviewed files as permitted for UEFI Secure Boot</title>
<updated>2026-01-14T16:10:29+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2026-01-14T14:36:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=adcaaf9b93f9de14ba93bea54aecef103fe16b5f'/>
<id>urn:sha1:adcaaf9b93f9de14ba93bea54aecef103fe16b5f</id>
<content type='text'>
Some past security reviews carried out for UEFI Secure Boot signing
submissions have covered specific drivers or functional areas of iPXE.
Mark all of the files comprising these areas as permitted for UEFI
Secure Boot.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Mark core files as permitted for UEFI Secure Boot</title>
<updated>2026-01-14T13:25:34+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2026-01-14T13:25:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=6cccb3bdc00359068c07125258d71ce24db5118a'/>
<id>urn:sha1:6cccb3bdc00359068c07125258d71ce24db5118a</id>
<content type='text'>
Mark all files used in a standard build of bin-x86_64-efi/snponly.efi
as permitted for UEFI Secure Boot.  These files represent the core
functionality of iPXE that is guaranteed to have been included in
every binary that was previously subject to a security review and
signed by Microsoft.  It is therefore legitimate to assume that at
least these files have already been reviewed to the required standard
multiple times.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[ipv4] Add support for classless static routes</title>
<updated>2025-06-10T17:22:32+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2025-06-10T15:55:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=b5fb7353fa3856cee7e0a6760c2341ca617d6ef4'/>
<id>urn:sha1:b5fb7353fa3856cee7e0a6760c2341ca617d6ef4</id>
<content type='text'>
Add support for RFC 3442 classless static routes provided via DHCP
option 121.

Originally-implemented-by: Hazel Smith &lt;hazel.smith@leicester.ac.uk&gt;
Originally-implemented-by: Raphael Pour &lt;raphael.pour@hetzner.com&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[uaccess] Remove redundant copy_from_user() and copy_to_user()</title>
<updated>2025-04-30T14:32:03+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2025-04-30T14:18:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=b6f9e4bab082c3b7a9b587ef64109069fba59baa'/>
<id>urn:sha1:b6f9e4bab082c3b7a9b587ef64109069fba59baa</id>
<content type='text'>
Remove the now-redundant copy_from_user() and copy_to_user() wrapper
functions.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[ipv6] Expose router address for DHCPv6 leased addresses</title>
<updated>2024-06-27T12:43:37+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2024-06-27T12:26:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=b66e27d9b29a172a097c737ab4d378d60fe01b05'/>
<id>urn:sha1:b66e27d9b29a172a097c737ab4d378d60fe01b05</id>
<content type='text'>
The DHCPv6 protocol does not itself provide a router address or a
prefix length.  This information is instead obtained from the router
advertisements.

Our IPv6 minirouting table construction logic will first construct an
entry for each advertised prefix, and later update the entry to
include an address assigned within that prefix via stateful DHCPv6 (if
applicable).

This logic fails if the address assigned via stateful DHCPv6 does not
fall within any of the advertised prefixes (e.g. if the network is
configured to use DHCPv6-assigned /128 addresses with no advertised
on-link prefixes).  We will currently treat this situation as
equivalent to having a manually assigned address with no corresponding
router address or prefix length: the routing table entry will use the
default /64 prefix length and will not include the router address.

DHCPv6 is triggered only in response to a router advertisement with
the "Managed Address Configuration (M)" or "Other Configuration (O)"
flags set, and a router address is therefore available at the point
that we initiate DHCPv6.

Record the router address when initiating DHCPv6, and expose this
router address as part of the DHCPv6 settings block.  This allows the
routing table entry for any address assigned via stateful DHCPv6 to
correctly include the router address, even if the assigned address
does not fall within an advertised prefix.

Also provide a fixed /128 prefix length as part of the DHCPv6 settings
block.  When an address assigned via stateful DHCPv6 does not fall
within an advertised prefix, this will cause the routing table entry
to have a /128 prefix length as expected.  (When such an address does
fall within an advertised prefix, it will continue to use the
advertised prefix length.)

Originally-fixed-by: Guvenc Gulce &lt;guevenc.guelce@sap.com&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[tftp] Add error table entry for TFTP "file not found" error code</title>
<updated>2024-03-29T14:46:13+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2024-03-29T12:38:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=afae8817826ef8356b89a5e131ff42750ab267d4'/>
<id>urn:sha1:afae8817826ef8356b89a5e131ff42750ab267d4</id>
<content type='text'>
Add an abbreviated "Not found" error message for a TFTP "file not
found" error code, so that any automatic attempt to download a
non-existent autoexec.ipxe script produces only a minimal error
message.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[dhcp] Request NTP server option</title>
<updated>2023-07-19T10:13:52+00:00</updated>
<author>
<name>Cornelius Hoffmann</name>
</author>
<published>2023-07-10T20:24:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=c1834f323f4f6b9b46cd5895b1457a117381363f'/>
<id>urn:sha1:c1834f323f4f6b9b46cd5895b1457a117381363f</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[ntp] Define NTP server setting</title>
<updated>2023-07-19T10:10:15+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2023-07-19T10:10:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=d5c08f78bdf45668a955c1f3d3a96f35d8c0e91b'/>
<id>urn:sha1:d5c08f78bdf45668a955c1f3d3a96f35d8c0e91b</id>
<content type='text'>
Define the IPv4 NTP server setting to simplify the use of a
DHCP-provided NTP server in scripts, using e.g.

  #!ipxe
  dhcp
  ntp ${ntp}

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[dhcp] Unregister ProxyDHCP and PXEBS settings on a successful DHCPACK</title>
<updated>2023-03-14T11:35:30+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2023-03-08T00:43:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=8f1c1201199a924eeba31494be5aa6bf13eb3fa0'/>
<id>urn:sha1:8f1c1201199a924eeba31494be5aa6bf13eb3fa0</id>
<content type='text'>
When a DHCP transaction does not result in the registration of a new
"proxydhcp" or "pxebs" settings block, any existing settings blocks
are currently left unaltered.

This can cause surprising behaviour.  For example: when chainloading
iPXE, the "proxydhcp" and "pxebs" settings blocks may be prepopulated
using cached values from the previous PXE bootloader.  If iPXE
performs a subsequent DHCP request, then the DHCP or ProxyDHCP servers
may choose to respond differently to iPXE.  The response may choose to
omit the ProxyDHCP or PXEBS stages, in which case no new "proxydhcp"
or "pxebs" settings blocks may be registered.  This will result in
iPXE using a combination of both old and new DHCP responses.

Fix by assuming that a successful DHCPACK effectively acquires
ownership of the "proxydhcp" and "pxebs" settings blocks, and that any
existing settings blocks should therefore be unregistered.

Reported-by: Henry Tung &lt;htung@palantir.com&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[dhcp] Ignore DHCPNAK unless originating from the selected DHCP server</title>
<updated>2023-02-03T19:51:58+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2023-02-03T19:36:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=8450fa4a7b9a8236a43b74639fc80bada994ce07'/>
<id>urn:sha1:8450fa4a7b9a8236a43b74639fc80bada994ce07</id>
<content type='text'>
RFC 2131 leaves undefined the behaviour of the client in response to a
DHCPNAK that comes from a server other than the selected DHCP server.

A substantial amount of online documentation suggests using multiple
independent DHCP servers with non-overlapping ranges in the same
subnet in order to provide some minimal redundancy.  Experimentation
shows that in this setup, at least ISC dhcpd will send a DHCPNAK in
response to the client's DHCPREQUEST for an address that is not within
the range defined on that server.  (Since the requested address does
lie within the subnet defined on that server, this will happen
regardless of the "authoritative" parameter.)  The client will
therefore receive a DHCPACK from the selected DHCP server along with
one or more DHCPNAKs from each of the non-selected DHCP servers.

Filter out responses from non-selected DHCP servers before checking
for a DHCPNAK, so that these arguably spurious DHCPNAKs will not cause
iPXE to return to the discovery state.

Continue to check for DHCPNAK before filtering out responses for
non-selected lease addresses, since experimentation shows that the
DHCPNAK will usually have an empty yiaddr field.

Reported-by: Anders Blomdell &lt;anders.blomdell@control.lth.se&gt;
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
</feed>
