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

Re: [MirageOS-devel] TCP checksum offload with Xen

On 3 Sep 2014, at 10:59, Thomas Leonard <talex5@xxxxxxxxx> wrote:

> On 19 August 2014 20:28, Anil Madhavapeddy <anil@xxxxxxxxxx> wrote:
>> On 19 Aug 2014, at 14:26, Thomas Gazagnaire <thomas@xxxxxxxxxxxxxx> wrote:
>>>>> Looks good -- since V2.mli isn't tagged yet, this can just extend the call
>>>>> to `write` instead of having a `write2`.
>>>> I actually tried that first, but it makes V1 incompatible with V2
>>>> which complicates things a bit. As it is, if you have a V2 module you
>>>> can use it with anything that wants a V1 type, which makes upgrading
>>>> easier.
>>> I'm not too worry about that, as we need to fix the error type definition 
>>> at one point as well (and the FS module type)
>>>>> However, would it be better to
>>>>> define an interface flags type in `NETWORK`, and just let the `write` call
>>>>> supply a list of flags?  That would permit easier extension to other
>>>>> offloads in the future.
>>>> Yes, probably. Should the flags type be abstract?
>>> A possibility might be to define a record 'flag' with at least one field 
>>> called "checksum". Not sure too much abstraction is a good thing here.
> Presumably that will break existing code when we add more flags. Is that OK?

Yeah, since the code will need to handle the new flag.

>> Agreed on both counts...
> OK, but in that case how do we upgrade to the V2 API?
> Currently, if you ask mirage for e.g. a "network" then you get a V1
> NETWORK. If V2 extends V1 then it can just give you a V2 NETWORK and
> everything still works, which was the path I took for testing the
> checksums. But if they're not compatible (and I agree they shouldn't
> need to be) then more things will have to change.
> How will I ask mirage for a V1 vs V2 NETWORK? Like this?
> let main = foreign "Unikernel.Main" (console2 @-> network2 @-> job)

Yeah, we need to explicitly split the EDSL to support the new versions.
This shouldn't be hard -- we can make the default 'console' and other
values of 'a typ be for V2, and include a Mirage.V1 module that exposes
the old versions.

MirageOS-devel mailing list



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