Trying out some IPv6, on both BG96 and EG25, and I’m seeing something strange.
Initial setup & check of modem firmware version:
at+cgmr
EG25GGBR07A07M2G
OK
at+qicsgp=1,2,"myapn"
OK
at+qiact=1
OK
at+qiact?
+QIACT: 1,1,2,"2607:FB90:27D1:7C41:0:3E:5E74:6A01"
OK
…so, this all looks ok. We are on the network and have been given an IP address.
Set up a UDP socket:
at+qiopen=1,1,"UDP SERVICE","::",0,31314,0
OK
+QIOPEN: 1,0
at+qistate
+QISTATE: 1,"UDP SERVICE","2607:FB90:27D1:7C41:0:3E:5E74:6A01",0,31314,2,1,1,0,"uart1"
OK
Nice, socket all open. I’m using “::” for the any address here, but have also tried “127.0.0.1” as recommended in the docs and also explicitly specifying the local address as returned by qiact. The behavior does not change.
Now, from the IPv6 host I’m using, I’ll check the host’s IP, and then send a UDP packet to the device:
[ec2-user@ip-10-0-0-131 ~]$ ifconfig eth0 | grep inet6
inet6 2600:1f15:b06:3400:cfde:be7d:a6a:cba8 prefixlen 128 scopeid 0x0<global>
inet6 fe80::41a:83ff:fee2:e59c prefixlen 64 scopeid 0x20<link>
[ec2-user@ip-10-0-0-131 ~]$ echo test | nc -6 -u 2607:FB90:27D1:7C41:0:3E:5E74:6A01 31314
…this packet is successfully received, and I retrieve it with at+qird:
+QIURC: "recv",1
at+qird=1,100
+QIRD: 5,"0:0:CFDE:BE7D:0:0:2600:1F15",57190
test
OK
…but, the source IP is wrong. Source IP is half zeros, and all mixed up:
2600:1f15:0b06:3400:cfde:be7d:0a6a:cba8 - should be this
0000:0000:cfde:be7d:0000:0000:2600:1f15 - is reported as this by QIRD
Am I missing something, or is this a bug? Not being able to verify the source IP on a received packet is pretty bad.