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);
>               }
> 

Reply via email to