OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
VnEntry Class Reference

#include <vn.h>

Inheritance diagram for VnEntry:
Collaboration diagram for VnEntry:

Public Member Functions

 VnEntry (Agent *agent, boost::uuids::uuid id)
 
virtual ~VnEntry ()
 
virtual bool IsLess (const DBEntry &rhs) const
 
virtual KeyPtr GetDBRequestKey () const
 
virtual void SetKey (const DBRequestKey *key)
 
virtual string ToString () const
 
const boost::uuids::uuidGetUuid () const
 
const string & GetName () const
 
bool IsAclSet () const
 
const AclDBEntryGetAcl () const
 
const AclDBEntryGetMirrorAcl () const
 
const AclDBEntryGetMirrorCfgAcl () const
 
VrfEntryGetVrf () const
 
const std::vector< VnIpam > & GetVnIpam () const
 
const VnIpamGetIpam (const IpAddress &ip) const
 
IpAddress GetGatewayFromIpam (const IpAddress &ip) const
 
IpAddress GetDnsFromIpam (const IpAddress &ip) const
 
uint32_t GetAllocUnitFromIpam (const IpAddress &ip) const
 
bool GetVnHostRoutes (const std::string &ipam, std::vector< OperDhcpOptions::HostRoute > *routes) const
 
bool GetIpamName (const IpAddress &vm_addr, std::string *ipam_name) const
 
bool GetIpamData (const IpAddress &vm_addr, std::string *ipam_name, autogen::IpamType *ipam_type) const
 
bool GetIpamVdnsData (const IpAddress &vm_addr, autogen::IpamType *ipam_type, autogen::VirtualDnsType *vdns_type) const
 
bool GetPrefix (const Ip6Address &ip, Ip6Address *prefix, uint8_t *plen) const
 
std::string GetProject () const
 
int GetVxLanId () const
 
const VxLanIdvxlan_id_ref () const
 
void set_bridging (bool bridging)
 
bool bridging () const
 
bool layer3_forwarding () const
 
void set_layer3_forwarding (bool layer3_forwarding)
 
Agent::ForwardingMode forwarding_mode () const
 
bool admin_state () const
 
bool enable_rpf () const
 
bool flood_unknown_unicast () const
 
const AgentQosConfigqos_config () const
 
const bool mirror_destination () const
 
int vnid () const
 
bool pbb_etree_enable () const
 
bool pbb_evpn_enable () const
 
bool layer2_control_word () const
 
const UuidListslo_list () const
 
bool underlay_forwarding () const
 
const UuidListmp_list () const
 
bool cfg_igmp_enable () const
 
bool mac_ip_learning_enable () const
 
const boost::uuids::uuidhealth_check_uuid () const
 
uint32_t GetRefCount () const
 
bool DBEntrySandesh (Sandesh *sresp, std::string &name) const
 
void SendObjectLog (AgentLogEvent::type event) const
 
bool IdentifyBgpRoutersServiceIp (const IpAddress &ip_address, bool *is_dns, bool *is_gateway) const
 
void AllocWalker ()
 
void ReleaseWalker ()
 
bool vxlan_routing_vn () const
 
const boost::uuids::uuidlogical_router_uuid () const
 
uint32_t vn_max_flows () const
 
const VrfEntrylr_vrf () const
 
void set_lr_vrf (const VrfEntry *vrf)
 
- Public Member Functions inherited from AgentOperDBEntry
 AgentOperDBEntry ()
 
virtual ~AgentOperDBEntry ()
 
IFMapNodeifmap_node () const
 
void SetIFMapNodeState (IFMapDependencyManager::IFMapNodePtr sref)
 
- Public Member Functions inherited from AgentDBEntry
 AgentDBEntry ()
 
virtual ~AgentDBEntry ()
 
void SetRefState () const
 
void ClearRefState () const
 
bool IsActive () const
 
DBStateGetAgentDBEntryState (int listener_id)
 
