OpenSDN source code
InetUnicastAgentRouteTable Class Reference

#include <inet_unicast_route.h>

Inheritance diagram for InetUnicastAgentRouteTable:
Collaboration diagram for InetUnicastAgentRouteTable:

Public Types

typedef Patricia::Tree< InetUnicastRouteEntry, &InetUnicastRouteEntry::rtnode_, InetUnicastRouteEntry::Rtkey > InetRouteTree
 
- Public Types inherited from AgentRouteTable
typedef std::set< const AgentRoute *, RouteComparator > UnresolvedRouteTree
 
typedef std::set< const NextHop *, NHComparator > UnresolvedNHTree
 
- Public Types inherited from DBTable
typedef boost::intrusive_ptr< DBTableWalk > DBTableWalkRef
 
typedef boost::function< bool(DBTablePartBase *, DBEntryBase *)> WalkFn
 
typedef boost::function< void(DBTableWalkRef, DBTableBase *)> WalkCompleteFn
 
- Public Types inherited from DBTableBase
typedef boost::function< void(DBTablePartBase *, DBEntryBase *)> ChangeCallback
 
typedef int ListenerId
 

Public Member Functions

 InetUnicastAgentRouteTable (DB *db, const std::string &name)
 
virtual ~InetUnicastAgentRouteTable ()
 
InetUnicastRouteEntry * FindLPM (const IpAddress &ip)
 
InetUnicastRouteEntry * FindLPM (const InetUnicastRouteEntry &rt_key)
 
virtual string GetTableName () const
 
virtual Agent::RouteTableType GetTableType () const
 
virtual void ProcessAdd (AgentRoute *rt)
 
virtual void ProcessDelete (AgentRoute *rt)
 
virtual AgentSandeshPtr GetAgentSandesh (const AgentSandeshArguments *args, const std::string &context)
 
InetUnicastRouteEntry * FindRouteUsingKey (InetUnicastRouteEntry &key)
 
InetUnicastRouteEntry * FindRoute (const IpAddress &ip)
 
const InetUnicastRouteEntry * GetNext (const InetUnicastRouteEntry *rt)
 
InetUnicastRouteEntry * GetNextNonConst (const InetUnicastRouteEntry *rt)
 
void Delete (const Peer *peer, const string &vrf_name, const IpAddress &addr, uint8_t plen, AgentRouteData *data)
 
void AddLocalVmRouteReq (const Peer *peer, const string &vm_vrf, const IpAddress &addr, uint8_t plen, LocalVmRoute *data)
 
void AddLocalVmRouteReq (const Peer *peer, const string &vm_vrf, const IpAddress &addr, uint8_t plen, const boost::uuids::uuid &intf_uuid, const VnListType &vn_list, uint32_t label, const SecurityGroupList &sg_list, const TagList &tag_list, const CommunityList &communities, bool force_policy, const PathPreference &path_preference, const IpAddress &subnet_service_ip, const EcmpLoadBalance &ecmp_load_balance, bool is_local, bool is_health_check_service, bool native_encap, const std::string &intf_name="", bool is_learnt_route=false)
 
void ResyncRoute (const Peer *peer, const string &vrf, const IpAddress &addr, uint8_t plen)
 
void AddVlanNHRouteReq (const Peer *peer, const string &vm_vrf, const IpAddress &addr, uint8_t plen, VlanNhRoute *data)
 
void AddVlanNHRouteReq (const Peer *peer, const string &vm_vrf, const IpAddress &addr, uint8_t plen, const boost::uuids::uuid &intf_uuid, uint16_t tag, uint32_t label, const VnListType &dest_vn_list, const SecurityGroupList &sg_list_, const TagList &tag_list, const PathPreference &path_preference)
 
InetUnicastRouteEntry * FindResolveRoute (const Ip4Address &ip)
 
void AddInetInterfaceRouteReq (const Peer *peer, const string &vm_vrf, const Ip4Address &addr, uint8_t plen, InetInterfaceRoute *data)
 
void AddInetInterfaceRouteReq (const Peer *peer, const string &vm_vrf, const Ip4Address &addr, uint8_t plen, const string &interface, uint32_t label, const VnListType &vn_list)
 
void AddIpamSubnetRoute (const string &vm_vrf, const IpAddress &addr, uint8_t plen, const std::string &vn_name)
 
void AddVrouterSubnetRoute (const IpAddress &dst_addr, uint8_t plen)
 
void AddVhostMplsRoute (const IpAddress &vhost_addr, const Peer *peer)
 
void AddInterfaceRouteReq (Agent *agent, const Peer *peer, const string &vrf_name, const Ip4Address &ip, uint8_t plen, const Interface *intrface, const std::string &vn_name)
 
void AddClonedLocalPathReq (const Peer *peer, const string &vm_vrf, const IpAddress &addr, uint8_t plen, ClonedLocalPath *data)
 
bool ResyncSubnetRoutes (const InetUnicastRouteEntry *rt, bool val)
 
uint8_t GetHostPlen (const IpAddress &ip_addr) const
 
void AddEvpnRoute (const AgentRoute *evpn_entry)
 
