#3593 NORM Trial-3: Mesh channel randomization breaks NM 'mesh-start' tweakable
Zarro Boogs per Child
bugtracker at laptop.org
Tue Sep 18 23:25:54 EDT 2007
#3593: Mesh channel randomization breaks NM 'mesh-start' tweakable
-----------------------------+----------------------------------------------
Reporter: dcbw | Owner: jg
Type: defect | Status: new
Priority: normal | Milestone: Trial-3
Component: network manager | Version:
Keywords: | Verified: 0
-----------------------------+----------------------------------------------
Since we switched back to randomized mesh channels two weeks ago at the
request of the server team, this inadvertently broke expectations about
how the /etc/NetworkManager/mesh-start file affects things when using
local-only. In this case, if you do local-only through mesh-start, you
are not guaranteed to come up on channel 1 because the start channel is
random.
Please determine if this is trial-3 material or not. Obviously, the
factors against fixing this for trial-3 are that:
1) our target users for trial 3 aren't expected to have to do this
2) you can always switch directly to mesh-1 from the UI
3) we are in code freeze
However, the fix is low-risk and does not affect normal codepaths.
```
Index: src/nm-device-802-11-mesh-olpc.c
===================================================================
--- src/nm-device-802-11-mesh-olpc.c (revision 2824)
+++ src/nm-device-802-11-mesh-olpc.c (working copy)
@@ -459,7 +459,10 @@
self->priv->use_mesh_beacons = TRUE;
}
- self->priv->channel = get_random_channel ();
+ if (self->priv->default_first_step == MESH_S4_P2P_MESH)
+ self->priv->channel = 1;
+ else
+ self->priv->channel = get_random_channel ();
self->priv->activation_started_ids = g_hash_table_new
(g_direct_hash,
g_direct_equal);
@@ -1718,7 +1721,10 @@
nm_device_set_active_link (NM_DEVICE (self), FALSE);
if (reinit_state) {
self->priv->step = self->priv->default_first_step;
- self->priv->channel = get_random_channel ();
+ if (self->priv->default_first_step ==
MESH_S4_P2P_MESH)
+ self->priv->channel = 1;
+ else
+ self->priv->channel = get_random_channel
();
self->priv->chans_tried = 0;
self->priv->channel_locked = FALSE;
}
@@ -1754,7 +1760,10 @@
self->priv->channel =
nm_act_request_get_mesh_channel (req);
self->priv->channel_locked = TRUE;
} else {
- self->priv->channel = get_random_channel ();
+ if (self->priv->default_first_step ==
MESH_S4_P2P_MESH)
+ self->priv->channel = 1;
+ else
+ self->priv->channel = get_random_channel
();
}
}
```
--
Ticket URL: <https://dev.laptop.org/ticket/3593>
One Laptop Per Child <https://dev.laptop.org>
OLPC bug tracking system
More information about the Bugs
mailing list