const DBStateGetAgentDBEntryState (int listener_id) const
 
virtual void AllocateResources (ResourceManager *resource_manager)
 
virtual void FreeResources (ResourceManager *resource_manager)
 
virtual void PostAdd ()
 
- Public Member Functions inherited from DBEntry
 DBEntry ()
 
virtual ~DBEntry ()
 
bool operator< (const DBEntry &rhs) const
 
- Public Member Functions inherited from DBEntryBase
 DBEntryBase ()
 
virtual ~DBEntryBase ()
 
virtual bool IsMoreSpecific (const std::string &match) const
 
virtual bool IsLessSpecific (const std::string &match) const
 
void SetState (DBTableBase *tbl_base, ListenerId listener, DBState *state)
 
void ClearState (DBTableBase *tbl_base, ListenerId listener)
 
DBStateGetState (DBTableBase *tbl_base, ListenerId listener) const
 
const DBStateGetState (const DBTableBase *tbl_base, ListenerId listener) const
 
bool is_state_empty (DBTablePartBase *tpart)
 
bool is_state_empty_unlocked (DBTablePartBase *tpart)
 
void Delete ()
 
void MarkDelete ()
 
void ClearDelete ()
 
bool IsDeleted () const
 
void set_onlist ()
 
void clear_onlist ()
 
bool is_onlist ()
 
void SetOnRemoveQ ()
 
bool IsOnRemoveQ ()
 
void ClearOnRemoveQ ()
 
void set_last_change_at (uint64_t time)
 
void set_last_change_at_to_now ()
 
const uint64_t last_change_at () const
 
const std::string last_change_at_str () const
 
void set_last_update_at (uint64_t time)
 
void set_last_update_at_to_now ()
 
const uint64_t last_update_at () const
 
DBTablePartBaseget_table_partition () const
 
void set_table_partition (DBTablePartBase *tpart)
 
DBTableBaseget_table () const
 
void Notify ()
 

Private Member Functions

bool Resync (Agent *agent)
 
bool ChangeHandler (Agent *agent, const DBRequest *req)
 
bool UpdateVxlan (Agent *agent, bool op_del)
 
void ResyncRoutes ()
 
bool UpdateForwardingMode (Agent *agent)
 
bool ApplyAllIpam (Agent *agent, VrfEntry *old_vrf, bool del)
 
bool ApplyIpam (Agent *agent, VnIpam *ipam, VrfEntry *old_vrf, bool del)
 
bool CanInstallIpam (const VnIpam *ipam)
 
bool UpdateIpam (Agent *agent, std::vector< VnIpam > &new_ipam)
 
bool HandleIpamChange (Agent *agent, VnIpam *old_ipam, VnIpam *new_ipam)
 
void UpdateHostRoute (Agent *agent, const IpAddress &old_address, const IpAddress &new_address, bool policy)
 
bool AddIpamRoutes (Agent *agent, VnIpam *ipam)
 
void DelIpamRoutes (Agent *agent, VnIpam *ipam, VrfEntry *vrf)
 
void AddHostRoute (const IpAddress &address, bool policy)
 
void DelHostRoute (const IpAddress &address)
 
void AddSubnetRoute (VnIpam *ipam)
 
void DelSubnetRoute (VnIpam *ipam)
 
 DISALLOW_COPY_AND_ASSIGN (VnEntry)
 
- Private Member Functions inherited from AgentRefCount< VnEntry >
uint32_t GetRefCount () const
 
 AgentRefCount ()
 
 AgentRefCount (const AgentRefCount &)
 
AgentRefCountoperator= (const AgentRefCount &)
 
virtual ~AgentRefCount ()
 
void swap (AgentRefCount &)
 

Private Attributes

Agentagent_
 
boost::uuids::uuid uuid_
 
string name_
 
AclDBEntryRef acl_
 
AclDBEntryRef mirror_acl_
 
AclDBEntryRef mirror_cfg_acl_
 
VrfEntryRef vrf_
 
