From bdf8b8dda901cbdc2e99f6510b6cb85d4ad2071f Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Mon, 15 May 2023 14:43:32 +0300 Subject: [PATCH 1/2] bgpd: Show the real table version for a decent peer subgroup Without the patch: ``` Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt Desc 192.168.1.2 4 65002 4 5 2 0 0 00:00:45 1 1 N/A 192.168.1.3 4 65003 5 5 2 0 0 00:00:45 0 2 N/A 192.168.1.4 4 65004 5 5 2 0 0 00:00:45 0 2 N/A ``` With the patch: ``` Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt Desc 192.168.1.2 4 65002 6 6 2 0 0 00:01:05 0 1 N/A 192.168.1.3 4 65003 7 7 3 0 0 00:01:05 0 1 N/A 192.168.1.4 4 65004 7 7 3 0 0 00:01:05 0 1 N/A ``` JSON output is also fixed: ``` munet> r1 shi vtysh -c 'sh ip bgp sum json' | grep version -i "tableVersion":3, "version":4, "tableVersion":2, "version":4, "tableVersion":3, "version":4, "tableVersion":3, munet> ``` Signed-off-by: Donatas Abraitis --- bgpd/bgp_vty.c | 13 +++++++++---- bgpd/bgpd.h | 1 - 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c index 1be44adde8..7ef9db9f0d 100644 --- a/bgpd/bgp_vty.c +++ b/bgpd/bgp_vty.c @@ -11620,8 +11620,11 @@ static int bgp_show_summary(struct vty *vty, struct bgp *bgp, int afi, int safi, &peer->ibuf->count, memory_order_relaxed); - json_object_int_add(json_peer, "tableVersion", - peer->version[afi][safi]); + json_object_int_add( + json_peer, "tableVersion", + (paf && PAF_SUBGRP(paf)) + ? paf->subgroup->version + : 0); json_object_int_add(json_peer, "outq", outq_count); json_object_int_add(json_peer, "inq", @@ -11799,8 +11802,10 @@ static int bgp_show_summary(struct vty *vty, struct bgp *bgp, int afi, int safi, " %9u %9u %8" PRIu64 " %4zu %4zu %8s", PEER_TOTAL_RX(peer), PEER_TOTAL_TX(peer), - peer->version[afi][safi], inq_count, - outq_count, + (paf && PAF_SUBGRP(paf)) + ? paf->subgroup->version + : 0, + inq_count, outq_count, peer_uptime(peer->uptime, timebuf, BGP_UPTIME_LEN, 0, NULL)); diff --git a/bgpd/bgpd.h b/bgpd/bgpd.h index 68b32b5945..9cb1d51088 100644 --- a/bgpd/bgpd.h +++ b/bgpd/bgpd.h @@ -1119,7 +1119,6 @@ struct peer { /* BGP peer group. */ struct peer_group *group; - uint64_t version[AFI_MAX][SAFI_MAX]; /* BGP peer_af structures, per configured AF on this peer */ struct peer_af *peer_af_array[BGP_AF_MAX]; From f913ee30fffd17102d60e96a559ad8bf85e43bef Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Tue, 16 May 2023 09:06:06 +0300 Subject: [PATCH 2/2] tests: Drop `tableVersion` from EVPN PIM test case tableVersion always incorrectly showed 0 instead of a decent value. Let's get rid of this from the partial output at all. Signed-off-by: Donatas Abraitis --- tests/topotests/evpn_pim_1/spine/bgp.summ.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/topotests/evpn_pim_1/spine/bgp.summ.json b/tests/topotests/evpn_pim_1/spine/bgp.summ.json index 5ff4b096fd..7f37cedb2b 100644 --- a/tests/topotests/evpn_pim_1/spine/bgp.summ.json +++ b/tests/topotests/evpn_pim_1/spine/bgp.summ.json @@ -8,7 +8,6 @@ "192.168.1.2":{ "remoteAs":65002, "version":4, - "tableVersion":0, "outq":0, "inq":0, "pfxRcd":3, @@ -21,7 +20,6 @@ "192.168.2.3":{ "remoteAs":65003, "version":4, - "tableVersion":0, "outq":0, "inq":0, "pfxRcd":3,