Hi UML'ers,

OK, I'm kinda newbie on this, and maybe I am expecting something wrong but here is my situation:

I have a UML built on linux-2.4.28 which is running fine.  I can set up several of these UMLs and network them together using uml_switch and that works fine, normally.  But I want to do something crazy, like this:

1)  machine 1  -  eth0 is 192.168.0.10
2)  machine 2  -  eth0 is 192.168.0.20
3)  machine 3  -  eth0 is 192.168.0.30

If I send a simple message from machine 1 to machine 2, it works.  Same for all possible combinations of 2 machines.  Now, I want to send a single Multicast message from machine 1 to machine 2 and machine 3 on a group IP address, and have them both receive the message.  I have a version of smcroute which allows me to statically set up multicast functionality, supposedly, and lets me have each machine join the group.  I run smcroute on each machine and join the group.  But then when I send to the group address (234.100.0.10) from machine 1, the message is not received on machines 2 and 3.

I decided something in uml_switch was causing trouble, and in an effort to isolate that, I modified uml_switch to print out the packets it receives from the UMLs and sends to the UMLs.  I grab this packet data at handle_sock_data(...) which is where I think uml_switch gets the data packet from 1 UML to send to another UML, and then again at send_sock(...) which is the socket sender.  Now for normal transmissions from machine 1 to machine 2 and so forth, I can see this data and recognize what is in there.  Even when I issue a join command for a UML, I can see that UML pop out a message which I believe (I have not decoded it) is an IGMP message for the rest of the world stating that the join has been issues.  This would be for multicast capable routers, so the routing tables can be adjusted.

The problem I have is that when I send out a regular message from machine 1 targetted at the group IP address, NOTHING prints out from the uml_switch, where I am monitoring the traffic.  It makes me think that something is going on with the UML so that it does not allow multicast messages to get out.  I guess I think this, because i see in the uml_switch, there is a possible block of any message where the I/G bit in the MAC address is set (broadcast or group messages).

First question:

1)  Am I crazy, or does the UML just not want to do multicast?

2)  Am I looking in all the right places in the uml_switch to watch the data, or did I just miss the multicast data because I am not looking in the right place for it?

3)  What is with this macro "#define IS_BROADCAST(addr) ((addr[0] & 1) == 1)" in the uml_switch.

Please help as quick as possible as I have a deadline to meet.

Much Thanks to All,
Ben Evans

On 2/1/06, Blaisorblade <[EMAIL PROTECTED]> wrote:
I'm forwarding the email to the ML since it's intended for that (and I've no
time to answer right now).

Btw, I think the problem is more likely to lie on port = 0 than on INADDR_ANY
(you'd at least need to be root to use a port < 1024, and I think port 0 is
invalid).

----------  Forwarded Message  ----------

Subject: Re: [uml-user] Static Multicast Routing on UML...
Date: Wednesday 01 February 2006 00:09
From: frank evans < [EMAIL PROTECTED]>
To: Blaisorblade <[EMAIL PROTECTED]>

HI UML'ers...