void DeleteEvpnRoute (const AgentRoute *rt)
 
void TraverseHostRoutesInSubnet (InetUnicastRouteEntry *rt, const Peer *peer)
 
IpAddress GetSubnetAddress (const IpAddress &addr, uint16_t plen) const
 
InetUnicastRouteEntry * GetSuperNetRoute (const IpAddress &addr)
 
void AddEvpnRoutingRoute (const IpAddress &ip_addr, uint8_t plen, const VrfEntry *vrf, const Peer *peer, const SecurityGroupList &sg_list, const CommunityList &communities, const PathPreference &path_preference, const EcmpLoadBalance &ecmp_load_balance, const TagList &tag_list, DBRequest &nh_req, uint32_t vxlan_id, const VnListType &vn_list, const std::string &origin_vn="")
 
void AddEvpnRoutingRouteReq (const IpAddress &ip_addr, uint8_t plen, const VrfEntry *vrf, const Peer *peer, const SecurityGroupList &sg_list, const CommunityList &communities, const PathPreference &path_preference, const EcmpLoadBalance &ecmp_load_balance, const TagList &tag_list, DBRequest &nh_req, uint32_t vxlan_id, const VnListType &vn_list, const std::string &origin_vn="")
 
- Public Member Functions inherited from AgentRouteTable
 AgentRouteTable (DB *db, const std::string &name)
 
virtual ~AgentRouteTable ()
 
virtual int PartitionCount () const
 
virtual std::unique_ptr< DBEntry > AllocEntry (const DBRequestKey *k) const
 
virtual size_t Hash (const DBEntry *entry) const
 
virtual size_t Hash (const DBRequestKey *key) const
 
virtual void NotifyEntry (AgentRoute *entry)
 
virtual SandeshTraceBufferPtr GetOperDBTraceBuf () const
 
UnresolvedRouteTree::const_iterator unresolved_route_begin () const
 
UnresolvedRouteTree::const_iterator unresolved_route_end () const
 
int unresolved_route_size () const
 
void AddUnresolvedNH (const NextHop *)
 
void RemoveUnresolvedNH (const NextHop *)
 
void EvaluateUnresolvedNH (void)
 
UnresolvedNHTree::const_iterator unresolved_nh_begin () const
 
UnresolvedNHTree::const_iterator unresolved_nh_end () const
 
void EvaluateUnresolvedRoutes (void)
 
void AddUnresolvedRoute (const AgentRoute *rt)
 
void RemoveUnresolvedRoute (const AgentRoute *rt)
 
Agent * agent () const
 
const std::string & vrf_name () const
 
uint32_t vrf_id () const
 
VrfEntry * vrf_entry () const
 
AgentRoute * FindActiveEntry (const AgentRouteKey *key)
 
AgentRoute * FindActiveEntryNoLock (const AgentRouteKey *key)
 
AgentRoute * FindActiveEntry (const AgentRoute *key)
 
AgentRoute * FindActiveEntryNoLock (const AgentRoute *key)
 
void SetVrf (VrfEntry *vrf)
 
bool DelExplicitRouteWalkerCb (DBTablePartBase *part, DBEntryBase *entry)
 
LifetimeActor * deleter ()
 
void ManagedDelete ()
 
virtual void RetryDelete ()
 
void Process (DBRequest &req)
 
void AddChangeInput (DBTablePartition *part, VrfEntry *vrf, AgentRoute *rt, AgentRouteKey *key, AgentRouteData *data)
 
AgentRoute * LocateRoute (DBTablePartition *part, VrfEntry *vrf, AgentRoute *rt, AgentRouteKey *key, AgentRouteData *data, bool *notify)
 
- Public Member Functions inherited from RouteTable
 RouteTable (DB *db, const std::string &name)
 
- Public Member Functions inherited from DBTable
 DBTable (DB *db, const std::string &name)
 
virtual ~DBTable ()
 
void Init ()
 
virtual DBTablePartition * AllocPartition (int index)
 
virtual DBEntry * Add (const DBRequest *req)
 
virtual bool OnChange (DBEntry *entry, const DBRequest *req)
 
virtual bool Delete (DBEntry *entry, const DBRequest *req)
 
void NotifyAllEntries ()
 
DBEntry * Find (const DBEntry *entry)
 
const DBEntry * Find (const DBEntry *entry) const
 
DBEntry * Find (const DBRequestKey *key, int id=-1)
 
const DBEntry * Find (const DBRequestKey *key, int id=-1) const
 
DBEntry * FindNoLock (const DBEntry *entry)
 
DBEntry * FindNoLock (const DBRequestKey *key)
 
virtual DBTablePartBase * GetTablePartition (const DBRequestKey *key)
 
virtual const DBTablePartBase * GetTablePartition (const DBRequestKey *key) const
 
virtual DBTablePartBase * GetTablePartition (const DBEntryBase *entry)
 
virtual const DBTablePartBase * GetTablePartition (const DBEntryBase *entry) const
 
virtual DBTablePartBase * GetTablePartition (const int index)
 
