(Oops I was subscribed with my gmail address...) On Thu, May 29, 2008 at 2:38 PM, Dennis Noordsij <[EMAIL PROTECTED]> wrote: > Tambet Ingo schreef: >> >> abstract all the quirks (again, much like wpa_supplicant). Currently, >> the only candidate for this is VMC, Pablo could give more information >> on that. >> >> > > Thanks for your quick reply! > > The seperate helper program is actually a nice idea IMO, makes NM more > about the logic > of managing the devices, and lets the device complexities be handled by > the external > helper program. One can then really take advantage of device specific > quirks and features, > and more easily fix/improve things without possibly disrupting support > for other devices. > > And one could more easily contribute without having to touch the NM > core, and make > everything language agnostic. > > What kind of dbus API would you propose ? What would be the workload in > NM to > adapt to use such a dbus interface ? Any additional thoughts/ideas you > have about this ? > > It would perhaps be fastest to proceed like: > - define an API which is perfect from NM's point of view > - Make the GSM (and CDMA) devices seperate helpers (i.e. maintain > current functionality) > - A helper dispatch mechanism to use the correct helper based on the HAL > data (with a fallback > on the current code if nothing more specific is found) > > At this point people can experiment with custom helpers (possibly based > on VMC) however they wish.
After developing VMC for Vodafone, we started an internal prototype to DBusificate the core and integrate it with NM. Development got stalled for a while but here we are :) Small demo: [EMAIL PROTECTED]:~] $ dbus-send --type=method_call --print-reply --dest=es.warp.VMC / es.warp.VMC.GetProtocolInstance string:/org/freedesktop/Hal/devices/usb_device_12d1_1003_noserial method return sender=:1.99 -> dest=:1.100 reply_serial=2 object path "/org/freedesktop/Hal/devices/usb_device_12d1_1003_noserial" [EMAIL PROTECTED]:~] $ dbus-send --type=method_call --print-reply --dest=es.warp.VMC /org/freedesktop/Hal/devices/usb_device_12d1_1003_noserial es.warp.VMC.PIN.Send string:0000 method return sender=:1.99 -> dest=:1.103 reply_serial=2 string "OK" [EMAIL PROTECTED]:~] $ dbus-send --type=method_call --print-reply --dest=es.warp.VMC /org/freedesktop/Hal/devices/usb_device_12d1_1003_noserial es.warp.VMC.Network.GetSignalLevel method return sender=:1.99 -> dest=:1.105 reply_serial=2 int32 28 [EMAIL PROTECTED]:~] $ dbus-send --type=method_call --print-reply --dest=es.warp.VMC /org/freedesktop/Hal/devices/usb_device_12d1_1003_noserial org.freedesktop.DBus.Introspectable.Introspect > vmc-core.xml Attached you can find the current API > > I'd like to try something like this for my device. We've been working on this as an internal R&D project till the possible future integration with NM, but we'd be certainly happy to have you (and anyone else) tinkering. I'll prepare a trac for next week, I'll keep you posted > > Any thoughts ? > > Dennis > -- Pablo Martí http://www.linkedin.com/in/pmarti || http://www.warp.es python -c "print '706d6172746940776172702e6573'.decode('hex')" -- Pablo Martí http://www.linkedin.com/in/pmarti || http://www.warp.es python -c "print '706d6172746940776172702e6573'.decode('hex')"
"<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> <node name="/org/freedesktop/Hal/devices/usb_device_12d1_1003_noserial"> <interface name="es.warp.VMC.Contacts"> <method name="Add"> <arg direction="in" type="s" name="name" /> <arg direction="in" type="s" name="number" /> <arg direction="out" type="q" /> </method> <method name="Delete"> <arg direction="in" type="q" name="index" /> </method> <method name="List"> <arg direction="out" type="a(qss)" /> </method> <method name="Find"> <arg direction="in" type="s" name="pattern" /> <arg direction="out" type="a(qss)" /> </method> <method name="GetByIndex"> <arg direction="in" type="q" name="index" /> <arg direction="out" type="(qss)" /> </method> </interface> <interface name="es.warp.VMC.Network"> <signal name="InvalidDNS"> <arg type="s" name="dns1" /> <arg type="s" name="dns2" /> </signal> <method name="GetSignalLevel"> <arg direction="out" type="i" /> </method> <signal name="Disconnected"> </signal> <method name="GetInfo"> <arg direction="out" type="(ss)" /> </method> <signal name="RSSIChanged"> <arg type="q" name="rssi" /> </signal> <method name="RegisterWithNetID"> <arg direction="in" type="s" name="netid" /> </method> <method name="GetRoamingIDs"> <arg direction="out" type="as" /> </method> <signal name="Connected"> </signal> <method name="SetRegistrationNotification"> <arg direction="in" type="b" name="active" /> </method> <signal name="SpeedChanged"> <arg type="s" name="up" /> <arg type="s" name="down" /> </signal> <method name="GetRegistrationStatus"> <arg direction="out" type="(qq)" /> </method> <method name="SetInfoFormat"> <arg direction="in" type="q" name="mode" /> <arg direction="in" type="q" name="format" /> </method> <method name="GetNames"> <arg direction="out" type="a(qssqq)" /> </method> <signal name="CregReceived"> <arg type="q" name="status" /> </signal> <signal name="CellTypeChanged"> <arg type="s" name="newcell" /> </signal> </interface> <interface name="es.warp.VMC.Card"> <method name="GetCharset"> <arg direction="out" type="s" /> </method> <method name="SetCharset"> <arg direction="in" type="s" name="charset" /> </method> <method name="SendATString"> <arg direction="in" type="s" name="at_str" /> <arg direction="out" type="s" /> </method> <method name="GetIMEI"> <arg direction="out" type="s" /> </method> <method name="GetManufacturerName"> <arg direction="out" type="s" /> </method> <method name="GetPhonebookSize"> <arg direction="out" type="i" /> </method> <method name="GetIMSI"> <arg direction="out" type="s" /> </method> <method name="DisableEcho"> </method> <method name="GetCardModel"> <arg direction="out" type="s" /> </method> <method name="EnableEcho"> </method> <method name="GetCardVersion"> <arg direction="out" type="s" /> </method> <method name="GetAvailableCharsets"> <arg direction="out" type="as" /> </method> <method name="ResetSettings"> </method> <method name="ConfigureConnection"> <arg direction="in" type="a{ss}" name="opts" /> </method> </interface> <interface name="org.freedesktop.DBus.Introspectable"> <method name="Introspect"> <arg direction="out" type="s" /> </method> </interface> <interface name="es.warp.VMC.SMS"> <signal name="SMSReceived"> <arg type="q" name="index" /> <arg type="s" name="where" /> </signal> <method name="SetFormat"> <arg direction="in" type="q" name="format" /> </method> <method name="SetSMSC"> <arg direction="in" type="s" name="smsc" /> </method> <method name="List"> <arg direction="out" type="a(qss)" /> </method> <method name="GetSMSC"> <arg direction="out" type="s" /> </method> <method name="Send"> <arg direction="in" type="s" name="number" /> <arg direction="in" type="s" name="text" /> </method> <method name="GetByIndex"> <arg direction="in" type="q" name="index" /> <arg direction="out" type="(qss)" /> </method> <method name="SetIndication"> <arg direction="in" type="q" name="mode" /> <arg direction="in" type="q" name="mt" /> <arg direction="in" type="q" name="bm" /> <arg direction="in" type="q" name="ds" /> <arg direction="in" type="q" name="bfr" /> </method> <method name="GetFormat"> <arg direction="out" type="q" /> </method> <method name="Delete"> <arg direction="in" type="q" name="index" /> </method> </interface> <interface name="es.warp.VMC.PIN"> <method name="SendPUK"> <arg direction="in" type="s" name="puk" /> <arg direction="in" type="s" name="pin" /> </method> <method name="Enable"> <arg direction="in" type="s" name="pin" /> </method> <method name="Send"> <arg direction="in" type="s" name="pin" /> <arg direction="out" type="s" /> </method> <method name="Disable"> <arg direction="in" type="s" name="pin" /> </method> <method name="Change"> <arg direction="in" type="s" name="oldpin" /> <arg direction="in" type="s" name="newpin" /> </method> <method name="Check"> <arg direction="out" type="s" /> </method> </interface> </node> "
_______________________________________________ NetworkManager-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/networkmanager-list
