LCOV - code coverage report
Current view: top level - vnsw/agent/mac_learning - mac_learning_base.h (source / functions) Hit Total Coverage
Test: OpenSDN C/C++ coverage (all TARGET_SET jobs) Lines: 0 19 0.0 %
Date: 2026-11-09 02:10:49 Functions: 0 10 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 SRC_VNSW_AGENT_MAC_LEARNING_MAC_LEARNING_BASE_H_
       7             : #define SRC_VNSW_AGENT_MAC_LEARNING_MAC_LEARNING_BASE_H_
       8             : 
       9             : #include "cmn/agent.h"
      10             : #include "mac_learning_key.h"
      11             : #include "pkt/flow_token.h"
      12             : 
      13             : class MacAgingTable;
      14             : class MacAgingPartition;
      15             : class MacLearningEntryRequest;
      16             : 
      17             : class MacLearningEntry;
      18             : typedef boost::shared_ptr<MacLearningEntry> MacLearningEntryPtr;
      19             : typedef boost::shared_ptr<MacLearningEntryRequest> MacLearningEntryRequestPtr;
      20             : class MacLearningEntry {
      21             : public:
      22           0 :     MacLearningEntry(uint32_t vrf_id):
      23           0 :          deleted_(false) {
      24             :         vrf_ = Agent::GetInstance()->vrf_table()->
      25           0 :                   FindVrfFromIdIncludingDeletedVrf(vrf_id);
      26           0 : }
      27             : 
      28           0 :     virtual ~MacLearningEntry() {}
      29             :     virtual bool Add() = 0;
      30             :     virtual void Delete() = 0;
      31             :     virtual void Resync() = 0;
      32             : 
      33             : 
      34           0 :     VrfEntry* vrf() const {
      35           0 :         return vrf_.get();
      36             :     }
      37             : 
      38             :     virtual uint32_t vrf_id() = 0;
      39             : 
      40           0 :     virtual void AddWithToken() {
      41           0 :     }
      42             : 
      43           0 :     virtual void AddToken(TokenPtr ptr) {
      44           0 :     }
      45             : 
      46           0 :     virtual void ReleaseToken() {
      47           0 :     }
      48             : 
      49           0 :     virtual void CopyToken(MacLearningEntry *entry) {
      50           0 :     }
      51             : 
      52           0 :     virtual bool HasTokens() {
      53           0 :         return false;
      54             :     }
      55             : 
      56           0 :     bool deleted() const {
      57           0 :         return deleted_;
      58             :     }
      59             :     virtual void EnqueueToTable(MacLearningEntryRequestPtr req)= 0;
      60             : 
      61             : protected:
      62             :     VrfEntryRef vrf_;
      63             :     bool deleted_;
      64             : private:
      65             :     DISALLOW_COPY_AND_ASSIGN(MacLearningEntry);
      66             : };
      67             : #endif

Generated by: LCOV version 1.14