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