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

#include <nexthop.h>

Inheritance diagram for InterfaceNH:
Collaboration diagram for InterfaceNH:

Public Member Functions

 InterfaceNH (Interface *intf, bool policy, uint8_t flags, const MacAddress &mac)
 
 InterfaceNH (Interface *intf, bool policy, const MacAddress &mac)
 
virtual ~InterfaceNH ()
 
virtual std::string ToString () const
 
virtual bool NextHopIsLess (const DBEntry &rhs) const
 
virtual void SetKey (const DBRequestKey *key)
 
virtual bool ChangeEntry (const DBRequest *req)
 
virtual void Delete (const DBRequest *req)
 
virtual KeyPtr GetDBRequestKey () const
 
virtual bool CanAdd () const
 
virtual bool NeedMplsLabel ()
 
virtual void SendObjectLog (const NextHopTable *table, AgentLogEvent::type event) const
 
const InterfaceGetInterface () const
 
const MacAddressGetDMac () const
 
bool IsVxlanRouting () const
 
bool is_multicastNH () const
 
bool IsBridge () const
 
uint8_t GetFlags () const
 
const boost::uuids::uuidGetIfUuid () const
 
const VrfEntryGetVrf () const
 
virtual bool DeleteOnZeroRefCount () const
 
void set_delete_on_zero_refcount (bool val)
 
virtual bool MatchEgressData (const NextHop *nh) const
 
bool layer2_control_word () const
 
- Public Member Functions inherited from NextHop
 NextHop (Type type, bool policy)
 
 NextHop (Type type, bool valid, bool policy)
 
virtual ~NextHop ()
 
virtual void Add (Agent *agent, const DBRequest *req)
 
virtual void Change (const DBRequest *req)
 
virtual bool IsLess (const DBEntry &rhs) const
 
virtual void OnZeroRefCount ()
 
uint32_t GetRefCount () const
 
void ResetMplsRef ()
 
Type GetType () const
 
bool IsValid () const
 
bool PolicyEnabled () const
 
uint32_t id () const
 
void set_id (uint32_t index)
 
void set_etree_leaf (bool val)
 
bool etree_leaf () const
 
void set_learning_flag (bool val)
 
bool learning_enabled () const
 
bool DBEntrySandesh (Sandesh *sresp, std::string &name) const
 
void SetNHSandeshData (NhSandeshData &data) const
 
bool NexthopToInterfacePolicy () const
 
const MplsLabelmpls_label () const
 
MplsLabelAllocateLabel (Agent *agent, const NextHopKey *key)
 
void PostAdd ()
 
void EnqueueResync () const
 
- 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)
 
- 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 ()
 

Static Public Member Functions

static void CreateMulticastVmInterfaceNH (const boost::uuids::uuid &intf_uuid, const MacAddress &dmac, const string &vrf_name, const string &intf_name)
 
static void DeleteMulticastVmInterfaceNH (const boost::uuids::uuid &intf_uuid, const MacAddress &dmac, const std::string &intf_name)
 
static void CreateL2VmInterfaceNH (const boost::uuids::uuid &intf_uuid, const MacAddress &dmac, const string &vrf_name, bool learning_enabled, bool etree_leaf, bool layer2_control_word, const std::string &intf_name)
 
static void DeleteL2InterfaceNH (const boost::uuids::uuid &intf_uuid, const MacAddress &mac, const std::string &intf_name)
 
static void CreateL3VmInterfaceNH (const boost::uuids::uuid &intf_uuid, const MacAddress &dmac, const string &vrf_name, bool learning_enabled, const std::string &intf_name)
 
static void DeleteL3InterfaceNH (const boost::uuids::uuid &intf_uuid, const MacAddress &mac, const std::string &intf_name)
 
static void DeleteNH (const boost::uuids::uuid &intf_uuid, bool policy, uint8_t flags, const MacAddress &mac, const std::string &intf_name)
 
static void CreatePacketInterfaceNh (Agent *agent, const string &ifname)
 
static void CreateInetInterfaceNextHop (const string &ifname, const string &vrf_name, const MacAddress &mac)
 
static void DeleteInetInterfaceNextHop (const string &ifname, const MacAddress &mac)
 
static void CreatePhysicalInterfaceNh (const string &ifname, const MacAddress &mac)
 
static void DeletePhysicalInterfaceNh (const string &ifname, const MacAddress &mac)
 
