net: hns3: refine the tcam key convert handle
The result of expression '(k ^ ~v) & k' is exactly the same with 'k & v', so simplify it. (k ^ ~v) & k == k & v The truth table (in non table form): k == 0, v == 0: (k ^ ~v) & k == (0 ^ ~0) & 0 == (0 ^ 1) & 0 == 1 & 0 == 0 k & v == 0 & 0 == 0 k == 0, v == 1: (k ^ ~v) & k == (0 ^ ~1) & 0 == (0 ^ 0) & 0 == 1 & 0 == 0 k & v == 0 & 1 == 0 k == 1, v == 0: (k ^ ~v) & k == (1 ^ ~0) & 1 == (1 ^ 1) & 1 == 0 & 1 == 0 k & v == 1 & 0 == 0 k == 1, v == 1: (k ^ ~v) & k == (1 ^ ~1) & 1 == (1 ^ 0) & 1 == 1 & 1 == 1 k & v == 1 & 1 == 1 Signed-off-by: Jian Shen <shenjian15@huawei.com> Signed-off-by: Hao Lan <lanhao@huawei.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
e6988447c1
commit
9b476494da
@ -835,15 +835,10 @@ struct hclge_vf_vlan_cfg {
|
||||
* Then for input key(k) and mask(v), we can calculate the value by
|
||||
* the formulae:
|
||||
* x = (~k) & v
|
||||
* y = (k ^ ~v) & k
|
||||
* y = k & v
|
||||
*/
|
||||
#define calc_x(x, k, v) (x = ~(k) & (v))
|
||||
#define calc_y(y, k, v) \
|
||||
do { \
|
||||
const typeof(k) _k_ = (k); \
|
||||
const typeof(v) _v_ = (v); \
|
||||
(y) = (_k_ ^ ~_v_) & (_k_); \
|
||||
} while (0)
|
||||
#define calc_x(x, k, v) ((x) = ~(k) & (v))
|
||||
#define calc_y(y, k, v) ((y) = (k) & (v))
|
||||
|
||||
#define HCLGE_MAC_STATS_FIELD_OFF(f) (offsetof(struct hclge_mac_stats, f))
|
||||
#define HCLGE_STATS_READ(p, offset) (*(u64 *)((u8 *)(p) + (offset)))
|
||||
|
Loading…
x
Reference in New Issue
Block a user