[BGP] add-path-out seems to be ignored

Hey,

So I am trying to setup a BGP session to forward all routes to a service.

So I set the BGP session to have add-path-out=all.

According to my understanding it should send all the prefixes I have, not just the best paths.

I have 3 upstreams with 162.411+165.465+158.785 routes, totalling 486.661 prefixes.

The service receiving my routes only reports the max number 165.465, not 486.661 which I am expecting.

Am I understanding how this should work wrong?

EDIT: Figured out how to do this

  1. REMOVE the “Remote AS” from the BGP session
  2. Set the “Local Role” to “ibgp rr”

That’s it, I think! Only seeing 302k routes but still!

Missing details like RouterOS version.

Apologies, I am running on v7.6.

Hey,

So I have been looking further into this, the edit above is inaccurate, the extra routes were not the duplicate routes I was trying to advertise, but instead my CYMRU blackholes were being sent to the service. Thankfully the information is not being used for routing packets, just informational.

After filtering out CYMRU routes, I am back to where I started. add-path-out seems to do nothing.

In fact, it does not even get added as a capability.

Screenshot 2022-12-18 171555.png

 0   name="bgp_xxxxxxxxxxx" 
     remote.address=2a0c:xxxx:xxxx::xxxx/128 
     local.address=2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx .role=ibgp-rr 
     routing-table=main router-id=xxx.xxx.xxx.xxx templates=ASxxxxxx as=xxxxxx multihop=yes address-families=ipv6 add-path-out=all 
     output.redistribute=static,bgp .filter-chain=out_xxxxxxxx .no-early-cut=yes 
     input.filter=REJECT

bgp multipath / add-path is not implemented.

So Mikrotik added an option, that does absolutely nothing…

Not even a little warning in the logs when I use it?

Warning: add-path-out is not implemented?

Or, even not showing it on prod builds?

We have the same problem. We bought (and got) a lot of CCR2216 and we can’t use them.
I think Mikrotik doesn’t know that as-override, remove-private-asn and add-path-out are the 3 most used bgp tools.
There are a lot of filtering options in Routeros 7.6, but the most important thing in BGP is to announce correctly the routes and not to filter.

[xxx@xxx-xxx] > /system resource print
                   uptime: 1d20h21m59s
                  version: 7.6 (stable)
               build-time: Oct/17/2022 10:55:40
         factory-software: 7.1.3
              free-memory: 14.7GiB
             total-memory: 15.9GiB
                      cpu: ARM64
                cpu-count: 16
                 cpu-load: 25%
           free-hdd-space: 83.6MiB
          total-hdd-space: 129.6MiB
  write-sect-since-reboot: 195560
         write-sect-total: 1173279
               bad-blocks: 0%
        architecture-name: arm64
               board-name: CCR2216-1G-12XS-2XQ
                 platform: MikroTik

Something I found works for me on the CCR2004’s is to set the CPU affinity to main under the template for all BGP peering sessions.

/routing bgp template
set input.affinity=main output.affinity=main