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