std::vector< VnIpamipam_
 
VnData::VnIpamDataMap vn_ipam_data_
 
int vxlan_id_
 
int vnid_
 
int active_vxlan_id_
 
bool bridging_
 
bool layer3_forwarding_
 
bool admin_state_
 
VxLanIdRef vxlan_id_ref_
 
uint32_t table_label_
 
bool enable_rpf_
 
bool flood_unknown_unicast_
 
Agent::ForwardingMode forwarding_mode_
 
AgentRouteWalkerPtr route_resync_walker_
 
AgentQosConfigConstRef qos_config_
 
bool mirror_destination_
 
bool pbb_etree_enable_
 
bool pbb_evpn_enable_
 
bool layer2_control_word_
 
UuidList slo_list_
 
bool underlay_forwarding_
 
bool vxlan_routing_vn_
 
boost::uuids::uuid logical_router_uuid_
 
UuidList mp_list_
 
bool cfg_igmp_enable_
 
uint32_t vn_max_flows_
 
bool mac_ip_learning_enable_
 
boost::uuids::uuid health_check_uuid_
 
VrfEntryConstRef lr_vrf_
 
- Private Attributes inherited from AgentRefCount< VnEntry >
tbb::mutex back_ref_mutex_
 
std::set< IntrusiveReferrerback_ref_set_
 

Friends

class VnTable
 

Additional Inherited Members

- Public Types inherited from AgentDBEntry
typedef boost::intrusive_ptr
< AgentDBEntry
AgentDBEntyRef
 
- Public Types inherited from DBEntryBase
typedef DBTableBase::ListenerId ListenerId
 
typedef std::unique_ptr
< DBRequestKey
KeyPtr
 
- Public Attributes inherited from DBEntryBase
boost::intrusive::list_member_hook chg_list_
 

Detailed Description

Definition at line 151 of file vn.h.

Constructor & Destructor Documentation

VnEntry::VnEntry ( Agent agent,
boost::uuids::uuid  id 
)

Definition at line 87 of file vn.cc.

VnEntry::~VnEntry ( )
virtual

Definition at line 98 of file vn.cc.

Member Function Documentation

void VnEntry::AddHostRoute ( const IpAddress address,
bool  policy 
)
private

Definition at line 559 of file vn.cc.

Here is the call graph for this function:

bool VnEntry::AddIpamRoutes ( Agent agent,
VnIpam ipam 
)
private

Definition at line 526 of file vn.cc.

Here is the call graph for this function:

void VnEntry::AddSubnetRoute ( VnIpam ipam)
private

Definition at line 587 of file vn.cc.

Here is the call graph for this function:

bool VnEntry::admin_state ( ) const
inline

Definition at line 197 of file vn.h.

void VnEntry::AllocWalker ( )

Definition at line 603 of file vn.cc.

Here is the call graph for this function:

bool VnEntry::ApplyAllIpam ( Agent agent,
VrfEntry old_vrf,
bool  del 
)
private

Definition at line 370 of file vn.cc.

Here is the call graph for this function:

bool VnEntry::ApplyIpam ( Agent agent,
VnIpam ipam,
VrfEntry old_vrf,
bool  del 
)
private

Definition at line 380 of file vn.cc.

Here is the call graph for this function:

bool VnEntry::bridging ( ) const
inline

Definition at line 191 of file vn.h.

bool VnEntry::CanInstallIpam ( const VnIpam ipam)
private

Definition at line 396 of file vn.cc.

bool VnEntry::cfg_igmp_enable ( ) const
inline

Definition at line 234 of file vn.h.

bool VnEntry::ChangeHandler ( Agent agent,
const DBRequest req 
)
private

Definition at line 133 of file vn.cc.

Here is the call graph for this function:

bool VnEntry::DBEntrySandesh ( Sandesh sresp,
std::string &  name 
) const
virtual

Implements AgentDBEntry.

Definition at line 1223 of file vn.cc.

Here is the call graph for this function:

