|
@@ -8816,11 +8816,21 @@ int t4_init_tp_params(struct adapter *adap, bool sleep_ok)
|
|
|
* shift positions of several elements of the Compressed Filter Tuple
|
|
|
* for this adapter which we need frequently ...
|
|
|
*/
|
|
|
- adap->params.tp.vlan_shift = t4_filter_field_shift(adap, VLAN_F);
|
|
|
- adap->params.tp.vnic_shift = t4_filter_field_shift(adap, VNIC_ID_F);
|
|
|
+ adap->params.tp.fcoe_shift = t4_filter_field_shift(adap, FCOE_F);
|
|
|
adap->params.tp.port_shift = t4_filter_field_shift(adap, PORT_F);
|
|
|
+ adap->params.tp.vnic_shift = t4_filter_field_shift(adap, VNIC_ID_F);
|
|
|
+ adap->params.tp.vlan_shift = t4_filter_field_shift(adap, VLAN_F);
|
|
|
+ adap->params.tp.tos_shift = t4_filter_field_shift(adap, TOS_F);
|
|
|
adap->params.tp.protocol_shift = t4_filter_field_shift(adap,
|
|
|
PROTOCOL_F);
|
|
|
+ adap->params.tp.ethertype_shift = t4_filter_field_shift(adap,
|
|
|
+ ETHERTYPE_F);
|
|
|
+ adap->params.tp.macmatch_shift = t4_filter_field_shift(adap,
|
|
|
+ MACMATCH_F);
|
|
|
+ adap->params.tp.matchtype_shift = t4_filter_field_shift(adap,
|
|
|
+ MPSHITTYPE_F);
|
|
|
+ adap->params.tp.frag_shift = t4_filter_field_shift(adap,
|
|
|
+ FRAGMENTATION_F);
|
|
|
|
|
|
/* If TP_INGRESS_CONFIG.VNID == 0, then TP_VLAN_PRI_MAP.VNIC_ID
|
|
|
* represents the presence of an Outer VLAN instead of a VNIC ID.
|
|
@@ -8828,6 +8838,10 @@ int t4_init_tp_params(struct adapter *adap, bool sleep_ok)
|
|
|
if ((adap->params.tp.ingress_config & VNIC_F) == 0)
|
|
|
adap->params.tp.vnic_shift = -1;
|
|
|
|
|
|
+ v = t4_read_reg(adap, LE_3_DB_HASH_MASK_GEN_IPV4_T6_A);
|
|
|
+ adap->params.tp.hash_filter_mask = v;
|
|
|
+ v = t4_read_reg(adap, LE_4_DB_HASH_MASK_GEN_IPV4_T6_A);
|
|
|
+ adap->params.tp.hash_filter_mask |= ((u64)v << 32);
|
|
|
return 0;
|
|
|
}
|
|
|
|