OK, I have another issue:  I have a UML (linux-2.4.28 with Debian FS)
running, with eth0 hooked to the uml_switch.  I have a little program I run
on the UML, that wants to open up a UDP socket with an address of INADDR_ANY,
and a Port = 0.  When the program does a connect( Sock, (struct sockaddr
*)&SockAdr, sizeof( SockAdr ) call which returns an error code of ERRO: UDP
socket connect; Errno(22): Invalid argument.  I am wondering if there is
something that does not like INADDR_ANY?

Got any ideas?

Thanks,
Ben Evans

On 1/27/06, frank evans <[EMAIL PROTECTED]> wrote:
> Hi UML'ers,
>
> OK, NEVERMIND!  It all works fine...I just can't type...
>
> Best Regards,
> Ben Evans
>
> On 1/27/06, frank evans <[EMAIL PROTECTED]> wrote:
> > Hi UML'ers,
> >
> > Well, you have all been helpful with my previous problems, so now I have
> > another question:
> >
> > 1)  I want to set up a UML with 3 ethernet ports - eth0, eth1, and eth2
> > - each being connected to a separate virtual network.  >From reading about
> > the daemon, it seems I can get this done.  I do a cd
> > ~/Desktop/UML/linux-2.4.28 to get to the folder where all my Linux stuff
> > is kept.  I plan to keep the uml_switch daemon sockets here, too.
> >
> > a)  I launch the uml_switch 3 times using uml_switch -unix ./Sx where x
> > = 0, 1, and 2.  That gives me 3 separate instances of uml_switch running
> > each with its own virtual socket.
> >
> > b)  I launch linux with ./linux ubd0=./root_fs eth0=daemon,
> > 192.168.0.10,unix,./S0 eth1=daemon, 192.168.0.11,unix,./S2
> > eth2=daemon,192.168.0.12,./S3 which then boots up linux.  I explicitly
> > assigned IP addresses to each of the virtual sockets just so I could keep
> > direct control of those socket IP assignments on the host, and so I would
> > know what they were.
> >
> > c)  Now, on the UML, when I do an ifconfig to set up eth0, for example
> > ifconfig eth0 192.168.0.10 , I get an error message SIOCSIFFLAGS: No such
> > file or directory.  So I try it again with a different address, but I get
> > the same error message.
> >
> > Any ideas?
> >
> > Thanks,
> > Ben Evans
> >
> > On 1/27/06, frank evans < [EMAIL PROTECTED]> wrote:
> > > Yes, and another UML'er has pointed me to patches he used successfully
> > > to compile with gcc4.  I'm going to give them a try...
> > >
> > > On 1/27/06, Blaisorblade <[EMAIL PROTECTED] > wrote:
> > > > On Friday 27 January 2006 19:52, frank evans wrote:
> > > > > I changed the defconfig in arch/um to include CONFIG_IP_MROUTE and
> > > >
> > > > that set
> > > >
> > > > > it up correctly...
> > > > >
> > > > > Much thanks to all...
> > > > >
> > > > > Now I have another question:
> > > > >
> > > > > I patched linux-2.4.28 with the uml patch 2.4.27-1, did the
> > > >
> > > > configs, make,
> > > >
> > > > > etc.  If I make linux on one host, running Fedora Core 3, with a
> > > > > gcc3.4.2everything works fine.  If I make linux on a different
> > > >
> > > > host,
> > > >
> > > > > running Fedora
> > > > > Core 4, with a gcc 4.0.0, I get a bunch of compile warnings about
> > > > > conflicting signage, and so forth.  I wonder what might be causing
> > > >
> > > > this.
> > > >
> > > > I fixed that problem in 2.6, but since Linux 2.4 does not support
> > > > Gcc 4.0, I
> > > > decided not to fix that error - I don't know if other problems may
> > > > arise.
> > > >
> > > > > I
> > > > > would not have thought there would be that much difference between
> > > >
> > > > the
> > > >
> > > > > gcc's.
> > > >
> > > > Instead there is a lot of difference... until a very few (1-2)
> > > > releases ago
> > > > you could still see patches as "fix this which doesn't compile with
> > > > gcc 4".
> > > >
> > > > --
> > > > Inform me of my mistakes, so I can keep imitating Homer Simpson's
> > > > "Doh!".
> > > > Paolo Giarrusso, aka Blaisorblade (Skype ID "PaoloGiarrusso", ICQ
> > > > 215621894)
> > > > http://www.user-mode-linux.org/~blaisorblade<http://www.user-mode-lin
> > > >ux.org/%7Eblaisorblade>
> > > >
> > > >
> > > >
> > > >
> > > > ___________________________________
> > > > Yahoo! Messenger with Voice: chiama da PC a telefono a tariffe
> > > > esclusive
> > > > http://it.messenger.yahoo.com

-------------------------------------------------------

--
Inform me of my mistakes, so I can keep imitating Homer Simpson's "Doh!".
Paolo Giarrusso, aka Blaisorblade (Skype ID "PaoloGiarrusso", ICQ 215621894)
http://www.user-mode-linux.org/~blaisorblade




___________________________________
Yahoo! Messenger with Voice: chiama da PC a telefono a tariffe esclusive
http://it.messenger.yahoo.com


Reply via email to