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

#include <tunnel_nh.h>

Inheritance diagram for TunnelNH:
Collaboration diagram for TunnelNH:

Classes

struct  EncapData
 

Public Types

typedef boost::shared_ptr
< EncapData
EncapDataPtr
 
typedef std::vector< EncapDataPtrEncapDataList
 
- 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 Member Functions

 TunnelNH (VrfEntry *vrf, const Ip4Address &sip, const Ip4Address &dip, bool policy, TunnelType type, const MacAddress &rewrite_dmac)
 
virtual ~TunnelNH ()
 
virtual std::string ToString () const
 
virtual bool NextHopIsLess (const DBEntry &rhs) const
 
virtual bool TunnelNextHopIsLess (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
 
const uint32_t vrf_id () const
 
const VrfEntryGetVrf () const
 
const Ip4AddressGetSip () const
 
const Ip4AddressGetDip () const
 
const AgentRouteGetRt () const
 
const MacAddressGetDmac () const
 
const bool & IsEncapValid (const uint32_t &i) const
 
const MacAddressrewrite_dmac () const
 
const TunnelTypeGetTunnelType () const
 
const InterfaceGetCryptInterface () const
 
bool GetCrypt () const
 
bool GetCryptTunnelAvailable () const
 
virtual void SendObjectLog (const NextHopTable *table, AgentLogEvent::type event) const
 
virtual bool DeleteOnZeroRefCount () const
 
virtual bool MatchEgressData (const NextHop *nh) const
 
virtual bool NeedMplsLabel ()
 
const EncapDataList GetEncapDataList () 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 ()
 

Protected Attributes

VrfEntryRef vrf_
 
Ip4Address sip_
 
Ip4Address dip_
 
TunnelType tunnel_type_
 
AgentRoutetunnel_dst_rt_
 
EncapDataList encap_list_
 
bool crypt_
 
bool crypt_tunnel_available_
 
InterfaceConstRef crypt_interface_
 
MacAddress rewrite_dmac_
 
- Protected Attributes inherited from NextHop
Type type_
 
bool valid_
 
bool policy_
 
uint32_t id_
 
MplsLabelRef mpls_label_
 
bool learning_enabled_
 
bool etree_leaf_
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (TunnelNH)
 

Additional Inherited Members

- Static Public Member Functions inherited from NextHop
static void FillObjectLogIntf (const Interface *intf, NextHopObjectLogInfo &info)
 
static void FillObjectLogMac (const unsigned char *m, NextHopObjectLogInfo &info)
 
- 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
 

Detailed Description

Definition at line 14 of file tunnel_nh.h.

Member Typedef Documentation

typedef std::vector<EncapDataPtr> TunnelNH::EncapDataList

Definition at line 69 of file tunnel_nh.h.

typedef boost::shared_ptr<EncapData> TunnelNH::EncapDataPtr

Definition at line 68 of file tunnel_nh.h.

Constructor & Destructor Documentation

TunnelNH::TunnelNH ( VrfEntry vrf,
const Ip4Address sip,
const Ip4Address dip,
bool  policy,
TunnelType  type,
const MacAddress rewrite_dmac 
)

Definition at line 985 of file nexthop.cc.

Here is the call graph for this function:

TunnelNH::~TunnelNH ( )
virtual

Definition at line 998 of file nexthop.cc.

Member Function Documentation

bool TunnelNH::CanAdd ( ) const
virtual

Implements NextHop.

Definition at line 1001 of file nexthop.cc.

bool TunnelNH::ChangeEntry ( const DBRequest req)
virtual

Implements NextHop.

Reimplemented in LabelledTunnelNH.

Definition at line 1069 of file nexthop.cc.

Here is the call graph for this function:

void TunnelNH::Delete ( const DBRequest req)
virtual

Reimplemented from NextHop.

Definition at line 1210 of file nexthop.cc.

Here is the call graph for this function:

virtual bool TunnelNH::DeleteOnZeroRefCount ( ) const
inlinevirtual

Reimplemented from NextHop.

Reimplemented in LabelledTunnelNH.

Definition at line 48 of file tunnel_nh.h.

TunnelNH::DISALLOW_COPY_AND_ASSIGN ( TunnelNH  )
private
bool TunnelNH::GetCrypt ( ) const
inline

Definition at line 44 of file tunnel_nh.h.

const Interface* TunnelNH::GetCryptInterface ( ) const
inline

Definition at line 43 of file tunnel_nh.h.

bool TunnelNH::GetCryptTunnelAvailable ( ) const
inline

Definition at line 45 of file tunnel_nh.h.

TunnelNH::KeyPtr TunnelNH::GetDBRequestKey ( ) const
virtual

Implements DBEntryBase.

Reimplemented in LabelledTunnelNH.

Definition at line 1059 of file nexthop.cc.

const Ip4Address* TunnelNH::GetDip ( ) const
inline

Definition at line 37 of file tunnel_nh.h.

const MacAddress* TunnelNH::GetDmac ( ) const
inline

Definition at line 39 of file tunnel_nh.h.

const EncapDataList TunnelNH::GetEncapDataList ( ) const
inline

Definition at line 70 of file tunnel_nh.h.

const AgentRoute* TunnelNH::GetRt ( ) const
inline

Definition at line 38 of file tunnel_nh.h.

const Ip4Address* TunnelNH::GetSip ( ) const
inline

Definition at line 36 of file tunnel_nh.h.

const TunnelType& TunnelNH::GetTunnelType ( ) const
inline

Definition at line 42 of file tunnel_nh.h.

const VrfEntry* TunnelNH::GetVrf ( ) const
inline

Definition at line 35 of file tunnel_nh.h.

const bool& TunnelNH::IsEncapValid ( const uint32_t &  i) const
inline

Definition at line 40 of file tunnel_nh.h.

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

Implements NextHop.

Definition at line 52 of file tunnel_nh.h.

virtual bool TunnelNH::NeedMplsLabel ( )
inlinevirtual

Implements NextHop.

Reimplemented in LabelledTunnelNH.

Definition at line 59 of file tunnel_nh.h.

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

Implements NextHop.

Definition at line 1021 of file nexthop.cc.

Here is the call graph for this function:

const MacAddress& TunnelNH::rewrite_dmac ( ) const
inline

Definition at line 41 of file tunnel_nh.h.

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

Reimplemented from NextHop.

Reimplemented in LabelledTunnelNH.

Definition at line 1217 of file nexthop.cc.

Here is the call graph for this function:

void TunnelNH::SetKey ( const DBRequestKey key)
virtual

Reimplemented from NextHop.

Definition at line 1048 of file nexthop.cc.

Here is the call graph for this function:

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

Reimplemented from NextHop.

Reimplemented in LabelledTunnelNH.

Definition at line 20 of file tunnel_nh.h.

Here is the call graph for this function:

virtual bool TunnelNH::TunnelNextHopIsLess ( const DBEntry rhs) const
inlinevirtual

Reimplemented in LabelledTunnelNH.

Definition at line 25 of file tunnel_nh.h.

const uint32_t TunnelNH::vrf_id ( ) const

Definition at line 1065 of file nexthop.cc.

Member Data Documentation

bool TunnelNH::crypt_
protected

Definition at line 78 of file tunnel_nh.h.

InterfaceConstRef TunnelNH::crypt_interface_
protected

Definition at line 80 of file tunnel_nh.h.

bool TunnelNH::crypt_tunnel_available_
protected

Definition at line 79 of file tunnel_nh.h.

Ip4Address TunnelNH::dip_
protected

Definition at line 74 of file tunnel_nh.h.

EncapDataList TunnelNH::encap_list_
protected

Definition at line 77 of file tunnel_nh.h.

MacAddress TunnelNH::rewrite_dmac_
protected

Definition at line 81 of file tunnel_nh.h.

Ip4Address TunnelNH::sip_
protected

Definition at line 73 of file tunnel_nh.h.

AgentRoute* TunnelNH::tunnel_dst_rt_
protected

Definition at line 76 of file tunnel_nh.h.

TunnelType TunnelNH::tunnel_type_
protected

Definition at line 75 of file tunnel_nh.h.

VrfEntryRef TunnelNH::vrf_
protected

Definition at line 70 of file tunnel_nh.h.


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