<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>Hi Aleksander,</p>
    <p>Just to let you know - I cherry-picked
      e5305498b7ddbc5e419cf51fc0c30aa6593a40d2 over 1.16.6 tag, and it
      did fix the VLAN issue - new bearers objects appear, but all use
      session 0.<br>
      Without the fix it didn't - the issue was caught exactly on
      vanilla 1.16.6, but we didn't gather the logs at the time.<br>
      <br>
      I prefer this over updating configuration on units deployed in the
      field. I can still provide you with the logs if you wish. <br>
    </p>
    <p>With master (83ac82470589a3672092a0ba0be855093b1cf5e2) I had
      problems. MM did want to enable multiplexing, but it failed for
      some reason, probably at sub-interface creation:<br>
    </p>
    <div style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, "Courier New", Courier, monospace; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;"><pre>2021-06-16 10:04:05.630664 +00:00 test-host NetworkManager[457]: <INFO>  <info>  [1623837845.6302] modem["cdc-wdm0"]: modem state changed, 'registered' --> 'connecting' (reason: user-r
equested)
2021-06-16 10:04:05.636959 +00:00 test-host ModemManager[455]: <DEBUG>  Using dynamic session ID 0
2021-06-16 10:04:05.637483 +00:00 test-host ModemManager[455]: <WARNING>  <warn>  [modem0/bearer4] connection attempt #1 failed: failed to create net link for device: failed to add lin
k for device: Could not allocate link: Failed to add link with session id 0: Netlink message with transaction 5 failed: Unknown error -1
2021-06-16 10:04:05.638678 +00:00 test-host ModemManager[455]: <INFO>  <info>  [modem0] state changed (connecting -> registered) 
</pre></div>
    <p>On the device I have 5.11.19 kernel with 802.1Q enabled. Again, I
      can provide you with detailed logs if this wasn't fixed already.<br>
    </p>
    <p>Kind regards,<br>
      Lech<br>
    </p>
    <div class="moz-cite-prefix">W dniu 15.06.2021 o 21:26, Aleksander
      Morgado pisze:<br>
    </div>
    <blockquote type="cite" cite="mid:CAAP7ucLPjAxHYHN3Hp3rWDMZ8_yMdSp54ERhwX2uOEtKvW9JiA@mail.gmail.com">
      
      Hey Lech,<br>
      <br>
      ><br>
      > Recently, I was investigating connectivity issues with Telit
      LE910-EU V2 in MBIM mode, when working in roaming. At the time, I
      was using ModemManager 1.16.5.<br>
      ><br>
      > In order to go further while waiting for fix on the modem
      side - I made a workaround, which led me to discovery of a few
      issues regarding multiple MBIM bearer support.<br>
      ><br>
      > Long story short:<br>
      > - At time of ModemManager 1.6.x, the modem was establishing
      connection properly most of the time - it was hard to reproduce
      the connection problem at all<br>
      > - With ModemManager 1.16.x, the modem would sometimes fail at
      "packet service attach" step, sometimes at "connect" step.<br>
      <br>
      Can you confirm that when using MM 1.6.x you didn't see the
      "packet<br>
      service attach" error? That would be interesting. I don't truly
      recall<br>
      how many changes in the MBIM connection sequence were done between
      1.6<br>
      and 1.16, but that could give us some hints to debug that further.<br>
      <br>
      > - Discussion with operator and Telit yielded information,
      that connections failed at "connect" step, because a second PDN
      session was requested with the same APN<br>
      > - ModemManager 1.6.x always shown only one bearer in the list
      of beares through mmcli.<br>
      > - ModemManager 1.16x (which gained default EPS bearer setting
      - which is supposedly not supported in this modem) sometimes shown
      multiple bearers - always a "bearer 0" in addition to some other
      bearer, often greater than one.<br>
      <br>
      That should totally be unrelated to any of your issues. The
      initial<br>
      EPS bearer status object is maintained out of the "bearer list"
      object<br>
      that tracks the different connection attempts with different
      settings.<br>
      <br>
      I recall having fixed some issues more or less recently that
      solved a<br>
      problem like yours, but those fixes were definitely already
      included<br>
      in 1.16.4, so maybe there is some other issue somewhere. The fixes<br>
      were 4f7ee18d1cf1ce21bba3f2701e408ae83108b3de and<br>
      99bffc03cff060a752c0c9a4af0e7d06847c0c00, both in libmm-glib; due
      to<br>
      those problems comparing the bearer properties would always fail
      even<br>
      if they were equal, and that would have triggered creating a new<br>
      bearer with the same settings, instead of reusing the last one.<br>
      <br>
      > - The cause of failures at "Packet service attach" step is
      still not known at this step, but issue is also reproducible using
      pure mbimcli commands. Issuing "detach packet service" would
      restore the modem to operation,<br>
      > - I tried to implement this workaround inside ModemManager
      (which seems to be exactly the same as [1], despite being
      different modem manufacturer - but with exactly same Intel
      chipset), but it would not work for 100% time.<br>
      <br>
      That issue rings a bell; i don't think we had a proper solution
      out of<br>
      that CGACTT=0 hack.<br>
      <br>
      > - I implemented another dirty workaround - to re-register the
      modem in the network, by executing 'AT+COPS=2' and 'AT+COPS=0,0"
      through mmcli in succession - it came out during debugging, and
      trying to gather as many logs from modem at the time, that this
      actually helps to establish the connection at the PDN level.<br>
      <br>
      That would make the connection attempt quite slow, doesn't it?<br>
      <br>
      > - When this is executed, but the modem is already registered
      in home network, this expectedly causes a dropped connection, but
      then MM detects this situation and reacts accordingly, quickly
      re-establishing the connection. This is very racey, but a similar
      situation could be triggered by an external factor, like the
      operator dropping a PDN connection.<br>
      ><br>
      <br>
      MM does not automatically reconnect; you probably have NM doing
      that<br>
      autoreconnection for you.<br>
      <br>
      > And finally, we come to the issues in ModemManager, that I
      discovered because of this:<br>
      > - When reconnecting after triggering the issue, ModemManager
      always ends up with two bearers associated with the modem, one of
      which is disconnected and has no IP configuration.<br>
      > MM 1.6.x did not, and this is first issue - I suspect that a
      bearer cleanup in 1.16.x is missing on modem de-registration
      forced by AT command. Fixing this would most probably fix our
      usecase, because we use only a single PDN connection.<br>
      > I will try with master as well, as it might be already fixed
      there.<br>
      <br>
      Please open a bug in gitlab and provide steps to reproduce and a
      full<br>
      debug log of the daemon:<br>
      <a href="https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues" moz-do-not-send="true">https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/</a><br>
      Also, please make sure you attempt to reproduce with 1.16.6 at
      least<br>
      (and git master if possible)<br>
      <br>
      Also, please note one thing. If you ask NetworkManager to request
      a<br>
      connection without specifying IP type, it will try IPv4v6 first,
      if<br>
      that fails it will try IPv4-only, and if that fails it will try<br>
      IPv6-pnly. If your connection attempt ends up with one bearer<br>
      disconnected and one connected, maybe the disconnected one is the<br>
      iIPv4v6 one and the connected one is the IPv4 one. Please provide
      the<br>
      bearer settings of both bearers once you create the gitlab issue.<br>
      <br>
      > - Whether the connection actually works, depends on which
      bearer gets actually connected, and this is random. If it is
      "Bearer 0", then all is fine, IP connectivity works. If it is the
      other bearer, then connection does not work. The randomness here
      is the second issue.<br>
      > - Connectivity does not work in case of bearer different than
      0, because, at MBIM level, ModemManager establishes a PDN session
      at ID different than "session 0", if not using "Bearer 0".<br>
      > According to Linux kernel documentation for cdc_mbim driver,
      such sessions are mapped as 802.1Q VLANs at the network interface
      level. [2]<br>
      > I confirmed this by manually creating VLAN sub-interface for
      the modem, with session number extracted through mbimcli, and
      moving the IP configuration there - this allowed the connectivity
      to work again.<br>
      <br>
      Yep, that is a bit broken in 1.16.x and fixed in git master. In
      the<br>
      case of git master there is a proper fix taking into account the<br>
      multiplexing feature (see e.g.<br>
      e5305498b7ddbc5e419cf51fc0c30aa6593a40d2). That is broken in MM
      1.16,<br>
      but if you had a proper bearer reconnection logic in place, it<br>
      wouldn't be needed. E.g. if there is always one single bearer
      being<br>
      connected in the MBIM modem, you should never hit the issue that
      we<br>
      attempt to use any other thing than session id 0. That was the<br>
      compromise I took for MM 1.16.<br>
      <br>
      ><br>
      > Here is a CLI dump confirming my hypothesis regarding
      erroneous VLAN mapping:<br>
      > # mmcli -m 0<br>
      > --------------------------------<br>
      > General | path: /org/freedesktop/ModemManager1/Modem/0<br>
      > | device id: b49ab6d9407e88df9ca805de471af5ac7e066589<br>
      > --------------------------------<br>
      > Hardware | manufacturer: Telit<br>
      > | model: FIH7160<br>
      > | firmware revision: 20.00.406<br>
      > | h/w revision: XMM7160_V1.2_HWID665_MBIM_NAND<br>
      > | supported: gsm-umts, lte<br>
      > | current: gsm-umts, lte<br>
      > | equipment id: <redacted><br>
      > --------------------------------<br>
      > System | device:
