summaryrefslogtreecommitdiff
path: root/lib/route/link/macsec.c
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-07-28 16:13:47 +0200
committerThomas Haller <thaller@redhat.com>2023-07-28 16:14:16 +0200
commit8c9f98cf1cd0e5e3b4bbb256b5785419e736100c (patch)
tree2967ed463783e673431fb7fa353f122ddf79b8eb /lib/route/link/macsec.c
parentc5f1e5f8feeb4ed258dc744e1e0688748e9608af (diff)
downloadlibnl-8c9f98cf1cd0e5e3b4bbb256b5785419e736100c.tar.gz
all: rework ATTR_DIFF() macros to not generate attribute names
I find macros that stitch together names like "FAMILY_ATTR_##ATTR" very confusing, because we no longer see where a certain name is used. It breaks grepping for symbols, and it breaks cscope. Yes, it's more verbose to not do that. If you really think that those names are too verbose, then maybe they should get a shorter name. And not use macros to make them palatable.
Diffstat (limited to 'lib/route/link/macsec.c')
-rw-r--r--lib/route/link/macsec.c43
1 files changed, 24 insertions, 19 deletions
diff --git a/lib/route/link/macsec.c b/lib/route/link/macsec.c
index e8879ab0..821f25f9 100644
--- a/lib/route/link/macsec.c
+++ b/lib/route/link/macsec.c
@@ -367,33 +367,38 @@ static int macsec_compare(struct rtnl_link *link_a, struct rtnl_link *link_b,
int diff = 0;
uint32_t attrs = flags & LOOSE_COMPARISON ? b->ce_mask : ~0;
-#define MACSEC_DIFF(ATTR, EXPR) ATTR_DIFF(attrs, MACSEC_ATTR_##ATTR, a, b, EXPR)
-
+#define _DIFF(ATTR, EXPR) ATTR_DIFF(attrs, ATTR, a, b, EXPR)
if (a->ce_mask & MACSEC_ATTR_SCI && b->ce_mask & MACSEC_ATTR_SCI)
- diff |= MACSEC_DIFF(SCI, a->sci != b->sci);
+ diff |= _DIFF(MACSEC_ATTR_SCI, a->sci != b->sci);
else if (a->ce_mask & MACSEC_ATTR_PORT && b->ce_mask & MACSEC_ATTR_PORT)
- diff |= MACSEC_DIFF(PORT, a->port != b->port);
+ diff |= _DIFF(MACSEC_ATTR_PORT, a->port != b->port);
- if (a->ce_mask & MACSEC_ATTR_CIPHER_SUITE && b->ce_mask & MACSEC_ATTR_CIPHER_SUITE) {
- diff |= MACSEC_DIFF(ICV_LEN, a->icv_len != b->icv_len);
- diff |= MACSEC_DIFF(CIPHER_SUITE, a->cipher_suite != b->cipher_suite);
+ if (a->ce_mask & MACSEC_ATTR_CIPHER_SUITE &&
+ b->ce_mask & MACSEC_ATTR_CIPHER_SUITE) {
+ diff |= _DIFF(MACSEC_ATTR_ICV_LEN, a->icv_len != b->icv_len);
+ diff |= _DIFF(MACSEC_ATTR_CIPHER_SUITE,
+ a->cipher_suite != b->cipher_suite);
}
- if (a->ce_mask & MACSEC_ATTR_REPLAY_PROTECT && b->ce_mask & MACSEC_ATTR_REPLAY_PROTECT) {
- int d = MACSEC_DIFF(REPLAY_PROTECT, a->replay_protect != b->replay_protect);
- if (a->replay_protect && b->replay_protect)
- d |= MACSEC_DIFF(WINDOW, a->window != b->window);
+ if (a->ce_mask & MACSEC_ATTR_REPLAY_PROTECT &&
+ b->ce_mask & MACSEC_ATTR_REPLAY_PROTECT) {
+ int d = _DIFF(MACSEC_ATTR_REPLAY_PROTECT,
+ a->replay_protect != b->replay_protect);
+ if (a->replay_protect && b->replay_protect) {
+ d |= _DIFF(MACSEC_ATTR_WINDOW, a->window != b->window);
+ }
diff |= d;
}
- diff |= MACSEC_DIFF(ENCODING_SA, a->encoding_sa != b->encoding_sa);
- diff |= MACSEC_DIFF(ENCRYPT, a->encrypt != b->encrypt);
- diff |= MACSEC_DIFF(PROTECT, a->protect != b->protect);
- diff |= MACSEC_DIFF(INC_SCI, a->send_sci != b->send_sci);
- diff |= MACSEC_DIFF(ES, a->end_station != b->end_station);
- diff |= MACSEC_DIFF(SCB, a->scb != b->scb);
- diff |= MACSEC_DIFF(VALIDATION, a->validate != b->validate);
-#undef MACSEC_DIFF
+ diff |= _DIFF(MACSEC_ATTR_ENCODING_SA,
+ a->encoding_sa != b->encoding_sa);
+ diff |= _DIFF(MACSEC_ATTR_ENCRYPT, a->encrypt != b->encrypt);
+ diff |= _DIFF(MACSEC_ATTR_PROTECT, a->protect != b->protect);
+ diff |= _DIFF(MACSEC_ATTR_INC_SCI, a->send_sci != b->send_sci);
+ diff |= _DIFF(MACSEC_ATTR_ES, a->end_station != b->end_station);
+ diff |= _DIFF(MACSEC_ATTR_SCB, a->scb != b->scb);
+ diff |= _DIFF(MACSEC_ATTR_VALIDATION, a->validate != b->validate);
+#undef _DIFF
return diff;
}