[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MirageOS-devel] mirage-net-unix problems



Ok,Â

I modified mirage-net-unix to output a reasonable error message and apparently tun0 is being considered "disconnected" during a read operation.
I have the tests for it at least printing out just one "got packet of len [length]" now and then the interface gets "disconnected". This is the code that detects the disconnection:

Lwt_cstruct.read t.dev buf >>= function |(-1) -> (* EAGAIN or EWOULDBLOCK *) read t page |0 -> (* EOF *) return (`Error `Disconnected)

Is 0 really an EOF? Should it be considered a disconnect?

Anyway, I got the tests for mirage-net-unixÂfullyÂworking with Ubuntu 12.04.5, and I assume I'll be able to get Mirage OS proper working now.

Should I submit a pull request for the modifications I made to mirage-net-unix?

Thanks for all your help!

-Robert


On Fri, May 1, 2015 at 8:40 AM, Robert Ream <robertream@xxxxxxxxx> wrote:
Hmm, ok I'll try a VM with a different OS to see if I can get it to work, maybe Ubuntu 15 is a bit too cutting edge... :-/


On Fri, May 1, 2015 at 6:55 AM, Luke Dunstan <lukedunstan81@xxxxxxxxx> wrote:
Actually, I just tried it and I have the same problem with tap0 not
being persistent on Ubuntu 14.04, and this is because
https://github.com/mirage/ocaml-tuntap hasn't been released yet since
PR #9.

However, I don't have any "terminating" problem with tap0, so I think
that problem is most likely unrelated to the persistence.

Luke

On 1 May 2015 at 16:18, Anil Madhavapeddy <anil@xxxxxxxxxx> wrote:
> This sounds like a problem with persistent vs non-persistent tap interfaces.
> This functionality is unfortunately very non-portable (MacOS X, FreeBSD and
> Linux) all have different behaviour. The functionality did change between
> version 2.2.0 and 2.1.0 to support persistent interfaces:
> https://github.com/mirage/mirage-net-unix/releases
>
> So I wonder if something needs to be done to keep it around on your
> particular setup.
>
> (This isn't helped by me now using mirage-net-macosx for most of my
> day-to-day dev, which uses a completely different codepath as tuntap no
> longer works usefully on OSX as of Yosemite).
>
> -anil
>
> On 30 Apr 2015, at 23:49, Robert Ream <robertream@xxxxxxxxx> wrote:
>
> An update: I just cloned the mirage-net-unix repo and ran the tests. This is
> what I got:
>
> sudo ./test.native
> plugging into tap0 with mac c2:9d:56:19:d7:2c..
> Netif: connect tap0
> connected
> Netif: error, terminating listen loop
> .
> Ran: 1 tests in: 0.00 seconds.
> OK
>
> And the tun0 interface disappeared as well.
>
>
>
> On Thu, Apr 30, 2015 at 2:55 PM, Robert Ream <robertream@xxxxxxxxx> wrote:
>>
>> Ok, I'm still stumped.
>>
>> Two things happen with pretty much all of the network examples when I
>> build and execute them for unix: 1) they promptly exit with a "Netif: error,
>> terminating listen loop" and 2) tun0 disappears and must be recreated every
>> time.
>>
>> 1) I tracked down the lines of code in mirage-net-unix that cause this
>> error message:
>>
>> let page = Io_page.get 1 in read t page >>= function | `Error _ -> printf
>> "Netif: error, terminating listen loop\n%!"; return ()
>>
>> So it is running into an error when reading a page from the network.
>> It would be nice to pretty print the _ of `Error _ instead of drop it on
>> the floor.
>>
>> 2) I couldn't find anywhere in the code that remotely appeared to be
>> messing with or deleting the tun0 interface. But I wonder if the error I'm
>> seeing is due to the tun0 disappearing?
>>
>> -Robert
>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
>
>
> _______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.