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

          Line data    Source code
       1             : /*
       2             :  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
       3             :  * Copyright Contributors to the OpenSDN project
       4             :  */
       5             : 
       6             : #ifndef SRC_BGP_BGP_PEER_CLOSE_H__
       7             : #define SRC_BGP_BGP_PEER_CLOSE_H__
       8             : 
       9             : #include <set>
      10             : #include <string>
      11             : #include <vector>
      12             : 
      13             : #include "bgp/ipeer.h"
      14             : 
      15             : class BgpNeighborResp;
      16             : class BgpPath;
      17             : class BgpPeerInfoData;
      18             : class PeerCloseManager;
      19             : 
      20             : class BgpPeerClose : public IPeerClose {
      21             :   public:
      22             :     typedef std::set<Address::Family> Families;
      23             : 
      24             :     explicit BgpPeerClose(BgpPeer *peer);
      25             :     virtual ~BgpPeerClose();
      26             :     virtual void CustomClose();
      27             :     virtual void GracefulRestartStale();
      28             :     virtual void LongLivedGracefulRestartStale();
      29             :     virtual void GracefulRestartSweep();
      30             :     virtual bool IsReady() const;
      31             :     virtual IPeer *peer() const;
      32             :     virtual void Close(bool graceful);
      33             :     virtual void Delete();
      34             :     virtual int GetGracefulRestartTime() const;
      35             :     virtual int GetLongLivedGracefulRestartTime() const;
      36             :     virtual void ReceiveEndOfRIB(Address::Family family);
      37             :     virtual const char *GetTaskName() const;
      38             :     virtual int GetTaskInstance() const;
      39             :     virtual void MembershipRequestCallbackComplete();
      40             : 
      41             :     virtual bool IsCloseGraceful() const;
      42             :     virtual bool IsCloseLongLivedGraceful() const;
      43             :     virtual void CloseComplete();
      44             :     virtual void GetGracefulRestartFamilies(Families *families) const;
      45             :     virtual void GetLongLivedGracefulRestartFamilies(Families *families) const;
      46             :     virtual PeerCloseManager *GetManager() const;
      47             :     virtual void UpdateRouteStats(Address::Family family,
      48             :         const BgpPath *old_path, uint32_t path_flags) const;
      49             : 
      50             :     void AddGRCapabilities(BgpProto::OpenMessage::OptParam *opt_param);
      51             :     void AddLLGRCapabilities(BgpProto::OpenMessage::OptParam *opt_param);
      52             :     bool SetGRCapabilities(BgpPeerInfoData *peer_info);
      53             :     void FillNeighborInfo(BgpNeighborResp *bnr) const;
      54             :     virtual void RestartStateMachine();
      55        2543 :     const BgpProto::OpenMessage::Capability::GR &gr_params() const {
      56        2543 :         return gr_params_;
      57             :     }
      58             : 
      59             : private:
      60             :     virtual bool IsGRReady() const;
      61             :     virtual bool IsGRHelperModeEnabled() const;
      62             :     virtual const std::vector<std::string> &negotiated_families() const;
      63             :     virtual const std::vector<std::string> &PeerNegotiatedFamilies() const;
      64             :     virtual bool IsPeerDeleted() const;
      65             :     virtual bool IsPeerAdminDown() const;
      66             :     virtual bool IsServerDeleted() const;
      67             :     virtual bool IsServerAdminDown() const;
      68             :     virtual bool IsInGRTimerWaitState() const;
      69             :     virtual bool IsInLlgrTimerWaitState() const;
      70             :     virtual const std::vector<BgpProto::OpenMessage::Capability *>
      71             :         &capabilities() const;
      72             :     bool IsLlgrSupportedForFamilies() const;
      73             :     bool IsCloseLongLivedGracefulInternal() const;
      74             : 
      75             :     BgpPeer *peer_;
      76             :     uint64_t flap_count_;
      77             :     std::vector<std::string> negotiated_families_;
      78             :     std::vector<std::string> gr_families_;
      79             :     std::vector<std::string> llgr_families_;
      80             :     BgpProto::OpenMessage::Capability::GR gr_params_;
      81             :     BgpProto::OpenMessage::Capability::LLGR llgr_params_;
      82             : 
      83             :     DISALLOW_COPY_AND_ASSIGN(BgpPeerClose);
      84             : };
      85             : 
      86             : #endif  // SRC_BGP_BGP_PEER_CLOSE_H__

Generated by: LCOV version 1.14