Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Jul 2007 16:22:41 -0700
From:      Julian Elischer <julian@elischer.org>
To:        "Bruce M. Simpson" <bms@incunabulum.net>
Cc:        freebsd-net@freebsd.org, rwatson@freebsd.org, "Christian S.J. Peron" <csjp@FreeBSD.org>
Subject:   Re: divert and deadlock issues
Message-ID:  <46AFC441.2070502@elischer.org>
In-Reply-To: <46AFB6C9.20401@incunabulum.net>
References:  <20070731162515.GA3684@sub> <46AF7E57.5020209@incunabulum.net>	<20070731204156.GA7614@sub> <46AFB6C9.20401@incunabulum.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Bruce M. Simpson wrote:
> Christian S.J. Peron wrote:
>>> I can't think of a reason why a user would wish to supply any 
>>> multicast socket options to a divert socket, other than the 'small' 
>>> ones, i.e. IP_MULTICAST_TTL/IF/LOOP/VIF.
>>>     
>>
>> Why would these options ever be set on the divert socket itself though?
>> To me it would make sense if these options were set on the network
>> socket that originally sent the multicast packet itself.
>>   
> They shouldn't be necessary, however I can foresee situations where 
> someone might well want to redirect multicast datagrams traversing an 
> IPPROTO_DIVERT socket, by using these socket options. [Recall that 
> FreeBSD's IPv4 stack currently uses the destination address as the sole 
> primary key for lookups in the forwarding information base's radix trie.]
> 
> This is however very unlikely, so my last suggestion, that multicast 
> options be deprecated or forbidden for IPPROTO_DIVERT sockets, stands.


Originally we wanted a way to be able to inject any kind of 
ip packet that could be generated, because the aim was to 
allow a user agent to do arbitrary processing on packets. however
to be really correct, a divert injection should occur at teh position of the firewall
where diversion occurs but there is no way to do that and anyhow they need
to get some of the internal state added to them before they get there, so 
puting them in via ip_output seemed the way to go.

I've never had much to do with multicast, so I'm not sure if it makes sense
to inject there, but if you wanted to divert multicast packets
and change them slightly, and then reinject them, it would be a blow 
to discover that you couldn't.


> 
> Kind regards
> BMS
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?46AFC441.2070502>