> From: Ermal Luçi [mailto:[email protected]] > Sent: July 25, 2009 5:30 PM > > >On Sat, Jul 25, 2009 at 9:55 PM, Evgeny > >Yurchenko<[email protected]> wrote: > > > > What I am trying to understand here is "how should it work"? > > 'IGMP proxy' means that it should proxy IGMP-packets. Ok, now I got > > it working with some modification of its code. > > Now IGMP from downstream interface is proxied to upstream interface. > > Device on upstream interface start multicasting on this network segment, > > so pfSense starts receiving multicast stream on upstream interface. > > Now the question, what should happen with these multicast packets? > > 1) kernel shoud route them to downstream interface. > > 2) igmpproxy should be receiving them and transmitting on downstream > > interface. > > Your thoughts please? > > > > Yeah kernel should do the routing. > I think there might be a sysctl for alloing multicast > forwarding to work but that should be activated when you > create the socket(to be verified!). > > I will give it a look soon and find the solution that feets all. > > Though on 2.0 based on 8.0 freebsd it works without as it is. > I was stupid enough sending multicast UDP traffic with TTL=1 (although settings in my player were telling me 10). Everything is working fine now. No static routes needed. Multicast routing is done by kernel. Upstream interface starts receiving mcast packets as soon as you call setsockopt(UdpSock, IPPROTO_IP, IP_ADD_MEMBERSHIP ... ). Downstream interface starts transmitting mcast packets as soon as you call setsockopt( MRouterFD, IPPROTO_IP, MRT_ADD_MFC, ...). The code of igmpproxy is heavily inherited from mrouted and actual proxying of IGMP-packets does not happen. It is not a problem if mcast sender on upstream interface does not care about memberships and just multicasts always, but if it is wise sender, or if sender is located in several routers upstream then IGMP is needed. So I fixed this small issue for 1.2.2 (I have only this development version). There was another problem with understanding interfaces consisting of more than 3 letters (em1 - ok, bge1 - can't start), also fixed. Could somebody validate and put my several lines of code in repository please? How does it work at all - if somebody found solution for some problem, what to do?
Thank you. Eugene. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] Commercial support available - https://portal.pfsense.org
