>>  +struct zxdh_ifc_hw_np_stats_bits {<br />>>  +    uint8_t rx_unicast_pkts[0x40];<br />>>  +    uint8_t tx_unicast_pkts[0x40];<br />>>  +    uint8_t rx_unicast_bytes[0x40];<br />>>  +    uint8_t tx_unicast_bytes[0x40];<br />>>  +    uint8_t rx_multicast_pkts[0x40];<br />>>  +    uint8_t tx_multicast_pkts[0x40];<br />>>  +    uint8_t rx_multicast_bytes[0x40];<br />>>  +    uint8_t tx_multicast_bytes[0x40];<br />>>  +    uint8_t rx_broadcast_pkts[0x40];<br />>>  +    uint8_t tx_broadcast_pkts[0x40];<br />>>  +    uint8_t rx_broadcast_bytes[0x40];<br />>>  +    uint8_t tx_broadcast_bytes[0x40];<br />>>  +    uint8_t rx_mtu_drop_pkts[0x40];<br />>>  +    uint8_t tx_mtu_drop_pkts[0x40];<br />>>  +    uint8_t rx_mtu_drop_bytes[0x40];<br />>>  +    uint8_t tx_mtu_drop_bytes[0x40];<br />>>  +    uint8_t rx_mtr_drop_pkts[0x40];<br />>>  +    uint8_t tx_mtr_drop_pkts[0x40];<br />>>  +    uint8_t rx_mtr_drop_bytes[0x40];<br />>>  +    uint8_t tx_mtr_drop_bytes[0x40];<br />>>  +    uint8_t tx_ssvpc_pkts[0x40];<br />>>  +};<br /> <br />> Seems like 0x40 (ie 64) is a magic constant here. Is it based<br />> on number of VF's or other value. Should be defined as constant<br />> rather than open coded.<br /> <br />Hi maintainer,<br />    it's not based on number of VF's or other value. it is just a uint64_t number.<br />    and the number will not be modified in the future.<br /> <br />    Due to the fact that our PF and VF use message retrieval statistics,<br />    when defining the return message result, the firmware did not align the header message according to 4 bytes.<br />    Therefore, we used a byte stream approach to retrieve the message by byte here.<br /> <br />    here is we used to convert struct zxdh_ifc_hw_np_stats_bits to byte stream.<br /> <br />    #define ZXDH_ST_SZ_BYTES(typ) (sizeof(struct zxdh_ifc_##typ##_bits) / 8)<br /> <br />    #define ZXDH_GET(typ, p, fld) ({ \<br />    BUILD_BUG_ON(__zxdh_bit_sz(typ, fld) % 8); \<br />    uint32_t fld_sz = __zxdh_bit_sz(typ, fld) / 8; \<br />    uint8_t *addr = ZXDH_ADDR_OF(typ, p, fld); \<br />    zxdh_get_value(fld_sz, addr); \<br />    })<br /> <br />Thanks.