mirror of
https://github.com/openvswitch/ovs
synced 2025-10-17 14:28:02 +00:00
packets: Fix eth_addr_equal_except().
It turns out that eth_addr_equal_except() computed the exact opposite of what it purported to. It returned true if the two arguments where *not* equal. This is extremely confusing, so this patch changes it. Signed-off-by: Ethan Jackson <ethan@nicira.com>
This commit is contained in:
@@ -203,11 +203,11 @@ match(const struct cls_rule *wild, const struct flow *fixed)
|
||||
} else if (f_idx == CLS_F_IDX_TP_DST) {
|
||||
eq = !((fixed->tp_dst ^ wild->flow.tp_dst) & wild->wc.tp_dst_mask);
|
||||
} else if (f_idx == CLS_F_IDX_DL_SRC) {
|
||||
eq = !eth_addr_equal_except(fixed->dl_src, wild->flow.dl_src,
|
||||
wild->wc.dl_src_mask);
|
||||
eq = eth_addr_equal_except(fixed->dl_src, wild->flow.dl_src,
|
||||
wild->wc.dl_src_mask);
|
||||
} else if (f_idx == CLS_F_IDX_DL_DST) {
|
||||
eq = !eth_addr_equal_except(fixed->dl_dst, wild->flow.dl_dst,
|
||||
wild->wc.dl_dst_mask);
|
||||
eq = eth_addr_equal_except(fixed->dl_dst, wild->flow.dl_dst,
|
||||
wild->wc.dl_dst_mask);
|
||||
} else if (f_idx == CLS_F_IDX_VLAN_TCI) {
|
||||
eq = !((fixed->vlan_tci ^ wild->flow.vlan_tci)
|
||||
& wild->wc.vlan_tci_mask);
|
||||
|
Reference in New Issue
Block a user