Update to latest git snapshot
Fixes: rhbz #1675159 Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
19f268c0ed
commit
1af6b08f14
7
.gitignore
vendored
7
.gitignore
vendored
@ -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
|
||||
|
@ -1,17 +1,6 @@
|
||||
From: Paolo Bonzini <pbonzini@redhat.com>
|
||||
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
|
||||
|
||||
|
@ -1,150 +0,0 @@
|
||||
From 1a921ececb22bbc41d1fda34576564e84d124a83 Mon Sep 17 00:00:00 2001
|
||||
From: Ladi Prosek <lprosek@redhat.com>
|
||||
Date: Mon, 11 Jul 2016 14:17:36 +0200
|
||||
Subject: Strip 802.1Q VLAN 0 priority tags
|
||||
|
||||
RH-Author: Ladi Prosek <lprosek@redhat.com>
|
||||
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 <stefanha@redhat.com>
|
||||
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||
RH-Acked-by: Xiao Wang <jasowang@redhat.com>
|
||||
|
||||
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 <lprosek@redhat.com>
|
||||
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
---
|
||||
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
|
||||
|
10
ipxe.spec
10
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é <berrange@redhat.com> - 20190125-1.git36a4c85f
|
||||
- Update to latest git snapshot
|
||||
|
||||
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 20170710-6.git0600d3ae
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (ipxe-20170710-git0600d3ae.tar.xz) = 4124c385f87c6c7246f77f6a60e706b5d69a4a165ccd7b2916604c9d6806aa25ab9759fdcceb9bf458e7fdc789544c748246c06a017d40d73ec8bd14ccb0f515
|
||||
SHA512 (ipxe-20190125-git36a4c85f.tar.xz) = d9c9e56ddffa9e47f422d88779530761f2fc60a6866d6817df92e01eba535c54e56995573df67281faef049d319a5bcebfc47e80f19c04239abbc6cadb18d149
|
||||
|
Loading…
Reference in New Issue
Block a user