dscp_policy - use a more efficient v6_equal()

This is meant to optimize dscp_policy bpf verifier time at boot.

Bug: 230585250
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I1ecd61db80919e2fa1fcbac00348f10a80b77620
This commit is contained in:
Maciej Żenczykowski 2022-05-18 09:05:07 +00:00
commit 3fc472dd39

View file

@ -26,12 +26,11 @@
#define STRUCT_SIZE(name, size) _Static_assert(sizeof(name) == (size), "Incorrect struct size.")
#ifndef v6_equal
#define v6_equal(a, b) (a.s6_addr32[0] == b.s6_addr32[0] && \
a.s6_addr32[1] == b.s6_addr32[1] && \
a.s6_addr32[2] == b.s6_addr32[2] && \
a.s6_addr32[3] == b.s6_addr32[3])
#endif
#define v6_equal(a, b) \
(((a.s6_addr32[0] ^ b.s6_addr32[0]) | \
(a.s6_addr32[1] ^ b.s6_addr32[1]) | \
(a.s6_addr32[2] ^ b.s6_addr32[2]) | \
(a.s6_addr32[3] ^ b.s6_addr32[3])) == 0)
// TODO: these are already defined in packages/modules/Connectivity/bpf_progs/bpf_net_helpers.h.
// smove to common location in future.