Hello Sebastian,
Thanks for giving insight of the behavior.
Your suggestion about #2 look fine. But, as per the current usage of
mcproxy in our scope, we may not switch to other service.
I am trying to search other options like, any filters/configuration in
mcproxy.conf to add, so that forwarding to upstream won't occur even
without subscribers.
Or, trying to check below code snippet
in "mcproxy/src/proxy/simple_mc_proxy_routing.cpp" to modify below
function and give a try.
Please share, if you have any suggestion for my use case ? Thanks again
std::list<std::pair<source, std::list<unsigned int>>>
simple_mc_proxy_routing::collect_interested_interfaces(const addr_storage&
gaddr, const source_list<source>& slist) const
{
HC_LOG_TRACE("");
const std::map<addr_storage, unsigned int>& input_if_index_map =
m_data.get_interface_map(gaddr);
//add upstream interfaces
std::list<std::pair<source, std::list<unsigned int>>> rt_list;
for (auto & s : slist) {
auto input_if_it = input_if_index_map.find(s.saddr);
if (input_if_it == input_if_index_map.end()) {
HC_LOG_ERROR("input interface of multicast source " << s.saddr
<< " not found");
return rt_list;
}
if (m_p->is_downstream(input_if_it->second)) {
auto input_if_it = input_if_index_map.find(s.saddr);
if (input_if_it == input_if_index_map.end()) {
HC_LOG_ERROR("input interface of multicast source " <<
s.saddr << " not found");
continue;
}
std::list<unsigned int> up_if_list;
for (auto ui : m_p->m_upstreams) {
if (check_interface(IT_UPSTREAM, ID_OUT, ui.m_if_index,
input_if_it->second, gaddr, s.saddr)) {
if (is_rule_matching_type(IT_UPSTREAM, ID_OUT,
RMT_ALL)) {
* up_if_list.push_back(ui.m_if_index);
////////////// I am assuming this is the location of the code, where the
upstream IfIndex is getting added OUT-VIF list of the MCast Route Cache
list using MRT_ADD_MFC*
.
On Friday, November 24, 2017 at 6:34:47 PM UTC+5:30, Sebastian Woelke wrote:
>
> Hello Ganesh,
>
> > 1) Is the above observation valid one ?
> Yes, its the intended behavior. See
> https://tools.ietf.org/html/rfc4605#section-4.2
> Multicast Data on the Upstream is only forwarded to the Downstream if
> subscribers exist, but not vice versa.
>
> > 2) How to avoid doing soo ?
> For this minimalist scenario you could switch Upstream and Downstream.
> If a simple multicast forwarder is not sufficient, you might require a
> multicast routing protocol such as PIM or DVMRP
>
> Regards,
> Sebastian
>
> On Friday, November 24, 2017 at 8:30:05 AM UTC+1, Ganesh Reddy wrote:
>>
>> Dear all,
>>
>> I am trying to analyze below case with mcproxy
>>
>>
>> H1 ======================== Mcproxy/Router ====================== H2
>> (downstream)eth0
>> eth1(upstream)
>>
>> my mcproxy.conf looks as below:
>>
>> *protocol IGMPv3;*
>> *pinstace myProxy: eth1 ==> eth0;*
>>
>> Description:
>>
>> When i send a UDP stream from H1, the mcproxy is forming multicat route
>> and blindly forwarding onto its configured upstream, irrespective of
>> subscriber listening @H2.
>>
>> 1)Is the above observation valid one ?
>> 2)Is this a known limitation ? How to avoid doing soo ?
>>
>> Please help me to analyze.
>>
>> Thanks,
>> Ganesh
>>
>
--
You received this message because you are subscribed to the Google Groups
"Multicast Proxy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.