hannes changed the topic of #mirage to: https://mirage.io - https://github.com/mirage/mirage-www/wiki/Call-Agenda - this channel is logged at http://irclog.whitequark.org/mirage/ - MirageOS 3.5.0 is released - happy hacking!
<verg> srsly? renaming "bytes" to "octets" in a way that breaks things? great improvement. :/
_whitelogger has joined #mirage
kohi has joined #mirage
verg has quit [Ping timeout: 246 seconds]
_whitelogger has joined #mirage
_whitelogger has joined #mirage
jnavila has joined #mirage
_whitelogger has joined #mirage
jnavila has quit [Ping timeout: 264 seconds]
jnavila has joined #mirage
<apache2> is verg still here?
<apache2> 1) a "solver" is a constraint solver used to figure out which packages can be upgraded and which have to be held back.
<apache2> 2) "bytes" to "octets" in the ipaddr library was to remove the confusion caused by the OCaml compiler introducing a type called "bytes", and the Ipaddr "bytes" functions work on strings.
<apache2> how/why they settled on "bytes" - no idea.
<kohi> thanks for the explanation.
<kohi> this year, every time (so far: 3/3) i try to build a fresh qubes-mirage-firewall i end up running face-first into some opam mess first. X)
<hannes> .oO(this firewall + nat code, i don't entirely understand (already got it to reassembly ip fragments, but now it can't write the reassembled frames since they're too big for the interface <- and thus need to be fragmented again)
<hannes> another option would likely be to not reassemble + fragment, but instead do a packet-per-packet forwarding (but somehow this parses full packets -- and it'd only work if the mtu on both interfaces is the same)
<kohi> not reassembling wont work because you cant really figure out what connection the not-first fragments belong to (the ports info is missing)
<kohi> so you would need at least some kind of shadow-reassembly-table for mapping even if not reassembling
<hannes> no
<hannes> i mean, the ipv4 header contains the ip id which is the same across fragments
<kohi> and it can do nat-matching based on just that?
<hannes> i'd assume you can write a nat implementation that uses exactly that.. but then what do i know
<kohi> i am just applying conventional networking lore there without any clue about the ocaml code involved here.
<hannes> so, in conventional networking, what would stop you from doing this?
<hannes> if you receive the first fragment out-of-order, it wouldn't work
<kohi> afair the problem with mapping just based on ip header is you dont have enough bits (the id is 16 bits) so it might work for smaller setups, but you run into ephemeral-pair-exhaustion much quicker.
<kohi> whatever works, works. :)
<hannes> if you assume/require RFC 6864 (use ip id only for fragmented packets), i don't think that's an issue... esp. since mostly there's no fragmented ipv4 frames (i.e. tcp uses path mtu discovery, there are rumours that fragmented packets are broken/filtered across the internet)
<kohi> as a tdsl-pppoe user i can confirm that pmtudisc is broken on about 1/3 of the interwebs.
<kohi> btw, mirage-firewall currently breaks pmtu disc entirely. it strips the DF bit.
<kohi> O_o ... aeh, or not. nope, i guess that got fixed/changed.
<kohi> sorry. recheck says DF bit stays these days.
jnavila has quit [Remote host closed the connection]