diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 1e5ffbf..2e9e260 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -506,29 +506,280 @@ struct rte_ixgbe_xstats_name_off {
 };
 
 static const struct rte_ixgbe_xstats_name_off rte_ixgbe_stats_strings[] = {
-	{"rx_illegal_byte_err", offsetof(struct ixgbe_hw_stats, errbc)},
-	{"rx_len_err", offsetof(struct ixgbe_hw_stats, rlec)},
-	{"rx_undersize_count", offsetof(struct ixgbe_hw_stats, ruc)},
-	{"rx_oversize_count", offsetof(struct ixgbe_hw_stats, roc)},
-	{"rx_fragment_count", offsetof(struct ixgbe_hw_stats, rfc)},
-	{"rx_jabber_count", offsetof(struct ixgbe_hw_stats, rjc)},
-	{"l3_l4_xsum_error", offsetof(struct ixgbe_hw_stats, xec)},
-	{"mac_local_fault", offsetof(struct ixgbe_hw_stats, mlfc)},
-	{"mac_remote_fault", offsetof(struct ixgbe_hw_stats, mrfc)},
-	{"mac_short_pkt_discard", offsetof(struct ixgbe_hw_stats, mspdc)},
-	{"fccrc_error", offsetof(struct ixgbe_hw_stats, fccrc)},
-	{"fcoe_drop", offsetof(struct ixgbe_hw_stats, fcoerpdc)},
-	{"fc_last_error", offsetof(struct ixgbe_hw_stats, fclast)},
-	{"rx_broadcast_packets", offsetof(struct ixgbe_hw_stats, bprc)},
-	{"rx_phy_multicast_packets", offsetof(struct ixgbe_hw_stats, mprc)},
-	{"mgmt_pkts_dropped", offsetof(struct ixgbe_hw_stats, mngpdc)},
 	{"rx_crc_errors", offsetof(struct ixgbe_hw_stats, crcerrs)},
-	{"fdir_match", offsetof(struct ixgbe_hw_stats, fdirmatch)},
-	{"fdir_miss", offsetof(struct ixgbe_hw_stats, fdirmiss)},
-	{"tx_flow_control_xon", offsetof(struct ixgbe_hw_stats, lxontxc)},
-	{"rx_flow_control_xon", offsetof(struct ixgbe_hw_stats, lxonrxc)},
-	{"tx_flow_control_xoff", offsetof(struct ixgbe_hw_stats, lxofftxc)},
-	{"rx_flow_control_xoff", offsetof(struct ixgbe_hw_stats, lxoffrxc)},
+	{"rx_illegal_byte_errors", offsetof(struct ixgbe_hw_stats, illerrc)},
+	{"rx_error_bytes", offsetof(struct ixgbe_hw_stats, errbc)},
+	{"mac_local_errors", offsetof(struct ixgbe_hw_stats, mlfc)},
+	{"mac_remote_errors", offsetof(struct ixgbe_hw_stats, mrfc)},
+	{"rx_length_errors", offsetof(struct ixgbe_hw_stats, rlec)},
+	{"tx_xon_packets", offsetof(struct ixgbe_hw_stats, lxontxc)},
+	{"rx_xon_packets", offsetof(struct ixgbe_hw_stats, lxonrxc)},
+	{"tx_xoff_packets", offsetof(struct ixgbe_hw_stats, lxofftxc)},
+	{"rx_xoff_packets", offsetof(struct ixgbe_hw_stats, lxoffrxc)},
+	{"rx_size_64_packets", offsetof(struct ixgbe_hw_stats, prc64)},
+	{"rx_size_65_to_127_packets", offsetof(struct ixgbe_hw_stats, prc127)},
+	{"rx_size_128_to_255_packets", offsetof(struct ixgbe_hw_stats, prc255)},
+	{"rx_size_256_to_511_packets", offsetof(struct ixgbe_hw_stats, prc511)},
+	{"rx_size_512_to_1023_packets", offsetof(struct ixgbe_hw_stats,
+		prc1023)},
+	{"rx_size_1024_to_max_packets", offsetof(struct ixgbe_hw_stats,
+		prc1522)},
+	{"rx_broadcast_packets", offsetof(struct ixgbe_hw_stats, bprc)},
+	{"rx_multicast_packets", offsetof(struct ixgbe_hw_stats, mprc)},
+	{"rx_fragment_errors", offsetof(struct ixgbe_hw_stats, rfc)},
+	{"rx_undersize_errors", offsetof(struct ixgbe_hw_stats, ruc)},
+	{"rx_oversize_errors", offsetof(struct ixgbe_hw_stats, roc)},
+	{"rx_jabber_errors", offsetof(struct ixgbe_hw_stats, rjc)},
+	{"rx_managment_packets", offsetof(struct ixgbe_hw_stats, mngprc)},
+	{"rx_managment_dropped", offsetof(struct ixgbe_hw_stats, mngpdc)},
+	{"tx_managment_packets", offsetof(struct ixgbe_hw_stats, mngptc)},
+	{"rx_total_packets", offsetof(struct ixgbe_hw_stats, tpr)},
+	{"rx_total_bytes", offsetof(struct ixgbe_hw_stats, tor)},
+	{"tx_total_packets", offsetof(struct ixgbe_hw_stats, tpt)},
+	{"tx_size_64_packets", offsetof(struct ixgbe_hw_stats, ptc64)},
+	{"tx_size_65_to_127_packets", offsetof(struct ixgbe_hw_stats, ptc127)},
+	{"tx_size_128_to_255_packets", offsetof(struct ixgbe_hw_stats, ptc255)},
+	{"tx_size_256_to_511_packets", offsetof(struct ixgbe_hw_stats, ptc511)},
+	{"tx_size_512_to_1023_packets", offsetof(struct ixgbe_hw_stats,
+		ptc1023)},
+	{"tx_size_1024_to_max_packets", offsetof(struct ixgbe_hw_stats,
+		ptc1522)},
+	{"tx_multicast_packets", offsetof(struct ixgbe_hw_stats, mptc)},
+	{"tx_broadcast_packets", offsetof(struct ixgbe_hw_stats, bptc)},
+	{"rx_mac_short_packet_discard", offsetof(struct ixgbe_hw_stats, mspdc)},
+	{"rx_l3_l4_xsum_error", offsetof(struct ixgbe_hw_stats, xec)},
+
+	{"flow_director_added_filters", offsetof(struct ixgbe_hw_stats,
+		fdirustat_add)},
+	{"flow_director_removed_filters", offsetof(struct ixgbe_hw_stats,
+		fdirustat_remove)},
+	{"flow_director_filter_add_errors", offsetof(struct ixgbe_hw_stats,
+		fdirfstat_fadd)},
+	{"flow_director_filter_remove_errors", offsetof(struct ixgbe_hw_stats,
+		fdirfstat_fremove)},
+	{"flow_director_matched_filters", offsetof(struct ixgbe_hw_stats,
+		fdirmatch)},
+	{"flow_director_missed_filters", offsetof(struct ixgbe_hw_stats,
+		fdirmiss)},
+
+	{"rx_fcoe_crc_errors", offsetof(struct ixgbe_hw_stats, fccrc)},
+	{"rx_fcoe_dropped", offsetof(struct ixgbe_hw_stats, fcoerpdc)},
+	{"rx_fcoe_mbuf_allocation_errors", offsetof(struct ixgbe_hw_stats,
+		fclast)},
+	{"rx_fcoe_packets", offsetof(struct ixgbe_hw_stats, fcoeprc)},
+	{"tx_fcoe_packets", offsetof(struct ixgbe_hw_stats, fcoeptc)},
+	{"rx_fcoe_bytes", offsetof(struct ixgbe_hw_stats, fcoedwrc)},
+	{"tx_fcoe_bytes", offsetof(struct ixgbe_hw_stats, fcoedwtc)},
+	{"rx_fcoe_no_direct_data_placement", offsetof(struct ixgbe_hw_stats,
+		fcoe_noddp)},
+	{"rx_fcoe_no_direct_data_placement_ext_buff",
+		offsetof(struct ixgbe_hw_stats, fcoe_noddp_ext_buff)},
+
+	{"tx_flow_control_xon_packets", offsetof(struct ixgbe_hw_stats,
+		lxontxc)},
+	{"rx_flow_control_xon_packets", offsetof(struct ixgbe_hw_stats,
+		lxonrxc)},
+	{"tx_flow_control_xoff_packets", offsetof(struct ixgbe_hw_stats,
+		lxofftxc)},
+	{"rx_flow_control_xoff_packets", offsetof(struct ixgbe_hw_stats,
+		lxoffrxc)},
+	{"rx_total_missed_packets", offsetof(struct ixgbe_hw_stats, mpctotal)},
+
+	{"rx_q0_missed_packets", offsetof(struct ixgbe_hw_stats, mpc[0])},
+	{"rx_q1_missed_packets", offsetof(struct ixgbe_hw_stats, mpc[1])},
+	{"rx_q2_missed_packets", offsetof(struct ixgbe_hw_stats, mpc[2])},
+	{"rx_q3_missed_packets", offsetof(struct ixgbe_hw_stats, mpc[3])},
+	{"rx_q4_missed_packets", offsetof(struct ixgbe_hw_stats, mpc[4])},
+	{"rx_q5_missed_packets", offsetof(struct ixgbe_hw_stats, mpc[5])},
+	{"rx_q6_missed_packets", offsetof(struct ixgbe_hw_stats, mpc[6])},
+	{"rx_q7_missed_packets", offsetof(struct ixgbe_hw_stats, mpc[7])},
+
+	{"rx_q0_mbuf_allocation_errors", offsetof(struct ixgbe_hw_stats,
+		rnbc[0])},
+	{"rx_q1_mbuf_allocation_errors", offsetof(struct ixgbe_hw_stats,
+		rnbc[1])},
+	{"rx_q2_mbuf_allocation_errors", offsetof(struct ixgbe_hw_stats,
+		rnbc[2])},
+	{"rx_q3_mbuf_allocation_errors", offsetof(struct ixgbe_hw_stats,
+		rnbc[3])},
+	{"rx_q4_mbuf_allocation_errors", offsetof(struct ixgbe_hw_stats,
+		rnbc[4])},
+	{"rx_q5_mbuf_allocation_errors", offsetof(struct ixgbe_hw_stats,
+		rnbc[5])},
+	{"rx_q6_mbuf_allocation_errors", offsetof(struct ixgbe_hw_stats,
+		rnbc[6])},
+	{"rx_q7_mbuf_allocation_errors", offsetof(struct ixgbe_hw_stats,
+		rnbc[7])},
+
+	{"tx_q0_xon_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxontxc[0])},
+	{"tx_q1_xon_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxontxc[1])},
+	{"tx_q2_xon_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxontxc[2])},
+	{"tx_q3_xon_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxontxc[3])},
+	{"tx_q4_xon_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxontxc[4])},
+	{"tx_q5_xon_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxontxc[5])},
+	{"tx_q6_xon_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxontxc[6])},
+	{"tx_q7_xon_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxontxc[7])},
+
+	{"rx_q0_xon_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxonrxc[0])},
+	{"rx_q1_xon_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxonrxc[1])},
+	{"rx_q2_xon_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxonrxc[2])},
+	{"rx_q3_xon_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxonrxc[3])},
+	{"rx_q4_xon_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxonrxc[4])},
+	{"rx_q5_xon_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxonrxc[5])},
+	{"rx_q6_xon_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxonrxc[6])},
+	{"rx_q7_xon_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxonrxc[7])},
+
+	{"tx_q0_xoff_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxofftxc[0])},
+	{"tx_q1_xoff_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxofftxc[1])},
+	{"tx_q2_xoff_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxofftxc[2])},
+	{"tx_q3_xoff_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxofftxc[3])},
+	{"tx_q4_xoff_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxofftxc[4])},
+	{"tx_q5_xoff_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxofftxc[5])},
+	{"tx_q6_xoff_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxofftxc[6])},
+	{"tx_q7_xoff_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxofftxc[7])},
+
+	{"rx_q0_xoff_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxoffrxc[0])},
+	{"rx_q1_xoff_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxoffrxc[1])},
+	{"rx_q2_xoff_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxoffrxc[2])},
+	{"rx_q3_xoff_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxoffrxc[3])},
+	{"rx_q4_xoff_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxoffrxc[4])},
+	{"rx_q5_xoff_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxoffrxc[5])},
+	{"rx_q6_xoff_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxoffrxc[6])},
+	{"rx_q7_xoff_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxoffrxc[7])},
+
+	{"xx_q0_xon_to_off_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxon2offc[0])},
+	{"xx_q1_xon_to_off_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxon2offc[1])},
+	{"xx_q2_xon_to_off_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxon2offc[2])},
+	{"xx_q3_xon_to_off_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxon2offc[3])},
+	{"xx_q4_xon_to_off_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxon2offc[4])},
+	{"xx_q5_xon_to_off_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxon2offc[5])},
+	{"xx_q6_xon_to_off_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxon2offc[6])},
+	{"xx_q7_xon_to_off_priority_packets", offsetof(struct ixgbe_hw_stats,
+		pxon2offc[7])},
+
+	{"rx_q0_packets", offsetof(struct ixgbe_hw_stats, qprc[0])},
+	{"rx_q1_packets", offsetof(struct ixgbe_hw_stats, qprc[1])},
+	{"rx_q2_packets", offsetof(struct ixgbe_hw_stats, qprc[2])},
+	{"rx_q3_packets", offsetof(struct ixgbe_hw_stats, qprc[3])},
+	{"rx_q4_packets", offsetof(struct ixgbe_hw_stats, qprc[4])},
+	{"rx_q5_packets", offsetof(struct ixgbe_hw_stats, qprc[5])},
+	{"rx_q6_packets", offsetof(struct ixgbe_hw_stats, qprc[6])},
+	{"rx_q7_packets", offsetof(struct ixgbe_hw_stats, qprc[7])},
+	{"rx_q8_packets", offsetof(struct ixgbe_hw_stats, qprc[8])},
+	{"rx_q9_packets", offsetof(struct ixgbe_hw_stats, qprc[9])},
+	{"rx_q10_packets", offsetof(struct ixgbe_hw_stats, qprc[10])},
+	{"rx_q11_packets", offsetof(struct ixgbe_hw_stats, qprc[11])},
+	{"rx_q12_packets", offsetof(struct ixgbe_hw_stats, qprc[12])},
+	{"rx_q13_packets", offsetof(struct ixgbe_hw_stats, qprc[13])},
+	{"rx_q14_packets", offsetof(struct ixgbe_hw_stats, qprc[14])},
+	{"rx_q15_packets", offsetof(struct ixgbe_hw_stats, qprc[15])},
+
+	{"tx_q0_packets", offsetof(struct ixgbe_hw_stats, qptc[0])},
+	{"tx_q1_packets", offsetof(struct ixgbe_hw_stats, qptc[1])},
+	{"tx_q2_packets", offsetof(struct ixgbe_hw_stats, qptc[2])},
+	{"tx_q3_packets", offsetof(struct ixgbe_hw_stats, qptc[3])},
+	{"tx_q4_packets", offsetof(struct ixgbe_hw_stats, qptc[4])},
+	{"tx_q5_packets", offsetof(struct ixgbe_hw_stats, qptc[5])},
+	{"tx_q6_packets", offsetof(struct ixgbe_hw_stats, qptc[6])},
+	{"tx_q7_packets", offsetof(struct ixgbe_hw_stats, qptc[7])},
+	{"tx_q8_packets", offsetof(struct ixgbe_hw_stats, qptc[8])},
+	{"tx_q9_packets", offsetof(struct ixgbe_hw_stats, qptc[9])},
+	{"tx_q10_packets", offsetof(struct ixgbe_hw_stats, qptc[10])},
+	{"tx_q11_packets", offsetof(struct ixgbe_hw_stats, qptc[11])},
+	{"tx_q12_packets", offsetof(struct ixgbe_hw_stats, qptc[12])},
+	{"tx_q13_packets", offsetof(struct ixgbe_hw_stats, qptc[13])},
+	{"tx_q14_packets", offsetof(struct ixgbe_hw_stats, qptc[14])},
+	{"tx_q15_packets", offsetof(struct ixgbe_hw_stats, qptc[15])},
+
+	{"rx_q0_bytes", offsetof(struct ixgbe_hw_stats, qbrc[0])},
+	{"rx_q1_bytes", offsetof(struct ixgbe_hw_stats, qbrc[1])},
+	{"rx_q2_bytes", offsetof(struct ixgbe_hw_stats, qbrc[2])},
+	{"rx_q3_bytes", offsetof(struct ixgbe_hw_stats, qbrc[3])},
+	{"rx_q4_bytes", offsetof(struct ixgbe_hw_stats, qbrc[4])},
+	{"rx_q5_bytes", offsetof(struct ixgbe_hw_stats, qbrc[5])},
+	{"rx_q6_bytes", offsetof(struct ixgbe_hw_stats, qbrc[6])},
+	{"rx_q7_bytes", offsetof(struct ixgbe_hw_stats, qbrc[7])},
+	{"rx_q8_bytes", offsetof(struct ixgbe_hw_stats, qbrc[8])},
+	{"rx_q9_bytes", offsetof(struct ixgbe_hw_stats, qbrc[9])},
+	{"rx_q10_bytes", offsetof(struct ixgbe_hw_stats, qbrc[10])},
+	{"rx_q11_bytes", offsetof(struct ixgbe_hw_stats, qbrc[11])},
+	{"rx_q12_bytes", offsetof(struct ixgbe_hw_stats, qbrc[12])},
+	{"rx_q13_bytes", offsetof(struct ixgbe_hw_stats, qbrc[13])},
+	{"rx_q14_bytes", offsetof(struct ixgbe_hw_stats, qbrc[14])},
+	{"rx_q15_bytes", offsetof(struct ixgbe_hw_stats, qbrc[15])},
+
+	{"tx_q0_bytes", offsetof(struct ixgbe_hw_stats, qbtc[0])},
+	{"tx_q1_bytes", offsetof(struct ixgbe_hw_stats, qbtc[1])},
+	{"tx_q2_bytes", offsetof(struct ixgbe_hw_stats, qbtc[2])},
+	{"tx_q3_bytes", offsetof(struct ixgbe_hw_stats, qbtc[3])},
+	{"tx_q4_bytes", offsetof(struct ixgbe_hw_stats, qbtc[4])},
+	{"tx_q5_bytes", offsetof(struct ixgbe_hw_stats, qbtc[5])},
+	{"tx_q6_bytes", offsetof(struct ixgbe_hw_stats, qbtc[6])},
+	{"tx_q7_bytes", offsetof(struct ixgbe_hw_stats, qbtc[7])},
+	{"tx_q8_bytes", offsetof(struct ixgbe_hw_stats, qbtc[8])},
+	{"tx_q9_bytes", offsetof(struct ixgbe_hw_stats, qbtc[9])},
+	{"tx_q10_bytes", offsetof(struct ixgbe_hw_stats, qbtc[10])},
+	{"tx_q11_bytes", offsetof(struct ixgbe_hw_stats, qbtc[11])},
+	{"tx_q12_bytes", offsetof(struct ixgbe_hw_stats, qbtc[12])},
+	{"tx_q13_bytes", offsetof(struct ixgbe_hw_stats, qbtc[13])},
+	{"tx_q14_bytes", offsetof(struct ixgbe_hw_stats, qbtc[14])},
+	{"tx_q15_bytes", offsetof(struct ixgbe_hw_stats, qbtc[15])},
+
+	{"rx_q0_dropped", offsetof(struct ixgbe_hw_stats, qprdc[0])},
+	{"rx_q1_dropped", offsetof(struct ixgbe_hw_stats, qprdc[1])},
+	{"rx_q2_dropped", offsetof(struct ixgbe_hw_stats, qprdc[2])},
+	{"rx_q3_dropped", offsetof(struct ixgbe_hw_stats, qprdc[3])},
+	{"rx_q4_dropped", offsetof(struct ixgbe_hw_stats, qprdc[4])},
+	{"rx_q5_dropped", offsetof(struct ixgbe_hw_stats, qprdc[5])},
+	{"rx_q6_dropped", offsetof(struct ixgbe_hw_stats, qprdc[6])},
+	{"rx_q7_dropped", offsetof(struct ixgbe_hw_stats, qprdc[7])},
+	{"rx_q8_dropped", offsetof(struct ixgbe_hw_stats, qprdc[8])},
+	{"rx_q9_dropped", offsetof(struct ixgbe_hw_stats, qprdc[9])},
+	{"rx_q10_dropped", offsetof(struct ixgbe_hw_stats, qprdc[10])},
+	{"rx_q11_dropped", offsetof(struct ixgbe_hw_stats, qprdc[11])},
+	{"rx_q12_dropped", offsetof(struct ixgbe_hw_stats, qprdc[12])},
+	{"rx_q13_dropped", offsetof(struct ixgbe_hw_stats, qprdc[13])},
+	{"rx_q14_dropped", offsetof(struct ixgbe_hw_stats, qprdc[14])},
+	{"rx_q15_dropped", offsetof(struct ixgbe_hw_stats, qprdc[15])},
 };
 
 #define IXGBE_NB_XSTATS (sizeof(rte_ixgbe_stats_strings) /	\