virtual const DBTablePartBase * GetTablePartition (const int index) const
 
virtual void Change (DBEntryBase *entry)
 
virtual size_t Size () const
 
DBTableWalkRef AllocWalker (WalkFn walk_fn, WalkCompleteFn walk_complete)
 
void ReleaseWalker (DBTableWalkRef &walk)
 
void WalkTable (DBTableWalkRef walk)
 
void WalkAgain (DBTableWalkRef walk)
 
void SetWalkIterationToYield (int count)
 
int GetWalkIterationToYield ()
 
void SetWalkTaskId (int task_id)
 
int GetWalkerTaskId ()
 
- Public Member Functions inherited from DBTableBase
 DBTableBase (DB *db, const std::string &name)
 
virtual ~DBTableBase ()
 
bool Enqueue (DBRequest *req)
 
void EnqueueRemove (DBEntryBase *db_entry)
 
virtual void AddRemoveCallback (const DBEntryBase *entry, bool add) const
 
ListenerId Register (ChangeCallback callback, const std::string &name="unspecified")
 
void Unregister (ListenerId listener)
 
void RunNotify (DBTablePartBase *tpart, DBEntryBase *entry)
 
void AddToDBStateCount (ListenerId listener, int count)
 
uint64_t GetDBStateCount (ListenerId listener)
 
bool empty () const
 
virtual bool MayDelete () const
 
DB * database ()
 
const DB * database () const
 
const std::string & name () const
 
bool HasListeners () const
 
size_t GetListenerCount () const
 
void FillListeners (std::vector< ShowTableListener > *listeners) const
 
uint64_t enqueue_count () const
 
void incr_enqueue_count ()
 
void reset_enqueue_count ()
 
uint64_t input_count () const
 
void incr_input_count ()
 
void reset_input_count ()
 
uint64_t notify_count () const
 
void incr_notify_count ()
 
void reset_notify_count ()
 
bool HasWalkers () const
 
uint64_t walker_count () const
 
void incr_walker_count ()
 
uint64_t decr_walker_count ()
 
uint64_t walk_request_count () const
 
uint64_t walk_complete_count () const
 
uint64_t walk_cancel_count () const
 
uint64_t walk_again_count () const
 
uint64_t walk_count () const
 
void incr_walk_request_count ()
 
void incr_walk_complete_count ()
 
void incr_walk_cancel_count ()
 
void incr_walk_again_count ()
 
void incr_walk_count ()
 

Static Public Member Functions

static DBTableBase * CreateTable (DB *db, const std::string &name)
 
static void DeleteReq (const Peer *peer, const string &vrf_name, const IpAddress &addr, uint8_t plen, AgentRouteData *data)
 
static void DeleteMplsRouteReq (const Peer *peer, const string &vrf_name, const IpAddress &addr, uint8_t plen, AgentRouteData *data)
 
static void Delete (const Peer *peer, const string &vrf_name, const IpAddress &addr, uint8_t plen)
 
static void AddHostRoute (const string &vrf_name, const IpAddress &addr, uint8_t plen, const std::string &dest_vn_name, bool policy)
 
static void AddLocalVmRoute (const Peer *peer, const string &vm_vrf, const IpAddress &addr, uint8_t plen, const boost::uuids::uuid &intf_uuid, const VnListType &vn_list, uint32_t label, const SecurityGroupList &sg_list, const TagList &tag_list, const CommunityList &communities, bool force_policy, const PathPreference &path_preference, const IpAddress &subnet_service_ip, const EcmpLoadBalance &ecmp_load_balance, bool is_local, bool is_health_check_service, const std::string &intf_name, bool native_encap, const std::string &intf_route_type=VmInterface::kInterface, bool is_learnt_route=false)
 
static void AddRemoteVmRouteReq (const Peer *peer, const string &vm_vrf, const IpAddress &vm_addr, uint8_t plen, AgentRouteData *data)
 
static void AddVlanNHRoute (const Peer *peer, const string &vm_vrf, const IpAddress &addr, uint8_t plen, const boost::uuids::uuid &intf_uuid, uint16_t tag, uint32_t label, const VnListType &dest_vn_list, const SecurityGroupList &sg_list_, const TagList &tag_list, const PathPreference &path_preference)
 
static InetUnicastRouteEntry * FindResolveRoute (const string &vrf_name, const Ip4Address &ip)
 
static bool ShouldAddArp (const Ip4Address &ip)
 
static void CheckAndAddArpReq (const string &vrf_name, const Ip4Address &ip, const Interface *intf, const VnListType &vn_list, const SecurityGroupList &sg, const TagList &tag)
 
static void CheckAndAddArpRoute (const string &route_vrf_name, const Ip4Address &ip, const MacAddress &mac, const Interface *intf, bool resolved, const VnListType &vn_list, const SecurityGroupList &sg, const TagList &tag)
 
static void AddArpReq (const string &route_vrf_name, const Ip4Address &ip, const string &nh_vrf_name, const Interface *intf, bool policy, const VnListType &dest_vn_list, const SecurityGroupList &sg_list, const TagList &tag_list)
 
