Re: [Jack-Devel] Multicast interface selection + IPv6 support

PrevNext  Index
DateSat, 16 Mar 2013 23:50:55 +0100
From Stéphane Letz <[hidden] at grame dot fr>
To"Ruslan N. Marchenko" <[hidden] at ruff dot mobi>
Cc[hidden] at jackaudio dot org
In-Reply-ToRuslan N. Marchenko Re: [Jack-Devel] Multicast interface selection + IPv6 support
Follow-UpAdrian Knoth Re: [Jack-Devel] Multicast interface selection + IPv6 support
I cannot test myself.

Anyone else to  test and review the code?

Stéphane 


Le 14 mars 2013 à 23:13, Ruslan N. Marchenko <[hidden]> a écrit :

> Hi there,
> 
> Any comments, external testing, feedback, anything?
> It just works in my home ipv6 network as expected so I don't feel like changing anything although I'm sure with different usage patterns some issues should appear (they usually do).
> May be test case description will help:
> 
> Step1: Install debs from ppa or build&install from git sources. That's obvious.
> 
> Step2: 
> Setting up multihomed manager
> jack_load netmanager -- "-a ff05::9f -f all"
> Control check - "ip maddr" - specified addr should appear under all configured network ports.
> 
> Step3:
> Firing up slave adapter on default interface
> jack_load net netadapter -- -aff05::9f
> Control check - "tcpdump -n ip6 and port 19000" should show mcast ipv6 probes
> 
> Step4:
> Firing up slave driver on non-default ethernet (eth0) when default is f.i. wifi (wlan0)
> jackd -d net -a ff05::9f -f eth0
> Control check - "tcpdump -n -i eth0 ip6 and port 19000" should show mcast ipv6 probes
> 
> Dualstack here works only on unicast since multicast sockets are incompatible:
> 
> Master:
> jack_load dual netmanager -- -a::
> 
> Slave:
> jack_load v4 netadapter -- -a10.0.0.1
> 
> Maybe if we allow several masters we could load separate managers for v4 and v6
> 
> Regards,
> Ruslan
> 
> On Sun, Mar 03, 2013 at 10:06:03PM +0100, Ruslan N. Marchenko wrote:
>> Hi there,
>> 
>> I've opened a new pull request with a bit reworked interface selection and IPv6 support commits.
>> 
>> Interface selection: slaves could be bound only to single interface so option 'all' for them not applicable.
>> IPv6 - I've tried to implement the socket in most transparent way to avoid uplevel changes however there are fundamental obstacles: Multicast with IPv6 is not interoperable, hence changes in class usage are inevitable.
>> The major point now is that socket should be probed before usage. With unicast addresses this will happen automaticallu once sufficient information is available (address/port). With multicast we cannot rely on delayed probe hence socket should be probed as soon as we got address data - before or together with NewSocket call.
>> 
>> One bug in GLIBC socket implementation was revealed during the work, which resulted in patch submission to glibc upstream and ugly _workaround_ in the UnixSocket implementation. The outcome of the bug (without a kludge) will result in addressless passive probe (bind to any on localhost when no adddress was specified explicitly) using IPv4 family even when v6 is available, so the kludge just blindly reorders the result.
>> 
>> Other than that - you can use https://launchpad.net/~rufferson/+archive/snd if interested in testing.
>> 
>> The branch is under https://github.com/rufferson/jack2/tree/netjack-dev.
>> 
>> Regards,
>> Ruslan
>> 
>> Jack-Devel mailing list
>> [hidden]
>> http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
>> 
> 
> Jack-Devel mailing list
> [hidden]
> http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
PrevNext  Index

1363474262.19253_0.ltw:2, <27608BFA-EDAE-4FED-BE22-01BFA3561C36 at grame dot fr>