* [in] Brd4 only receive table access interface id
*/
uint32_t tx_tbl_if_id;
+ /**
+ * [in] Flush pending HW cached flows every 1/10th of value
+ * set in seconds, both idle and active flows are flushed
+ * from the HW cache. If set to 0, this feature will be disabled.
+ */
+ uint8_t hw_flow_cache_flush_timer;
/**
* [out] table scope identifier
*/
uint16_t key1_ctx_id,
uint16_t record_ctx_id,
uint16_t efc_ctx_id,
+ uint8_t flush_interval,
int dir)
{
int rc;
req.flags = tfp_cpu_to_le_32(flags);
req.num_entries = tfp_cpu_to_le_32(num_entries);
+ req.flush_interval = flush_interval;
+
req.key0_ctx_id = tfp_cpu_to_le_16(key0_ctx_id);
req.key1_ctx_id = tfp_cpu_to_le_16(key1_ctx_id);
req.record_ctx_id = tfp_cpu_to_le_16(record_ctx_id);
uint16_t key1_ctx_id,
uint16_t record_ctx_id,
uint16_t efc_ctx_id,
+ uint8_t flush_interval,
int dir);
/**
em_tables[KEY1_TABLE].ctx_id,
em_tables[RECORD_TABLE].ctx_id,
em_tables[EFC_TABLE].ctx_id,
+ parms->hw_flow_cache_flush_timer,
dir);
if (rc) {
PMD_DRV_LOG(ERR,
else
dparms = bnxt_ulp_device_params_get(dev_id);
+ /*
+ * Set the flush timer for EEM entries. The value is in 100ms intervals,
+ * so 100 is 10s.
+ */
+ params->hw_flow_cache_flush_timer = 100;
+
if (!dparms) {
params->rx_max_key_sz_in_bits = BNXT_ULP_DFLT_RX_MAX_KEY;
params->rx_max_action_entry_sz_in_bits =