Discussion:
Multicast Client Problem
Arranz Llorente, Victor
2005-04-22 08:33:34 UTC
Permalink
When i try to send a multicast packet from a client with this command.
./iperf -c 224.0.10.10 -u --ttl 5 -t 5 -i 1
Or
./iperf -c 224.0.10.10 -u -t 5 -i 1
Its returns a "Multicast ttl failed: invalid argument" but it starts to
send the packet.
./iperf -s -u -B 224.0.10.10 -i 1
And recognize the client but not recognize the packets from the client.

I'am using Solaris 8 (Sparc Version) and i have 5 ethernet interfaces
(one is the internal interface [eri0], and four is in a extra board
[qfe0,qfe1,qfe3,qfe4])
debbie fligor
2005-04-22 16:04:38 UTC
Permalink
Post by Arranz Llorente, Victor
When i try to send a multicast packet from a client with this command.
./iperf -c 224.0.10.10 -u --ttl 5 -t 5 -i 1
Or
./iperf -c 224.0.10.10 -u -t 5 -i 1
Its returns a "Multicast ttl failed: invalid argument" but it
starts to send the packet.
./iperf -s -u -B 224.0.10.10 -i 1
And recognize the client but not recognize the packets from the client.
I'am using Solaris 8 (Sparc Version) and i have 5 ethernet
interfaces (one is the internal interface [eri0], and four is in a
extra board [qfe0,qfe1,qfe3,qfe4])
you didn't say which version of iPerf you're using, the 2.01 version
doesn't recognize the ttl flag, no matter what you try and set it to,
it wont go, it just stays at 1.

the 1.7.0 version does somewhat better, but I know that someone else
was having problems getting it working on solaris, here's what he did
Post by Arranz Llorente, Victor
I finally succeeded in running multicast tests on Solaris 2.8 with
Iperf 1.7.0 after modifying Socket.cpp (val parameter casted on
u_char).
/* -------------------------------------------------------------------
* Sets the Multicast TTL for outgoing packets.
* ------------------------------------------------------------------- */
void Socket::McastSetTTL( int val, SocketAddr &inAddr ) {
u_char ttl;
ttl = (u_char) val;
#ifdef MCAST
if ( !inAddr.isIPv6() ) {
int rc = setsockopt( mSock, IPPROTO_IP, IP_MULTICAST_TTL,
(char*) &ttl, sizeof(ttl));
WARN_errno( rc == SOCKET_ERROR, "multicast ttl" );
}
#ifdef IPV6_MULTICAST_HOPS
else {
int rc = setsockopt( mSock, IPPROTO_IPV6, IPV6_MULTICAST_HOPS,
(char*) &val, sizeof(val));
WARN_errno( rc == SOCKET_ERROR, "multicast ttl" );
}
#endif
#endif
}
// end McastSetTTL
Jean-Marc Lacroix
I hope this helps.
--
-debbie
Debbie Fligor, n9dn Network Engineer, CITES, Univ. of Il
email: ***@uiuc.edu <http://www.uiuc.edu/ph/www/fligor>
"Every keystroke can be monitored. And the computers never forget."
Continue reading on narkive:
Loading...