NETGEAR is aware of a growing number of phone and online scams. To learn how to stay safe click here.

Forum Discussion

ChrisAU's avatar
ChrisAU
Aspirant
Feb 28, 2017

Sierra Wirless AirCard IPv6 Driver Support for Linux (Raspbian)

Hi There!

 

I’m building a Raspberry Pi 3 based Mobile Broadband Router using a Sierra Wireless U320 (and U312) modem, which works fine with IPv4, but not with IPv6.

 

I’m using the latest February 2017 release of Raspbian which has native driver support for the Sierra modems. The version of sierra_net.ko is v.2.0, while sierra.ko doesn't seem to have a useful version number available anywhere.

 

Basically my problem is that when using an IPV6 or IPV4V6 carrier profile, the Sierra Wireless modem is successfully receiving an IPv6 address, but fails to pass it back through to the driver and/or operating system.

 

I confirmed carrier profile settings with my service provider's IPv6 support team today (Telstra, Australia).

 

Any ideas where I might be going wrong? I’ve looked through the latest Linux driver source (3.2) available on the Netgear website, and it appears to include support for IPv6 as far as I can tell.

 

Help!? I realise these modems are offically unsupported under Linux, but hopefully someone might have an idea?

 

Some Details…

 

IPv4

 

Modem configuration for IPv4 only mode.

 

AT+CGDCONT=1,"IP","Telstra.internet"

AT!SCDFTPROF=1

AT!SCPROF=1,"",1,0,0,0

AT+CFUN=1

 

IPv4 Address assigned to modem from carrier:

 

AT!SCPADDR=1

!SCPADDR: 1,"10.100.32.255"

 

IPv4 DNS Servers assigned from carrier:

 

AT!SCNETDNS?

!SCNETDNS: 1,"10.4.58.204"

!SCNETDNS: 1,"10.4.27.70"

 

These address details are successfully passed through to the driver and are visible to Raspbian:

 

ifconfig wwan0

wwan0     Link encap:Ethernet  HWaddr ba:d8:34:e1:03:07

          inet addr:10.100.32.255  Bcast:10.100.32.255  Mask:255.255.255.0

          inet6 addr: fe80::41fa:3dc9:f91a:a196/64 Scope:Link

          UP BROADCAST RUNNING NOARP MULTICAST  MTU:1500  Metric:1

          RX packets:4 errors:0 dropped:0 overruns:0 frame:0

          TX packets:15 errors:0 dropped:6 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:1200 (1.1 KiB)  TX bytes:4553 (4.4 KiB)

 

Test ping using wwan0 interface:

 

ping -c 4 -I wwan0 google.com

PING google.com (216.58.199.46) from 10.100.32.255 wwan0: 56(84) bytes of data.

64 bytes from syd09s12-in-f46.1e100.net (216.58.199.46): icmp_seq=1 ttl=57 time=264 ms

64 bytes from syd09s12-in-f46.1e100.net (216.58.199.46): icmp_seq=2 ttl=57 time=30.9 ms

64 bytes from syd09s12-in-f46.1e100.net (216.58.199.46): icmp_seq=3 ttl=57 time=39.5 ms

64 bytes from syd09s12-in-f46.1e100.net (216.58.199.46): icmp_seq=4 ttl=57 time=38.3 ms

 

--- google.com ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3003ms

rtt min/avg/max/mdev = 30.917/93.204/264.036/98.685 ms

 

So far all good! Now let's try IPv6...

 

IPv6

 

Modem configuration for IPv4v6 mode.

 

AT+CGDCONT=1,"IPV4V6","Telstra.internet"

AT!SCDFTPROF=1

AT!SCPROF=1,"",1,0,0,0

AT+CFUN=1

 

IPv4/v6 Addresses assigned to modem from carrier:

 

AT!SCPADDR=1

!SCPADDR: 1,"10.100.233.94" "2001:8004:1400:04DD:9B4D:05B2:9E83:0298"

 

IPv4 DNS Servers assigned from carrier:

 

AT!SCNETDNS?

!SCNETDNS: 1,"10.4.58.204"

!SCNETDNS: 1,"10.4.27.70"

 

However, neither the IPv4 or IPv6 address details appear to be passed through to the driver and are not visible to Raspbian:

 

ifconfig wwan0

wwan0     Link encap:Ethernet  HWaddr ba:d8:34:e1:03:07

          UP BROADCAST NOARP MULTICAST  MTU:1500  Metric:1

          RX packets:8 errors:0 dropped:0 overruns:0 frame:0

          TX packets:19 errors:0 dropped:6 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:1536 (1.5 KiB)  TX bytes:4969 (4.8 KiB)

 

The same thing occurs if I use the IPV6 profile instead of IPV4V6.

 

 

1 Reply

  • For anyone interested, after a lot of searching and debugging, the problem was a limitation of the current sierra_net.ko driver - no IPv6 or IPv4v6 (Dual-Stack) Link Sense implemented.

     

    I found a modified version of the driver source on GitHub that had been submitted for inclusion with future Linux kernel implementations. I compiled this and now it just works! :smileyvery-happy:

     

    Thanks to everyone who read my post!

    Chris.