Thank you very much for your feedback. For this proposal we based on this assumption: we are talking about DBUS interfaces, these are not directly the interface the end user will need to understand, in between there must be and application for shell/graphical UI => here the developer may not be a WiFi expert, so we put all the parameters of StartWPS and CancelWPS optional (except authentication), and connman will try to figure out an automatic behavior => this already goes in the direction you proposed
On the other hand the automatic behavior may not suit all cases and an expert developer may know how to manage several WiFi interfaces (in our case three, STA, P2P and AP) => in this case the optional parameters can come in handy.
“Ifname" : optional, meaning it can be empty, but with it we don’t need other methods when the UI needs to choose between STA-WPS or AP-WPS, or there is a P2P interface that can be used also as an alternative STA or AP with WPS
"Type" and "Pin" you are proposing to have only one parameter “authentication” but when the device with connman is enrollee it must show a PIN to the user, not receive one: then we need to have two parameters (Type, PIN)
like we propose, or if you prefer only one (Authentication) it must be parsed in the following way:
- A string like “PIN” which means the connman must provide a PIN to the GUI so that the user can enter it in the other device (normally the AP)
- A string containing a number like “12345678” which means this is the PIN to be used
- Empty: means use PBC
“role” – optional, meaning it can be empty, but while for the STA I agree with you it mostly is an enrollee, the AP is a more complicated system; why not offer the possibility to the developer to choose the role if he wants (or if he needs)?