Commit graph

38 commits

Author SHA1 Message Date
Dan Williams
e20d64f76b wimax: handle device removal when the WiMAX Network Service goes away
There's some confusion in the code about indexes; there's the SDK index
from the NS, and there's the internal device index.  Of course we've
got to use the internal device index to remove it from our list, so we
need to convert the SDK index to an internal index before we can call
iwmx_sdk_dev_rm().

Second, the:

if (device_id_list_size < devid->deviceIndex) {

check is useless because by the time we get here, the device is already
gone from the SDK's device list, so this always triggers of the NS
quits.  So just run this check when devices get added to ensure the
NS isn't lying to us.  The, if we get a device removal event, match
up the SDK index with some internal device's SDK index and remove that.
2011-04-01 17:57:09 -05:00
Dan Williams
b2036e264c wimax: log a message when connecting to an NSP 2011-03-17 23:58:50 -05:00
Dan Williams
b21fc6ed45 wimax: use setting accessor helpers 2011-03-15 10:33:04 -05:00
Dan Williams
0e348bad2a wimax: fix dbus-glib assert when wimax strength overflows
Ran into a case right underneath a tower where the Intel WiMAX SDK
reported signal strength as 32767 which is pretty clearly an overflow
of a 16-bit int somewhere in the WiMAX stack.  Since our internal
NMWimaxNsp GObject property for signal-quality has a max value of
100, dbus-glib got pretty angry when GObject failed to return
something because the property value was out of range, leading
to malformed message and the bus daemon kicking us off, and finally
an assertion somewhere.  Fun.
2011-03-11 18:20:42 -06:00
Dan Williams
a4ab74d903 core: don't autocomplete non-IPv6-capable connections with IPv6 enabled
Mobile broadband and PPPoE don't yet support IPv6, so don't enable
IPv6 on these connections when completing them.
2011-02-25 11:58:16 -06:00
Dan Williams
3b61adec74 core: consolidate deactivation methods
deactivate_quickly is misnamed these days; it was originally used
for quickly tearing down a device for sleep and such.  But these
days it's used for the bulk of device deactivation.  Only the wifi
class used the actual deactivate method.  So combine the two and
make device implementations less complicated.
2011-02-24 11:27:42 -06:00
Dan Williams
eab5851145 libnm-util: remove nm_warning/nm_info/nm_error macros
Clients need to do their own logging using glib or whatever; these
macros while somewhat helpful were not flexible and are not a
substitute for actual logging in the client.  g_warning, g_message,
and g_error are more suitable anyway.
2011-02-23 11:42:04 -06:00
Dan Williams
53766ae291 core: move generic connection complete function to a generic location
Out of NMDevice specific places to the utils code, so it can be used
more easily from everywhere.  There's nothing device-specific about
it anyway.
2011-01-13 13:28:52 -06:00
Dan Williams
8259b35ee5 wimax: add connection completion function 2011-01-12 17:46:43 -06:00
Dan Williams
9d24269e30 wimax: add Center Frequency, RSSI, CINR, TX Power, and BSID properties
Useful diagnostic/support info when device is connected.
2011-01-06 15:18:19 -06:00
Dan Williams
430151d6c2 build: make WiMAX support optional 2011-01-05 18:23:08 -06:00
Dan Williams
6971dcd34e wimax: logging cleanup 2011-01-05 17:54:05 -06:00
Dan Williams
6ab1f4f420 wimax: only update NSP properties if they've changed 2011-01-05 17:39:14 -06:00
Dan Williams
13794bfeb6 wimax: poll connected network signal strength 2011-01-05 16:57:56 -06:00
Dan Williams
f87e2251d7 wimax: turn off wimaxd's fast reconnect logic
It eventually gets confusing for everyone.  NM is the policy, so
handle reconnect there.
2011-01-05 16:34:51 -06:00
Dan Williams
89095e9fa7 wimax: fix debug log format string 2011-01-05 16:30:58 -06:00
Dan Williams
5cbe6da10e wimax: release and renew DHCP lease when requested by wimaxd 2011-01-05 16:23:22 -06:00
Dan Williams
6ae91e2f67 wimax: if the device is connected at startup, force it to disconnect
Otherwise it doesn't auto-scan and we get no network list.  As a later
optimization, we could detect this, call iwmx_sdk_get_connected_network()
to get the current NSP, match that up with a connection, and "assume"
the connection like we do for Ethernet devices.
2011-01-05 15:39:07 -06:00
Dan Williams
71adbcbb20 Revert "wimax: if the device is connected at startup, force it to disconnect"
This reverts commit 9c99066d6c.

Yay for finger-memory of git commit -a...
2011-01-05 15:38:03 -06:00
Dan Williams
9c99066d6c wimax: if the device is connected at startup, force it to disconnect
Otherwise it doesn't auto-scan and we get no network list.  As a later
optimization, we could detect this, call iwmx_sdk_get_connected_network()
to get the current NSP, match that up with a connection, and "assume"
the connection like we do for Ethernet devices.
2011-01-05 15:30:59 -06:00
Dan Williams
a9918eefac wimax: protect device add/remove with a mutex
Sometimes the add/remove code will get re-entered by the SDK because
the SDK is stupid.  Lock the code to ensure we don't double-detect
the same device.
2011-01-05 15:27:48 -06:00
Dan Williams
bee33b9a26 wimax: notify listeners of new wimax devices
If wimaxd gets started after NetworkManager, we need to notify
NetworkManager that the daemon has found and set up any wimax
interface it finds.  Most of the code for this was there but
not previously hooked up.
2011-01-05 15:13:04 -06:00
Dan Williams
e598b18656 wimax: add link timeout 2011-01-05 14:06:48 -06:00
Dan Williams
d1c7f3d992 wimax: handle media status change events
Which we need to use for DHCP renew.
2011-01-05 09:59:08 -06:00
Dan Williams
31a0dfa533 wimax: reduce connect timeout a bit 2011-01-04 18:51:51 -06:00
Dan Williams
568f11ee54 wimax: fix disconnect conditions
Only fail an activated device if it's actually activated, and
only fail an activating device if the timeout triggers or if
the connect callback indicates failure, not based on device state.
2011-01-04 18:50:48 -06:00
Dan Williams
597c2aeb80 wimax: fix a few SDK return value checks 2011-01-04 18:50:25 -06:00
Dan Williams
30721f8aa7 wimax: set initial device status 2011-01-04 18:26:52 -06:00
Dan Williams
a802c7f40d wimax: work around wide-char stupidity in Intel WiMAX SDK
The SDK internally use wchar_t for NSP names even though the
names are actually UTF-8 (since the driver uses UTF-8/ASCII). So
work around that by using the full network name buffer in case
the NSP name is an odd number of characters and thus widechar
comparison functions like wcscmp() would fail when given ASCII.
2011-01-04 18:25:14 -06:00
Dan Williams
d11b7bc611 wimax: do nothing if state isn't actually changing 2011-01-04 18:24:10 -06:00
Dan Williams
752d17cf9d wimax: more NSP property type fixes
Forgot this in the last commit.
2011-01-04 16:48:25 -06:00
Dan Williams
8c2932fc2b wimax: fix NSP property type confusion
Just make them all uints.
2011-01-04 16:45:00 -06:00
Dan Williams
a6697a16d3 wimax: remove files forgotten in last commit
The nm-wimax-manager stuff is no longer needed.
2011-01-04 09:12:12 -06:00
Dan Williams
9e80c1e85d wimax: make WiMAX mostly work
Heavily modify Inaky's Intel WiMAX SDK glue (originally from connman)
to be more generic and more thread-safe, and suitable for use with
NetworkManager instead of rolling our own client code.  Rewrite the
NMDeviceWimax code to mostly work.

Still to be done: actual connection logic, DHCP handling, spawning
wimaxd if it's not started yet
2011-01-03 23:55:38 -06:00
Dan Williams
b2f9747dba wimax: make it build against Intel v1.5 SDK 2010-05-20 01:23:11 -07:00
Dan Williams
c4f3bf002b Merge remote branch 'origin/master' into wimax 2010-05-19 08:55:26 -07:00
Tambet Ingo
20a4c6c6b6 wimax: Implement RFKILL handling
Implement and export over DBus WiMAX enable/disable and hardware state query.
2009-12-29 11:27:10 +02:00
Tambet Ingo
75c734f1a9 wimax: Implement WiMAX support 2009-12-18 15:41:27 +02:00