Fix IB patch
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1860689
This commit is contained in:
parent
3f2a7ed9d0
commit
8c5f5bc2cd
@ -1,18 +1,18 @@
|
|||||||
From 6d74c2d0ceadef2eb1c43c2da47f1d5b732adf8c Mon Sep 17 00:00:00 2001
|
From 042082b4410f158ec86ca8478689b34bc12518e6 Mon Sep 17 00:00:00 2001
|
||||||
From: Pavel Zhukov <pzhukov@redhat.com>
|
From: Pavel Zhukov <pzhukov@redhat.com>
|
||||||
Date: Thu, 21 Feb 2019 10:34:21 +0100
|
Date: Thu, 21 Feb 2019 10:34:21 +0100
|
||||||
Subject: [PATCH 14/26] IPoIB support (#660681)
|
Subject: [PATCH 14/27] IPoIB support (#660681)
|
||||||
Cc: pzhukov@redhat.com
|
Cc: pzhukov@redhat.com
|
||||||
|
|
||||||
(Submitted to dhcp-bugs@isc.org - [ISC-Bugs #24249])
|
(Submitted to dhcp-bugs@isc.org - [ISC-Bugs #24249])
|
||||||
---
|
---
|
||||||
client/dhclient.c | 32 +++++++
|
client/dhclient.c | 32 ++++++
|
||||||
common/bpf.c | 32 +++++++
|
common/bpf.c | 32 ++++++
|
||||||
common/discover.c | 4 +-
|
common/discover.c | 4 +-
|
||||||
common/lpf.c | 262 +++++++++++++++++++++++++++++++++++++++++++++++++-----
|
common/lpf.c | 276 ++++++++++++++++++++++++++++++++++++++++++----
|
||||||
common/socket.c | 8 +-
|
common/socket.c | 8 +-
|
||||||
includes/dhcpd.h | 6 +-
|
includes/dhcpd.h | 6 +-
|
||||||
6 files changed, 315 insertions(+), 29 deletions(-)
|
6 files changed, 329 insertions(+), 29 deletions(-)
|
||||||
|
|
||||||
diff --git a/client/dhclient.c b/client/dhclient.c
|
diff --git a/client/dhclient.c b/client/dhclient.c
|
||||||
index 301132c..dc9080e 100644
|
index 301132c..dc9080e 100644
|
||||||
@ -142,7 +142,7 @@ index 6ef8852..65881fc 100644
|
|||||||
if_register_linklocal6(tmp);
|
if_register_linklocal6(tmp);
|
||||||
}
|
}
|
||||||
diff --git a/common/lpf.c b/common/lpf.c
|
diff --git a/common/lpf.c b/common/lpf.c
|
||||||
index b0ed01c..b732a86 100644
|
index b0ed01c..a9e19f4 100644
|
||||||
--- a/common/lpf.c
|
--- a/common/lpf.c
|
||||||
+++ b/common/lpf.c
|
+++ b/common/lpf.c
|
||||||
@@ -45,6 +45,17 @@
|
@@ -45,6 +45,17 @@
|
||||||
@ -230,7 +230,35 @@ index b0ed01c..b732a86 100644
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -330,6 +353,54 @@ static void lpf_tr_filter_setup (info)
|
@@ -253,6 +276,18 @@ static void lpf_gen_filter_setup (info)
|
||||||
|
|
||||||
|
memset(&p, 0, sizeof(p));
|
||||||
|
|
||||||
|
+ if (info->hw_address.hbuf[0] == HTYPE_INFINIBAND) {
|
||||||
|
+ p.len = dhcp_ib_bpf_filter_len;
|
||||||
|
+ p.filter = dhcp_ib_bpf_filter;
|
||||||
|
+
|
||||||
|
+ /* Patch the server port into the LPF program...
|
||||||
|
+ XXX
|
||||||
|
+ changes to filter program may require changes
|
||||||
|
+ to the insn number(s) used below!
|
||||||
|
+ XXX */
|
||||||
|
+ dhcp_ib_bpf_filter[6].k = ntohs (local_port);
|
||||||
|
+ } else {
|
||||||
|
+
|
||||||
|
/* Set up the bpf filter program structure. This is defined in
|
||||||
|
bpf.c */
|
||||||
|
p.len = dhcp_bpf_filter_len;
|
||||||
|
@@ -275,6 +310,8 @@ static void lpf_gen_filter_setup (info)
|
||||||
|
#endif
|
||||||
|
dhcp_bpf_filter [8].k = ntohs (local_port);
|
||||||
|
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (setsockopt (info -> rfdesc, SOL_SOCKET, SO_ATTACH_FILTER, &p,
|
||||||
|
sizeof p) < 0) {
|
||||||
|
if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
|
||||||
|
@@ -330,6 +367,54 @@ static void lpf_tr_filter_setup (info)
|
||||||
#endif /* USE_LPF_RECEIVE */
|
#endif /* USE_LPF_RECEIVE */
|
||||||
|
|
||||||
#ifdef USE_LPF_SEND
|
#ifdef USE_LPF_SEND
|
||||||
@ -285,7 +313,7 @@ index b0ed01c..b732a86 100644
|
|||||||
ssize_t send_packet (interface, packet, raw, len, from, to, hto)
|
ssize_t send_packet (interface, packet, raw, len, from, to, hto)
|
||||||
struct interface_info *interface;
|
struct interface_info *interface;
|
||||||
struct packet *packet;
|
struct packet *packet;
|
||||||
@@ -350,6 +421,11 @@ ssize_t send_packet (interface, packet, raw, len, from, to, hto)
|
@@ -350,6 +435,11 @@ ssize_t send_packet (interface, packet, raw, len, from, to, hto)
|
||||||
return send_fallback (interface, packet, raw,
|
return send_fallback (interface, packet, raw,
|
||||||
len, from, to, hto);
|
len, from, to, hto);
|
||||||
|
|
||||||
@ -297,7 +325,7 @@ index b0ed01c..b732a86 100644
|
|||||||
if (hto == NULL && interface->anycast_mac_addr.hlen)
|
if (hto == NULL && interface->anycast_mac_addr.hlen)
|
||||||
hto = &interface->anycast_mac_addr;
|
hto = &interface->anycast_mac_addr;
|
||||||
|
|
||||||
@@ -370,6 +446,42 @@ ssize_t send_packet (interface, packet, raw, len, from, to, hto)
|
@@ -370,6 +460,42 @@ ssize_t send_packet (interface, packet, raw, len, from, to, hto)
|
||||||
#endif /* USE_LPF_SEND */
|
#endif /* USE_LPF_SEND */
|
||||||
|
|
||||||
#ifdef USE_LPF_RECEIVE
|
#ifdef USE_LPF_RECEIVE
|
||||||
@ -340,7 +368,7 @@ index b0ed01c..b732a86 100644
|
|||||||
ssize_t receive_packet (interface, buf, len, from, hfrom)
|
ssize_t receive_packet (interface, buf, len, from, hfrom)
|
||||||
struct interface_info *interface;
|
struct interface_info *interface;
|
||||||
unsigned char *buf;
|
unsigned char *buf;
|
||||||
@@ -408,6 +520,10 @@ ssize_t receive_packet (interface, buf, len, from, hfrom)
|
@@ -408,6 +534,10 @@ ssize_t receive_packet (interface, buf, len, from, hfrom)
|
||||||
};
|
};
|
||||||
#endif /* PACKET_AUXDATA */
|
#endif /* PACKET_AUXDATA */
|
||||||
|
|
||||||
@ -351,7 +379,7 @@ index b0ed01c..b732a86 100644
|
|||||||
length = recvmsg (interface->rfdesc, &msg, 0);
|
length = recvmsg (interface->rfdesc, &msg, 0);
|
||||||
if (length <= 0)
|
if (length <= 0)
|
||||||
return length;
|
return length;
|
||||||
@@ -521,11 +637,33 @@ void maybe_setup_fallback ()
|
@@ -521,11 +651,33 @@ void maybe_setup_fallback ()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined (USE_LPF_RECEIVE) || defined (USE_LPF_HWADDR)
|
#if defined (USE_LPF_RECEIVE) || defined (USE_LPF_HWADDR)
|
||||||
@ -388,7 +416,7 @@ index b0ed01c..b732a86 100644
|
|||||||
|
|
||||||
if (strlen(name) >= sizeof(tmp.ifr_name)) {
|
if (strlen(name) >= sizeof(tmp.ifr_name)) {
|
||||||
log_fatal("Device name too long: \"%s\"", name);
|
log_fatal("Device name too long: \"%s\"", name);
|
||||||
@@ -539,16 +677,61 @@ get_hw_addr(const char *name, struct hardware *hw) {
|
@@ -539,16 +691,61 @@ get_hw_addr(const char *name, struct hardware *hw) {
|
||||||
memset(&tmp, 0, sizeof(tmp));
|
memset(&tmp, 0, sizeof(tmp));
|
||||||
strcpy(tmp.ifr_name, name);
|
strcpy(tmp.ifr_name, name);
|
||||||
if (ioctl(sock, SIOCGIFHWADDR, &tmp) < 0) {
|
if (ioctl(sock, SIOCGIFHWADDR, &tmp) < 0) {
|
||||||
@ -453,7 +481,7 @@ index b0ed01c..b732a86 100644
|
|||||||
break;
|
break;
|
||||||
case ARPHRD_IEEE802:
|
case ARPHRD_IEEE802:
|
||||||
#ifdef ARPHRD_IEEE802_TR
|
#ifdef ARPHRD_IEEE802_TR
|
||||||
@@ -556,18 +739,50 @@ get_hw_addr(const char *name, struct hardware *hw) {
|
@@ -556,18 +753,50 @@ get_hw_addr(const char *name, struct hardware *hw) {
|
||||||
#endif /* ARPHRD_IEEE802_TR */
|
#endif /* ARPHRD_IEEE802_TR */
|
||||||
hw->hlen = 7;
|
hw->hlen = 7;
|
||||||
hw->hbuf[0] = HTYPE_IEEE802;
|
hw->hbuf[0] = HTYPE_IEEE802;
|
||||||
@ -508,7 +536,7 @@ index b0ed01c..b732a86 100644
|
|||||||
hw->hlen = 0;
|
hw->hlen = 0;
|
||||||
hw->hbuf[0] = HTYPE_RESERVED;
|
hw->hbuf[0] = HTYPE_RESERVED;
|
||||||
/* 0xdeadbeef should never occur on the wire,
|
/* 0xdeadbeef should never occur on the wire,
|
||||||
@@ -580,10 +795,13 @@ get_hw_addr(const char *name, struct hardware *hw) {
|
@@ -580,10 +809,13 @@ get_hw_addr(const char *name, struct hardware *hw) {
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
@ -597,5 +625,5 @@ index faa9251..0c1a0aa 100644
|
|||||||
const char *file, int line);
|
const char *file, int line);
|
||||||
char *format_lease_id(const unsigned char *s, unsigned len, int format,
|
char *format_lease_id(const unsigned char *s, unsigned len, int format,
|
||||||
--
|
--
|
||||||
2.14.5
|
2.26.2
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
Summary: Dynamic host configuration protocol software
|
Summary: Dynamic host configuration protocol software
|
||||||
Name: dhcp
|
Name: dhcp
|
||||||
Version: 4.4.2
|
Version: 4.4.2
|
||||||
Release: 7.b1%{?dist}
|
Release: 8.b1%{?dist}
|
||||||
|
|
||||||
# NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to
|
# NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to
|
||||||
# dcantrell maintaining the package) made incorrect use of the epoch and
|
# dcantrell maintaining the package) made incorrect use of the epoch and
|
||||||
@ -525,6 +525,9 @@ done
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jul 29 2020 Pavel Zhukov <pavel@pzhukov-pc.home.redhat.com> - 12:4.4.2-8.b1
|
||||||
|
- Fix IB patch (#1860689)
|
||||||
|
|
||||||
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 12:4.4.2-7.b1
|
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 12:4.4.2-7.b1
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user