void VnEntry::DelHostRoute ( const IpAddress address)
private

Definition at line 572 of file vn.cc.

Here is the call graph for this function:

void VnEntry::DelIpamRoutes ( Agent agent,
VnIpam ipam,
VrfEntry vrf 
)
private

Definition at line 547 of file vn.cc.

Here is the call graph for this function:

void VnEntry::DelSubnetRoute ( VnIpam ipam)
private

Definition at line 595 of file vn.cc.

Here is the call graph for this function:

VnEntry::DISALLOW_COPY_AND_ASSIGN ( VnEntry  )
private
bool VnEntry::enable_rpf ( ) const
inline

Definition at line 198 of file vn.h.

bool VnEntry::flood_unknown_unicast ( ) const
inline

Definition at line 199 of file vn.h.

Agent::ForwardingMode VnEntry::forwarding_mode ( ) const
inline

Definition at line 195 of file vn.h.

const AclDBEntry* VnEntry::GetAcl ( ) const
inline

Definition at line 167 of file vn.h.

uint32_t VnEntry::GetAllocUnitFromIpam ( const IpAddress ip) const

Definition at line 676 of file vn.cc.

Here is the call graph for this function:

DBEntryBase::KeyPtr VnEntry::GetDBRequestKey ( ) const
virtual

Implements DBEntryBase.

Definition at line 112 of file vn.cc.

IpAddress VnEntry::GetDnsFromIpam ( const IpAddress ip) const

Definition at line 668 of file vn.cc.

Here is the call graph for this function:

IpAddress VnEntry::GetGatewayFromIpam ( const IpAddress ip) const

Definition at line 660 of file vn.cc.

Here is the call graph for this function:

const VnIpam * VnEntry::GetIpam ( const IpAddress ip) const

Definition at line 651 of file vn.cc.

bool VnEntry::GetIpamData ( const IpAddress vm_addr,
std::string *  ipam_name,
autogen::IpamType *  ipam_type 
) const

Definition at line 641 of file vn.cc.

Here is the call graph for this function:

bool VnEntry::GetIpamName ( const IpAddress vm_addr,
std::string *  ipam_name 
) const

Definition at line 630 of file vn.cc.

bool VnEntry::GetIpamVdnsData ( const IpAddress vm_addr,
autogen::IpamType *  ipam_type,
autogen::VirtualDnsType *  vdns_type 
) const

Definition at line 684 of file vn.cc.

Here is the call graph for this function:

const AclDBEntry* VnEntry::GetMirrorAcl ( ) const
inline

Definition at line 168 of file vn.h.

const AclDBEntry* VnEntry::GetMirrorCfgAcl ( ) const
inline

Definition at line 169 of file vn.h.

const string& VnEntry::GetName ( ) const
inline

Definition at line 162 of file vn.h.

bool VnEntry::GetPrefix ( const Ip6Address ip,
Ip6Address prefix,
uint8_t *  plen 
) const

Definition at line 700 of file vn.cc.

Here is the call graph for this function:

std::string VnEntry::GetProject ( ) const

Definition at line 716 of file vn.cc.

uint32_t VnEntry::GetRefCount ( ) const
inlinevirtual

Implements AgentDBEntry.

Definition at line 246 of file vn.h.

Here is the call graph for this function:

const boost::uuids::uuid& VnEntry::GetUuid ( ) const
inline

Definition at line 161 of file vn.h.

bool VnEntry::GetVnHostRoutes ( const std::string &  ipam,
std::vector< OperDhcpOptions::HostRoute > *  routes 
) const

Definition at line 620 of file vn.cc.

const std::vector<VnIpam>& VnEntry::GetVnIpam ( ) const
inline

Definition at line 171 of file vn.h.

VrfEntry* VnEntry::GetVrf ( ) const
inline

Definition at line 170 of file vn.h.

int VnEntry::GetVxLanId ( ) const

Definition at line 727 of file vn.cc.

Here is the call graph for this function:

