6 #include <vnc_cfg_types.h>
7 #include <agent_types.h>
13 #include <bgp_schema_types.h>
23 learning_enabled_(false), pbb_etree_enabled_(false), layer2_control_word_(false) {
48 std::string &name)
const {
49 BridgeDomainSandeshResp *resp =
50 static_cast<BridgeDomainSandeshResp *
>(sresp);
52 BridgeDomainSandeshData data;
61 data.set_vrf(
vrf_->GetName());
65 data.set_learning_enabled(
"True");
67 data.set_learning_enabled(
"False");
71 data.set_pbb_etree_enabled(
"True");
73 data.set_pbb_etree_enabled(
"False");
76 std::vector<BridgeDomainSandeshData> &list =
77 const_cast<std::vector<BridgeDomainSandeshData>&
>(resp->get_bd_list());
83 std::ostringstream str;
90 vrf_table()->Find(&key,
true));
91 if (vrf_ && vrf_->IsDeleted()) {
103 FindActiveEntry(&key));
107 vn_->flood_unknown_unicast(),
108 vn_->layer2_control_word());
116 bool update_vrf =
false;
134 "Ignoring bridge-domain update with ISID 0",
193 const std::string &name) :
202 const std::string &name) {
208 std::unique_ptr<DBEntry>
212 return std::unique_ptr<DBEntry>(
static_cast<DBEntry *
>(bd));
226 bool ret = bd->
Change(
this, data);
258 autogen::RoutingInstance *vrf =
259 static_cast<autogen::RoutingInstance *
>(adj_node->
GetObject());
260 if(vrf->is_default()) {
268 const autogen::BridgeDomain *bd) {
283 autogen::VirtualNetwork *vn =
284 static_cast<autogen::VirtualNetwork *
>(adj_node->
GetObject());
285 autogen::IdPermsType id_perms = vn->id_perms();
286 CfgUuidSet(id_perms.uuid.uuid_mslong, id_perms.uuid.uuid_lslong,
294 bdd->
isid_ = bd->isid();
303 autogen::BridgeDomain *bd =
304 static_cast<autogen::BridgeDomain *
>(node->
GetObject());
321 autogen::BridgeDomain *bd =
322 static_cast <autogen::BridgeDomain *>(node->
GetObject());
336 autogen::BridgeDomain *bd =
337 static_cast<autogen::BridgeDomain *
>(node->
GetObject());
338 autogen::IdPermsType id_perms = bd->id_perms();
339 CfgUuidSet(id_perms.uuid.uuid_mslong, id_perms.uuid.uuid_lslong, u);
350 const std::string &context) {
356 void BridgeDomainSandeshReq::HandleRequest()
const {
359 sand->DoSandesh(sand);
std::string bmac_vrf_name_
const VnEntry * vn() const
static void CfgUuidSet(uint64_t ms_long, uint64_t ls_long, boost::uuids::uuid &u)
virtual std::unique_ptr< DBEntry > AllocEntry(const DBRequestKey *k) const
void CreateVrf(const string &name, const boost::uuids::uuid &vn_uuid, uint32_t flags)
std::string GetString(const std::string &key) const
bool DBEntrySandesh(Sandesh *resp, std::string &name) const
DBTableBase * get_table() const
void DeleteVrf(const string &name, uint32_t flags=VrfData::ConfigVrf)
virtual bool IFNodeToReq(IFMapNode *node, DBRequest &req, const boost::uuids::uuid &u)
ConfigManager * config_manager() const
std::unique_ptr< DBRequestData > data
std::string bmac_vrf_name_
AgentDBEntry * FindActiveEntry(const DBEntry *key)
void AddBridgeDomainNode(IFMapNode *node)
VnTable * vn_table() const
BridgeDomainEntry * Find(const boost::uuids::uuid &u)
virtual bool OperDBResync(DBEntry *entry, const DBRequest *req)
adjacency_iterator end(DBGraph *graph)
static std::string UuidToString(const boost::uuids::uuid &id)
virtual KeyPtr GetDBRequestKey() const
virtual bool IFNodeToUuid(IFMapNode *node, boost::uuids::uuid &u)
std::unique_ptr< DBRequestKey > KeyPtr
virtual void SetKey(const DBRequestKey *key)
virtual AgentSandeshPtr GetAgentSandesh(const AgentSandeshArguments *args, const std::string &context)
BridgeDomainEntry(const BridgeDomainTable *table, const boost::uuids::uuid &id)
const DBGraph * GetGraph() const
virtual std::string ToString() const
virtual DBEntry * OperDBAdd(const DBRequest *req)
std::unique_ptr< DBRequestKey > key
static BridgeDomainData * BuildData(Agent *agent, IFMapNode *node, const autogen::BridgeDomain *bd)
static const std::string & NullString()
#define OPER_TRACE_ENTRY(obj, table,...)
static BridgeDomainKey * BuildKey(const boost::uuids::uuid &u)
class boost::shared_ptr< AgentSandesh > AgentSandeshPtr
VnEntry * Find(const boost::uuids::uuid &vn_uuid)
const std::string & name() const
const BridgeDomainTable * table_
static DBTableBase * CreateTable(Agent *agent, DB *db, const std::string &name)
VrfTable * vrf_table() const
IFMapObject * GetObject()
boost::uuids::uuid vn_uuid_
virtual bool OperDBOnChange(DBEntry *entry, const DBRequest *req)
static void BuildVrfData(Agent *agent, IFMapNode *vn_node, BridgeDomainData *data)
IFMapAgentTable * cfg_vrf_table() const
bool layer2_control_word_
bool layer2_control_word() const
IFMapAgentTable * cfg_vn_table() const
void UpdateVrf(const BridgeDomainData *data)
virtual bool IsLess(const DBEntry &rhs) const
BridgeDomainTable(Agent *agent, DB *db, const std::string &name)
AgentConfig * cfg() const
virtual bool OperDBDelete(DBEntry *entry, const DBRequest *req)
bool SkipNode(IFMapNode *node)
bool Change(const BridgeDomainTable *table, const BridgeDomainData *data)
adjacency_iterator begin(DBGraph *graph)
virtual ~BridgeDomainTable()
void set_agent(Agent *agent)
bool ProcessConfig(IFMapNode *node, DBRequest &req, const boost::uuids::uuid &u)