On Tue, Mar 28, 2023 at 10:17:28AM +0200, Claudio Jeker wrote: > I think flipping the logic around makes the statements easier to read. > Also we may need to add an extra role for siblings which behave like > customers (using the downstream algorithm result).
Makes sense, ok > > -- > :wq Claudio > > Index: rde.c > =================================================================== > RCS file: /cvs/src/usr.sbin/bgpd/rde.c,v > retrieving revision 1.597 > diff -u -p -r1.597 rde.c > --- rde.c 21 Mar 2023 14:52:36 -0000 1.597 > +++ rde.c 27 Mar 2023 09:16:49 -0000 > @@ -2525,15 +2525,15 @@ rde_aspa_validity(struct rde_peer *peer, > > switch (aid) { > case AID_INET: > - if (peer->role != ROLE_CUSTOMER) > - return asp->aspa_state.onlyup_v4; > - else > + if (peer->role == ROLE_CUSTOMER) > return asp->aspa_state.downup_v4; > - case AID_INET6: > - if (peer->role != ROLE_CUSTOMER) > - return asp->aspa_state.onlyup_v6; > else > + return asp->aspa_state.onlyup_v4; > + case AID_INET6: > + if (peer->role == ROLE_CUSTOMER) > return asp->aspa_state.downup_v6; > + else > + return asp->aspa_state.onlyup_v6; > default: > return ASPA_NEVER_KNOWN; /* not reachable */ > } >