Hi Denis, On 29/04/2011 10:59, Denis Kenzior wrote: > Hi Guillaume, > >>>> struct emulator_network_provision_driver{ >>>> char *name; >>>> (void)(*get_settings)(struct emulator_network **out_en); >>> You will probably need to make this async, and allow cancellation, since >>> there can be multiple emulators requesting private networks >>> concurrently. This probably means you need to return a unique >>> identifier as well. >>> >> Concerning asynchronism and cancellation, >> I don't see the use case here, do you mean: >> - on a device with multiple modems, we have one DUN emulator per modem >> - 2 clients request DUN data call on this device, data call will be >> redirected to each modem by ConnMan. >> - oFono will ask for 2 private network settings, however ConnMan > You can have several modems in the system with DUN connections. You > might have several DUN connection transports active, e.g. USB& BT, or > you might simply have several clients on the same transport. > Ok >> can't handle this case, so we should >> avoid this case from oFono by cancelling the 1 of the request. >> > Is ConnMan only handing out 1 IP per application? If so that is not > enough for oFono... > This is the case in current private network implementation. I guess it can be changed. >> how should we priotirize it? >> Could that be a concrete use case? >> >>>> (void)(*release)(void); >>> And you need to take the unique id as input here. >> I can store the private_network_settings into ofono_emulator. Then I >> pass it as input of the release function. >> > Won't work as you might need to cancel a request that is still pending. OK I will try to fix this. Kind regards, Guillaume