static void ArpRoute (DBRequest::DBOperation op, const string &route_vrf_name, const Ip4Address &ip, const MacAddress &mac, const string &nh_vrf_name, const Interface &intf, bool resolved, const uint8_t plen, bool policy, const VnListType &dest_vn_list, const SecurityGroupList &sg_list, const TagList &tag_list)
 
static void NdpRoute (DBRequest::DBOperation op, const string &route_vrf_name, const IpAddress &ip, const MacAddress &mac, const string &nh_vrf_name, const Interface &intf, bool resolved, const uint8_t plen, bool policy, const VnListType &dest_vn_list, const SecurityGroupList &sg_list, const TagList &tag_list)
 
static void AddResolveRoute (const Peer *peer, const string &vrf_name, const Ip4Address &ip, const uint8_t plen, const InterfaceKey &intf_key, const uint32_t label, bool policy, const std::string &vn_name, const SecurityGroupList &sg_list, const TagList &tag_list)
 
static void AddVHostRecvRoute (const Peer *peer, const string &vrf, const InterfaceKey &interface, const IpAddress &addr, uint8_t plen, const string &vn_name, bool policy, bool native_encap, bool ipam_host_route=true)
 
static void AddVHostRecvRouteReq (const Peer *peer, const string &vrf, const InterfaceKey &interface, const IpAddress &addr, uint8_t plen, const string &vn_name, bool policy, bool native_encap)
 
static void AddVHostMplsRecvRouteReq (const Peer *peer, const string &vrf, const InterfaceKey &interface, const IpAddress &addr, uint8_t plen, const string &vn_name, bool policy, bool native_encap)
 
static void AddVHostSubnetRecvRoute (const Peer *peer, const string &vrf, const InterfaceKey &interface, const Ip4Address &addr, uint8_t plen, const std::string &vn_name, bool policy)
 
static void DelVHostSubnetRecvRoute (const string &vm_vrf, const Ip4Address &addr, uint8_t plen)
 
static void AddDropRoute (const string &vm_vrf, const Ip4Address &addr, uint8_t plen, const string &vn_name)
 
static void AddGatewayRoute (const Peer *peer, const string &vrf_name, const Ip4Address &dst_addr, uint8_t plen, const AddressList &gw_list, const VnListType &vn_name, uint32_t label, const SecurityGroupList &sg_list, const TagList &tag_list, const CommunityList &communities, bool native_encap)
 
static void AddGatewayRouteReq (const Peer *peer, const string &vrf_name, const Ip4Address &dst_addr, uint8_t plen, const AddressList &gw_list, const VnListType &vn_name, uint32_t label, const SecurityGroupList &sg_list, const TagList &tag_list, const CommunityList &communities, bool native_encap)
 
static void AddLocalMplsRouteReq (const Peer *peer, const string &vrf_name, const Ip4Address &dst_addr, uint8_t plen, const Ip4Address &gw_ip, const VnListType &vn_name, uint32_t label, const SecurityGroupList &sg_list, const TagList &tag_list, const CommunityList &communities, bool native_encap)
 
static void AddMplsRouteInternal (const Peer *peer, DBRequest *req, const string &vrf_name, const IpAddress &dst_addr, uint8_t plen, const IpAddress &gw_ip, const VnListType &vn_name, uint32_t label, const SecurityGroupList &sg_list, const TagList &tag_list, const CommunityList &communities, bool native_encap)
 
static void AddMplsRouteReq (const Peer *peer, const string &vrf_name, const IpAddress &dst_addr, uint8_t plen, AgentRouteData *data)
 
- Static Public Member Functions inherited from AgentRouteTable
static bool PathSelection (const Path &path1, const Path &path2)
 
static const std::string & GetSuffix (Agent::RouteTableType type)
 
- Static Public Member Functions inherited from DBTable
static void DBStateClear (DBTable *table, ListenerId id)
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (InetUnicastAgentRouteTable)
 

Private Attributes

Agent::RouteTableType type_
 
InetRouteTree tree_
 
Patricia::Node rtnode_
 
DBTableWalker::WalkId walkid_
 

Additional Inherited Members

- Static Public Attributes inherited from AgentRouteTable
static const int kPartitionCount = 1
 
- Static Public Attributes inherited from DBTable
static const int kIterationToYield = 256
 
- Static Public Attributes inherited from DBTableBase
static const int kInvalidId = -1
 

Detailed Description

Definition at line 146 of file inet_unicast_route.h.

Member Typedef Documentation

◆ InetRouteTree

Constructor & Destructor Documentation

◆ InetUnicastAgentRouteTable()

InetUnicastAgentRouteTable::InetUnicastAgentRouteTable ( DB *  db,
const std::string &  name 
)

Definition at line 46 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ ~InetUnicastAgentRouteTable()

virtual InetUnicastAgentRouteTable::~InetUnicastAgentRouteTable ( )
inlinevirtual

Definition at line 153 of file inet_unicast_route.h.

Member Function Documentation

◆ AddArpReq()

