<azure_balls>
Hey everyone, I'd like to make a Mirage unikernel with two network interfaces, but am not super familiar with OCaml, and given the lack of documentation (that I can find), I can't see how I could do this. A big part of the problem is I don't understand how Mirage sets up the network interfaces--it *seems* Mirage assumes only one interface will eve
<azure_balls>
r be present. Is this true? Can I simply manually edit the generated main.ml and change the type of my Main.start to accept two NETWORK parameters?
<hannes>
azure_balls: I'm sure it is possible to attach two network devices, but I never did (and don't know off hand where an example would be)
bsb-the-grey has joined #mirage
<azure_balls>
hannes: yes, http://www.openmirage.org/graphics/mirage-sample-application.png makes it seem very modular, and like I should be able to have multiple network interfaces without much trouble. Of course, my problem is with actually *realizing* this: how can I get my unikernel to accept more than one NETWORK device as a parameter, and how to configure
<azure_balls>
the generated main.ml (so: not even 'full automation' with Mirage) to create two NICs and pass them to the unikernel
yomimono has quit [Ping timeout: 272 seconds]
<jgjl>
hi, azure_balls and hannes, having multiple network devices is also an important use case for me
<jgjl>
are there any plans to support more complex network configurations?
<jgjl>
mirageos is a compelling plaform for Network Function Virtualization (NFV), which requires more than one network interface in most cases
<azure_balls>
jgjl: currently writing a mail to the mailing list about this; give me a few minute to make sure my question(s) is/are precise and I'll send you a draft to see if you can answer anything, and if not, then I'll send it
<jgjl>
azure_balls: nice, are you also working on NFV?
<azure_balls>
I suppose you could say that
<azure_balls>
not really
<azure_balls>
I want to integrate Mirage unikernels into Qubes. One use case, which is the proof-of-concept I'd like to create now, is to use these unikernels as pluggable, composable network filters
<azure_balls>
so, if that's considered NFV, then yes :)
<azure_balls>
(and by a few minutes, I mean more like an hour)
<jgjl>
mhh not really :)
<jgjl>
sound interesting though
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<azure_balls>
Is there even any documentation for the network module?
tlockney_away is now known as tlockney
boogie has joined #mirage
jonludlam has quit [Quit: Coyote finally caught me]
<azure_balls>
jgjl: 1 hour has now become more like 6 hours ;) sorry
boogie has quit [Quit: Leaving...]
brson has joined #mirage
dsheets has quit [Ping timeout: 245 seconds]
hhugo has quit [Quit: hhugo]
tlockney is now known as tlockney_away
tlockney_away is now known as tlockney
hhugo has joined #mirage
nojb has joined #mirage
nojb has quit [Read error: Connection reset by peer]
nojb has joined #mirage
<nojb>
If I understand correctly, Io_page allocates memory in chunks 4096 bytes long. I get the impression that one is supposed to use [Io_page.get] instead of [Cstruct.create] to allocate Cstructs. But isn't this a waste of memory ? For example, in `mirage-tcpip', a whole 4K page is allocated to store the *header* of each outgoing IP packet, which is around 20-40 bytes long ...
hhugo has quit [Quit: Leaving.]
jonludlam has joined #mirage
brson has quit [Quit: leaving]
brson has joined #mirage
djs55 has quit [Quit: Leaving.]
nojb has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
nojb has joined #mirage
manud has joined #mirage
<azure_balls>
nojb: I'm not familiar enough with the codebase, but Xen only allows page-based (e.g. 4K sized) granularity in the grant tables, so if you're reading/writing data from the environment, you will use 4K no matter what. But I'm not sure why it would need 4K just for the header itself...
manud has quit [Quit: manud]
<nojb>
azure_balls: thanks for the info - will look into it!
smondet has quit [Quit: leaving]
smondet has joined #mirage
andreas has joined #mirage
brson has quit [Quit: leaving]
jonludlam has quit [Quit: Coyote finally caught me]