bool VnEntry::HandleIpamChange ( Agent agent,
VnIpam old_ipam,
VnIpam new_ipam 
)
private

Definition at line 449 of file vn.cc.

Here is the call graph for this function:

const boost::uuids::uuid& VnEntry::health_check_uuid ( ) const
inline

Definition at line 242 of file vn.h.

bool VnEntry::IdentifyBgpRoutersServiceIp ( const IpAddress ip_address,
bool *  is_dns,
bool *  is_gateway 
) const
bool VnEntry::IsAclSet ( ) const
inline

Definition at line 163 of file vn.h.

bool VnEntry::IsLess ( const DBEntry rhs) const
virtual

Implements DBEntry.

Definition at line 101 of file vn.cc.

bool VnEntry::layer2_control_word ( ) const
inline

Definition at line 218 of file vn.h.

bool VnEntry::layer3_forwarding ( ) const
inline

Definition at line 192 of file vn.h.

const boost::uuids::uuid& VnEntry::logical_router_uuid ( ) const
inline

Definition at line 256 of file vn.h.

const VrfEntry* VnEntry::lr_vrf ( ) const
inline

Definition at line 261 of file vn.h.

bool VnEntry::mac_ip_learning_enable ( ) const
inline

Definition at line 238 of file vn.h.

const bool VnEntry::mirror_destination ( ) const
inline

Definition at line 205 of file vn.h.

const UuidList& VnEntry::mp_list ( ) const
inline

Definition at line 230 of file vn.h.

bool VnEntry::pbb_etree_enable ( ) const
inline

Definition at line 210 of file vn.h.

bool VnEntry::pbb_evpn_enable ( ) const
inline

Definition at line 214 of file vn.h.

const AgentQosConfig* VnEntry::qos_config ( ) const
inline

Definition at line 201 of file vn.h.

void VnEntry::ReleaseWalker ( )

Definition at line 612 of file vn.cc.

Here is the call graph for this function:

bool VnEntry::Resync ( Agent agent)
private

Definition at line 123 of file vn.cc.

Here is the call graph for this function:

void VnEntry::ResyncRoutes ( )
private
void VnEntry::SendObjectLog ( AgentLogEvent::type  event) const

Definition at line 1322 of file vn.cc.

Here is the call graph for this function:

void VnEntry::set_bridging ( bool  bridging)
inline

Definition at line 190 of file vn.h.

Here is the call graph for this function:

void VnEntry::set_layer3_forwarding ( bool  layer3_forwarding)
inline

Definition at line 193 of file vn.h.

Here is the call graph for this function:

void VnEntry::set_lr_vrf ( const VrfEntry vrf)
inline

Definition at line 265 of file vn.h.

Here is the call graph for this function:

void VnEntry::SetKey ( const DBRequestKey key)
virtual

Implements DBEntry.

Definition at line 116 of file vn.cc.

const UuidList& VnEntry::slo_list ( ) const
inline

Definition at line 222 of file vn.h.

string VnEntry::ToString ( ) const
virtual

Implements DBEntryBase.

Definition at line 106 of file vn.cc.

bool VnEntry::underlay_forwarding ( ) const
inline

Definition at line 226 of file vn.h.

bool VnEntry::UpdateForwardingMode ( Agent agent)
private

Definition at line 345 of file vn.cc.

Here is the call graph for this function:

void VnEntry::UpdateHostRoute ( Agent agent,
const IpAddress old_address,
const IpAddress new_address,
bool  policy 
)
private

Definition at line 515 of file vn.cc.

Here is the call graph for this function:

bool VnEntry::UpdateIpam ( Agent agent,
std::vector< VnIpam > &  new_ipam 
)
private

Definition at line 403 of file vn.cc.

Here is the call graph for this function:

bool VnEntry::UpdateVxlan ( Agent agent,
bool  op_del 
)
private

Definition at line 320 of file vn.cc.

Here is the call graph for this function:

uint32_t VnEntry::vn_max_flows ( ) const
inline