void InetUnicastAgentRouteTable::AddArpReq ( const string &  route_vrf_name,
const Ip4Address &  ip,
const string &  nh_vrf_name,
const Interface *  intf,
bool  policy,
const VnListType &  dest_vn_list,
const SecurityGroupList &  sg_list,
const TagList &  tag_list 
)
static

Definition at line 1382 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddClonedLocalPathReq()

void InetUnicastAgentRouteTable::AddClonedLocalPathReq ( const Peer *  peer,
const string &  vm_vrf,
const IpAddress &  addr,
uint8_t  plen,
ClonedLocalPath *  data 
)

Definition at line 1314 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddDropRoute()

void InetUnicastAgentRouteTable::AddDropRoute ( const string &  vm_vrf,
const Ip4Address &  addr,
uint8_t  plen,
const string &  vn_name 
)
static

Definition at line 1739 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddEvpnRoute()

void InetUnicastAgentRouteTable::AddEvpnRoute ( const AgentRoute *  evpn_entry)

Definition at line 1920 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddEvpnRoutingRoute()

void InetUnicastAgentRouteTable::AddEvpnRoutingRoute ( const IpAddress &  ip_addr,
uint8_t  plen,
const VrfEntry *  vrf,
const Peer *  peer,
const SecurityGroupList &  sg_list,
const CommunityList &  communities,
const PathPreference &  path_preference,
const EcmpLoadBalance &  ecmp_load_balance,
const TagList &  tag_list,
DBRequest &  nh_req,
uint32_t  vxlan_id,
const VnListType &  vn_list,
const std::string &  origin_vn = "" 
)

Definition at line 1961 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddEvpnRoutingRouteReq()

void InetUnicastAgentRouteTable::AddEvpnRoutingRouteReq ( const IpAddress &  ip_addr,
uint8_t  plen,
const VrfEntry *  vrf,
const Peer *  peer,
const SecurityGroupList &  sg_list,
const CommunityList &  communities,
const PathPreference &  path_preference,
const EcmpLoadBalance &  ecmp_load_balance,
const TagList &  tag_list,
DBRequest &  nh_req,
uint32_t  vxlan_id,
const VnListType &  vn_list,
const std::string &  origin_vn = "" 
)

Definition at line 1994 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddGatewayRoute()

void InetUnicastAgentRouteTable::AddGatewayRoute ( const Peer *  peer,
const string &  vrf_name,
const Ip4Address &  dst_addr,
uint8_t  plen,
const AddressList &  gw_list,
const VnListType &  vn_name,
uint32_t  label,
const SecurityGroupList &  sg_list,
const TagList &  tag_list,
const CommunityList &  communities,
bool  native_encap 
)
static

Definition at line 1777 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddGatewayRouteReq()

void InetUnicastAgentRouteTable::AddGatewayRouteReq ( const Peer *  peer,
const string &  vrf_name,
const Ip4Address &  dst_addr,
uint8_t  plen,
const AddressList &  gw_list,
const VnListType &  vn_name,
uint32_t  label,
const SecurityGroupList &  sg_list,
const TagList &  tag_list,
const CommunityList &  communities,
bool  native_encap 
)
static

Definition at line 1798 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddHostRoute()

void InetUnicastAgentRouteTable::AddHostRoute ( const string &  vrf_name,
const IpAddress &  addr,
uint8_t  plen,
const std::string &  dest_vn_name,
bool  policy 
)
static

Definition at line 1175 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddInetInterfaceRouteReq() [1/2]

void InetUnicastAgentRouteTable::AddInetInterfaceRouteReq ( const Peer *  peer,
const string &  vm_vrf,
const Ip4Address &  addr,
uint8_t  plen,
const string &  interface,
uint32_t  label,
const VnListType &  vn_list 
)

Definition at line 1619 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddInetInterfaceRouteReq() [2/2]

void InetUnicastAgentRouteTable::AddInetInterfaceRouteReq ( const Peer *  peer,
const string &  vm_vrf,
const Ip4Address &  addr,
uint8_t  plen,
InetInterfaceRoute *  data 
)

Definition at line 1634 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddInterfaceRouteReq()

void InetUnicastAgentRouteTable::AddInterfaceRouteReq ( Agent *  agent,
const Peer *  peer,
const string &  vrf_name,
const Ip4Address &  ip,
uint8_t  plen,
const Interface *  intrface,
const std::string &  vn_name 
)

Definition at line 1903 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddIpamSubnetRoute()

void InetUnicastAgentRouteTable::AddIpamSubnetRoute ( const string &  vm_vrf,
const IpAddress &  addr,
uint8_t  plen,
const std::string &  vn_name 
)

Definition at line 1831 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddLocalMplsRouteReq()

static void InetUnicastAgentRouteTable::AddLocalMplsRouteReq ( const Peer *  peer,
const string &  vrf_name,
const Ip4Address &  dst_addr,
uint8_t  plen,
const Ip4Address &  gw_ip,
const VnListType &  vn_name,
uint32_t  label,
const SecurityGroupList &  sg_list,
const TagList &  tag_list,
const CommunityList &  communities,
bool  native_encap 
)
static

◆ AddLocalVmRoute()

