1*a5a5d5bbSOleksandr Kolomeiets /* 2*a5a5d5bbSOleksandr Kolomeiets * SPDX-License-Identifier: BSD-3-Clause 3*a5a5d5bbSOleksandr Kolomeiets * Copyright(c) 2023 Napatech A/S 4*a5a5d5bbSOleksandr Kolomeiets */ 5*a5a5d5bbSOleksandr Kolomeiets 6*a5a5d5bbSOleksandr Kolomeiets #ifndef _HW_MOD_HSH_V5_H_ 7*a5a5d5bbSOleksandr Kolomeiets #define _HW_MOD_HSH_V5_H_ 8*a5a5d5bbSOleksandr Kolomeiets 9*a5a5d5bbSOleksandr Kolomeiets #include <stdint.h> 10*a5a5d5bbSOleksandr Kolomeiets 11*a5a5d5bbSOleksandr Kolomeiets #define HSH_RCP_MAC_PORT_MASK_SIZE 4 12*a5a5d5bbSOleksandr Kolomeiets #define HSH_RCP_WORD_MASK_SIZE 10 13*a5a5d5bbSOleksandr Kolomeiets /* Toeplitz hash key size in 32-bit words, e.g. 10 words means 320 bits, i.e. 40 Bytes */ 14*a5a5d5bbSOleksandr Kolomeiets #define HSH_RCP_KEY_SIZE 10 15*a5a5d5bbSOleksandr Kolomeiets 16*a5a5d5bbSOleksandr Kolomeiets struct hsh_v5_rcp_s { 17*a5a5d5bbSOleksandr Kolomeiets uint32_t load_dist_type; 18*a5a5d5bbSOleksandr Kolomeiets uint32_t mac_port_mask[HSH_RCP_MAC_PORT_MASK_SIZE]; 19*a5a5d5bbSOleksandr Kolomeiets uint32_t sort; 20*a5a5d5bbSOleksandr Kolomeiets uint32_t qw0_pe; 21*a5a5d5bbSOleksandr Kolomeiets int32_t qw0_ofs; 22*a5a5d5bbSOleksandr Kolomeiets uint32_t qw4_pe; 23*a5a5d5bbSOleksandr Kolomeiets int32_t qw4_ofs; 24*a5a5d5bbSOleksandr Kolomeiets uint32_t w8_pe; 25*a5a5d5bbSOleksandr Kolomeiets int32_t w8_ofs; 26*a5a5d5bbSOleksandr Kolomeiets uint32_t w8_sort; 27*a5a5d5bbSOleksandr Kolomeiets uint32_t w9_pe; 28*a5a5d5bbSOleksandr Kolomeiets int32_t w9_ofs; 29*a5a5d5bbSOleksandr Kolomeiets uint32_t w9_sort; 30*a5a5d5bbSOleksandr Kolomeiets uint32_t w9_p; 31*a5a5d5bbSOleksandr Kolomeiets uint32_t p_mask; 32*a5a5d5bbSOleksandr Kolomeiets uint32_t word_mask[HSH_RCP_WORD_MASK_SIZE]; 33*a5a5d5bbSOleksandr Kolomeiets uint32_t seed; 34*a5a5d5bbSOleksandr Kolomeiets uint32_t tnl_p; 35*a5a5d5bbSOleksandr Kolomeiets uint32_t hsh_valid; 36*a5a5d5bbSOleksandr Kolomeiets uint32_t hsh_type; 37*a5a5d5bbSOleksandr Kolomeiets uint32_t toeplitz; /* Toeplitz enabled / disabled */ 38*a5a5d5bbSOleksandr Kolomeiets uint32_t k[HSH_RCP_KEY_SIZE]; /* Toeplitz hash key */ 39*a5a5d5bbSOleksandr Kolomeiets uint32_t auto_ipv4_mask; 40*a5a5d5bbSOleksandr Kolomeiets }; 41*a5a5d5bbSOleksandr Kolomeiets 42*a5a5d5bbSOleksandr Kolomeiets struct hw_mod_hsh_v5_s { 43*a5a5d5bbSOleksandr Kolomeiets struct hsh_v5_rcp_s *rcp; 44*a5a5d5bbSOleksandr Kolomeiets }; 45*a5a5d5bbSOleksandr Kolomeiets 46*a5a5d5bbSOleksandr Kolomeiets #endif /* _HW_MOD_HSH_V5_H_ */ 47