LCOV - code coverage report
Current view: top level - bgp - peer_stats.cc (source / functions) Hit Total Coverage
Test: OpenSDN C/C++ coverage (all TARGET_SET jobs) Lines: 68 68 100.0 %
Date: 2026-11-09 02:10:49 Functions: 7 7 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright (c) 2016 Juniper Networks, Inc. All rights reserved.
       3             :  * Copyright Contributors to the OpenSDN project
       4             :  */
       5             : 
       6             : #include "bgp/peer_stats.h"
       7             : 
       8         462 : void PeerStats::FillProtoStats(const IPeerDebugStats::ProtoStats &stats,
       9             :                                PeerProtoStats *proto_stats) {
      10         462 :     proto_stats->set_open(stats.open);
      11         462 :     proto_stats->set_keepalive(stats.keepalive);
      12         462 :     proto_stats->set_close(stats.close);
      13         462 :     proto_stats->set_update(stats.update);
      14         462 :     proto_stats->set_notification(stats.notification);
      15         462 :     proto_stats->set_total(stats.open + stats.keepalive + stats.close +
      16         462 :         stats.update + stats.notification);
      17         462 : }
      18             : 
      19         924 : void PeerStats::FillRouteUpdateStats(const IPeerDebugStats::UpdateStats &stats,
      20             :                                      PeerUpdateStats *rt_stats) {
      21         924 :     rt_stats->set_total(stats.total);
      22         924 :     rt_stats->set_reach(stats.reach);
      23         924 :     rt_stats->set_unreach(stats.unreach);
      24         924 : }
      25             : 
      26         231 : void PeerStats::FillRxErrorStats(const IPeerDebugStats::RxErrorStats &src,
      27             :                                  PeerRxErrorStats *dest) {
      28         231 :     PeerRxInet6ErrorStats error_stats;
      29         231 :     error_stats.set_bad_inet6_xml_token_count(src.inet6_bad_xml_token_count);
      30         231 :     error_stats.set_bad_inet6_prefix_count(src.inet6_bad_prefix_count);
      31         231 :     error_stats.set_bad_inet6_nexthop_count(src.inet6_bad_nexthop_count);
      32         231 :     error_stats.set_bad_inet6_afi_safi_count(src.inet6_bad_afi_safi_count);
      33         231 :     dest->set_inet6_error_stats(error_stats);
      34         231 : }
      35             : 
      36         231 : void PeerStats::FillRxRouteStats(const IPeerDebugStats::RxRouteStats &src,
      37             :                                  PeerRxRouteStats *dest) {
      38         231 :     dest->set_total_path_count(src.total_path_count);
      39         231 :     dest->set_primary_path_count(src.primary_path_count);
      40         231 : }
      41             : 
      42         462 : void PeerStats::FillPeerUpdateStats(const IPeerDebugStats *peer_stats,
      43             :                                     PeerUpdateStats *rt_stats_rx,
      44             :                                     PeerUpdateStats *rt_stats_tx) {
      45             : 
      46         462 :     IPeerDebugStats::UpdateStats update_stats_rx;
      47         462 :     peer_stats->GetRxRouteUpdateStats(&update_stats_rx);
      48         462 :     FillRouteUpdateStats(update_stats_rx, rt_stats_rx);
      49             : 
      50         462 :     IPeerDebugStats::UpdateStats update_stats_tx;
      51         462 :     peer_stats->GetTxRouteUpdateStats(&update_stats_tx);
      52         462 :     FillRouteUpdateStats(update_stats_tx, rt_stats_tx);
      53         462 : }
      54             : 
      55         231 : void PeerStats::FillPeerUpdateStats(const IPeerDebugStats *peer_stats,
      56             :                                     PeerStatsData *peer_stats_data) {
      57         231 :     PeerUpdateStats stats_rx;
      58         231 :     PeerUpdateStats stats_tx;
      59             : 
      60         231 :     FillPeerUpdateStats(peer_stats, &stats_rx, &stats_tx);
      61         231 :     peer_stats_data->set_raw_rx_update_stats(stats_rx);
      62         231 :     peer_stats_data->set_raw_tx_update_stats(stats_tx);
      63         231 : }
      64             : 
      65         231 : void PeerStats::FillPeerDebugStats(const IPeerDebugStats *peer_stats,
      66             :                                    PeerStatsInfo *stats) {
      67         231 :     PeerProtoStats proto_stats_tx;
      68         231 :     PeerProtoStats proto_stats_rx;
      69         231 :     PeerUpdateStats rt_stats_rx;
      70         231 :     PeerUpdateStats rt_stats_tx;
      71         231 :     PeerRxErrorStats dest_error_stats_rx;
      72         231 :     PeerRxRouteStats dest_route_stats_rx;
      73             : 
      74         231 :     IPeerDebugStats::ProtoStats stats_rx;
      75         231 :     peer_stats->GetRxProtoStats(&stats_rx);
      76         231 :     FillProtoStats(stats_rx, &proto_stats_rx);
      77             : 
      78         231 :     IPeerDebugStats::ProtoStats stats_tx;
      79         231 :     peer_stats->GetTxProtoStats(&stats_tx);
      80         231 :     FillProtoStats(stats_tx, &proto_stats_tx);
      81             : 
      82         231 :     FillPeerUpdateStats(peer_stats, &rt_stats_rx, &rt_stats_tx);
      83             : 
      84         231 :     IPeerDebugStats::RxErrorStats src_error_stats_rx;
      85         231 :     peer_stats->GetRxErrorStats(&src_error_stats_rx);
      86         231 :     FillRxErrorStats(src_error_stats_rx, &dest_error_stats_rx);
      87             : 
      88         231 :     IPeerDebugStats::RxRouteStats src_route_stats_rx;
      89         231 :     peer_stats->GetRxRouteStats(&src_route_stats_rx);
      90         231 :     FillRxRouteStats(src_route_stats_rx, &dest_route_stats_rx);
      91             : 
      92         231 :     stats->set_rx_proto_stats(proto_stats_rx);
      93         231 :     stats->set_tx_proto_stats(proto_stats_tx);
      94         231 :     stats->set_rx_update_stats(rt_stats_rx);
      95         231 :     stats->set_tx_update_stats(rt_stats_tx);
      96         231 :     stats->set_rx_error_stats(dest_error_stats_rx);
      97         231 :     stats->set_rx_route_stats(dest_route_stats_rx);
      98         231 : }

Generated by: LCOV version 1.14