void InetUnicastAgentRouteTable::AddLocalVmRoute ( const Peer *  peer,
const string &  vm_vrf,
const IpAddress &  addr,
uint8_t  plen,
const boost::uuids::uuid &  intf_uuid,
const VnListType &  vn_list,
uint32_t  label,
const SecurityGroupList &  sg_list,
const TagList &  tag_list,
const CommunityList &  communities,
bool  force_policy,
const PathPreference &  path_preference,
const IpAddress &  subnet_service_ip,
const EcmpLoadBalance &  ecmp_load_balance,
bool  is_local,
bool  is_health_check_service,
const std::string &  intf_name,
bool  native_encap,
const std::string &  intf_route_type = VmInterface::kInterface,
bool  is_learnt_route = false 
)
static

Definition at line 1328 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddLocalVmRouteReq() [1/2]

void InetUnicastAgentRouteTable::AddLocalVmRouteReq ( const Peer *  peer,
const string &  vm_vrf,
const IpAddress &  addr,
uint8_t  plen,
const boost::uuids::uuid &  intf_uuid,
const VnListType &  vn_list,
uint32_t  label,
const SecurityGroupList &  sg_list,
const TagList &  tag_list,
const CommunityList &  communities,
bool  force_policy,
const PathPreference &  path_preference,
const IpAddress &  subnet_service_ip,
const EcmpLoadBalance &  ecmp_load_balance,
bool  is_local,
bool  is_health_check_service,
bool  native_encap,
const std::string &  intf_name = "",
bool  is_learnt_route = false 
)

Definition at line 1266 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddLocalVmRouteReq() [2/2]

void InetUnicastAgentRouteTable::AddLocalVmRouteReq ( const Peer *  peer,
const string &  vm_vrf,
const IpAddress &  addr,
uint8_t  plen,
LocalVmRoute *  data 
)

Definition at line 1252 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddMplsRouteInternal()

static void InetUnicastAgentRouteTable::AddMplsRouteInternal ( const Peer *  peer,
DBRequest *  req,
const string &  vrf_name,
const IpAddress &  dst_addr,
uint8_t  plen,
const IpAddress &  gw_ip,
const VnListType &  vn_name,
uint32_t  label,
const SecurityGroupList &  sg_list,
const TagList &  tag_list,
const CommunityList &  communities,
bool  native_encap 
)
static

◆ AddMplsRouteReq()

void InetUnicastAgentRouteTable::AddMplsRouteReq ( const Peer *  peer,
const string &  vrf_name,
const IpAddress &  dst_addr,
uint8_t  plen,
AgentRouteData *  data 
)
static

Definition at line 1820 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddRemoteVmRouteReq()

void InetUnicastAgentRouteTable::AddRemoteVmRouteReq ( const Peer *  peer,
const string &  vm_vrf,
const IpAddress &  vm_addr,
uint8_t  plen,
AgentRouteData *  data 
)
static

Definition at line 1368 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddResolveRoute()

void InetUnicastAgentRouteTable::AddResolveRoute ( const Peer *  peer,
const string &  vrf_name,
const Ip4Address &  ip,
const uint8_t  plen,
const InterfaceKey &  intf_key,
const uint32_t  label,
bool  policy,
const std::string &  vn_name,
const SecurityGroupList &  sg_list,
const TagList &  tag_list 
)
static

Definition at line 1596 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddVHostMplsRecvRouteReq()

void InetUnicastAgentRouteTable::AddVHostMplsRecvRouteReq ( const Peer *  peer,
const string &  vrf,
const InterfaceKey &  interface,
const IpAddress &  addr,
uint8_t  plen,
const string &  vn_name,
bool  policy,
bool  native_encap 
)
static

Definition at line 1681 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddVhostMplsRoute()

void InetUnicastAgentRouteTable::AddVhostMplsRoute ( const IpAddress &  vhost_addr,
const Peer *  peer 
)

Definition at line 1879 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddVHostRecvRoute()

void InetUnicastAgentRouteTable::AddVHostRecvRoute ( const Peer *  peer,
const string &  vrf,
const InterfaceKey &  interface,
const IpAddress &  addr,
uint8_t  plen,
const string &  vn_name,
bool  policy,
bool  native_encap,
bool  ipam_host_route = true 
)
static

Definition at line 1690 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddVHostRecvRouteReq()

void InetUnicastAgentRouteTable::AddVHostRecvRouteReq ( const Peer *  peer,
const string &  vrf,
const InterfaceKey &  interface,
const IpAddress &  addr,
uint8_t  plen,
const string &  vn_name,
bool  policy,
bool  native_encap 
)
static

Definition at line 1709 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddVHostSubnetRecvRoute()

void InetUnicastAgentRouteTable::AddVHostSubnetRecvRoute ( const Peer *  peer,
const string &  vrf,
const InterfaceKey &  interface,
const Ip4Address &  addr,
uint8_t  plen,
const std::string &  vn_name,
bool  policy 
)
static

Definition at line 1726 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddVlanNHRoute()