- Static Public Member Functions inherited from NextHop
static void FillObjectLogIntf (const Interface *intf, NextHopObjectLogInfo &info)
 
static void FillObjectLogMac (const unsigned char *m, NextHopObjectLogInfo &info)
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (InterfaceNH)
 

Private Attributes

InterfaceRef interface_
 
uint8_t flags_
 
MacAddress dmac_
 
VrfEntryRef vrf_
 
bool delete_on_zero_refcount_
 
bool layer2_control_word_
 

Additional Inherited Members

- Public Types inherited from NextHop
enum  Type {
  INVALID, DISCARD, L2_RECEIVE, RECEIVE,
  RESOLVE, ARP, VRF, INTERFACE,
  TUNNEL, MIRROR, COMPOSITE, VLAN,
  PBB, NDP
}
 
- 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_
 
- Static Public Attributes inherited from NextHop
static const uint32_t kInvalidIndex = 0xFFFFFFFF
 
- Protected Member Functions inherited from NextHop
void FillObjectLog (AgentLogEvent::type event, NextHopObjectLogInfo &info) const
 
- Protected Attributes inherited from NextHop
Type type_
 
bool valid_
 
bool policy_
 
uint32_t id_
 
MplsLabelRef mpls_label_
 
bool learning_enabled_
 
bool etree_leaf_
 

Detailed Description

Definition at line 1267 of file nexthop.h.

Constructor & Destructor Documentation

InterfaceNH::InterfaceNH ( Interface intf,
bool  policy,
uint8_t  flags,
const MacAddress mac 
)
inline

Definition at line 1269 of file nexthop.h.

InterfaceNH::InterfaceNH ( Interface intf,
bool  policy,
const MacAddress mac 
)
inline

Definition at line 1274 of file nexthop.h.

virtual InterfaceNH::~InterfaceNH ( )
inlinevirtual

Definition at line 1278 of file nexthop.h.

Member Function Documentation

bool InterfaceNH::CanAdd ( ) const
virtual

Implements NextHop.

Definition at line 660 of file nexthop.cc.

bool InterfaceNH::ChangeEntry ( const DBRequest req)
virtual

Implements NextHop.

Definition at line 700 of file nexthop.cc.

Here is the call graph for this function:

void InterfaceNH::CreateInetInterfaceNextHop ( const string &  ifname,
const string &  vrf_name,
const MacAddress mac 
)
static

Definition at line 817 of file nexthop.cc.

Here is the call graph for this function:

void InterfaceNH::CreateL2VmInterfaceNH ( const boost::uuids::uuid intf_uuid,
const MacAddress dmac,
const string &  vrf_name,
bool  learning_enabled,
bool  etree_leaf,
bool  layer2_control_word,
const std::string &  intf_name 
)
static

Definition at line 768 of file nexthop.cc.

Here is the call graph for this function:

void InterfaceNH::CreateL3VmInterfaceNH ( const boost::uuids::uuid intf_uuid,
const MacAddress dmac,
const string &  vrf_name,
bool  learning_enabled,
const std::string &  intf_name 
)
static

Definition at line 750 of file nexthop.cc.

Here is the call graph for this function:

void InterfaceNH::CreateMulticastVmInterfaceNH ( const boost::uuids::uuid intf_uuid,
const MacAddress dmac,
const string &  vrf_name,
const string &  intf_name 
)
static

Definition at line 788 of file nexthop.cc.

Here is the call graph for this function:

void InterfaceNH::CreatePacketInterfaceNh ( Agent agent,
const string &  ifname 
)
static

Definition at line 847 of file nexthop.cc.

Here is the call graph for this function:

void InterfaceNH::CreatePhysicalInterfaceNh ( const string &  ifname,
const MacAddress mac 
)
static

Definition at line 865 of file nexthop.cc.

Here is the call graph for this function:

virtual void InterfaceNH::Delete ( const DBRequest req)
inlinevirtual

Reimplemented from NextHop.

Definition at line 1286 of file nexthop.h.

void InterfaceNH::DeleteInetInterfaceNextHop ( const string &  ifname,
const MacAddress mac 
)
static

Definition at line 833 of file nexthop.cc.

Here is the call graph for this function:

void InterfaceNH::DeleteL2InterfaceNH ( const boost::uuids::uuid intf_uuid,
const MacAddress mac,
const std::string &  intf_name 
)
static

Definition at line 781 of file nexthop.cc.