/sys/devices/platform/soc/30800000.bus/30b20000.usb/ci_hdrc.1/usb1/1-1/1-1.3<br>
      > | drivers: cdc_acm, cdc_mbim<br>
      > | plugin: telit<br>
      > | primary port: cdc-wdm0<br>
      > | ports: cdc-wdm0 (mbim), ttyACM0 (at), ttyACM1 (ignored),<br>
      > | ttyACM2 (ignored), ttyACM3 (at), ttyACM4 (ignored), ttyACM5
      (ignored),<br>
      > | wwan0 (net)<br>
      > --------------------------------<br>
      > Status | unlock retries: sim-pin2 (3)<br>
      > | state: connected<br>
      > | power state: on<br>
      > | access tech: lte<br>
      > | signal quality: 80% (recent)<br>
      > --------------------------------<br>
      > Modes | supported: allowed: 2g; preferred: none<br>
      > | allowed: 3g; preferred: none<br>
      > | allowed: 2g, 3g; preferred: none<br>
      > | allowed: 4g; preferred: none<br>
      > | allowed: 2g, 4g; preferred: none<br>
      > | allowed: 3g, 4g; preferred: none<br>
      > | allowed: 2g, 3g, 4g; preferred: none<br>
      > | current: allowed: 2g, 3g, 4g; preferred: none<br>
      > --------------------------------<br>
      > Bands | supported: egsm, dcs, utran-1, utran-8, eutran-1,
      eutran-3, eutran-7,<br>
      > | eutran-8, eutran-20<br>
      > | current: egsm, dcs, utran-1, eutran-1<br>
      > --------------------------------<br>
      > IP | supported: ipv4, ipv6, ipv4v6<br>
      > --------------------------------<br>
      > 3GPP | imei: <redacted><br>
      > | enabled locks: fixed-dialing<br>
      > | operator id: 26006<br>
      > | operator name: Play<br>
      > | registration: home<br>
      > --------------------------------<br>
      > 3GPP EPS | ue mode of operation: csps-1<br>
      > --------------------------------<br>
      > SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/0<br>
      > --------------------------------<br>
      > Bearer | paths: /org/freedesktop/ModemManager1/Bearer/1<br>
      > | /org/freedesktop/ModemManager1/Bearer/0<br>
      > # mmcli -b 0<br>
      > ----------------------------<br>
      > General | path: /org/freedesktop/ModemManager1/Bearer/0<br>
      > | type: default<br>
      > ----------------------------<br>
      > Status | connected: no<br>
      > | suspended: no<br>
      > | ip timeout: 20<br>
      > ----------------------------<br>
      > Properties | apn: internet<br>
      > | roaming: allowed<br>
      > | ip type: ipv4v6<br>
      <br>
      Ah look at that, ipv4v6 is the ip type in this first bearer.<br>
      <br>
      > ----------------------------<br>
      > Statistics | attempts: 2<br>
      > | attempts: 1<br>
      > | total-duration: 10<br>
      > # mmcli -b 1<br>
      > --------------------------------<br>
      > General | path: /org/freedesktop/ModemManager1/Bearer/1<br>
      > | type: default<br>
      > --------------------------------<br>
      > Status | connected: yes<br>
      > | suspended: no<br>
      > | interface: wwan0<br>
      > | ip timeout: 20<br>
      > --------------------------------<br>
      > Properties | apn: internet<br>
      > | roaming: allowed<br>
      > | ip type: ipv4<br>
      <br>
      And ipv4-only in the 2nd bearer. So, this confirms my theory from<br>
      before; I'm not going to edit the email response above, this is<br>
      getting too long already... :)<br>
      <br>
      If you don't want the 2 bearers, make sure you set IPv6 to disable
      in<br>
      the NetworkManager settings; that will probably workaround all
      your<br>
      issues in MM1.16.<br>
      <br>
      > --------------------------------<br>
      > IPv4 configuration | method: static<br>
      > | address: <a href="http://100.104.40.133" moz-do-not-send="true"> 100.104.40.133</a><br>
      > | prefix: 24<br>
      > | gateway: <a href="http://100.104.40.1" moz-do-not-send="true"> 100.104.40.1</a><br>
      > | dns: <a href="http://185.89.185.1" moz-do-not-send="true"> 185.89.185.1</a>, <a href="http://89.108.202.21" moz-do-not-send="true"> 89.108.202.21</a>, <a href="http://185.89.185.1" moz-do-not-send="true"> 185.89.185.1</a><br>
      > | mtu: 1500<br>
      > --------------------------------<br>
      > Statistics | attempts: 1<br>
      > # ping <a href="http://8.8.8.8" moz-do-not-send="true"> 8.8.8.8</a><br>
      > PING <a href="http://8.8.8.8" moz-do-not-send="true"> 8.8.8.8</a> (<a href="http://8.8.8.8" moz-do-not-send="true">8.8.8.8</a>: 56 data bytes<br>
      > ^C<br>
      > --- <a href="http://8.8.8.8" moz-do-not-send="true"> 8.8.8.8</a> ping statistics ---<br>
      > 7 packets transmitted, 0 packets received, 100% packet loss<br>
      > # mbimcli -p -d /dev/cdc-wdm0 --query-ip-configuration=0<br>
      ><br>
      > [/dev/cdc-wdm0] IPv4 configuration available: 'none'<br>
      ><br>
      > [/dev/cdc-wdm0] IPv6 configuration available: 'none'<br>
      > # mbimcli -p -d /dev/cdc-wdm0 --query-ip-configuration=1<br>
      ><br>
      > [/dev/cdc-wdm0] IPv4 configuration available: 'address,
      gateway, dns, mtu'<br>
      > IP [0]: '<a href="http://100.104.40.133/24" moz-do-not-send="true">100.104.40.133/24</a>'<br>
      > Gateway: '<a href="http://100.104.40.1" moz-do-not-send="true">100.104.40.1</a>'<br>
      > DNS [0]: '<a href="http://185.89.185.1" moz-do-not-send="true">185.89.185.1</a>'<br>
      > DNS [1]: '<a href="http://89.108.202.21" moz-do-not-send="true">89.108.202.21</a>'<br>
      > DNS [2]: '<a href="http://185.89.185.1" moz-do-not-send="true">185.89.185.1</a>'<br>
      > DNS [3]: '<a href="http://89.108.202.21" moz-do-not-send="true">89.108.202.21</a>'<br>
      > MTU: '1500'<br>
      ><br>
      > [/dev/cdc-wdm0] IPv6 configuration available: 'mtu'<br>
      > MTU: '1500'<br>
      > # ip link add link wwan0 name wwan0.1 type vlan id 1<br>
      <br>
      Wait, you shouldn't do any of this yourself. Not sure if you're<br>
      attempting to test something here.<br>
      <br>
      > # ip r<br>
      > default via <a href="http://100.104.40.1" moz-do-not-send="true"> 100.104.40.1</a> dev wwan0<br>
      > <a href="http://100.104.40.0/24" moz-do-not-send="true"> 100.104.40.0/24</a> dev wwan0 proto
      kernel scope link src <a href="http://100.104.40.133" moz-do-not-send="true"> 100.104.40.133</a><br>
      > <a href="http://169.254.0.0/16" moz-do-not-send="true"> 169.254.0.0/16</a> dev lan2 proto kernel
      scope link src <a href="http://169.254.120.44" moz-do-not-send="true"> 169.254.120.44</a> metric 100<br>
      > <a href="http://192.168.7.0/24" moz-do-not-send="true"> 192.168.7.0/24</a> dev lan3 proto kernel
      scope link src 192.168.7.2<br>
      > <a href="http://224.0.0.0/4" moz-do-not-send="true"> 224.0.0.0/4</a> dev lan2 proto static
      scope link metric 100<br>
      > # ip a<br>
      > 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue
      state UNKNOWN group default qlen 1000<br>
      > link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br>
      > inet <a href="http://127.0.0.1/8" moz-do-not-send="true"> 127.0.0.1/8</a> scope host lo<br>
      > valid_lft forever preferred_lft forever<br>
      > inet6 ::1/128 scope host<br>
      > valid_lft forever preferred_lft forever<br>
      > 2: lan2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
      qdisc mq state UP group default qlen 1000<br>
      > link/ether 5a:10:c0:4f:ef:c8 brd ff:ff:ff:ff:ff:ff<br>
      > inet <a href="http://169.254.120.44/16" moz-do-not-send="true"> 169.254.120.44/16</a> brd <a href="http://169.254.255.255" moz-do-not-send="true"> 169.254.255.255</a> scope link
      noprefixroute lan2<br>
      > valid_lft forever preferred_lft forever<br>
      > inet6 fe80::2ee:38b1:b49a:ce1d/64 scope link noprefixroute<br>
      > valid_lft forever preferred_lft forever<br>
      > 3: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN
      group default qlen 1000<br>
      > link/sit 0.0.0.0 brd 0.0.0.0<br>
      > 4: lan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
      qdisc pfifo_fast state UP group default qlen 1000<br>
      > link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff<br>
      > 5: lan3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
      qdisc pfifo_fast state UP group default qlen 1000<br>
      > link/ether c2:90:20:3e:73:dd brd ff:ff:ff:ff:ff:ff<br>
      > inet <a href="http://192.168.7.2/24" moz-do-not-send="true"> 192.168.7.2/24</a> brd 192.168.7.255
      scope global lan3<br>
      > valid_lft forever preferred_lft forever<br>
      > inet6 fe80::c090:20ff:fe3e:73dd/64 scope link<br>
      > valid_lft forever preferred_lft forever<br>
      > 7: wwan0: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu
      1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000<br>
      > link/ether e2:a2:fd:7b:37:c7 brd ff:ff:ff:ff:ff:ff<br>
      > inet <a href="http://100.104.40.133/24" moz-do-not-send="true"> 100.104.40.133/24</a> scope global wwan0<br>
      > valid_lft forever preferred_lft forever<br>
      > 8: wwan0.1@wwan0:
      <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc
      noqueue state UP group default qlen 1000<br>
      > link/ether e2:a2:fd:7b:37:c7 brd ff:ff:ff:ff:ff:ff<br>
      > inet6 fe80::e0a2:fdff:fe7b:37c7/64 scope link<br>
      > valid_lft forever preferred_lft forever<br>
      > # ip addr del <a href="http://100.104.40.133/24" moz-do-not-send="true"> 100.104.40.133/24</a> dev wwan0<br>
      > # ip addr add <a href="http://100.104.40.133/24" moz-do-not-send="true"> 100.104.40.133/24</a> dev wwan0.1<br>
      > # ip link set dev wwan0.1 up<br>
      > # ip a<br>
      > 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue
      state UNKNOWN group default qlen 1000<br>
      > link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br>
      > inet <a href="http://127.0.0.1/8" moz-do-not-send="true"> 127.0.0.1/8</a> scope host lo<br>
      > valid_lft forever preferred_lft forever<br>
      > inet6 ::1/128 scope host<br>
      > valid_lft forever preferred_lft forever<br>
      > 2: lan2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
      qdisc mq state UP group default qlen 1000<br>
      > link/ether 5a:10:c0:4f:ef:c8 brd ff:ff:ff:ff:ff:ff<br>
      > inet <a href="http://169.254.120.44/16" moz-do-not-send="true"> 169.254.120.44/16</a> brd <a href="http://169.254.255.255" moz-do-not-send="true"> 169.254.255.255</a> scope link
      noprefixroute lan2<br>
      > valid_lft forever preferred_lft forever<br>
      > inet6 fe80::2ee:38b1:b49a:ce1d/64 scope link noprefixroute<br>
      > valid_lft forever preferred_lft forever<br>
      > 3: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN
      group default qlen 1000<br>
      > link/sit 0.0.0.0 brd 0.0.0.0<br>
      > 4: lan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
      qdisc pfifo_fast state UP group default qlen 1000<br>
      > link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff<br>
      > 5: lan3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
      qdisc pfifo_fast state UP group default qlen 1000<br>
      > link/ether c2:90:20:3e:73:dd brd ff:ff:ff:ff:ff:ff<br>
      > inet <a href="http://192.168.7.2/24" moz-do-not-send="true"> 192.168.7.2/24</a> brd 192.168.7.255
      scope global lan3<br>
      > valid_lft forever preferred_lft forever<br>
      > inet6 fe80::c090:20ff:fe3e:73dd/64 scope link<br>
      > valid_lft forever preferred_lft forever<br>
      > 7: wwan0: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu
      1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000<br>
      > link/ether e2:a2:fd:7b:37:c7 brd ff:ff:ff:ff:ff:ff<br>
      > 8: wwan0.1@wwan0:
      <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc
      noqueue state UP group default qlen 1000<br>
      > link/ether e2:a2:fd:7b:37:c7 brd ff:ff:ff:ff:ff:ff<br>
      > inet <a href="http://100.104.40.133/24" moz-do-not-send="true"> 100.104.40.133/24</a> scope global
      wwan0.1<br>
      > valid_lft forever preferred_lft forever<br>
      > inet6 fe80::e0a2:fdff:fe7b:37c7/64 scope link<br>
      > valid_lft forever preferred_lft forever<br>
      > # ip r<br>
      > <a href="http://100.104.40.0/24" moz-do-not-send="true"> 100.104.40.0/24</a> dev wwan0.1 proto
      kernel scope link src <a href="http://100.104.40.133" moz-do-not-send="true"> 100.104.40.133</a><br>
      > <a href="http://169.254.0.0/16" moz-do-not-send="true"> 169.254.0.0/16</a> dev lan2 proto kernel
      scope link src <a href="http://169.254.120.44" moz-do-not-send="true"> 169.254.120.44</a> metric 100<br>
      > <a href="http://192.168.7.0/24" moz-do-not-send="true"> 192.168.7.0/24</a> dev lan3 proto kernel
      scope link src 192.168.7.2<br>
      > <a href="http://224.0.0.0/4" moz-do-not-send="true"> 224.0.0.0/4</a> dev lan2 proto static
      scope link metric 100<br>
      > # ip r add default via <a href="http://100.104.40.1" moz-do-not-send="true"> 100.104.40.1</a><br>
      > # ip r<br>
      > default via <a href="http://100.104.40.1" moz-do-not-send="true"> 100.104.40.1</a> dev wwan0.1<br>
      > <a href="http://100.104.40.0/24" moz-do-not-send="true"> 100.104.40.0/24</a> dev wwan0.1 proto
      kernel scope link src <a href="http://100.104.40.133" moz-do-not-send="true"> 100.104.40.133</a><br>
      > <a href="http://169.254.0.0/16" moz-do-not-send="true"> 169.254.0.0/16</a> dev lan2 proto kernel
      scope link src <a href="http://169.254.120.44" moz-do-not-send="true"> 169.254.120.44</a> metric 100<br>
      > <a href="http://192.168.7.0/24" moz-do-not-send="true"> 192.168.7.0/24</a> dev lan3 proto kernel
      scope link src 192.168.7.2<br>
      > <a href="http://224.0.0.0/4" moz-do-not-send="true"> 224.0.0.0/4</a> dev lan2 proto static
      scope link metric 100<br>
      > # ping <a href="http://8.8.8.8" moz-do-not-send="true"> 8.8.8.8</a><br>
      > PING <a href="http://8.8.8.8" moz-do-not-send="true"> 8.8.8.8</a> (<a href="http://8.8.8.8" moz-do-not-send="true">8.8.8.8</a>: 56 data bytes<br>
      > 64 bytes from <a href="http://8.8.8.8" moz-do-not-send="true"> 8.8.8.8</a> seq=0 ttl=116 time=44.351 ms<br>
      > 64 bytes from <a href="http://8.8.8.8" moz-do-not-send="true"> 8.8.8.8</a> seq=1 ttl=116 time=34.228 ms<br>
      > 64 bytes from <a href="http://8.8.8.8" moz-do-not-send="true"> 8.8.8.8</a> seq=2 ttl=116 time=41.697 ms<br>
      > 64 bytes from <a href="http://8.8.8.8" moz-do-not-send="true"> 8.8.8.8</a> seq=3 ttl=116 time=33.472 ms<br>
      > 64 bytes from <a href="http://8.8.8.8" moz-do-not-send="true"> 8.8.8.8</a> seq=4 ttl=116 time=33.080 ms<br>
      > 64 bytes from <a href="http://8.8.8.8" moz-do-not-send="true"> 8.8.8.8</a> seq=5 ttl=116 time=32.852 ms<br>
      > ^C<br>
      > --- <a href="http://8.8.8.8" moz-do-not-send="true"> 8.8.8.8</a> ping statistics ---<br>
      > 6 packets transmitted, 6 packets received, 0% packet loss<br>
      > round-trip min/avg/max = 32.852/36.613/44.351 ms<br>
      > #<br>
      ><br>
      <br>
      Ahh, ok, what you did here is setup a VLAN interface for session
      1,<br>
      because it was session 1 the one active in the 2nd bearer created<br>
      above, right?<br>
      If so, yes, you did hit the bug and you found a way to confirm
      it's a<br>
      bug. Still, the solution for this problem is to fully avoid having
      2<br>
      connected bearer objects. If you can reproduce the issue with the
      2<br>
      bearers and the 2nd one getting session id 1, when using MM
      1.16.6,<br>
      again, please provide a MM daemon debug log and post it to gitlab
      for<br>
      analysis.<br>
      <br>
      <br>
      > ModemManager only recently gained full support for PDN
      multiplexing. For full support of this, ModemManager most probably
      should pass the information about used PDN session index to
      NetworkManager,<br>
      > which would then setup the VLAN sub-interface accordingly,
      which NetworkManager, as of 1.26.8 currently does not - IP
      configuration is always applied to main interface.<br>
      > Therefore, stable versions probably should avoid using PDN
      sessions other than zero.<br>
      ><br>
      <br>
      Stable 1.16 should indeed always use PDN session id 0.<br>
      <br>
      In git master, the VLAN interface is created by ModemManager
      itself,<br>
      and we report to NetworkManager the name of the interface to be
      used.<br>
      All that works transparently for the user. If you switch to MM git<br>
      master, all that should work correctly without additional changes
      in<br>
      your side anywhere.<br>
      <br>
      > Now after this very long and convoluted story, my question
      is: Is there any particular fix on master branch, that could work
      for me, or is it possible to disable multiplexing explicitly? I
      think I could alter what's done in commit
      05b005951710c8810538ec448e89e32f28c3d592 [3] to disable
      multiplexing entirely - as I don't need it currently.
      Cherry-picking this commit verbatim would not work, as cdc_mbim
      driver does support multiplexing, and currently, check is done
      only against mhi_net driver. Still, a fix regarding bearer cleanup
      would be much more appreciated, or a hint on where to start
      looking, so I could develop and upstream the fix.<br>
      <br>
      Quick workaround: disable IPv6 in the NM settings.<br>
      Final solution: use MM git master as it is. Even if you don't need<br>
      multiplexing, using it is straightforward, and all that should be<br>
      correctly working (with any version of NetworkManager).<br>
      <br>
      > Thanks in advance for any information.<br>
      ><br>
      > [1] <a href="https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/188" moz-do-not-send="true">
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/188</a><br>
      > [2] <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/networking/cdc_mbim.rst?id=92f06f4226fd9bdd6fbbd2e8b84601fc14b5855e#n173" moz-do-not-send="true">
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/networking/cdc_mbim.rst?id=92f06f4226fd9bdd6fbbd2e8b84601fc14b5855e#n173</a><br>
      > [3] <a href="https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commit/05b005951710c8810538ec448e89e32f28c3d592" moz-do-not-send="true">
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commit/05b005951710c8810538ec448e89e32f28c3d592</a><br>
      ><br>
      <br>
      That was a long email; hope any of the things I said were helpful
      for you :)<br>
      <br>
      -- <br>
      Aleksander<br>
      <a href="https://aleksander.es" moz-do-not-send="true">https://aleksander.es</a><br>
      <p class="MsoNormal" style="’line-height:12.0pt;font-size:10.0pt;color:#9C6500">___</p>
      <p class="MsoNormal" style="’line-height:12.0pt;font-size:10.0pt;color:#9C6500">This
        email originated from outside of Camlin Group. Do not click on
        links or open attachments unless you are confident they are
        secure. If in doubt, contact IT Support (<a class="moz-txt-link-abbreviated" href="mailto:itsupport@camlintechnologies.com">itsupport@camlintechnologies.com</a>).</p>
    </blockquote>
    <pre class="moz-signature" cols="0">-- 
Pozdrawiam/With kind regards,
Lech Perczak

Sr. Software Engineer
Camlin Technologies Poland Limited Sp. z o.o.
Strzegomska 48A,
53-611 Wroclaw
Tel:     (+48) 71 75 000 16
Email:   <a class="moz-txt-link-abbreviated" href="mailto:l.perczak@camlintechnologies.com">l.perczak@camlintechnologies.com</a>
Website: <a class="moz-txt-link-freetext" href="http://www.camlintechnologies.com">http://www.camlintechnologies.com</a></pre>
  </body>
</html>