void InetUnicastAgentRouteTable::AddVlanNHRoute ( const Peer *  peer,
const string &  vm_vrf,
const IpAddress &  addr,
uint8_t  plen,
const boost::uuids::uuid &  intf_uuid,
uint16_t  tag,
uint32_t  label,
const VnListType &  dest_vn_list,
const SecurityGroupList &  sg_list_,
const TagList &  tag_list,
const PathPreference &  path_preference 
)
static

Definition at line 1229 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddVlanNHRouteReq() [1/2]

void InetUnicastAgentRouteTable::AddVlanNHRouteReq ( const Peer *  peer,
const string &  vm_vrf,
const IpAddress &  addr,
uint8_t  plen,
const boost::uuids::uuid &  intf_uuid,
uint16_t  tag,
uint32_t  label,
const VnListType &  dest_vn_list,
const SecurityGroupList &  sg_list_,
const TagList &  tag_list,
const PathPreference &  path_preference 
)

Definition at line 1208 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddVlanNHRouteReq() [2/2]

void InetUnicastAgentRouteTable::AddVlanNHRouteReq ( const Peer *  peer,
const string &  vm_vrf,
const IpAddress &  addr,
uint8_t  plen,
VlanNhRoute *  data 
)

Definition at line 1196 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ AddVrouterSubnetRoute()

void InetUnicastAgentRouteTable::AddVrouterSubnetRoute ( const IpAddress &  dst_addr,
uint8_t  plen 
)

Definition at line 1859 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ ArpRoute()

void InetUnicastAgentRouteTable::ArpRoute ( DBRequest::DBOperation  op,
const string &  route_vrf_name,
const Ip4Address &  ip,
const MacAddress &  mac,
const string &  nh_vrf_name,
const Interface &  intf,
bool  resolved,
const uint8_t  plen,
bool  policy,
const VnListType &  dest_vn_list,
const SecurityGroupList &  sg_list,
const TagList &  tag_list 
)
static

Definition at line 1409 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ CheckAndAddArpReq()

void InetUnicastAgentRouteTable::CheckAndAddArpReq ( const string &  vrf_name,
const Ip4Address &  ip,
const Interface *  intf,
const VnListType &  vn_list,
const SecurityGroupList &  sg,
const TagList &  tag 
)
static

Definition at line 1579 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ CheckAndAddArpRoute()

void InetUnicastAgentRouteTable::CheckAndAddArpRoute ( const string &  route_vrf_name,
const Ip4Address &  ip,
const MacAddress &  mac,
const Interface *  intf,
bool  resolved,
const VnListType &  vn_list,
const SecurityGroupList &  sg,
const TagList &  tag 
)
static

Definition at line 1559 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ CreateTable()

DBTableBase * InetUnicastAgentRouteTable::CreateTable ( DB *  db,
const std::string &  name 
)
static

Definition at line 68 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ Delete() [1/2]

void InetUnicastAgentRouteTable::Delete ( const Peer *  peer,
const string &  vrf_name,
const IpAddress &  addr,
uint8_t  plen 
)
static

Definition at line 1144 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ Delete() [2/2]

void InetUnicastAgentRouteTable::Delete ( const Peer *  peer,
const string &  vrf_name,
const IpAddress &  addr,
uint8_t  plen,
AgentRouteData *  data 
)

Definition at line 1153 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ DeleteEvpnRoute()

void InetUnicastAgentRouteTable::DeleteEvpnRoute ( const AgentRoute *  rt)

Definition at line 1942 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ DeleteMplsRouteReq()

void InetUnicastAgentRouteTable::DeleteMplsRouteReq ( const Peer *  peer,
const string &  vrf_name,
const IpAddress &  addr,
uint8_t  plen,
AgentRouteData *  data 
)
static

Definition at line 1163 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ DeleteReq()

void InetUnicastAgentRouteTable::DeleteReq ( const Peer *  peer,
const string &  vrf_name,
const IpAddress &  addr,
uint8_t  plen,
AgentRouteData *  data 
)
static

Definition at line 1132 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ DelVHostSubnetRecvRoute()

void InetUnicastAgentRouteTable::DelVHostSubnetRecvRoute ( const string &  vm_vrf,
const Ip4Address &  addr,
uint8_t  plen 
)
static

Definition at line 1752 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ DISALLOW_COPY_AND_ASSIGN()

InetUnicastAgentRouteTable::DISALLOW_COPY_AND_ASSIGN ( InetUnicastAgentRouteTable  )
private

◆ FindLPM() [1/2]

InetUnicastRouteEntry * InetUnicastAgentRouteTable::FindLPM ( const InetUnicastRouteEntry &  rt_key)

Definition at line 85 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ FindLPM() [2/2]

InetUnicastRouteEntry * InetUnicastAgentRouteTable::FindLPM ( const IpAddress &  ip)

Definition at line 75 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ FindResolveRoute() [1/2]

InetUnicastRouteEntry * InetUnicastAgentRouteTable::FindResolveRoute ( const Ip4Address &  ip)

Definition at line 90 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ FindResolveRoute() [2/2]

