diff --git a/.gitignore b/.gitignore index f8ac84a..71bf9ab 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,4 @@ -*.tar.gz noarch/ .build*.log *.src.rpm -/ipxe-20150407-gitdc795b9f.tar.xz -/ipxe-20150821-git4e03af8.tar.xz -/ipxe-20160622-git0418631.tar.xz -/ipxe-20161108-gitb991c67.tar.xz -/ipxe-20170710-git0600d3ae.tar.xz +/ipxe-*.tar.xz diff --git a/0001-build-customize-configuration.patch b/0001-build-customize-configuration.patch index 03f3da1..045561a 100644 --- a/0001-build-customize-configuration.patch +++ b/0001-build-customize-configuration.patch @@ -1,17 +1,6 @@ -From: Paolo Bonzini -Date: Tue, 17 Nov 2015 11:56:06 -0500 -Subject: [PATCH ipxe] build: customize configuration - -diff --git a/src/config/local/general.h b/src/config/local/general.h -index 5814511..47d0e1a 100644 ---- a/src/config/local/general.h -+++ b/src/config/local/general.h -@@ -0,0 +1,5 @@ -+#undef ROM_BANNER_TIMEOUT -+#define ROM_BANNER_TIMEOUT 0 -+ +diff -rupN ipxe-20190125-git36a4c85f/src/config/local/general.h ipxe-20190125-git36a4c85f.new/src/config/local/general.h +--- ipxe-20190125-git36a4c85f/src/config/local/general.h 1970-01-01 01:00:00.000000000 +0100 ++++ ipxe-20190125-git36a4c85f.new/src/config/local/general.h 2019-02-01 16:40:42.725293033 +0000 +@@ -0,0 +1,2 @@ +/* Enable IPv6. */ +#define NET_PROTO_IPV6 --- -2.9.3 - diff --git a/0003-Strip-802.1Q-VLAN-0-priority-tags.patch b/0003-Strip-802.1Q-VLAN-0-priority-tags.patch deleted file mode 100644 index e7289a6..0000000 --- a/0003-Strip-802.1Q-VLAN-0-priority-tags.patch +++ /dev/null @@ -1,150 +0,0 @@ -From 1a921ececb22bbc41d1fda34576564e84d124a83 Mon Sep 17 00:00:00 2001 -From: Ladi Prosek -Date: Mon, 11 Jul 2016 14:17:36 +0200 -Subject: Strip 802.1Q VLAN 0 priority tags - -RH-Author: Ladi Prosek -Message-id: <1468246656-15560-1-git-send-email-lprosek@redhat.com> -Patchwork-id: 71112 -O-Subject: [RHEL7.3 ipxe PATCH] [netdevice] Strip 802.Q VLAN 0 priority tags -Bugzilla: 1316329 -RH-Acked-by: Stefan Hajnoczi -RH-Acked-by: Laszlo Ersek -RH-Acked-by: Xiao Wang - -iPXE was unable to receive priority tagged packets specified in -the 802.1Q standard and supported by all major networking stacks. - -This commit adds a new function net_pull_tags which is called by -all consumers of incoming packets after stripping their link-layer -headers. - -Upstream patch: -http://lists.ipxe.org/pipermail/ipxe-devel/2016-July/005099.html - -There is a difference between the upstream patch and this patch in the -path prefix of "interface/pxe/pxe_undi.c" because we don't have upstream -commit f468f12b1eca. - -Signed-off-by: Ladi Prosek -Signed-off-by: Miroslav Rezanina ---- - src/arch/x86/interface/pxe/pxe_undi.c | 6 +++++ - src/include/ipxe/netdevice.h | 2 ++ - src/interface/efi/efi_snp.c | 7 ++++++ - src/net/netdevice.c | 44 +++++++++++++++++++++++++++++++++++ - 4 files changed, 59 insertions(+) - -diff --git a/src/arch/x86/interface/pxe/pxe_undi.c b/src/arch/x86/interface/pxe/pxe_undi.c -index 2eb6817..2ea1451 100644 ---- a/src/arch/x86/interface/pxe/pxe_undi.c -+++ b/src/arch/x86/interface/pxe/pxe_undi.c -@@ -976,6 +976,12 @@ static PXENV_EXIT_t pxenv_undi_isr ( struct s_PXENV_UNDI_ISR *undi_isr ) { - } - ll_hlen = ( len - iob_len ( iobuf ) ); - -+ /* Strip link-layer-independent headers */ -+ if ( ( rc = net_pull_tags ( iobuf, pxe_netdev, &net_proto ) ) != 0 ) { -+ /* Assume unknown net_proto */ -+ net_proto = 0; -+ } -+ - /* Determine network-layer protocol */ - switch ( net_proto ) { - case htons ( ETH_P_IP ): -diff --git a/src/include/ipxe/netdevice.h b/src/include/ipxe/netdevice.h -index a1d207f..cea87f7 100644 ---- a/src/include/ipxe/netdevice.h -+++ b/src/include/ipxe/netdevice.h -@@ -719,6 +719,8 @@ extern int net_tx ( struct io_buffer *iobuf, struct net_device *netdev, - extern int net_rx ( struct io_buffer *iobuf, struct net_device *netdev, - uint16_t net_proto, const void *ll_dest, - const void *ll_source, unsigned int flags ); -+extern int net_pull_tags ( struct io_buffer *iobuf, struct net_device *netdev, -+ uint16_t *net_proto ); - extern void net_poll ( void ); - extern struct net_device_configurator * - find_netdev_configurator ( const char *name ); -diff --git a/src/interface/efi/efi_snp.c b/src/interface/efi/efi_snp.c -index e6388bf..d1a1a44 100644 ---- a/src/interface/efi/efi_snp.c -+++ b/src/interface/efi/efi_snp.c -@@ -745,6 +745,13 @@ efi_snp_receive ( EFI_SIMPLE_NETWORK_PROTOCOL *snp, - goto out_bad_ll_header; - } - -+ /* Strip link-layer-independent headers */ -+ if ( ( rc = net_pull_tags ( iobuf, snpdev->netdev, &iob_net_proto ) ) ) { -+ DBGC ( snpdev, "SNPDEV %p could not parse tags: %s\n", -+ snpdev, strerror ( rc ) ); -+ goto out_bad_ll_header; -+ } -+ - /* Return link-layer header parameters to caller, if required */ - if ( ll_header_len ) - *ll_header_len = ll_protocol->ll_header_len; -diff --git a/src/net/netdevice.c b/src/net/netdevice.c -index 9df2119..c53d5e3 100644 ---- a/src/net/netdevice.c -+++ b/src/net/netdevice.c -@@ -1028,6 +1028,44 @@ int net_rx ( struct io_buffer *iobuf, struct net_device *netdev, - } - - /** -+ * Strip extra link-layer-independent tags from a received packet -+ * -+ * @v iobuf I/O buffer -+ * @v netdev Network device -+ * @v net_proto Network-layer protocol, in network-byte order -+ * @ret rc Return status code -+ * -+ * This function should be called after stripping link-layer headers but -+ * before inspecting the network-layer protocol. -+ */ -+int net_pull_tags ( struct io_buffer *iobuf, struct net_device *netdev, -+ uint16_t *net_proto ) { -+ struct vlan_header *vlanhdr; -+ uint16_t tag; -+ -+ /* Strip 802.1Q VLAN 0 priority tags if present */ -+ while ( *net_proto == htons ( ETH_P_8021Q ) ) { -+ if ( iob_len ( iobuf ) < sizeof ( *vlanhdr ) ) { -+ DBG ( "VLAN header too short at %zd bytes (min %zd bytes)\n", -+ iob_len ( iobuf ), sizeof ( *vlanhdr ) ); -+ return -EINVAL; -+ } -+ vlanhdr = ( struct vlan_header * ) iobuf->data; -+ tag = VLAN_TAG ( ntohs ( vlanhdr->tci ) ); -+ -+ if ( tag == 0 && ! vlan_find ( netdev, tag ) ) { -+ /* VLAN 0, strip and continue */ -+ *net_proto = vlanhdr->net_proto; -+ iob_pull ( iobuf, sizeof ( *vlanhdr ) ); -+ } else { -+ /* Real VLAN tag, leave it alone */ -+ break; -+ } -+ } -+ return 0; -+} -+ -+/** - * Poll the network stack - * - * This polls all interfaces for received packets, and processes -@@ -1078,6 +1116,12 @@ void net_poll ( void ) { - continue; - } - -+ /* Remove link-layer-independent headers */ -+ if ( ( rc = net_pull_tags ( iobuf, netdev, &net_proto ) ) ) { -+ free_iob ( iobuf ); -+ continue; -+ } -+ - /* Hand packet to network layer */ - if ( ( rc = net_rx ( iob_disown ( iobuf ), netdev, - net_proto, ll_dest, --- -1.8.3.1 - diff --git a/ipxe.spec b/ipxe.spec index c9400dd..8b48896 100644 --- a/ipxe.spec +++ b/ipxe.spec @@ -44,12 +44,12 @@ # # And then change these two: -%global hash 0600d3ae -%global date 20170710 +%global hash 36a4c85f +%global date 20190125 Name: ipxe Version: %{date} -Release: 6.git%{hash}%{?dist} +Release: 1.git%{hash}%{?dist} Summary: A network boot loader License: GPLv2 with additional permissions and BSD @@ -61,7 +61,6 @@ Source0: %{name}-%{version}-git%{hash}.tar.xz # Sent upstream: http://lists.ipxe.org/pipermail/ipxe-devel/2015-November/004494.html Patch0001: 0001-build-customize-configuration.patch Patch0002: 0002-Use-spec-compliant-timeouts.patch -Patch0003: 0003-Strip-802.1Q-VLAN-0-priority-tags.patch %ifarch %{buildarches} BuildRequires: perl-interpreter @@ -232,6 +231,9 @@ done %endif %changelog +* Tue Feb 12 2019 Daniel P. Berrangé - 20190125-1.git36a4c85f +- Update to latest git snapshot + * Fri Feb 01 2019 Fedora Release Engineering - 20170710-6.git0600d3ae - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild diff --git a/sources b/sources index b71f196..94ab209 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (ipxe-20170710-git0600d3ae.tar.xz) = 4124c385f87c6c7246f77f6a60e706b5d69a4a165ccd7b2916604c9d6806aa25ab9759fdcceb9bf458e7fdc789544c748246c06a017d40d73ec8bd14ccb0f515 +SHA512 (ipxe-20190125-git36a4c85f.tar.xz) = d9c9e56ddffa9e47f422d88779530761f2fc60a6866d6817df92e01eba535c54e56995573df67281faef049d319a5bcebfc47e80f19c04239abbc6cadb18d149