Hello!

The current MM scheme where it will tries IPV4V6 by default, and falls
back to IPV4 and then IPV6 works pretty well.

But I've been looking at the other end of this the last few days. And
been puzzled by the fact that we get a session established on the first
IPv4V6 attempt, which is then immediately disconnected with RADIUS
reporting 

        Acct-Terminate-Cause = User-Request

I obviously never considered that the error could be on the ModemManager
client side :-) Thought we had something wrong in the APN config on the
PGW.

Then I just tried establishing sessions with mbimcli, and noticed that
this works just fine both with IpType set to either 'default' or
'ipv4v6'.  We get a 'connect-done' message with
ActivationState = 'activated' and IpType = 'ipv4' in both cases.

The problem seesm to be that the 'connect-done' also sets
NwError = '50' ('pdp-type-ipv4-only-allowed'), which is correct.  I
assume this is what makes MM disconnect the session and retry with a new
ipv4 only bearer.  This is suboptimal both from the client and network
side.  It would be really nice if MM could just be happy with that
'activated' state.

I am not even sure it should change the bearer from ipv4v6 to ipv4 when
the 'connect-don'e comes back with IpType = 'ipv4'.  If that is even
possible?  The APN might (and in this case - will ) change to dual stack
in the future.  Continuing to request ipv4v6, but accept ipv4, is the
correct thing to do.


Connecting with IpType = 'default':


[06 Sep 2020, 10:37:55] [Debug] [/dev/cdc-wdm0] Sent message...
<<<<<< RAW:
<<<<<<   length = 132
<<<<<<   data   = 
03:00:00:00:84:00:00:00:2B:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:0C:00:00:00:01:00:00:00:54:00:00:00:01:00:00:00:01:00:00:00:3C:00:00:00:16:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:7E:5E:2A:7E:4E:6F:72:72:73:6B:65:6E:7E:5E:2A:7E:74:00:65:00:6C:00:65:00:6E:00:6F:00:72:00:2E:00:78:00:78:00:78:00:00:00

[06 Sep 2020, 10:37:55] [Debug] [/dev/cdc-wdm0] Sent message (translated)...
<<<<<< Header:
<<<<<<   length      = 132
<<<<<<   type        = command (0x00000003)
<<<<<<   transaction = 43
<<<<<< Fragment header:
<<<<<<   total   = 1
<<<<<<   current = 0
<<<<<< Contents:
<<<<<<   service = 'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)
<<<<<<   cid     = 'connect' (0x0000000c)
<<<<<<   type    = 'set' (0x00000001)
<<<<<< Fields:
<<<<<<   SessionId = '1'
<<<<<<   ActivationCommand = 'activate'
<<<<<<   AccessString = 'telenor.xxx'
<<<<<<   UserName = '(null)'
<<<<<<   Password = '(null)'
<<<<<<   Compression = 'none'
<<<<<<   AuthProtocol = 'none'
<<<<<<   IpType = 'default'
<<<<<<   ContextType = '7e5e2a7e-4e6f-7272-736b-656e7e5e2a7e'

[06 Sep 2020, 10:37:55] [Debug] [/dev/cdc-wdm0] Received message...
>>>>>> RAW:
>>>>>>   length = 80
>>>>>>   data   = 
>>>>>> 07:00:00:80:50:00:00:00:00:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:0C:00:00:00:24:00:00:00:01:00:00:00:02:00:00:00:00:00:00:00:00:00:00:00:7E:5E:2A:7E:4E:6F:72:72:73:6B:65:6E:7E:5E:2A:7E:00:00:00:00

[06 Sep 2020, 10:37:55] [Debug] [/dev/cdc-wdm0] Received message (translated)...
>>>>>> Header:
>>>>>>   length      = 80
>>>>>>   type        = indicate-status (0x80000007)
>>>>>>   transaction = 0
>>>>>> Fragment header:
>>>>>>   total   = 1
>>>>>>   current = 0
>>>>>> Contents:
>>>>>>   service = 'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)
>>>>>>   cid     = 'connect' (0x0000000c)
>>>>>> Fields:
>>>>>>   SessionId = '1'
>>>>>>   ActivationState = 'activating'
>>>>>>   VoiceCallState = 'none'
>>>>>>   IpType = 'default'
>>>>>>   ContextType = '7e5e2a7e-4e6f-7272-736b-656e7e5e2a7e'
>>>>>>   NwError = '0'

[06 Sep 2020, 10:37:55] [Debug] [/dev/cdc-wdm0] Received message...
>>>>>> RAW:
>>>>>>   length = 84
>>>>>>   data   = 
>>>>>> 03:00:00:80:54:00:00:00:2B:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:0C:00:00:00:00:00:00:00:24:00:00:00:01:00:00:00:01:00:00:00:00:00:00:00:01:00:00:00:7E:5E:2A:7E:4E:6F:72:72:73:6B:65:6E:7E:5E:2A:7E:32:00:00:00

[06 Sep 2020, 10:37:55] [Debug] [/dev/cdc-wdm0] Received message (translated)...
>>>>>> Header:
>>>>>>   length      = 84
>>>>>>   type        = command-done (0x80000003)
>>>>>>   transaction = 43
>>>>>> Fragment header:
>>>>>>   total   = 1
>>>>>>   current = 0
>>>>>> Contents:
>>>>>>   status error = 'None' (0x00000000)
>>>>>>   service      = 'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)
>>>>>>   cid          = 'connect' (0x0000000c)
>>>>>> Fields:
>>>>>>   SessionId = '1'
>>>>>>   ActivationState = 'activated'
>>>>>>   VoiceCallState = 'none'
>>>>>>   IpType = 'ipv4'
>>>>>>   ContextType = '7e5e2a7e-4e6f-7272-736b-656e7e5e2a7e'
>>>>>>   NwError = '50'

