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

Generated by: LCOV version 1.14