--- /dev/null
+---
+ src/interface.c | 33 ++++++++++++++++++++++++++++++++-
+ 1 file changed, 32 insertions(+), 1 deletion(-)
+
+--- collectd-4.9.1.orig/src/interface.c
++++ collectd-4.9.1/src/interface.c
+@@ -203,7 +203,38 @@ static int interface_read (void)
+ # define IFA_RX_ERROR rx_errors
+ # define IFA_TX_ERROR tx_errors
+ #else
+-# error "No suitable type for `struct ifaddrs->ifa_data' found."
++struct net_device_stats {
++ unsigned long rx_packets;
++ unsigned long tx_packets;
++ unsigned long rx_bytes;
++ unsigned long tx_bytes;
++ unsigned long rx_errors;
++ unsigned long tx_errors;
++ unsigned long rx_dropped;
++ unsigned long tx_dropped;
++ unsigned long multicast;
++ unsigned long collisions;
++ unsigned long rx_length_errors;
++ unsigned long rx_over_errors;
++ unsigned long rx_crc_errors;
++ unsigned long rx_frame_errors;
++ unsigned long rx_fifo_errors;
++ unsigned long rx_missed_errors;
++ unsigned long tx_aborted_errors;
++ unsigned long tx_carrier_errors;
++ unsigned long tx_fifo_errors;
++ unsigned long tx_heartbeat_errors;
++ unsigned long tx_window_errors;
++ unsigned long rx_compressed;
++ unsigned long tx_compressed;
++};
++# define IFA_DATA net_device_stats
++# define IFA_RX_BYTES rx_bytes
++# define IFA_TX_BYTES tx_bytes
++# define IFA_RX_PACKT rx_packets
++# define IFA_TX_PACKT tx_packets
++# define IFA_RX_ERROR rx_errors
++# define IFA_TX_ERROR tx_errors
+ #endif
+
+ struct IFA_DATA *if_data;