[/dev/cdc-wdm0] Successfully connected

[/dev/cdc-wdm0] Connection status:
              Session ID: '1'
        Activation state: 'activated'
        Voice call state: 'none'
                 IP type: 'ipv4'
            Context type: 'internet'
           Network error: 'pdp-type-ipv4-only-allowed'




Connecting with IpType = ''ipv4v6':


[06 Sep 2020, 10:41:11] [Debug] [/dev/cdc-wdm0] Sent message...
<<<<<< RAW:
<<<<<<   length = 132
<<<<<<   data   = 
03:00:00:00:84:00:00:00:2B:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:0C:00:00:00:01:00:00:00:54:00:00:00:01:00:00:00:01:00:00:00:3C:00:00:00:16:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:03:00:00:00:7E:5E:2A:7E:4E:6F:72:72:73:6B:65:6E:7E:5E:2A:7E:74:00:65:00:6C:00:65:00:6E:00:6F:00:72:00:2E:00:78:00:78:00:78:00:00:00

[06 Sep 2020, 10:41:11] [Debug] [/dev/cdc-wdm0] Sent message (translated)...
<<<<<< Header:
<<<<<<   length      = 132
<<<<<<   type        = command (0x00000003)
<<<<<<   transaction = 43
<<<<<< Fragment header:
<<<<<<   total   = 1
<<<<<<   current = 0
<<<<<< Contents:
<<<<<<   service = 'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)
<<<<<<   cid     = 'connect' (0x0000000c)
<<<<<<   type    = 'set' (0x00000001)
<<<<<< Fields:
<<<<<<   SessionId = '1'
<<<<<<   ActivationCommand = 'activate'
<<<<<<   AccessString = 'telenor.xxx'
<<<<<<   UserName = '(null)'
<<<<<<   Password = '(null)'
<<<<<<   Compression = 'none'
<<<<<<   AuthProtocol = 'none'
<<<<<<   IpType = 'ipv4v6'
<<<<<<   ContextType = '7e5e2a7e-4e6f-7272-736b-656e7e5e2a7e'

[06 Sep 2020, 10:41:11] [Debug] [/dev/cdc-wdm0] Received message...
>>>>>> RAW:
>>>>>>   length = 80
>>>>>>   data   = 
>>>>>> 07:00:00:80:50:00:00:00:00:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:0C:00:00:00:24:00:00:00:01:00:00:00:02:00:00:00:00:00:00:00:03:00:00:00:7E:5E:2A:7E:4E:6F:72:72:73:6B:65:6E:7E:5E:2A:7E:00:00:00:00

[06 Sep 2020, 10:41:11] [Debug] [/dev/cdc-wdm0] Received message (translated)...
>>>>>> Header:
>>>>>>   length      = 80
>>>>>>   type        = indicate-status (0x80000007)
>>>>>>   transaction = 0
>>>>>> Fragment header:
>>>>>>   total   = 1
>>>>>>   current = 0
>>>>>> Contents:
>>>>>>   service = 'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)
>>>>>>   cid     = 'connect' (0x0000000c)
>>>>>> Fields:
>>>>>>   SessionId = '1'
>>>>>>   ActivationState = 'activating'
>>>>>>   VoiceCallState = 'none'
>>>>>>   IpType = 'ipv4v6'
>>>>>>   ContextType = '7e5e2a7e-4e6f-7272-736b-656e7e5e2a7e'
>>>>>>   NwError = '0'

[06 Sep 2020, 10:41:11] [Debug] [/dev/cdc-wdm0] Received message...
>>>>>> RAW:
>>>>>>   length = 84
>>>>>>   data   = 
>>>>>> 03:00:00:80:54:00:00:00:2B:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:0C:00:00:00:00:00:00:00:24:00:00:00:01:00:00:00:01:00:00:00:00:00:00:00:01:00:00:00:7E:5E:2A:7E:4E:6F:72:72:73:6B:65:6E:7E:5E:2A:7E:32:00:00:00

[06 Sep 2020, 10:41:11] [Debug] [/dev/cdc-wdm0] Received message (translated)...
>>>>>> Header:
>>>>>>   length      = 84
>>>>>>   type        = command-done (0x80000003)
>>>>>>   transaction = 43
>>>>>> Fragment header:
>>>>>>   total   = 1
>>>>>>   current = 0
>>>>>> Contents:
>>>>>>   status error = 'None' (0x00000000)
>>>>>>   service      = 'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)
>>>>>>   cid          = 'connect' (0x0000000c)
>>>>>> Fields:
>>>>>>   SessionId = '1'
>>>>>>   ActivationState = 'activated'
>>>>>>   VoiceCallState = 'none'
>>>>>>   IpType = 'ipv4'
>>>>>>   ContextType = '7e5e2a7e-4e6f-7272-736b-656e7e5e2a7e'
>>>>>>   NwError = '50'

[/dev/cdc-wdm0] Successfully connected

[/dev/cdc-wdm0] Connection status:
              Session ID: '1'
        Activation state: 'activated'
        Voice call state: 'none'
                 IP type: 'ipv4'
            Context type: 'internet'
           Network error: 'pdp-type-ipv4-only-allowed'





Bjørn
_______________________________________________
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel

Reply via email to