5 #ifndef vnsw_bridge_route_hpp
6 #define vnsw_bridge_route_hpp
20 virtual std::string
GetTableName()
const {
return "BridgeAgentRouteTable";}
25 const std::string &context);
36 const std::string &vn_name,
42 &component_nh_key_list,
44 bool learning_enabled);
47 const std::string &vn_name,
50 uint32_t ethernet_tag,
54 &component_nh_key_list,
56 bool learning_enabled);
59 uint32_t ethernet_tag,
63 uint32_t ethernet_tag,
68 const std::string &vn_name,
69 const std::string &interface,
73 const std::string &vn_name);
78 uint32_t ethernet_tag,
83 uint32_t ethernet_tag,
109 virtual std::string
ToString()
const;
153 virtual std::string
ToString()
const;
166 #endif // vnsw_bridge_route_hpp
const std::string & vrf_name() const
void DeleteBridgeRoute(const AgentRoute *rt)
static void Delete(const Peer *peer, const std::string &vrf_name, const MacAddress &mac, uint32_t ethernet_tag)
static DBTableBase * CreateTable(DB *db, const std::string &name)
BridgeRouteKey(const Peer *peer, const std::string &vrf_name, const MacAddress &mac, uint32_t ethernet_tag=0)
static AgentRouteData * BuildBgpPeerData(const Peer *peer, const string &vrf_name, const std::string &vn_name, uint32_t label, int vxlan_id, uint32_t ethernet_tag, uint32_t tunnel_type, Composite::Type type, ComponentNHKeyList &component_nh_key_list, bool pbb_nh, bool learning_enabled)
DISALLOW_COPY_AND_ASSIGN(BridgeRouteEntry)
static void DeleteBroadcastReq(const Peer *peer, const std::string &vrf_name, uint32_t ethernet_tag, COMPOSITETYPE type)
Agent supports multiple route tables - Inet-unicast (IPv4/IPv6), Inet-multicast, bridge, EVPN (Type2/Type5). This base class contains common code for all types of route tables.
virtual void SetKey(const DBRequestKey *key)
bool is_multicast() const
virtual BridgeRouteKey * Clone() const
virtual std::string GetTableName() const
AgentPath * FindEvpnPathUsingKeyData(const AgentRouteKey *key, const AgentRouteData *data) const
uint8_t prefix_length_
The prefix length.
const VmInterface * FindVmFromDhcpBinding(const MacAddress &mac)
virtual Agent::RouteTableType GetRouteTableType()
std::unique_ptr< DBRequestKey > KeyPtr
Base class for all Route entries in agent.
BridgeRouteEntry * FindRouteNoLock(const MacAddress &mac)
virtual std::string ToString() const
virtual bool ValidateMcastSrc() const
std::vector< ComponentNHKeyPtr > ComponentNHKeyList
void AddBridgeRoute(const AgentRoute *rt)
virtual AgentPath * FindPathUsingKeyData(const AgentRouteKey *key, const AgentRouteData *data) const
MacAddress prefix_address_
The prefix address.
BridgeRouteEntry * FindRoute(const MacAddress &mac)
virtual AgentRoute * AllocRouteEntry(VrfEntry *vrf, bool is_multicast) const
BridgeAgentRouteTable(DB *db, const std::string &name)
DISALLOW_COPY_AND_ASSIGN(BridgeRouteKey)
virtual bool ReComputePathAdd(AgentPath *path)
DISALLOW_COPY_AND_ASSIGN(BridgeAgentRouteTable)
uint32_t ethernet_tag() const
virtual ~BridgeRouteEntry()
static const MacAddress & BroadcastMac()
class boost::shared_ptr< AgentSandesh > AgentSandeshPtr
const std::string & name() const
virtual void UpdateDependantRoutes()
virtual Agent::RouteTableType GetTableType() const
virtual const std::string GetAddressString() const
static void AddBridgeBroadcastRoute(const Peer *peer, const string &vrf_name, uint32_t ethernet_tag, AgentRouteData *data)
BridgeRouteEntry(VrfEntry *vrf, const MacAddress &mac, Peer::Type type, bool is_multicast)
virtual AgentSandeshPtr GetAgentSandesh(const AgentSandeshArguments *args, const std::string &context)
virtual ~BridgeRouteKey()
virtual std::string ToString() const
uint8_t prefix_length() const
The length of L3 IP prefix (if present) associated with this L2 address.
DBTableWalker::WalkId walkid_
void DeleteMacVmBindingRoute(const Peer *peer, const std::string &vrf_name, const MacAddress &mac, const VmInterface *vm_intf)
virtual ~BridgeAgentRouteTable()
const Peer * peer() const
static void AddBridgeReceiveRoute(const Peer *peer, const std::string &vrf_name, const MacAddress &mac, const std::string &vn_name, const std::string &interface, bool policy)
const std::string & vrf_name() const
virtual bool DBEntrySandesh(Sandesh *sresp, bool stale) const
const MacVmBindingPath * FindMacVmBindingPath() const
virtual int CompareTo(const Route &rhs) const
static AgentRouteData * BuildNonBgpPeerData(const string &vrf_name, const std::string &vn_name, uint32_t label, int vxlan_id, uint32_t tunnel_type, Composite::Type type, ComponentNHKeyList &component_nh_key_list, bool pbb_nh, bool learning_enabled)
void AddMacVmBindingRoute(const Peer *peer, const std::string &vrf_name, const MacAddress &mac, const VmInterface *vm_intf, bool flood_dhcp)
virtual bool ReComputePathDeletion(AgentPath *path)
virtual const std::string GetSourceAddressString() const
virtual KeyPtr GetDBRequestKey() const
AgentPath * FindMulticastPathUsingKeyData(const AgentRouteKey *key, const AgentRouteData *data) const
virtual Agent::RouteTableType GetTableType() const
const MacAddress & GetMac() const
This class defines interfaces for manipulating the prefix of a route stored in an Agent VRF table...
virtual uint32_t GetActiveLabel() const