]> git.proxmox.com Git - mirror_frr.git/commit - bgpd/bgp_fsm.c
bgpd: Add BGP Software Version Capability
authorDonatas Abraitis <donatas@opensourcerouting.org>
Sat, 25 Feb 2023 07:00:23 +0000 (07:00 +0000)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Wed, 15 Feb 2023 21:14:48 +0000 (23:14 +0200)
commit234f6fd4f4804bb17bd8cbb1dd91994a914f38d2
tree5b8381007aa613d875c454144c83c855ccf4e947
parente0159b09c9099e981427de404f8d703eb4a8f0e9
bgpd: Add BGP Software Version Capability

Implement: https://datatracker.ietf.org/doc/html/draft-abraitis-bgp-version-capability

Tested with GoBGP:

```
% ./gobgp neighbor 192.168.10.124
BGP neighbor is 192.168.10.124, remote AS 65001
  BGP version 4, remote router ID 200.200.200.202
  BGP state = ESTABLISHED, up for 00:01:49
  BGP OutQ = 0, Flops = 0
  Hold time is 3, keepalive interval is 1 seconds
  Configured hold time is 90, keepalive interval is 30 seconds

  Neighbor capabilities:
    multiprotocol:
        ipv4-unicast: advertised and received
        ipv6-unicast: advertised
    route-refresh: advertised and received
    extended-nexthop: advertised
        Local:  nlri: ipv4-unicast, nexthop: ipv6
    UnknownCapability(6): received
    UnknownCapability(9): received
    graceful-restart: advertised and received
        Local: restart time 10 sec
    ipv6-unicast
    ipv4-unicast
        Remote: restart time 120 sec, notification flag set
    ipv4-unicast, forward flag set
    4-octet-as: advertised and received
    add-path: received
      Remote:
         ipv4-unicast: receive
    enhanced-route-refresh: received
    long-lived-graceful-restart: advertised and received
        Local:
    ipv6-unicast, restart time 10 sec
    ipv4-unicast, restart time 20 sec
        Remote:
    ipv4-unicast, restart time 0 sec, forward flag set
    fqdn: advertised and received
      Local:
         name: donatas-pc, domain:
      Remote:
         name: spine1-debian-11, domain:
    software-version: advertised and received
      Local:
         GoBGP/3.10.0
      Remote:
         FRRouting/8.5-dev-MyOwnFRRVersion-gdc92f44a45-dirt
    cisco-route-refresh: received
  Message statistics:
```

FRR side:

```
root@spine1-debian-11:~# vtysh -c 'show bgp neighbor 192.168.10.17 json' | \
> jq '."192.168.10.17".neighborCapabilities.softwareVersion.receivedSoftwareVersion'
"GoBGP/3.10.0"
root@spine1-debian-11:~#
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
20 files changed:
bgpd/bgp_fsm.c
bgpd/bgp_memory.c
bgpd/bgp_memory.h
bgpd/bgp_open.c
bgpd/bgp_open.h
bgpd/bgp_packet.c
bgpd/bgp_vty.c
bgpd/bgp_vty.h
bgpd/bgpd.c
bgpd/bgpd.h
doc/user/bgp.rst
lib/command.c
lib/command.h
tests/bgpd/test_peer_attr.c
tests/topotests/bgp_software_version/__init__.py [new file with mode: 0644]
tests/topotests/bgp_software_version/r1/bgpd.conf [new file with mode: 0644]
tests/topotests/bgp_software_version/r1/zebra.conf [new file with mode: 0644]
tests/topotests/bgp_software_version/r2/bgpd.conf [new file with mode: 0644]
tests/topotests/bgp_software_version/r2/zebra.conf [new file with mode: 0644]
tests/topotests/bgp_software_version/test_bgp_software_version.py [new file with mode: 0644]