[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(usagi-users 04035) IPV6_ROUTER_ALERT and mcast-tools
- To: usagi-users@xxxxxxxxxxxxxx
- Subject: (usagi-users 04035) IPV6_ROUTER_ALERT and mcast-tools
- From: "Ian Brown" <ianbrn@xxxxxxxxx>
- Date: Sun, 6 Apr 2008 17:05:04 +0300
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; bh=wzaTca66ts7EIENB47LRX9UotPOV2WrEureBhSmIVEA=; b=phgjDErIg7gJpTPr/vStEXppOxyqUd/DyvL1tTC0eQ7ZVEWl1L1eXZ5ndQak9+OoheU5mqJ6kaDyFjGtqqMSLGIgYYf8EgVNxHQHFjZnBMjnTZKN+dqSe5+MWB7X4FVelnk+SCEfYX1yqH/iF84HRzcpItE7ej3kkc+XjbL1yLw=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=KI0bBTgh5j1VglSBtaQy5gKcY3z4Oo0n8RF4Vwvv2225U93Ceb3CYLPTe7wGWMAEBuFJci6DK35bVIfObUh5hxrlLcHGvh+3qfcJETWT02F1bmu/M0w4MSMzhAteblK4y0cjenK9ksOPdjfNDovzauzeaTy2N2yNfC/jouEBPDE=
- Reply-to: usagi-users@xxxxxxxxxxxxxx
Hello,
I tried to run the pim6sd daemon from mcast-tools against a kernel
with Multicast Routing support. I followed this thread:
http://www.spinics.net/lists/netdev/msg59211.html
When starting the pim6sd daemon, I saw this error in the kernel log:
pim6sd[2682]: warning - setsockopt(IPV6_ROUTER_ALERT): Invalid argument
And the daemon ***did not*** start.
As far as I understand, there is a problem here.
Because the mld6 socket which we try to open, calls
setsockopt with IPV6_ROUTER_ALERT; on the other hand, this
mld6 socket is an ICMPV6 socket :
See in init_mld6() , mld6.c :
...
mld6_socket = socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6))
...
And the linux kernel (also the USAGI Multicast Routing) can get
IPV6_ROUTER_ALERT
for setsockopts **only** on RAW sockets
see ip6_ra_control() in ipv6_sockglue.c:
..
/* RA packet may be delivered ONLY to IPPROTO_RAW socket */
if (sk->sk_type != SOCK_RAW || inet_sk(sk)->num != IPPROTO_RAW) {
return -EINVAL;
}
So , should this code in pim6sd be changed ? (as it seems, this can't work).
Or maybe the kernel code in ip6_ra_control() which checks for RAW sockets ?
I saw, following this warning , another message: "can't forward: only
one enabled vif"
I don't know if it has to do with the "warning -
setsockopt(IPV6_ROUTER_ALERT): Invalid argument" warning.
Any ideas ?
Regards,
IB