@@ -72,6 +72,27 @@ uint64_t rx_hash_fields_mask; /* RX fields that should particip
.in -8
};
.fi
+
+.nf
+enum ibv_rx_hash_fields {
+.in +8
+IBV_RX_HASH_SRC_IPV4 = 1 << 0,
+IBV_RX_HASH_DST_IPV4 = 1 << 1,
+IBV_RX_HASH_SRC_IPV6 = 1 << 2,
+IBV_RX_HASH_DST_IPV6 = 1 << 3,
+IBV_RX_HASH_SRC_PORT_TCP = 1 << 4,
+IBV_RX_HASH_DST_PORT_TCP = 1 << 5,
+IBV_RX_HASH_SRC_PORT_UDP = 1 << 6,
+IBV_RX_HASH_DST_PORT_UDP = 1 << 7,
+.in -8
+};
+
+/* When set with one of the L3/L4 fields,
+ * then the RSS will be applied on the inner packet. */
+#define IBV_RX_HASH_INNER = (1ULL << 31)
+
+.fi
+
.PP
The function
.B ibv_create_qp_ex()
@@ -241,9 +241,14 @@ enum ibv_rx_hash_fields {
IBV_RX_HASH_SRC_PORT_TCP = 1 << 4,
IBV_RX_HASH_DST_PORT_TCP = 1 << 5,
IBV_RX_HASH_SRC_PORT_UDP = 1 << 6,
- IBV_RX_HASH_DST_PORT_UDP = 1 << 7
+ IBV_RX_HASH_DST_PORT_UDP = 1 << 7,
};
+/* In some systems/compilers enum range might be limited
+ * to signed 4 bytes.
+ */
+#define IBV_RX_HASH_INNER (1ULL << 31)
+
struct ibv_rss_caps {
uint32_t supported_qpts;
uint32_t max_rwq_indirection_tables;