5 #ifndef vnsw_inet4_multicast_route_hpp
6 #define vnsw_inet4_multicast_route_hpp
18 const std::string &context);
22 return "Inet4MulticastAgentRouteTable";
30 const string &interface_name,
44 uint32_t ethernet_tag,
53 uint32_t ethernet_tag,
106 uint32_t ethernet_tag) :
119 boost::system::error_code ec;
120 sip_ = IpAddress::from_string(
"0.0.0.0", ec).to_v4();
125 boost::system::error_code ec;
126 dip_ = IpAddress::from_string(
"255.255.255.255", ec).to_v4();
127 sip_ = IpAddress::from_string(
"0.0.0.0", ec).to_v4();
148 #endif // vnsw_inet4_multicast_route_hpp
virtual Composite::Type GetMulticastCompType()
virtual const string GetAddressString() const
virtual bool ReComputePathDeletion(AgentPath *path)
const Ip4Address & dest_ip_addr() const
const std::string & vrf_name() const
virtual AgentRouteKey * Clone() const
Inet4MulticastAgentRouteTable(DB *db, const std::string &name)
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.
const Ip4Address & dest_ip_addr() const
virtual AgentSandeshPtr GetAgentSandesh(const AgentSandeshArguments *args, const std::string &context)
virtual KeyPtr GetDBRequestKey() const
Inet4MulticastRouteKey(const Peer *peer, const string &vrf_name, const Ip4Address &dip, const Ip4Address &sip, uint32_t ethernet_tag)
virtual ~Inet4MulticastRouteKey()
DISALLOW_COPY_AND_ASSIGN(Inet4MulticastAgentRouteTable)
static void Delete(const string &vrf_name, const Ip4Address &src_addr, const Ip4Address &grp_addr)
std::unique_ptr< DBRequestKey > KeyPtr
DISALLOW_COPY_AND_ASSIGN(Inet4MulticastRouteEntry)
Base class for all Route entries in agent.
virtual Agent::RouteTableType GetTableType() const
std::vector< ComponentNHKeyPtr > ComponentNHKeyList
Inet4MulticastRouteEntry * FindRoute(const Ip4Address &grp_addr, const Ip4Address &src_addr)
void AddVHostRecvRoute(const string &vm_vrf, const string &interface_name, const Ip4Address &addr, bool policy)
Inet4MulticastRouteKey(const string &vrf_name)
virtual string GetTableName() const
virtual string ToString() const
void set_dest_ip_addr(const Ip4Address &dst)
void set_src_ip_addr(const Ip4Address &src)
virtual bool ReComputePathAdd(AgentPath *path)
virtual ~Inet4MulticastAgentRouteTable()
Inet4MulticastRouteEntry(VrfEntry *vrf, const Ip4Address &dst, const Ip4Address &src)
static void DeleteMulticastRoute(const string &vrf_name, const Ip4Address &src_addr, const Ip4Address &grp_addr)
virtual bool DBEntrySandesh(Sandesh *sresp, bool stale) const
class boost::shared_ptr< AgentSandesh > AgentSandeshPtr
const std::string & name() const
DBTableWalker::WalkId walkid_
virtual Agent::RouteTableType GetRouteTableType()
boost::asio::ip::address_v4 Ip4Address
virtual string ToString() const
virtual void SetKey(const DBRequestKey *key)
const Ip4Address & src_ip_addr() const
virtual Agent::RouteTableType GetTableType() const
const Peer * peer() const
virtual ~Inet4MulticastRouteEntry()
const std::string & vrf_name() const
Inet4MulticastRouteKey(const string &vrf_name, const Ip4Address &dip, const Ip4Address &sip)
virtual int CompareTo(const Route &rhs) const
static DBTableBase * CreateTable(DB *db, const std::string &name)
static void AddMulticastRoute(const string &vn_name, const string &vrf_name, const Ip4Address &src_addr, const Ip4Address &grp_addr, ComponentNHKeyList &component_nh_key_list)
virtual const string GetSourceAddressString() const
DISALLOW_COPY_AND_ASSIGN(Inet4MulticastRouteKey)
Inet4MulticastRouteKey(const string &vrf_name, const Ip4Address &dip)
void McRtRouteNotifyDone(DBTableBase *base, DBState *)
virtual AgentRoute * AllocRouteEntry(VrfEntry *vrf, bool is_multicast) const
const Ip4Address & src_ip_addr() const