On Thu, Feb 24, 2022 at 02:08:13PM +0100, Claudio Jeker wrote: > This is one small step closer to support add-path send side. > We store the path_id_tx on the prefix and we can adjust a few places to > make use of that field. Now it is always 0 so nothing changes in the end > apart from removing some XXX comments.
ok tb > > -- > :wq Claudio > > Index: rde.c > =================================================================== > RCS file: /cvs/src/usr.sbin/bgpd/rde.c,v > retrieving revision 1.534 > diff -u -p -r1.534 rde.c > --- rde.c 6 Feb 2022 09:51:19 -0000 1.534 > +++ rde.c 24 Feb 2022 13:01:13 -0000 > @@ -2422,7 +2422,7 @@ rde_dump_rib_as(struct prefix *p, struct > } > } else { > if (peer_has_add_path(peer, p->pt->aid, CAPA_AP_SEND)) { > - rib.path_id = 0; /* XXX add-path send */ > + rib.path_id = p->path_id_tx; > rib.flags |= F_PREF_PATH_ID; > } > } > @@ -2507,12 +2507,16 @@ rde_dump_filter(struct prefix *p, struct > if ((req->flags & F_CTL_INVALID) && > (asp->flags & F_ATTR_PARSE_ERR) == 0) > return; > - /* > - * XXX handle out specially since then we want to match against our > - * path ids. > - */ > - if ((req->flags & F_CTL_HAS_PATHID) && req->path_id != p->path_id) > - return; > + if ((req->flags & F_CTL_HAS_PATHID)) { > + /* Match against the transmit path id if adjout is used. */ > + if (adjout) { > + if (req->path_id != p->path_id_tx) > + return; > + } else { > + if (req->path_id != p->path_id) > + return; > + } > + } > if (req->as.type != AS_UNDEF && > !aspath_match(asp->aspath, &req->as, 0)) > return; > Index: rde_update.c > =================================================================== > RCS file: /cvs/src/usr.sbin/bgpd/rde_update.c,v > retrieving revision 1.132 > diff -u -p -r1.132 rde_update.c > --- rde_update.c 6 Feb 2022 09:51:19 -0000 1.132 > +++ rde_update.c 24 Feb 2022 13:01:13 -0000 > @@ -632,8 +632,7 @@ up_dump_prefix(u_char *buf, int len, str > if (peer_has_add_path(peer, p->pt->aid, CAPA_AP_SEND)) { > if (len <= wpos + (int)sizeof(pathid)) > break; > - /* XXX add-path send side */ > - pathid = 0; > + pathid = htonl(p->path_id_tx); > memcpy(buf + wpos, &pathid, sizeof(pathid)); > wpos += sizeof(pathid); > } >