*/
uint8_t valid_group :1;
uint8_t depth :6; /**< Rule depth. */
-};
+} __rte_aligned(sizeof(uint16_t));
__extension__
struct rte_lpm_tbl_entry {
uint8_t group_idx;
uint8_t next_hop;
};
-};
+} __rte_aligned(sizeof(uint16_t));
__extension__
struct rte_lpm_tbl_entry {
ptbl = (const uint32_t *)(&lpm->tbl24[tbl24_index]);
tbl_entry = *ptbl;
+ /* Memory ordering is not required in lookup. Because dataflow
+ * dependency exists, compiler or HW won't be able to re-order
+ * the operations.
+ */
/* Copy tbl8 entry (only if needed) */
if (unlikely((tbl_entry & RTE_LPM_VALID_EXT_ENTRY_BITMASK) ==
RTE_LPM_VALID_EXT_ENTRY_BITMASK)) {
* @param hop
* Next hop of the most specific rule found for IP (valid on lookup hit only).
* This is an 4 elements array of two byte values.
- * If the lookup was succesfull for the given IP, then least significant byte
+ * If the lookup was successful for the given IP, then least significant byte
* of the corresponding element is the actual next hop and the most
* significant byte is zero.
* If the lookup for the given IP failed, then corresponding element would