<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hey <div>When I read the MM code, the bearer treat the cid=0 as a invalid CID confused me.  But I think there may be some special reasons.</div><div>In the MM Ver1.10.0 source code, src/mm-broadband-bearer.c</div><div><br></div><div><div><i>static guint</i></div><div><i>cid_selection_3gpp_finish (MMBroadbandBearer  *self,</i></div><div><i>                           GAsyncResult       *res,</i></div><div><i>                           GError            **error)</i></div><div><i>{</i></div><div><i>    gssize cid;</i></div><div><i><br></i></div><div><i>    /* We return 0 as an invalid CID, not -1 */</i></div><div><i>    cid = g_task_propagate_int (G_TASK (res), error);</i></div><div><i>    return (guint) (cid < 0 ? 0 : cid);</i></div><div><i>}</i></div></div><div><i><br></i></div><div>As my Intel 7560 module(not in Mbim on Linux),  after set AT+COPS=0 , it would auto get IP on the cid=0 PDP.</div><div>Then the MM logic would treat the cid=0 as invalid, after that MM would creat a new PDP context with +CGDCONT=1,*,*.</div><div>Though it works at the end. But I think it is better to use the auto connect one that cid=0.</div><div>So what are the special reasons for the cid=0 invalid? Or maybe can we use </div><div><i>#define INVALID_CID G_MAXUINT</i><br></div><div>as a invalid cid?</div><div><br></div><div>Quincy</div><div><br></div></div></div></div></div>