On Thu, 2019-06-13 at 14:17 +0600, work vlpl via networkmanager-list wrote: > Hello, > > I want to contribute to NetworkManger but don't know where to start, > so I am looking for advise how I can start it.
Hi, thanks for reaching out. We would very welcome your help! > wpa_supplicant supports great feature Hotspot 2.0 and contains in its > distribution program - osu_client, that allow to do automatic wifi > configuration provision using protocols and conventions defined in > Hotspot 2.0 Specification. I want to implement support of this > feature > in NetworkManager. > > wpa_supplicant - query AP for information needed for for Hotspot 2.0, > and act as executor for commands that come from osu_client. > osu_client - communicate with Online Signup server (parsing response, > generate payload), enrolling user certificates for EAP-TLS, > downloading root certificates that will validate certificated > provided > by radius servers, saving wifi configuration in xml file and load it > in wpa_supplicant. > > I have superficially studied how NetworkManager mange wpa_supplicant. > If I am not wrong it does it using D-Bus. Correct > But main features that > provide Hotspot 2.0 experience located in osu_client program. It is > the standalone program that communicate with wpa_supplicant using > control interface /run/wpa_supplicant. I think that it is a viable > way > to implement in NetworkManager functionality from osu_client that > execute wpa_supplicant command, for example `interworking select`. > But > I doubt that it is a good idea to implement certificate enrolment in > NetworkManager. It sound to me like NetworkManager really would prefer to talk to some D-Bus API here. Possibly the functionality of osu_client could go into wpa-supplicant (and exposed on D-Bus), or osu_client could itself be a D-Bus service. Re-implmenting osu_client in NetworkManager does not sound preferable... (but maybe it is?? It seems large, but not extremely large). But talking to a command line tool is also not preferable... > So my questions are: > > What features should be implemented in NetworkManager code? Any features that you deem useful and are willing to contribute :) > If some functionality is better to keep in separate program, for > example osu_client, how organise communication between NetworkManager > and that program? osu_client does not support D-Bus. Theretically anything you can think of. Including spawning processes or any protocol via sockets (varlink?). But having a separate service and a D-Bus API sounds preferable to me. I think it would make it easier for everybody to talk to this API, so the effort spend there would not only benefit NetworkManager. wpa-supplicant itself is a D-Bus activatable service and not spawned by NetworkManager. That is very nice, because the service is properly managed (e.g. by systemd) and not by NetworkManager (which would do a less great job at that). > Both NetworkManager and osu_client can configure wifi connection, so > if osu_client will be kept, how to pass wifi configuration? From it, > or from NetworkManager? > I which NetworkManager source files I should put new code? That depends... probably most of it under "src/device/wifi" and some under "src/supplicant". You can also find us on IRC (freenode, #nm). See https://wiki.gnome.org/Projects/NetworkManager/Hacking (and if you have questions that are not answered there, maybe we could improve the wiki). best, Thomas
signature.asc
Description: This is a digitally signed message part
_______________________________________________ networkmanager-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/networkmanager-list
