git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net/mlx5: handle Rx CQE compression
[dpdk.git]
/
lib
/
librte_table
/
rte_table_hash_key32.c
diff --git
a/lib/librte_table/rte_table_hash_key32.c
b/lib/librte_table/rte_table_hash_key32.c
index
5fe4161
..
a7aba49
100644
(file)
--- a/
lib/librte_table/rte_table_hash_key32.c
+++ b/
lib/librte_table/rte_table_hash_key32.c
@@
-591,16
+591,17
@@
rte_table_hash_entry_delete_key32_ext(
pos = 3; \
}
pos = 3; \
}
-#define lookup1_stage0(pkt0_index, mbuf0, pkts, pkts_mask
)
\
+#define lookup1_stage0(pkt0_index, mbuf0, pkts, pkts_mask
, f)
\
{ \
uint64_t pkt_mask; \
{ \
uint64_t pkt_mask; \
+ uint32_t key_offset = f->key_offset; \
\
pkt0_index = __builtin_ctzll(pkts_mask); \
pkt_mask = 1LLU << pkt0_index; \
pkts_mask &= ~pkt_mask; \
\
mbuf0 = pkts[pkt0_index]; \
\
pkt0_index = __builtin_ctzll(pkts_mask); \
pkt_mask = 1LLU << pkt0_index; \
pkts_mask &= ~pkt_mask; \
\
mbuf0 = pkts[pkt0_index]; \
- rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf0,
0));
\
+ rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf0,
key_offset));
\
}
#define lookup1_stage1(mbuf1, bucket1, f) \
}
#define lookup1_stage1(mbuf1, bucket1, f) \
@@
-698,36
+699,38
@@
rte_table_hash_entry_delete_key32_ext(
}
#define lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01,\
}
#define lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01,\
- pkts, pkts_mask
)
\
+ pkts, pkts_mask
, f)
\
{ \
uint64_t pkt00_mask, pkt01_mask; \
{ \
uint64_t pkt00_mask, pkt01_mask; \
+ uint32_t key_offset = f->key_offset; \
\
pkt00_index = __builtin_ctzll(pkts_mask); \
pkt00_mask = 1LLU << pkt00_index; \
pkts_mask &= ~pkt00_mask; \
\
mbuf00 = pkts[pkt00_index]; \
\
pkt00_index = __builtin_ctzll(pkts_mask); \
pkt00_mask = 1LLU << pkt00_index; \
pkts_mask &= ~pkt00_mask; \
\
mbuf00 = pkts[pkt00_index]; \
- rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf00,
0));
\
+ rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf00,
key_offset));
\
\
pkt01_index = __builtin_ctzll(pkts_mask); \
pkt01_mask = 1LLU << pkt01_index; \
pkts_mask &= ~pkt01_mask; \
\
mbuf01 = pkts[pkt01_index]; \
\
pkt01_index = __builtin_ctzll(pkts_mask); \
pkt01_mask = 1LLU << pkt01_index; \
pkts_mask &= ~pkt01_mask; \
\
mbuf01 = pkts[pkt01_index]; \
- rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf01,
0));
\
+ rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf01,
key_offset));
\
}
#define lookup2_stage0_with_odd_support(pkt00_index, pkt01_index,\
}
#define lookup2_stage0_with_odd_support(pkt00_index, pkt01_index,\
- mbuf00, mbuf01, pkts, pkts_mask
)
\
+ mbuf00, mbuf01, pkts, pkts_mask
, f)
\
{ \
uint64_t pkt00_mask, pkt01_mask; \
{ \
uint64_t pkt00_mask, pkt01_mask; \
+ uint32_t key_offset = f->key_offset; \
\
pkt00_index = __builtin_ctzll(pkts_mask); \
pkt00_mask = 1LLU << pkt00_index; \
pkts_mask &= ~pkt00_mask; \
\
mbuf00 = pkts[pkt00_index]; \
\
pkt00_index = __builtin_ctzll(pkts_mask); \
pkt00_mask = 1LLU << pkt00_index; \
pkts_mask &= ~pkt00_mask; \
\
mbuf00 = pkts[pkt00_index]; \
- rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf00,
0));
\
+ rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf00,
key_offset));
\
\
pkt01_index = __builtin_ctzll(pkts_mask); \
if (pkts_mask == 0) \
\
pkt01_index = __builtin_ctzll(pkts_mask); \
if (pkts_mask == 0) \
@@
-737,7
+740,7
@@
rte_table_hash_entry_delete_key32_ext(
pkts_mask &= ~pkt01_mask; \
\
mbuf01 = pkts[pkt01_index]; \
pkts_mask &= ~pkt01_mask; \
\
mbuf01 = pkts[pkt01_index]; \
- rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf01,
0));
\
+ rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf01,
key_offset));
\
}
#define lookup2_stage1(mbuf10, mbuf11, bucket10, bucket11, f) \
}
#define lookup2_stage1(mbuf10, mbuf11, bucket10, bucket11, f) \
@@
-852,7
+855,7
@@
rte_table_hash_lookup_key32_lru(
struct rte_mbuf *mbuf;
uint32_t pkt_index;
struct rte_mbuf *mbuf;
uint32_t pkt_index;
- lookup1_stage0(pkt_index, mbuf, pkts, pkts_mask);
+ lookup1_stage0(pkt_index, mbuf, pkts, pkts_mask
, f
);
lookup1_stage1(mbuf, bucket, f);
lookup1_stage2_lru(pkt_index, mbuf, bucket,
pkts_mask_out, entries, f);
lookup1_stage1(mbuf, bucket, f);
lookup1_stage2_lru(pkt_index, mbuf, bucket,
pkts_mask_out, entries, f);
@@
-869,7
+872,7
@@
rte_table_hash_lookup_key32_lru(
*/
/* Pipeline stage 0 */
lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01, pkts,
*/
/* Pipeline stage 0 */
lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01, pkts,
- pkts_mask);
+ pkts_mask
, f
);
/* Pipeline feed */
mbuf10 = mbuf00;
/* Pipeline feed */
mbuf10 = mbuf00;
@@
-879,7
+882,7
@@
rte_table_hash_lookup_key32_lru(
/* Pipeline stage 0 */
lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01, pkts,
/* Pipeline stage 0 */
lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01, pkts,
- pkts_mask);
+ pkts_mask
, f
);
/* Pipeline stage 1 */
lookup2_stage1(mbuf10, mbuf11, bucket10, bucket11, f);
/* Pipeline stage 1 */
lookup2_stage1(mbuf10, mbuf11, bucket10, bucket11, f);
@@
-903,7
+906,7
@@
rte_table_hash_lookup_key32_lru(
/* Pipeline stage 0 */
lookup2_stage0_with_odd_support(pkt00_index, pkt01_index,
/* Pipeline stage 0 */
lookup2_stage0_with_odd_support(pkt00_index, pkt01_index,
- mbuf00, mbuf01, pkts, pkts_mask);
+ mbuf00, mbuf01, pkts, pkts_mask
, f
);
/* Pipeline stage 1 */
lookup2_stage1(mbuf10, mbuf11, bucket10, bucket11, f);
/* Pipeline stage 1 */
lookup2_stage1(mbuf10, mbuf11, bucket10, bucket11, f);
@@
-981,7
+984,7
@@
rte_table_hash_lookup_key32_ext(
struct rte_mbuf *mbuf;
uint32_t pkt_index;
struct rte_mbuf *mbuf;
uint32_t pkt_index;
- lookup1_stage0(pkt_index, mbuf, pkts, pkts_mask);
+ lookup1_stage0(pkt_index, mbuf, pkts, pkts_mask
, f
);
lookup1_stage1(mbuf, bucket, f);
lookup1_stage2_ext(pkt_index, mbuf, bucket,
pkts_mask_out, entries, buckets_mask, buckets,
lookup1_stage1(mbuf, bucket, f);
lookup1_stage2_ext(pkt_index, mbuf, bucket,
pkts_mask_out, entries, buckets_mask, buckets,
@@
-997,7
+1000,7
@@
rte_table_hash_lookup_key32_ext(
*/
/* Pipeline stage 0 */
lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01, pkts,
*/
/* Pipeline stage 0 */
lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01, pkts,
- pkts_mask);
+ pkts_mask
, f
);
/* Pipeline feed */
mbuf10 = mbuf00;
/* Pipeline feed */
mbuf10 = mbuf00;
@@
-1007,7
+1010,7
@@
rte_table_hash_lookup_key32_ext(
/* Pipeline stage 0 */
lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01, pkts,
/* Pipeline stage 0 */
lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01, pkts,
- pkts_mask);
+ pkts_mask
, f
);
/* Pipeline stage 1 */
lookup2_stage1(mbuf10, mbuf11, bucket10, bucket11, f);
/* Pipeline stage 1 */
lookup2_stage1(mbuf10, mbuf11, bucket10, bucket11, f);
@@
-1031,7
+1034,7
@@
rte_table_hash_lookup_key32_ext(
/* Pipeline stage 0 */
lookup2_stage0_with_odd_support(pkt00_index, pkt01_index,
/* Pipeline stage 0 */
lookup2_stage0_with_odd_support(pkt00_index, pkt01_index,
- mbuf00, mbuf01, pkts, pkts_mask);
+ mbuf00, mbuf01, pkts, pkts_mask
, f
);
/* Pipeline stage 1 */
lookup2_stage1(mbuf10, mbuf11, bucket10, bucket11, f);
/* Pipeline stage 1 */
lookup2_stage1(mbuf10, mbuf11, bucket10, bucket11, f);
@@
-1123,6
+1126,8
@@
struct rte_table_ops rte_table_hash_key32_lru_ops = {
.f_free = rte_table_hash_free_key32_lru,
.f_add = rte_table_hash_entry_add_key32_lru,
.f_delete = rte_table_hash_entry_delete_key32_lru,
.f_free = rte_table_hash_free_key32_lru,
.f_add = rte_table_hash_entry_add_key32_lru,
.f_delete = rte_table_hash_entry_delete_key32_lru,
+ .f_add_bulk = NULL,
+ .f_delete_bulk = NULL,
.f_lookup = rte_table_hash_lookup_key32_lru,
.f_stats = rte_table_hash_key32_stats_read,
};
.f_lookup = rte_table_hash_lookup_key32_lru,
.f_stats = rte_table_hash_key32_stats_read,
};
@@
-1132,6
+1137,8
@@
struct rte_table_ops rte_table_hash_key32_ext_ops = {
.f_free = rte_table_hash_free_key32_ext,
.f_add = rte_table_hash_entry_add_key32_ext,
.f_delete = rte_table_hash_entry_delete_key32_ext,
.f_free = rte_table_hash_free_key32_ext,
.f_add = rte_table_hash_entry_add_key32_ext,
.f_delete = rte_table_hash_entry_delete_key32_ext,
+ .f_add_bulk = NULL,
+ .f_delete_bulk = NULL,
.f_lookup = rte_table_hash_lookup_key32_ext,
.f_stats = rte_table_hash_key32_stats_read,
};
.f_lookup = rte_table_hash_lookup_key32_ext,
.f_stats = rte_table_hash_key32_stats_read,
};