Hello everyone,

I run into a problem when I try to establish a connection when using ipv6 protocol on MC7354.

What I am using:
Embedded hardware (Allwinner A20, ARM Cortex A7) with Sierra Wireless modem MC7354. MC7354 has Verizon firmware installed.
Linux 3.19.0-rc6+ from Sunxi
uqmi from git, last snapshot from 2016-12-19
dhclient 4.36
Provider is Verizon with dual stack capability so I can use ipv4 and/or ipv6. APN is "vzwinternet".

Maybe I use the uqmi tool and/or dhclient in a wrong way ?

Here is my procedure for ipv4 connection that works:
uqmi --device=/dev/cdc-wdm0 --wda-set-data-format 802.3

uqmi --device=/dev/cdc-wdm0 --keep-client-id wds --start-network vzwinternet --ip-family ipv4
1137624840

uqmi --device=/dev/cdc-wdm0 --get-data-status
"connected"

uqmi --device=/dev/cdc-wdm0 --get-current-settings
{
        "pdp-type": "ipv4-or-ipv6",
        "ip-family": "ipv4",
        "mtu": 1428,
        "ipv4": {
                "ip": "100.64.246.204",
                "dns1": "198.224.156.135",
                "dns2": "198.224.157.135",
                "gateway": "100.64.246.205",
                "subnet": "255.255.255.248"
        },
        "ipv6": {

        },
        "domain-names": {

        }
}

dhclient -4 -1 -v wwan0
Internet Systems Consortium DHCP Client 4.3.6

Listening on LPF/wwan0/76:50:94:8a:3e:ce
Sending on   LPF/wwan0/76:50:94:8a:3e:ce
Sending on   Socket/fallback
DHCPDISCOVER on wwan0 to 255.255.255.255 port 67 interval 7
DHCPREQUEST on wwan0 to 255.255.255.255 port 67
DHCPOFFER from 100.64.246.205
DHCPACK from 100.64.246.205
bound to 100.64.246.204 -- renewal in 2888 seconds.

ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wwan0     Link encap:Ethernet  HWaddr 76:50:94:8A:3E:CE
          inet addr:100.64.246.204  Bcast:100.64.246.207  Mask:255.255.255.248
          inet6 addr: fe80::7450:94ff:fe8a:3ece/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:612 (612.0 B)  TX bytes:1332 (1.3 KiB)

ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=52 time=136 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=52 time=32.5 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=52 time=32.6 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=52 time=29.7 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=52 time=27.6 ms

Now my procedure for ipv6 connection that doesn't work:

cat /proc/sys/net/ipv6/conf/wwan0/accept_ra
1       -> Router-Advertisement is on

uqmi --device=/dev/cdc-wdm0 --wda-set-data-format 802.3

uqmi --device=/dev/cdc-wdm0 --keep-client-id wds --start-network vzwinternet --ip-family ipv6
1137614968

uqmi --device=/dev/cdc-wdm0 --get-data-status
"connected"

uqmi --device=/dev/cdc-wdm0 --get-current-settings
{
        "pdp-type": "ipv4-or-ipv6",
        "ip-family": "ipv6",
        "mtu": 1428,
        "ipv4": {

        },
        "ipv6": {
                "ip": "2600:100c:b211:76d7:4482:dac1:221:e5e9",
                "ip-prefix-length": 64,
                "gateway": "2600:100c:b211:76d7:4cac:43d9:3409:c1e8",
                "gw-prefix-length": 64,
                "dns1": "2001:4888:47:ff00:406:d::",
                "dns2": "2001:4888:41:ff00:404:d::"
        },
        "domain-names": {

        }
}

Some curiosity: Every time I recall the "--get-current-settings" while "--get-data-status" is "connected" I get a new ipv6 address.

ifconfig wwan0 up       (otherwise dhclient didn't find wwan0 interface)

Then dhclient fails:

dhclient -6 -1 -v wwan0
Internet Systems Consortium DHCP Client 4.3.6

Listening on Socket/wwan0
Sending on   Socket/wwan0
Created duid "\000\001\000\001\"2\207\035\306\344\263\370\007\220".
PRC: Soliciting for leases (INIT).
XMT: Forming Solicit, 0 ms elapsed.
XMT:  X-- IA_NA b3:f8:07:90
XMT:  | X-- Request renew in  +3600
XMT:  | X-- Request rebind in +5400
XMT: Solicit on wwan0, interval 1010ms.
XMT: Forming Solicit, 1010 ms elapsed.
XMT:  X-- IA_NA b3:f8:07:90
XMT:  | X-- Request renew in  +3600
XMT:  | X-- Request rebind in +5400
XMT: Solicit on wwan0, interval 2100ms.
XMT: Forming Solicit, 3110 ms elapsed.
XMT:  X-- IA_NA b3:f8:07:90
XMT:  | X-- Request renew in  +3600
XMT:  | X-- Request rebind in +5400
XMT: Solicit on wwan0, interval 4180ms.
XMT: Forming Solicit, 7290 ms elapsed.
XMT:  X-- IA_NA b3:f8:07:90
XMT:  | X-- Request renew in  +3600
XMT:  | X-- Request rebind in +5400
XMT: Solicit on wwan0, interval 8460ms.
XMT: Forming Solicit, 15760 ms elapsed.
XMT:  X-- IA_NA b3:f8:07:90
XMT:  | X-- Request renew in  +3600
XMT:  | X-- Request rebind in +5400
XMT: Solicit on wwan0, interval 16400ms.
XMT: Forming Solicit, 32170 ms elapsed.
XMT:  X-- IA_NA b3:f8:07:90
XMT:  | X-- Request renew in  +3600
XMT:  | X-- Request rebind in +5400
XMT: Solicit on wwan0, interval 27840ms.
Max retransmission duration exceeded.

I tried to set the interface wwan0 and the route manually with the shown settings from "--get-current-settings" but this seems not to work.

Any help would be appreciated.

Dieter