InetUnicastRouteEntry * InetUnicastAgentRouteTable::FindResolveRoute ( const string &  vrf_name,
const Ip4Address &  ip 
)
static

Definition at line 107 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ FindRoute()

InetUnicastRouteEntry* InetUnicastAgentRouteTable::FindRoute ( const IpAddress &  ip)
inline

Definition at line 183 of file inet_unicast_route.h.

Here is the call graph for this function:

◆ FindRouteUsingKey()

InetUnicastRouteEntry* InetUnicastAgentRouteTable::FindRouteUsingKey ( InetUnicastRouteEntry &  key)
inline

Definition at line 180 of file inet_unicast_route.h.

Here is the call graph for this function:

◆ GetAgentSandesh()

AgentSandeshPtr InetUnicastAgentRouteTable::GetAgentSandesh ( const AgentSandeshArguments *  args,
const std::string &  context 
)
virtual

Reimplemented from AgentRouteTable.

Definition at line 1089 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ GetHostPlen()

uint8_t InetUnicastAgentRouteTable::GetHostPlen ( const IpAddress &  ip_addr) const

Definition at line 1894 of file inet_unicast_route.cc.

◆ GetNext()

const InetUnicastRouteEntry* InetUnicastAgentRouteTable::GetNext ( const InetUnicastRouteEntry *  rt)
inline

Definition at line 187 of file inet_unicast_route.h.

Here is the call graph for this function:

◆ GetNextNonConst()

InetUnicastRouteEntry* InetUnicastAgentRouteTable::GetNextNonConst ( const InetUnicastRouteEntry *  rt)
inline

Definition at line 191 of file inet_unicast_route.h.

Here is the call graph for this function:

◆ GetSubnetAddress()

IpAddress InetUnicastAgentRouteTable::GetSubnetAddress ( const IpAddress &  addr,
uint16_t  plen 
) const

Definition at line 298 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ GetSuperNetRoute()

InetUnicastRouteEntry * InetUnicastAgentRouteTable::GetSuperNetRoute ( const IpAddress &  addr)

Definition at line 312 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ GetTableName()

virtual string InetUnicastAgentRouteTable::GetTableName ( ) const
inlinevirtual

Implements AgentRouteTable.

Definition at line 157 of file inet_unicast_route.h.

◆ GetTableType()

virtual Agent::RouteTableType InetUnicastAgentRouteTable::GetTableType ( ) const
inlinevirtual

Implements AgentRouteTable.

Definition at line 169 of file inet_unicast_route.h.

◆ NdpRoute()

void InetUnicastAgentRouteTable::NdpRoute ( DBRequest::DBOperation  op,
const string &  route_vrf_name,
const IpAddress &  ip,
const MacAddress &  mac,
const string &  nh_vrf_name,
const Interface &  intf,
bool  resolved,
const uint8_t  plen,
bool  policy,
const VnListType &  dest_vn_list,
const SecurityGroupList &  sg_list,
const TagList &  tag_list 
)
static

Definition at line 1478 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ ProcessAdd()

virtual void InetUnicastAgentRouteTable::ProcessAdd ( AgentRoute *  rt)
inlinevirtual

Reimplemented from AgentRouteTable.

Definition at line 172 of file inet_unicast_route.h.

Here is the call graph for this function:

◆ ProcessDelete()

virtual void InetUnicastAgentRouteTable::ProcessDelete ( AgentRoute *  rt)
inlinevirtual

Reimplemented from AgentRouteTable.

Definition at line 175 of file inet_unicast_route.h.

Here is the call graph for this function:

◆ ResyncRoute()

void InetUnicastAgentRouteTable::ResyncRoute ( const Peer *  peer,
const string &  vrf,
const IpAddress &  addr,
uint8_t  plen 
)

Definition at line 1300 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ ResyncSubnetRoutes()

bool InetUnicastAgentRouteTable::ResyncSubnetRoutes ( const InetUnicastRouteEntry *  rt,
bool  val 
)

Definition at line 181 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ ShouldAddArp()

bool InetUnicastAgentRouteTable::ShouldAddArp ( const Ip4Address &  ip)
static

Definition at line 1546 of file inet_unicast_route.cc.

Here is the call graph for this function:

◆ TraverseHostRoutesInSubnet()

void InetUnicastAgentRouteTable::TraverseHostRoutesInSubnet ( InetUnicastRouteEntry *  rt,
const Peer *  peer 
)

Definition at line 248 of file inet_unicast_route.cc.

Here is the call graph for this function:

Member Data Documentation

◆ rtnode_

Patricia::Node InetUnicastAgentRouteTable::rtnode_
private

Definition at line 454 of file inet_unicast_route.h.

◆ tree_

InetRouteTree InetUnicastAgentRouteTable::tree_
private

Definition at line 453 of file inet_unicast_route.h.

◆ type_

Agent::RouteTableType InetUnicastAgentRouteTable::type_
private

Definition at line 452 of file inet_unicast_route.h.

◆ walkid_

DBTableWalker::WalkId InetUnicastAgentRouteTable::walkid_
private

Definition at line 455 of file inet_unicast_route.h.


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