src/dpdk/drivers/net/e1000/igb_rxtx.c
static inline uint32_t
what_advctx_update(struct igb_tx_queue *txq, uint64_t flags,
		union igb_tx_offload tx_offload)
{
	/* If match with the current context */
	if (likely((txq->ctx_cache[txq->ctx_curr].flags == flags) &&
		(txq->ctx_cache[txq->ctx_curr].tx_offload.data ==
		(txq->ctx_cache[txq->ctx_curr].tx_offload_mask.data & tx_offload.data)))) {
			return txq->ctx_curr;
	}

	/* If match with the second context */
	txq->ctx_curr ^= 1;
	if (likely((txq->ctx_cache[txq->ctx_curr].flags == flags) &&
		(txq->ctx_cache[txq->ctx_curr].tx_offload.data ==
		(txq->ctx_cache[txq->ctx_curr].tx_offload_mask.data & tx_offload.data)))) {
			return txq->ctx_curr;
	}

	/* Mismatch, use the previous context */
	return IGB_CTX_NUM;
}
/*
 * Check which hardware context can be used. Use the existing match
 * or create a new context descriptor.
 */
Check which hardware context can be used. Use the existing match
or create a new context descriptor.
Check which hardware context can be used . Use the existing match or create a new context descriptor .
static inline uint32_t
what_advctx_update(struct igb_tx_queue *txq, uint64_t flags,
		union igb_tx_offload tx_offload)
{
	if (likely((txq->ctx_cache[txq->ctx_curr].flags == flags) &&
		(txq->ctx_cache[txq->ctx_curr].tx_offload.data ==
		(txq->ctx_cache[txq->ctx_curr].tx_offload_mask.data & tx_offload.data)))) {
			return txq->ctx_curr;
	}
	txq->ctx_curr ^= 1;
	if (likely((txq->ctx_cache[txq->ctx_curr].flags == flags) &&
		(txq->ctx_cache[txq->ctx_curr].tx_offload.data ==
		(txq->ctx_cache[txq->ctx_curr].tx_offload_mask.data & tx_offload.data)))) {
			return txq->ctx_curr;
	}
	return IGB_CTX_NUM;
}
static inline uint32_t what_advctx_update ( struct igb_tx_queue * txq , uint64_t flags , union igb_tx_offload tx_offload ) { if ( likely ( ( txq -> ctx_cache [ txq -> ctx_curr ] . flags == flags ) && ( txq -> ctx_cache [ txq -> ctx_curr ] . tx_offload . data == ( txq -> ctx_cache [ txq -> ctx_curr ] . tx_offload_mask . data & tx_offload . data ) ) ) ) { return txq -> ctx_curr ; } txq -> ctx_curr ^= 1 ; if ( likely ( ( txq -> ctx_cache [ txq -> ctx_curr ] . flags == flags ) && ( txq -> ctx_cache [ txq -> ctx_curr ] . tx_offload . data == ( txq -> ctx_cache [ txq -> ctx_curr ] . tx_offload_mask . data & tx_offload . data ) ) ) ) { return txq -> ctx_curr ; } return IGB_CTX_NUM ; }
Check which hardware context can be used.
Check which hardware context can be used .
/* If match with the current context */ /* If match with the second context */ /* Mismatch, use the previous context */