+/**
+ * Get a chennel from a client
+ *
+ * @param client the client to check
+ * @param chid Channel ID
+ *
+ * @return non-NULL if channel exists in the global DLL
+ */
+struct MeshChannel *
+GML_channel_get (struct MeshClient *client, uint32_t chid);
+
+/**
+ * Add a channel to a client
+ *
+ * @param client Client.
+ * @param chid Channel ID.
+ * @param ch Channel.
+ */
+void
+GML_channel_add (struct MeshClient *client,
+ uint32_t chid,
+ struct MeshChannel *ch);
+
+/**
+ * Remove a channel from a client
+ *
+ * @param client Client.
+ * @param chid Channel ID.
+ * @param ch Channel.
+ */
+void
+GML_channel_remove (struct MeshClient *client,
+ uint32_t chid,
+ struct MeshChannel *ch);
+
+/**
+ * Get the tunnel's next free local channel ID.
+ *
+ * @param c Client.
+ *
+ * @return LID of a channel free to use.
+ */
+MESH_ChannelNumber
+GML_get_next_chid (struct MeshClient *c);
+