Thanks Mindy and everyone for all the input! Doing a make clean and running
with elevated privileges has moved the bar, I'm now building and running
the network samples. Yay!

But... I've run into more issues.

First, this is the output when I run sudo ./mir-ping:

plugging into tap0 with mac c2:9d:56:19:d7:2c..
Netif: connect tap0
starting...
ARP: sending gratuitous from 10.0.0.2
IP6
Netif: error, terminating listen loop
done!

I'm not sure what I was suppose to expect as the output but it says there
was an error and that "IP6" is actually coloured red so that can't be good?
But the error might be related to the second issue that I see which is that
whenever I run a network related sample, the tap0 interface just
disappears, or maybe gets deleted. I am unfortunately fairly inexperienced
with tun/tap so I'm not sure if this is the expected behaviour, but I'm
guessing these two errors might be related to each other and I'm on the
verge of success if I fix this last problem.

-Robert


On Wed, Apr 29, 2015 at 7:56 AM, Mindy <[email protected]> wrote:

>
>
> On 04/29/2015 11:58 AM, Justin Cormack wrote:
>
>> On 29 April 2015 at 10:35, Thomas Gazagnaire <[email protected]>
>> wrote:
>>
>>> Third, when I managed to get one of the network samples building, for
>>> example "ping", I couldn't get the unikernel running locally with a
>>> tun/tap
>>> device I created. Even though I use tapctl to create a tap0 device owned
>>> by
>>> my user account, just like the tutorial advises, when I go to execute the
>>> unikernel I still get this error:
>>>
>>> Fatal error: exception Failure("net_tap0")
>>> Raised at file "src/core/lwt.ml", line 788, characters 22-23
>>> Called from file "src/unix/lwt_main.ml", line 34, characters 8-18
>>> Called from file "main.ml", line 47, characters 2-28
>>>
>>>
>>> This is rather cryptic but might indicate that you need to run the
>>> command
>>> using sudo.
>>>
>> What does strace show here? It might be permissions but if you made
>> the device owned by your user account it shouldnt be. You may need to
>> make /dev/net/tun world read and write (which is safe to do).
>>
> On 14.04.2, I need to run with sudo even if the device is owned by my
> user, I've made it with tunctl -u me, and the mode is u+rwx, otherwise
> strace shows
>
> open("/dev/net/tun", O_RDWR)            = 4
> ioctl(4, TUNSETIFF, 0x7fffb7dd0a20)     = 0
> ioctl(4, TUNSETPERSIST, 0)              = 0
> fcntl(4, F_GETFL)                       = 0x8002 (flags O_RDWR|O_LARGEFILE)
> fcntl(4, F_SETFL, O_RDWR|O_NONBLOCK|O_LARGEFILE) = 0
> socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 5
> ioctl(5, SIOCGIFFLAGS, {ifr_name="tap0",
> ifr_flags=IFF_BROADCAST|IFF_MULTICAST}) = 0
> ioctl(5, SIOCSIFFLAGS, {ifr_name="tap0", ???}) = -1 EPERM (Operation not
> permitted)
>
> So you may need to run it with elevated privileges even if it seems like
> you should be able to get away with running it as yourself.
>
> (Thanks for the bug report; attempting to reproduce it got me to actually
> use the tap interface for the first time.)
>
> -Mindy
>
>
> _______________________________________________
> MirageOS-devel mailing list
> [email protected]
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>
_______________________________________________
MirageOS-devel mailing list
[email protected]
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

Reply via email to