Here is the call graph for this function:

void InterfaceNH::DeleteL3InterfaceNH ( const boost::uuids::uuid intf_uuid,
const MacAddress mac,
const std::string &  intf_name 
)
static

Definition at line 761 of file nexthop.cc.

Here is the call graph for this function:

void InterfaceNH::DeleteMulticastVmInterfaceNH ( const boost::uuids::uuid intf_uuid,
const MacAddress dmac,
const std::string &  intf_name 
)
static

Definition at line 797 of file nexthop.cc.

Here is the call graph for this function:

void InterfaceNH::DeleteNH ( const boost::uuids::uuid intf_uuid,
bool  policy,
uint8_t  flags,
const MacAddress mac,
const std::string &  intf_name 
)
static

Definition at line 805 of file nexthop.cc.

Here is the call graph for this function:

virtual bool InterfaceNH::DeleteOnZeroRefCount ( ) const
inlinevirtual

Reimplemented from NextHop.

Definition at line 1342 of file nexthop.h.

void InterfaceNH::DeletePhysicalInterfaceNh ( const string &  ifname,
const MacAddress mac 
)
static

Definition at line 874 of file nexthop.cc.

Here is the call graph for this function:

InterfaceNH::DISALLOW_COPY_AND_ASSIGN ( InterfaceNH  )
private
InterfaceNH::KeyPtr InterfaceNH::GetDBRequestKey ( ) const
virtual

Implements DBEntryBase.

Definition at line 683 of file nexthop.cc.

const MacAddress& InterfaceNH::GetDMac ( ) const
inline

Definition at line 1294 of file nexthop.h.

uint8_t InterfaceNH::GetFlags ( ) const
inline

Definition at line 1300 of file nexthop.h.

const boost::uuids::uuid & InterfaceNH::GetIfUuid ( ) const

Definition at line 730 of file nexthop.cc.

const Interface* InterfaceNH::GetInterface ( ) const
inline

Definition at line 1293 of file nexthop.h.

const VrfEntry* InterfaceNH::GetVrf ( ) const
inline

Definition at line 1302 of file nexthop.h.

bool InterfaceNH::is_multicastNH ( ) const
inline

Definition at line 1298 of file nexthop.h.

bool InterfaceNH::IsBridge ( ) const
inline

Definition at line 1299 of file nexthop.h.

bool InterfaceNH::IsVxlanRouting ( ) const
inline

Definition at line 1295 of file nexthop.h.

bool InterfaceNH::layer2_control_word ( ) const
inline

Definition at line 1359 of file nexthop.h.

virtual bool InterfaceNH::MatchEgressData ( const NextHop nh) const
inlinevirtual

Implements NextHop.

Definition at line 1350 of file nexthop.h.

bool InterfaceNH::NeedMplsLabel ( )
virtual

Implements NextHop.

Definition at line 898 of file nexthop.cc.

Here is the call graph for this function:

bool InterfaceNH::NextHopIsLess ( const DBEntry rhs) const
virtual

Implements NextHop.

Definition at line 669 of file nexthop.cc.

void InterfaceNH::SendObjectLog ( const NextHopTable table,
AgentLogEvent::type  event 
) const
virtual

Reimplemented from NextHop.

Definition at line 883 of file nexthop.cc.

Here is the call graph for this function:

void InterfaceNH::set_delete_on_zero_refcount ( bool  val)
inline

Definition at line 1346 of file nexthop.h.

void InterfaceNH::SetKey ( const DBRequestKey key)
virtual

Reimplemented from NextHop.

Definition at line 691 of file nexthop.cc.

Here is the call graph for this function:

virtual std::string InterfaceNH::ToString ( ) const
inlinevirtual

Reimplemented from NextHop.

Definition at line 1280 of file nexthop.h.

Member Data Documentation

bool InterfaceNH::delete_on_zero_refcount_
private

Definition at line 1368 of file nexthop.h.

MacAddress InterfaceNH::dmac_
private

Definition at line 1366 of file nexthop.h.

uint8_t InterfaceNH::flags_
private

Definition at line 1365 of file nexthop.h.

InterfaceRef InterfaceNH::interface_
private

Definition at line 1364 of file nexthop.h.

bool InterfaceNH::layer2_control_word_
private

Definition at line 1369 of file nexthop.h.

VrfEntryRef InterfaceNH::vrf_
private

Definition at line 1367 of file nexthop.h.


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