<maker>
is it really impossible to use Whatever.map on that etherogeneous list?
<aggelos_>
can you _build_ an heterogeneous list?
<aggelos_>
hmm
* aggelos_
wondern what the situation w/ imaplet_lwt is?
<aggelos_>
wonders even
<maker>
aggelos_: no, but the thing is that arguments in mirage are of Key t type, where t is some other type, and there's this abstract function hiding the t thingy
<maker>
but I'm not familiar enought with ocaml to know what is happening there
<maker>
*enough
<Drup>
maker: it's exactly an heterogenous list, yes.
<engil>
maker: ok :)
<engil>
maker: we should maybe add tags, not sure of which way to handle that is the best
<engil>
adding somewhere in the header a tags: field I guess would be the simplest
<engil>
but I don't know if we can do something more clever using Irmin capabilities
Khady has joined #mirage
gemmag has quit [Ping timeout: 252 seconds]
mort___ has quit [Quit: Leaving.]
gemmag has joined #mirage
<aggelos_>
ok, trying to find a small project to start with... what deployments are people using mirage-nat in? would it make sense to dump/restore the state for transparent upgrades?
<aggelos_>
or perhaps implement state syncing a la carp?
<haesbaert>
I want to define this record in another file than unikernel.ml and then have it as an argument to main
<haesbaert>
it's really much biger than that
<haesbaert>
I mean, it's not something that can be passed as a command line
<Drup>
the whole thing, maybe. But the individual pieces ?
<haesbaert>
val make :
<haesbaert>
?hostname:string ->
<haesbaert>
?default_lease_time:int ->
<haesbaert>
?hosts:host list ->
<haesbaert>
?max_lease_time:int ->
<haesbaert>
addr_tuple:Ipaddr.V4.t * Macaddr.t ->
<Drup>
Anyway, yes, make a module that contains it
<haesbaert>
network:Ipaddr.V4.Prefix.t ->
<haesbaert>
range:Ipaddr.V4.t * Ipaddr.V4.t ->
<haesbaert>
options:Dhcp_wire.dhcp_option list -> t
<Drup>
and pass the module
<haesbaert>
is there an example I can look into ?
<Drup>
huum, I'm not sure, but it's not very complicated
<Drup>
maybe mirage-www
tomboy65 has quit [Ping timeout: 260 seconds]
<haesbaert>
looking
<Drup>
hum, actually, I simplified mirage-www, so it doesn't appear anymore
<Drup>
haesbaert: The best for you is to look at mirage.ml directly, see how devices are built, and it will be the same
<Drup>
You'll need it in the end anyway, if the end goal is to make a dhcpd device
<maker>
haesbaert: I just used keys in mirage, perhaps I can help you with that?
<haesbaert>
Drup: I'll give it a shot
<Drup>
(I Still think those should be keys, in the end)
<haesbaert>
can I express a full dhcpd.conf in a key ?
<haesbaert>
if it is something that is passed as a command line argument it's out of the question
<haesbaert>
maker: that'd b ee nice
<Drup>
haesbaert: do you have the code to parse it ? :)
<mort___>
wouldn't you want to do somethign where you pass in the conf in a piece of storage, parse that into a record type of some kind, and then use that? ie., the key points to the piece of storage containing the conf?
<haesbaert>
I have, but I'm switching the mirage examples to instead of parsing a dhcpd.conf and giving you a config record, you actually use the config builder directly.
<mort___>
ah- why?
<mort___>
(sorry, jumping in a bit late :)
<Drup>
haesbaert: if you have the parser, you can do what mort___ says
<Drup>
Ok, let me details
<mort___>
(also, kinda wishing i was in morocco!)
<haesbaert>
mort___: the way you described it's how it is done now
tomboy65 has joined #mirage
<haesbaert>
and it works fine
tomboy64 has quit [Ping timeout: 244 seconds]
<haesbaert>
but I want to cut that and build it directly, it's less maintance on the parser and I don't need a storage just to pass a config
<Drup>
You can have, at the same time: 1) Many fields with a key for each, when you want to specifiy one 2) a key that takes a .conf and set the keys
<mort___>
drup: i believe the point is that the dhcp stack needs to violate layers (access L2 for mac address and L3 for ip config) so can't simply rely on the stack abstraction
<Drup>
This should not be in the user code, period. We have the mirage tool precisely to generate this
<Drup>
mort___: what does it changes ? You still have access to the full modules
<mort___>
from within a STACKV4?
<Drup>
I never said to use a STACK
<mort___>
or am i misunderstanding — perhaps a better question is: how would you get access to the modules needed?
<Drup>
Take them as argument
<Drup>
Just never build functor applications yourself, and more importantly, never do the connect yourself
<Drup>
the mirage tool is there to do that
<mort___>
so your Unikernel.Main functor will take an ARPV4 module, an ETHIF module, etc? and these are tied together in the config.ml ?
<haesbaert>
I think the problem before was how to express an ip without a STACK
<Drup>
mort___: well, ideally, the DPHC functor will take ARPV4, ETHIF, ... modules and they are tied in the config. ml :)
<Drup>
DHCP*
<haesbaert>
I think that's doable, but I don't see as a huge gain
<Drup>
haesbaert: it removes all of the boilerplate from your file ...
<Drup>
like, all of it :|
<haesbaert>
not it doesn't
<haesbaert>
*no
<haesbaert>
You mean move even the N.listen ?
<haesbaert>
lemethink about this
<Drup>
if you want, yes, it would be in the functor
abeaumont_ has quit [Remote host closed the connection]
<haesbaert>
so in the end there would be module Main (C:Console) (D:DHCP)
<haesbaert>
something like that ?
tomboy65 has quit [Ping timeout: 252 seconds]
<Drup>
Precisely
<haesbaert>
and the boiller plate would be in DHCP
abeaumont_ has joined #mirage
<haesbaert>
where would that code shift to ?
<haesbaert>
file wise
<Drup>
Your dhcp library ? ^^
tomboy65 has joined #mirage
<haesbaert>
nah, my dhcp library is independent of mirage
<haesbaert>
I want to keep that
<haesbaert>
I could have a mirage-dhcp
<haesbaert>
or could have a dhcp.ml in the skeleton too ?
<Drup>
then a mirage-dhcp library
mort___ has quit [Ping timeout: 268 seconds]
<Drup>
putting things in a skeleton for user to copy paste in their application is an admission that you fail to provide convenient functions and that users need to copy paste things
<haesbaert>
I agree
<Drup>
So, yes, mirage-dhcp. :)
<haesbaert>
k, I'm convinced then
<Drup>
We still need to configure configuration a bit, but I first need to see the functorised-API
<Drup>
thing about configuration*
<Drup>
think, grmbl
<Drup>
(And do read the functoria post and the part of mirage.ml about the stack, it's going to help you)
<haesbaert>
I'm half way into it
<haesbaert>
so the functorized API takes ARP,ETH->DHCP
<Drup>
That's for you to figure out ^^
tomboy65 has quit [Ping timeout: 248 seconds]
<Drup>
(My knowledge of networking is close to non-existent, I can only give you the recipe to make it easy to use in mirage :p)
<haesbaert>
well thinkin high level, to generate the configuration I need that record and a ETH
<haesbaert>
I need the mac address from ETH
<haesbaert>
I need to try this out
tomboy65 has joined #mirage
<Drup>
Is thomas and/or jeremy around in morroco already ? You can ask them for help too, they know the whole functor thing quite well
<haesbaert>
I think jeremy arrived just now
<haesbaert>
I didn't pin names to faces yet :P
yegods has joined #mirage
<hannes>
jeremy won't be able to join, thomasga will be arriving tomorrow around noon
mort___ has joined #mirage
AltGr has left #mirage [#mirage]
tomboy65 has quit [Ping timeout: 276 seconds]
rudenoise has joined #mirage
rudenoise has quit [Remote host closed the connection]
rudenoise has joined #mirage
tomboy65 has joined #mirage
<Leonidas>
hannes: i'm in marrakech now but phone is dying
<Leonidas>
(not even battery, hardware)
<Leonidas>
hannes: where best to meet in djama el fna?
rudenoise has quit [Remote host closed the connection]
mort___ has quit [Quit: Leaving.]
srax has joined #mirage
* Leonidas
at djama el fna
<Leonidas>
looking for cafe du paris, just found cafe du france so far :D
<Drup>
*du* paris ? :D
yegods has quit []
<maker>
Leonidas: y0
<maker>
you're stil there?
<maker>
we can come pick you up
yegods has joined #mirage
<Leonidas>
maker: ok, i'll go back there
<Leonidas>
juice stand 57, with a hilariously misplaced tripid
mort___ has joined #mirage
<maker>
Leonidas: okay, weit for me
<maker>
red hoodie
<Leonidas>
Drup: you can tell, my french is not the best :)
<Leonidas>
i spoke more french on the last couple of days than in the last decade
<Leonidas>
"french"
yegods has quit []
yegods has joined #mirage
yegods has quit []
mcclurmc has joined #mirage
yegods has joined #mirage
rudenoise has joined #mirage
mort___ has quit [Quit: Leaving.]
nullcat has joined #mirage
nullcat has quit [Client Quit]
seangrove has joined #mirage
rudenoise has quit [Remote host closed the connection]
yegods_ has joined #mirage
yegods has quit [Read error: Connection reset by peer]
jermar has joined #mirage
jgjl has joined #mirage
mort___ has joined #mirage
<al-maisan>
Hello .. I arrived later in Marrakech than planned and would like to catch up with the group
<al-maisan>
What is the plan for this evening?
abeaumont_ has quit [Ping timeout: 268 seconds]
rudenoise has joined #mirage
<al-maisan>
hannes: where do you folks plan to go for dinner?
cuvius has joined #mirage
<aggelos_>
al-maisan: I don't think there's a plan yet
gemmag has quit [Quit: Leaving.]
jermar has quit [Ping timeout: 260 seconds]
<Leonidas>
al-maisan: hi there, no plan
aantron has joined #mirage
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
mort___ has quit [Quit: Leaving.]
jgjl has joined #mirage
mort___ has joined #mirage
aantron has quit [Remote host closed the connection]
rudenoise has quit [Remote host closed the connection]
rudenoise has joined #mirage
mort___ has quit [Quit: Leaving.]
aantron has joined #mirage
rudenois_ has joined #mirage
brson has joined #mirage
rudenoise has quit [Ping timeout: 276 seconds]
rudenois_ has quit [Remote host closed the connection]
rudenoise has joined #mirage
wiredsister has joined #mirage
seangrove has quit [Ping timeout: 276 seconds]
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
gemmag has joined #mirage
apluke has joined #mirage
raindev has joined #mirage
<hannes>
dinner will be served at the venue around 19:00... come around, join us!
mort___ has joined #mirage
mort___ has quit [Client Quit]
rudenoise has quit []
gemmag has quit [Quit: Leaving.]
beaumonta has joined #mirage
raindev has quit [Ping timeout: 244 seconds]
raindev has joined #mirage
jermar has joined #mirage
beaumonta has quit [Ping timeout: 246 seconds]
raindev has quit [Ping timeout: 252 seconds]
raindev has joined #mirage
jgjl has joined #mirage
raindev has quit [Remote host closed the connection]
apluke has quit [Ping timeout: 244 seconds]
<haesbaert>
so I was tricked into starting an IPSEC stack
<haesbaert>
can probably develop in work time with some luck
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
wiredsister has quit [Ping timeout: 244 seconds]
tomboy65 has quit [Ping timeout: 248 seconds]
tomboy65 has joined #mirage
tomboy65 has quit [Ping timeout: 248 seconds]
tomboy65 has joined #mirage
jgjl has joined #mirage
mcclurmc has quit [Ping timeout: 268 seconds]
apluke has joined #mirage
mcclurmc has joined #mirage
tomboy65 has quit [Ping timeout: 246 seconds]
tomboy65 has joined #mirage
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
jgjl has joined #mirage
jgjl has quit [Client Quit]
<al-maisan>
Leonidas, hannes : could not make it this evening .. see you tomorrow around 13h
<Leonidas>
al-maisan: sounds good!
jgjl has joined #mirage
beaumonta has joined #mirage
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
beaumonta is now known as abeaumont_
apluke has quit [Ping timeout: 268 seconds]
ezyang has joined #mirage
<ezyang>
Does anyone know what MIrageOS paper I should cite about their DSL for programming ML functors?
abeaumont_ has quit [Ping timeout: 264 seconds]
apluke has joined #mirage
apluke has quit [Ping timeout: 260 seconds]
oskarth has quit [Read error: Connection reset by peer]