5 #ifndef vnsw_agent_mpls_hpp
6 #define vnsw_agent_mpls_hpp
15 #define MPLS_TRACE(obj, ...) \
17 obj::TraceMsg(MplsTraceBuf, __FILE__, __LINE__, ##__VA_ARGS__); \
45 std::unique_ptr<const NextHopKey>
nh_key_;
60 virtual std::string
ToString()
const;
120 const std::string &context);
122 const std::string &vrf_name,
123 const std::string &route);
129 void FreeLabel(uint32_t label,
const std::string &vrf_name);
147 #endif // vnsw_agent_mpls_hpp
virtual bool DBEntrySandesh(Sandesh *sresp, std::string &name) const
MplsLabel(Agent *agent, uint32_t label)
MplsTable(DB *db, const std::string &name)
std::string vrf_name() const
bool IsFabricMulticastLabel(uint32_t label) const
virtual size_t Hash(const DBRequestKey *key) const
virtual void SetKey(const DBRequestKey *key)
virtual bool OnChange(DBEntry *entry, const DBRequest *req)
bool ChangeNH(NextHop *nh)
bool ChangeInternal(const DBRequest *req)
SandeshTraceBufferPtr MplsTraceBuf
void Add(const DBRequest *req)
const NextHop * nexthop() const
static const uint32_t kInvalidExportLabel
boost::shared_ptr< ResourceKey > KeyPtr
MplsLabelKey(uint32_t label)
void ReserveLabel(uint32_t start, uint32_t end)
DISALLOW_COPY_AND_ASSIGN(MplsTable)
void FreeReserveLabel(uint32_t start, uint32_t end)
boost::shared_ptr< TraceBuffer< SandeshTrace > > SandeshTraceBufferPtr
std::unique_ptr< DBRequestKey > KeyPtr
Base class for all Route entries in agent.
static const uint32_t kStartLabel
static const uint32_t kDpdkShiftBits
IndexVector< MplsLabel * > label_table_
static DBTableBase * CreateTable(DB *db, const std::string &name)
void Remove(size_t index)
void FreeMplsLabelIndex(size_t label)
void ReserveMulticastLabel(uint32_t start, uint32_t end, uint8_t idx)
virtual bool IsLess(const DBEntry &rhs) const
bool ChangeHandler(MplsLabel *mpls, const DBRequest *req)
MplsLabel * AllocLabel(const NextHopKey *nh_key)
std::map< std::string, NextHopRef > FmgVrfNhMap
uint32_t multicast_label_end_[MAX_XMPP_SERVERS]
virtual AgentSandeshPtr GetAgentSandesh(const AgentSandeshArguments *args, const std::string &context)
virtual KeyPtr GetDBRequestKey() const
virtual DBEntry * Add(const DBRequest *req)
virtual void Process(DBRequest &req)
DISALLOW_COPY_AND_ASSIGN(MplsLabel)
class boost::shared_ptr< AgentSandesh > AgentSandeshPtr
const std::string & name() const
void SendObjectLog(const AgentDBTable *table, AgentLogEvent::type event) const
virtual uint32_t GetRefCount() const
FmgVrfNhMap & fmg_nh_list()
virtual size_t Hash(const DBEntry *entry) const
static const uint32_t kInvalidLabel
static const uint32_t kImplicitNullLabel
uint32_t CreateRouteLabel(uint32_t label, const NextHopKey *nh_key, const std::string &vrf_name, const std::string &route)
virtual std::unique_ptr< DBEntry > AllocEntry(const DBRequestKey *k) const
uint32_t multicast_label_start_[MAX_XMPP_SERVERS]
bool Change(const DBRequest *req)
bool IsFabricMulticastReservedLabel() const
std::unique_ptr< const NextHopKey > nh_key_
MplsLabel * FindMplsLabel(uint32_t label)
void set_vrf_name(const std::string &vrf_name)
MplsLabelData(const NextHopKey *nh_key)
virtual bool Delete(DBEntry *entry, const DBRequest *req)
uint32_t LabelIndexCount()
DEPENDENCY_LIST(AgentRoute, MplsLabel, mpls_label_)
virtual void OnZeroRefcount(AgentDBEntry *e)
virtual std::string ToString() const
DependencyList< AgentRoute, MplsLabel > DependentPathList
void FreeLabel(uint32_t label)
const NextHopKey * nh_key() const