#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