Definition at line 259 of file vn.h.

int VnEntry::vnid ( ) const
inline

Definition at line 208 of file vn.h.

const VxLanId* VnEntry::vxlan_id_ref ( ) const
inline

Definition at line 189 of file vn.h.

bool VnEntry::vxlan_routing_vn ( ) const
inline

Definition at line 255 of file vn.h.

Friends And Related Function Documentation

friend class VnTable
friend

Definition at line 270 of file vn.h.

Member Data Documentation

AclDBEntryRef VnEntry::acl_
private

Definition at line 293 of file vn.h.

int VnEntry::active_vxlan_id_
private

Definition at line 303 of file vn.h.

bool VnEntry::admin_state_
private

Definition at line 306 of file vn.h.

Agent* VnEntry::agent_
private

Definition at line 290 of file vn.h.

bool VnEntry::bridging_
private

Definition at line 304 of file vn.h.

bool VnEntry::cfg_igmp_enable_
private

Definition at line 323 of file vn.h.

bool VnEntry::enable_rpf_
private

Definition at line 309 of file vn.h.

bool VnEntry::flood_unknown_unicast_
private

Definition at line 310 of file vn.h.

Agent::ForwardingMode VnEntry::forwarding_mode_
private

Definition at line 311 of file vn.h.

boost::uuids::uuid VnEntry::health_check_uuid_
private

Definition at line 326 of file vn.h.

std::vector<VnIpam> VnEntry::ipam_
private

Definition at line 297 of file vn.h.

bool VnEntry::layer2_control_word_
private

Definition at line 317 of file vn.h.

bool VnEntry::layer3_forwarding_
private

Definition at line 305 of file vn.h.

boost::uuids::uuid VnEntry::logical_router_uuid_
private

Definition at line 321 of file vn.h.

VrfEntryConstRef VnEntry::lr_vrf_
private

Definition at line 327 of file vn.h.

bool VnEntry::mac_ip_learning_enable_
private

Definition at line 325 of file vn.h.

AclDBEntryRef VnEntry::mirror_acl_
private

Definition at line 294 of file vn.h.

AclDBEntryRef VnEntry::mirror_cfg_acl_
private

Definition at line 295 of file vn.h.

bool VnEntry::mirror_destination_
private

Definition at line 314 of file vn.h.

UuidList VnEntry::mp_list_
private

Definition at line 322 of file vn.h.

string VnEntry::name_
private

Definition at line 292 of file vn.h.

bool VnEntry::pbb_etree_enable_
private

Definition at line 315 of file vn.h.

bool VnEntry::pbb_evpn_enable_
private

Definition at line 316 of file vn.h.

AgentQosConfigConstRef VnEntry::qos_config_
private

Definition at line 313 of file vn.h.

AgentRouteWalkerPtr VnEntry::route_resync_walker_
private

Definition at line 312 of file vn.h.

UuidList VnEntry::slo_list_
private

Definition at line 318 of file vn.h.

uint32_t VnEntry::table_label_
private

Definition at line 308 of file vn.h.

bool VnEntry::underlay_forwarding_
private

Definition at line 319 of file vn.h.

boost::uuids::uuid VnEntry::uuid_
private

Definition at line 291 of file vn.h.

VnData::VnIpamDataMap VnEntry::vn_ipam_data_
private

Definition at line 298 of file vn.h.

uint32_t VnEntry::vn_max_flows_
private

Definition at line 324 of file vn.h.

int VnEntry::vnid_
private

Definition at line 300 of file vn.h.

VrfEntryRef VnEntry::vrf_
private

Definition at line 296 of file vn.h.

int VnEntry::vxlan_id_
private

Definition at line 299 of file vn.h.

VxLanIdRef VnEntry::vxlan_id_ref_
private

Definition at line 307 of file vn.h.

bool VnEntry::vxlan_routing_vn_
private

Definition at line 320 of file vn.h.


The documentation for this class was generated from the following files: