LCOV - code coverage report
Current view: top level - vnsw/agent/oper - tsn_elector.h (source / functions) Hit Total Coverage
Test: OpenSDN C/C++ coverage (all TARGET_SET jobs) Lines: 0 2 0.0 %
Date: 2026-08-03 02:19:58 Functions: 0 1 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright (c) 2017 Juniper Networks, Inc. All rights reserved.
       3             :  */
       4             : 
       5             : #ifndef tsn_elector_agent_oper_hpp
       6             : #define tsn_elector_agent_oper_hpp
       7             : 
       8             : #include <cmn/agent_cmn.h>
       9             : #include <cmn/agent.h>
      10             : #include <oper/agent_route_walker.h>
      11             : 
      12             : struct TsnElectorState : public DBState {
      13             :     TsnElectorState(AgentRouteTable *table, TsnElector *elector);
      14             :     virtual ~TsnElectorState();
      15             : 
      16             :     DBTable::ListenerId inet4_id_;
      17             :     AgentRouteTable *inet4_table_;
      18             : };
      19             : 
      20             : class TsnElectorWalker : public AgentRouteWalker {
      21             : public:
      22             :     TsnElectorWalker(const std::string &name, Agent *agent);
      23             :     virtual ~TsnElectorWalker();
      24             : 
      25             :     void LeaveTsnMastership();
      26             :     void AcquireTsnMastership();
      27             :     virtual bool RouteWalkNotify(DBTablePartBase *partition, DBEntryBase *e);
      28             : 
      29             : private:
      30             :     bool master_;
      31             :     DISALLOW_COPY_AND_ASSIGN(TsnElectorWalker);
      32             : };
      33             : 
      34             : class TsnElector {
      35             : public:
      36             :     typedef std::vector<std::string> ManagedPhysicalDevicesList;
      37             :     TsnElector(Agent *agent);
      38             :     virtual ~TsnElector();
      39             : 
      40             :     void Register();
      41             :     void Shutdown();
      42             :     void Notify(DBTablePartBase *partition, DBEntryBase *e);
      43             :     void RouteNotify(DBTablePartBase *partition, DBEntryBase *e);
      44             :     bool IsMaster() const;
      45             :     const Agent *agent() const {return agent_;}
      46             :     const std::vector<string> &active_tsn_servers() const {
      47             :         return active_tsn_servers_;
      48             :     }
      49             :     const ManagedPhysicalDevicesList &ManagedPhysicalDevices() const;
      50             : 
      51             : private:
      52             :     bool IsTsnNoForwardingEnabled() const;
      53           0 :     TsnElectorWalker *walker() {
      54           0 :         return static_cast<TsnElectorWalker *>(walker_.get());
      55             :     }
      56             : 
      57             :     const Agent *agent_;
      58             :     DBTable::ListenerId vrf_listener_id_;
      59             :     std::vector<std::string> active_tsn_servers_;
      60             :     AgentRouteWalkerPtr walker_;
      61             :     DISALLOW_COPY_AND_ASSIGN(TsnElector);
      62             : };
      63             : 
      64             : #endif /* tsn_elector_agent_oper_hpp */

Generated by: LCOV version 1.14