LTE troubleshooting on pfSense and OPNsense

This article has been updated on May 15, 2021

Getting LTE to work correctly is often a challenge. Several things can go wrong. Modem not being appropriately detected, connection string throwing errors, cryptic operating system messages, etc. Here are a few typical pitfalls that will hopefully put you on the right path.

This article assumes that you are running pfSense or OPNsense and know how to get access to the shell.

Is my modem detected?

You can check if your modem is detected by running usbconfig on the terminal.

To get more details run usbconfig -d 2.3 dump_device_desc (make sure you specify the right device number).

It should look similar to this:


Note, in this case, I'm using HUAWEI ME909u-521, and it's being detected as:

ugen2.3: <HUAWEI Technology HUAWEI Mobile> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)

Once you see your modem here, you should check that the cuaUx.x devices are located in /dev/ 

ls /dev/cuaU* should look similar to this:

 

My modem is detected only sometimes

This is a typical problem when using LTE modems with pfSense. If your modem wasn't detected after a reboot, it means that it didn't have enough time to initialize.

Add a delay of 40 seconds in /boot/loader.conf 
loader_delay="40"

Now it should be detected every time. Linux doesn't seem to have this problem.

Talk to the modem directly

You can connect to the modem directly via serial console and issue AT commands to troubleshoot. This is incredibly useful to know.

My Huawei modem allows me to connect to cuaU0.2 interface while cuaU0.0 is live and connected. This allows me to debug a running modem.

To connect you can use cu command like this:

cu -l /dev/cuaU0.2

right after issuing this command, it should say "connected" and allow you to type AT commands. The first command you want to type is

AT+CMEE=2

This puts the modem into a verbose mode.

Check basic modem information

ATI
Manufacturer: Huawei Technologies Co., Ltd.
Model: ME909u-521
Revision: 12.636.12.01.00
IMEI: 860461025924088
+GCAP: +CGSM

Check if the SIM card is detected by the modem

AT+cpin?
+CPIN: READY
AT+cpin?
+CPIN: SIM PIN

This was a good response for SIM without PIN and SIM with PIN. If we remove SIM, the response changes:

AT+cpin?
+CME ERROR: SIM failure

If you see an error here, make sure your modem is connected to J15 and SIM to J1. See photo in the previous article.

If the SIM card is inserted into a wrong slot, the response may look similar to this:

AT+cpin?
+CME ERROR: SIM not inserted

If you remove the SIM card and insert it in another slot, modem won't detect it automatically. You MUST power off the device and power it back on for the modem to detect it. Don't hot-swap the SIM card. 

Check signal strength

If your antenna is damaged or you connected it to the wrong socket you may get a very low signal strength.

AT+CSQ
+CSQ: 31,99

Scan available networks

AT+COPS=?

 +COPS: (2,"Tele2","Tele2 SE","24007",7),(1,"Tele2","Tele2 SE","24007",2),(1,"Sweden Mobile","MobileS","24024",0),(1,"3 SE","3 SE","24002",7),(3,"TELIA S","TELIA","24001",2),(3,"TELIA S","TELIA","24001",7),(1,"Telenor SE","TelenorS","24008",7),(3,"TELIA S","TELIA","24001",0),(1,"Telenor SE","TelenorS","24008",2),(1,"3 SE","3 SE","24002",2),,(0,1,2,3,4),(0,1,2)

This will take few seconds to complete. Scanning is only possible when we are not already connected.

Check mobile phone activity status 

AT+CPAS
+CPAS: 4

4 means that we are connected. See explanation below:

0 - Ready
2 - Unknown
3-  Ringing (Device is ready for commands ringer is active
4- Call in progress

View PPP logs in real-time

It's very useful to view log messages as they appear in real-time when we are sending commands to the modem.You should connect to the modem via SSH to have a separate terminal session and type this command on the shell:

tail -f /var/log/ppp.log


CHAT: Invalid dial init string.

If you see this message in your log, it may mean several things, but most likely, your SIM is not detected correctly. Check your SIM.

Mar  2 05:36:47 pfSense ppp: [wan_link0] LCP: Down event
Mar  2 05:36:47 pfSense ppp: [wan_link0] Link: reconnection attempt 3963 in 2 seconds
Mar  2 05:36:49 pfSense ppp: [wan_link0] Link: reconnection attempt 3963
Mar  2 05:36:50 pfSense ppp: [wan_link0] CHAT: +CGDCONT=1,"IP","4g.tele2.se"
Mar  2 05:36:50 pfSense ppp: [wan_link0] CHAT: Detected Custom modem.
Mar  2 05:36:50 pfSense ppp: [wan_link0] CHAT: Dialing server at *99#...
Mar  2 05:36:50 pfSense ppp: [wan_link0] CHAT: ATDT*99#
Mar  2 05:36:50 pfSense ppp: [wan_link0] CHAT: Invalid dial init string.

No IP address

If your log looks similar to the snippet below, you are not getting an IP address from the base station. 

The most likely reason is that your APN is incorrect. In this example, I used "internet.tele2.se" while the correct APN was "4g.tele2.se".

May 10 18:08:00 pfSense ppp: Multi-link PPP daemon for FreeBSD
May 10 18:08:00 pfSense ppp:  
May 10 18:08:00 pfSense ppp: process 95981 started, version 5.8 (nobody@pfSense_v2_4_2_amd64-pfSense_v2_4_2-job-14 18:47 16-Nov-2017)
May 10 18:08:00 pfSense ppp: waiting for process 61516 to die...
May 10 18:08:00 pfSense ppp: caught fatal signal TERM
May 10 18:08:00 pfSense ppp: [opt1] IFACE: Close event
May 10 18:08:00 pfSense ppp: [opt1] IPCP: Close event
May 10 18:08:00 pfSense ppp: [opt1] IPV6CP: Close event
May 10 18:08:01 pfSense ppp: waiting for process 61516 to die...
May 10 18:08:02 pfSense ppp: waiting for process 61516 to die...
May 10 18:08:02 pfSense ppp: [opt1] Bundle: Shutdown
May 10 18:08:02 pfSense ppp: [opt1_link0] Link: Shutdown
May 10 18:08:02 pfSense ppp: process 61516 terminated
May 10 18:08:03 pfSense ppp: web: web is not running
May 10 18:08:03 pfSense ppp: [opt1] Bundle: Interface ng0 created
May 10 18:08:03 pfSense ppp: [opt1_link0] Link: OPEN event
May 10 18:08:03 pfSense ppp: [opt1_link0] LCP: Open event
May 10 18:08:03 pfSense ppp: [opt1_link0] LCP: state change Initial --> Starting
May 10 18:08:03 pfSense ppp: [opt1_link0] LCP: LayerStart
May 10 18:08:03 pfSense ppp: [opt1_link0] CHAT: +CGDCONT=1,"IP","internet.tele2.se"
May 10 18:08:03 pfSense ppp: [opt1_link0] CHAT: Detected Custom modem.
May 10 18:08:03 pfSense ppp: [opt1_link0] CHAT: Dialing server at *99#...
May 10 18:08:03 pfSense ppp: [opt1_link0] CHAT: ATDT*99#
May 10 18:08:03 pfSense ppp: [opt1_link0] CHAT: Connected at 100000000.
May 10 18:08:03 pfSense ppp: [opt1_link0] MODEM: chat script succeeded
May 10 18:08:03 pfSense ppp: [opt1_link0] Link: UP event
May 10 18:08:03 pfSense ppp: [opt1_link0] LCP: Up event
May 10 18:08:03 pfSense ppp: [opt1_link0] LCP: state change Starting --> Req-Sent
May 10 18:08:03 pfSense ppp: [opt1_link0] LCP: SendConfigReq #1
May 10 18:08:03 pfSense ppp: [opt1_link0]   ACFCOMP
May 10 18:08:03 pfSense ppp: [opt1_link0]   PROTOCOMP
May 10 18:08:03 pfSense ppp: [opt1_link0]   ACCMAP 0x000a0000
May 10 18:08:03 pfSense ppp: [opt1_link0]   MRU 1500
May 10 18:08:03 pfSense ppp: [opt1_link0]   MAGICNUM 0x8b1b6911
May 10 18:08:03 pfSense ppp: [opt1_link0] LCP: rec'd Configure Request #26 (Req-Sent)
May 10 18:08:03 pfSense ppp: [opt1_link0]   ACCMAP 0x00000000
May 10 18:08:03 pfSense ppp: [opt1_link0]   AUTHPROTO CHAP MD5
May 10 18:08:03 pfSense ppp: [opt1_link0]   MAGICNUM 0xff63dd68
May 10 18:08:03 pfSense ppp: [opt1_link0]   PROTOCOMP
May 10 18:08:03 pfSense ppp: [opt1_link0]   ACFCOMP
May 10 18:08:03 pfSense ppp: [opt1_link0] LCP: SendConfigAck #26
May 10 18:08:03 pfSense ppp: [opt1_link0]   ACCMAP 0x00000000
May 10 18:08:03 pfSense ppp: [opt1_link0]   AUTHPROTO CHAP MD5
May 10 18:08:03 pfSense ppp: [opt1_link0]   MAGICNUM 0xff63dd68
May 10 18:08:03 pfSense ppp: [opt1_link0]   PROTOCOMP
May 10 18:08:03 pfSense ppp: [opt1_link0]   ACFCOMP
May 10 18:08:03 pfSense ppp: [opt1_link0] LCP: state change Req-Sent --> Ack-Sent
May 10 18:08:03 pfSense ppp: [opt1_link0] LCP: rec'd Configure Ack #1 (Ack-Sent)
May 10 18:08:03 pfSense ppp: [opt1_link0]   ACFCOMP
May 10 18:08:03 pfSense ppp: [opt1_link0]   PROTOCOMP
May 10 18:08:03 pfSense ppp: [opt1_link0]   ACCMAP 0x000a0000
May 10 18:08:03 pfSense ppp: [opt1_link0]   MRU 1500
May 10 18:08:03 pfSense ppp: [opt1_link0]   MAGICNUM 0x8b1b6911
May 10 18:08:03 pfSense ppp: [opt1_link0] LCP: state change Ack-Sent --> Opened
May 10 18:08:03 pfSense ppp: [opt1_link0] LCP: auth: peer wants CHAP, I want nothing
May 10 18:08:03 pfSense ppp: [opt1_link0] LCP: LayerUp
May 10 18:08:03 pfSense ppp: [opt1_link0] LCP: rec'd Discard Request #27 (Opened)
May 10 18:08:03 pfSense ppp: [opt1_link0] CHAP: rec'd CHALLENGE #1 len: 35
May 10 18:08:03 pfSense ppp: [opt1_link0]   Name: "UMTS_CHAP_SRVR"
May 10 18:08:03 pfSense ppp: [opt1_link0] CHAP: Using authname "user"
May 10 18:08:03 pfSense ppp: [opt1_link0] CHAP: sending RESPONSE #1 len: 25
May 10 18:08:03 pfSense ppp: [opt1_link0] CHAP: rec'd SUCCESS #1 len: 4
May 10 18:08:03 pfSense ppp: [opt1_link0] LCP: authorization successful
May 10 18:08:03 pfSense ppp: [opt1_link0] Link: Matched action 'bundle "opt1" ""'
May 10 18:08:03 pfSense ppp: [opt1_link0] Link: Join bundle "opt1"
May 10 18:08:03 pfSense ppp: [opt1] Bundle: Status update: up 1 link, total bandwidth 100000000 bps
May 10 18:08:03 pfSense ppp: [opt1] IPCP: Open event
May 10 18:08:03 pfSense ppp: [opt1] IPCP: state change Initial --> Starting
May 10 18:08:03 pfSense ppp: [opt1] IPCP: LayerStart
May 10 18:08:03 pfSense ppp: [opt1] IPV6CP: Open event
May 10 18:08:03 pfSense ppp: [opt1] IPV6CP: state change Initial --> Starting
May 10 18:08:03 pfSense ppp: [opt1] IPV6CP: LayerStart
May 10 18:08:03 pfSense ppp: [opt1] IPCP: Up event
May 10 18:08:03 pfSense ppp: [opt1] IPCP: state change Starting --> Req-Sent
May 10 18:08:03 pfSense ppp: [opt1] IPCP: SendConfigReq #1
May 10 18:08:03 pfSense ppp: [opt1]   IPADDR 0.0.0.0
May 10 18:08:03 pfSense ppp: [opt1]   COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
May 10 18:08:03 pfSense ppp: [opt1]   PRIDNS 0.0.0.0
May 10 18:08:03 pfSense ppp: [opt1]   SECDNS 0.0.0.0
May 10 18:08:03 pfSense ppp: [opt1] IPV6CP: Up event
May 10 18:08:03 pfSense ppp: [opt1] IPV6CP: state change Starting --> Req-Sent
May 10 18:08:03 pfSense ppp: [opt1] IPV6CP: SendConfigReq #1
May 10 18:08:05 pfSense ppp: [opt1] IPV6CP: SendConfigReq #2
May 10 18:08:05 pfSense ppp: [opt1] IPCP: SendConfigReq #2
May 10 18:08:05 pfSense ppp: [opt1]   IPADDR 0.0.0.0
May 10 18:08:05 pfSense ppp: [opt1]   COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
May 10 18:08:05 pfSense ppp: [opt1]   PRIDNS 0.0.0.0
May 10 18:08:05 pfSense ppp: [opt1]   SECDNS 0.0.0.0
May 10 18:08:07 pfSense ppp: [opt1] IPCP: SendConfigReq #3
May 10 18:08:07 pfSense ppp: [opt1]   IPADDR 0.0.0.0
May 10 18:08:07 pfSense ppp: [opt1]   COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
May 10 18:08:07 pfSense ppp: [opt1]   PRIDNS 0.0.0.0
May 10 18:08:07 pfSense ppp: [opt1]   SECDNS 0.0.0.0
May 10 18:08:07 pfSense ppp: [opt1] IPV6CP: SendConfigReq #3
May 10 18:08:09 pfSense ppp: [opt1] IPV6CP: SendConfigReq #4
May 10 18:08:09 pfSense ppp: [opt1] IPCP: SendConfigReq #4
May 10 18:08:09 pfSense ppp: [opt1]   IPADDR 0.0.0.0
May 10 18:08:09 pfSense ppp: [opt1]   COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
May 10 18:08:09 pfSense ppp: [opt1]   PRIDNS 0.0.0.0
May 10 18:08:09 pfSense ppp: [opt1]   SECDNS 0.0.0.0
May 10 18:08:11 pfSense ppp: [opt1] IPCP: SendConfigReq #5
May 10 18:08:11 pfSense ppp: [opt1]   IPADDR 0.0.0.0
May 10 18:08:11 pfSense ppp: [opt1]   COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
May 10 18:08:11 pfSense ppp: [opt1]   PRIDNS 0.0.0.0
May 10 18:08:11 pfSense ppp: [opt1]   SECDNS 0.0.0.0
May 10 18:08:11 pfSense ppp: [opt1] IPV6CP: SendConfigReq #5
May 10 18:08:13 pfSense ppp: [opt1] IPV6CP: SendConfigReq #6
May 10 18:08:13 pfSense ppp: [opt1] IPCP: SendConfigReq #6
May 10 18:08:13 pfSense ppp: [opt1]   IPADDR 0.0.0.0
May 10 18:08:13 pfSense ppp: [opt1]   COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
May 10 18:08:13 pfSense ppp: [opt1]   PRIDNS 0.0.0.0
May 10 18:08:13 pfSense ppp: [opt1]   SECDNS 0.0.0.0
May 10 18:08:15 pfSense ppp: [opt1] IPCP: SendConfigReq #7
May 10 18:08:15 pfSense ppp: [opt1]   IPADDR 0.0.0.0
May 10 18:08:15 pfSense ppp: [opt1]   COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
May 10 18:08:15 pfSense ppp: [opt1]   PRIDNS 0.0.0.0
May 10 18:08:15 pfSense ppp: [opt1]   SECDNS 0.0.0.0
May 10 18:08:15 pfSense ppp: [opt1] IPV6CP: SendConfigReq #7
May 10 18:08:17 pfSense ppp: [opt1] IPV6CP: SendConfigReq #8
May 10 18:08:17 pfSense ppp: [opt1] IPCP: SendConfigReq #8
May 10 18:08:17 pfSense ppp: [opt1]   IPADDR 0.0.0.0
May 10 18:08:17 pfSense ppp: [opt1]   COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
May 10 18:08:17 pfSense ppp: [opt1]   PRIDNS 0.0.0.0
May 10 18:08:17 pfSense ppp: [opt1]   SECDNS 0.0.0.0
May 10 18:08:19 pfSense ppp: [opt1] IPCP: SendConfigReq #9
May 10 18:08:19 pfSense ppp: [opt1]   IPADDR 0.0.0.0
May 10 18:08:19 pfSense ppp: [opt1]   COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
May 10 18:08:19 pfSense ppp: [opt1]   PRIDNS 0.0.0.0
May 10 18:08:19 pfSense ppp: [opt1]   SECDNS 0.0.0.0
May 10 18:08:19 pfSense ppp: [opt1] IPV6CP: SendConfigReq #9
May 10 18:08:21 pfSense ppp: [opt1] IPV6CP: SendConfigReq #10
May 10 18:08:21 pfSense ppp: [opt1] IPCP: SendConfigReq #10
May 10 18:08:21 pfSense ppp: [opt1]   IPADDR 0.0.0.0
May 10 18:08:21 pfSense ppp: [opt1]   COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
May 10 18:08:21 pfSense ppp: [opt1]   PRIDNS 0.0.0.0
May 10 18:08:21 pfSense ppp: [opt1]   SECDNS 0.0.0.0
May 10 18:08:23 pfSense ppp: [opt1_link0] LCP: no reply to 1 echo request(s)
May 10 18:08:23 pfSense ppp: [opt1] IPCP: parameter negotiation failed
May 10 18:08:23 pfSense ppp: [opt1] IPCP: state change Req-Sent --> Stopped
May 10 18:08:23 pfSense ppp: [opt1] IPCP: LayerFinish
May 10 18:08:23 pfSense ppp: [opt1] IPV6CP: parameter negotiation failed
May 10 18:08:23 pfSense ppp: [opt1] IPV6CP: state change Req-Sent --> Stopped
May 10 18:08:23 pfSense ppp: [opt1] IPV6CP: LayerFinish
May 10 18:08:23 pfSense ppp: [opt1] Bundle: No NCPs left. Closing links...
May 10 18:08:23 pfSense ppp: [opt1] Bundle: closing link "opt1_link0"...
May 10 18:08:23 pfSense ppp: [opt1_link0] Link: CLOSE event
May 10 18:08:23 pfSense ppp: [opt1_link0] LCP: Close event
May 10 18:08:23 pfSense ppp: [opt1_link0] LCP: state change Opened --> Closing
May 10 18:08:23 pfSense ppp: [opt1_link0] Link: Leave bundle "opt1"
May 10 18:08:23 pfSense ppp: [opt1] Bundle: Status update: up 0 links, total bandwidth 9600 bps
May 10 18:08:23 pfSense ppp: [opt1] IPCP: Close event
May 10 18:08:23 pfSense ppp: [opt1] IPCP: state change Stopped --> Closed
May 10 18:08:23 pfSense ppp: [opt1] IPV6CP: Close event
May 10 18:08:23 pfSense ppp: [opt1] IPV6CP: state change Stopped --> Closed
May 10 18:08:23 pfSense ppp: [opt1] IPCP: Down event
May 10 18:08:23 pfSense ppp: [opt1] IPCP: state change Closed --> Initial
May 10 18:08:23 pfSense ppp: [opt1] IPV6CP: Down event
May 10 18:08:23 pfSense ppp: [opt1] IPV6CP: state change Closed --> Initial
May 10 18:08:23 pfSense ppp: [opt1_link0] LCP: SendTerminateReq #2
May 10 18:08:23 pfSense ppp: [opt1_link0] LCP: LayerDown

Successful connection

If your connection worked, you should see this in your log:

May 11 20:14:34 pfSense ppp: [wan] Bundle: Interface ng0 created
May 11 20:14:34 pfSense ppp: [wan_link0] Link: OPEN event
May 11 20:14:34 pfSense ppp: [wan_link0] LCP: Open event
May 11 20:14:34 pfSense ppp: [wan_link0] LCP: state change Initial --> Starting
May 11 20:14:34 pfSense ppp: [wan_link0] LCP: LayerStart
May 11 20:14:35 pfSense ppp: [wan_link0] CHAT: +CGDCONT=1,"IP","4g.tele2.se"
May 11 20:14:35 pfSense ppp: [wan_link0] CHAT: Detected Custom modem.
May 11 20:14:35 pfSense ppp: [wan_link0] CHAT: Dialing server at *99#...
May 11 20:14:35 pfSense ppp: [wan_link0] CHAT: ATDT*99#
May 11 20:14:35 pfSense ppp: [wan_link0] CHAT: Connected at 100000000.
May 11 20:14:35 pfSense ppp: [wan_link0] MODEM: chat script succeeded
May 11 20:14:35 pfSense ppp: [wan_link0] Link: UP event
May 11 20:14:35 pfSense ppp: [wan_link0] LCP: Up event
May 11 20:14:35 pfSense ppp: [wan_link0] LCP: state change Starting --> Req-Sent
May 11 20:14:35 pfSense ppp: [wan_link0] LCP: SendConfigReq #1
May 11 20:14:35 pfSense ppp: [wan_link0]   ACFCOMP
May 11 20:14:35 pfSense ppp: [wan_link0]   PROTOCOMP
May 11 20:14:35 pfSense ppp: [wan_link0]   ACCMAP 0x000a0000
May 11 20:14:35 pfSense ppp: [wan_link0]   MRU 1500
May 11 20:14:35 pfSense ppp: [wan_link0]   MAGICNUM 0xf522afd6
May 11 20:14:35 pfSense ppp: [wan_link0] LCP: rec'd Configure Request #0 (Req-Sent)
May 11 20:14:35 pfSense ppp: [wan_link0]   ACCMAP 0x00000000
May 11 20:14:35 pfSense ppp: [wan_link0]   AUTHPROTO CHAP MD5
May 11 20:14:35 pfSense ppp: [wan_link0]   MAGICNUM 0x04fe1081
May 11 20:14:35 pfSense ppp: [wan_link0]   PROTOCOMP
May 11 20:14:35 pfSense ppp: [wan_link0]   ACFCOMP
May 11 20:14:35 pfSense ppp: [wan_link0] LCP: SendConfigAck #0
May 11 20:14:35 pfSense ppp: [wan_link0]   ACCMAP 0x00000000
May 11 20:14:35 pfSense ppp: [wan_link0]   AUTHPROTO CHAP MD5
May 11 20:14:35 pfSense ppp: [wan_link0]   MAGICNUM 0x04fe1081
May 11 20:14:35 pfSense ppp: [wan_link0]   PROTOCOMP
May 11 20:14:35 pfSense ppp: [wan_link0]   ACFCOMP
May 11 20:14:35 pfSense ppp: [wan_link0] LCP: state change Req-Sent --> Ack-Sent
May 11 20:14:35 pfSense ppp: [wan_link0] LCP: rec'd Configure Ack #1 (Ack-Sent)
May 11 20:14:35 pfSense ppp: [wan_link0]   ACFCOMP
May 11 20:14:35 pfSense ppp: [wan_link0]   PROTOCOMP
May 11 20:14:35 pfSense ppp: [wan_link0]   ACCMAP 0x000a0000
May 11 20:14:35 pfSense ppp: [wan_link0]   MRU 1500
May 11 20:14:35 pfSense ppp: [wan_link0]   MAGICNUM 0xf522afd6
May 11 20:14:35 pfSense ppp: [wan_link0] LCP: state change Ack-Sent --> Opened
May 11 20:14:35 pfSense ppp: [wan_link0] LCP: auth: peer wants CHAP, I want nothing
May 11 20:14:35 pfSense ppp: [wan_link0] LCP: LayerUp
May 11 20:14:35 pfSense ppp: [wan_link0] LCP: rec'd Discard Request #1 (Opened)
May 11 20:14:35 pfSense ppp: [wan_link0] CHAP: rec'd CHALLENGE #1 len: 35
May 11 20:14:35 pfSense ppp: [wan_link0]   Name: "UMTS_CHAP_SRVR"
May 11 20:14:35 pfSense ppp: [wan_link0] CHAP: Using authname "user"
May 11 20:14:35 pfSense ppp: [wan_link0] CHAP: sending RESPONSE #1 len: 25
May 11 20:14:35 pfSense ppp: [wan_link0] CHAP: rec'd SUCCESS #1 len: 4
May 11 20:14:35 pfSense ppp: [wan_link0] LCP: authorization successful
May 11 20:14:35 pfSense ppp: [wan_link0] Link: Matched action 'bundle "wan" ""'
May 11 20:14:35 pfSense ppp: [wan_link0] Link: Join bundle "wan"
May 11 20:14:35 pfSense ppp: [wan] Bundle: Status update: up 1 link, total bandwidth 100000000 bps
May 11 20:14:35 pfSense ppp: [wan] IPCP: Open event
May 11 20:14:35 pfSense ppp: [wan] IPCP: state change Initial --> Starting
May 11 20:14:35 pfSense ppp: [wan] IPCP: LayerStart
May 11 20:14:35 pfSense ppp: [wan] IPV6CP: Open event
May 11 20:14:35 pfSense ppp: [wan] IPV6CP: state change Initial --> Starting
May 11 20:14:35 pfSense ppp: [wan] IPV6CP: LayerStart
May 11 20:14:35 pfSense ppp: [wan] IPCP: Up event
May 11 20:14:35 pfSense ppp: [wan] IPCP: state change Starting --> Req-Sent
May 11 20:14:35 pfSense ppp: [wan] IPCP: SendConfigReq #1
May 11 20:14:35 pfSense ppp: [wan]   IPADDR 0.0.0.0
May 11 20:14:35 pfSense ppp: [wan]   COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
May 11 20:14:35 pfSense ppp: [wan]   PRIDNS 0.0.0.0
May 11 20:14:35 pfSense ppp: [wan]   SECDNS 0.0.0.0
May 11 20:14:35 pfSense ppp: [wan] IPV6CP: Up event
May 11 20:14:35 pfSense ppp: [wan] IPV6CP: state change Starting --> Req-Sent
May 11 20:14:35 pfSense ppp: [wan] IPV6CP: SendConfigReq #1
May 11 20:14:35 pfSense ppp: [wan] IPCP: rec'd Configure Request #0 (Req-Sent)
May 11 20:14:35 pfSense ppp: [wan] IPCP: SendConfigAck #0
May 11 20:14:35 pfSense ppp: [wan] IPCP: state change Req-Sent --> Ack-Sent
May 11 20:14:35 pfSense ppp: [wan] IPCP: rec'd Configure Reject #1 (Ack-Sent)
May 11 20:14:35 pfSense ppp: [wan]   COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
May 11 20:14:35 pfSense ppp: [wan] IPCP: SendConfigReq #2
May 11 20:14:35 pfSense ppp: [wan]   IPADDR 0.0.0.0
May 11 20:14:35 pfSense ppp: [wan]   PRIDNS 0.0.0.0
May 11 20:14:35 pfSense ppp: [wan]   SECDNS 0.0.0.0
May 11 20:14:35 pfSense ppp: [wan] IPCP: rec'd Configure Nak #2 (Ack-Sent)
May 11 20:14:35 pfSense ppp: [wan]   IPADDR 37.198.71.233
May 11 20:14:35 pfSense ppp: [wan]     37.198.71.233 is OK
May 11 20:14:35 pfSense ppp: [wan]   PRIDNS 130.244.127.161
May 11 20:14:35 pfSense ppp: [wan]   SECDNS 130.244.127.169
May 11 20:14:35 pfSense ppp: [wan] IPCP: SendConfigReq #3
May 11 20:14:35 pfSense ppp: [wan]   IPADDR 37.198.71.233
May 11 20:14:35 pfSense ppp: [wan]   PRIDNS 130.244.127.161
May 11 20:14:35 pfSense ppp: [wan]   SECDNS 130.244.127.169
May 11 20:14:35 pfSense ppp: [wan] IPCP: rec'd Configure Ack #3 (Ack-Sent)
May 11 20:14:35 pfSense ppp: [wan]   IPADDR 37.198.71.233
May 11 20:14:35 pfSense ppp: [wan]   PRIDNS 130.244.127.161
May 11 20:14:35 pfSense ppp: [wan]   SECDNS 130.244.127.169
May 11 20:14:35 pfSense ppp: [wan] IPCP: state change Ack-Sent --> Opened
May 11 20:14:35 pfSense ppp: [wan] IPCP: LayerUp
May 11 20:14:35 pfSense ppp: [wan]   37.198.71.233 -> 10.64.64.0
May 11 20:14:36 pfSense ppp: [wan] IFACE: Up event
May 11 20:14:36 pfSense ppp: [wan] IFACE: Rename interface ng0 to ppp0
May 11 20:14:37 pfSense ppp: [wan] IPV6CP: SendConfigReq #2
May 11 20:14:39 pfSense ppp: [wan] IPV6CP: SendConfigReq #3
May 11 20:14:41 pfSense ppp: [wan] IPV6CP: SendConfigReq #4
May 11 20:14:43 pfSense ppp: [wan] IPV6CP: SendConfigReq #5
May 11 20:14:45 pfSense ppp: [wan] IPV6CP: SendConfigReq #6
May 11 20:14:47 pfSense ppp: [wan] IPV6CP: SendConfigReq #7
May 11 20:14:49 pfSense ppp: [wan] IPV6CP: SendConfigReq #8
May 11 20:14:51 pfSense ppp: [wan] IPV6CP: SendConfigReq #9
May 11 20:14:53 pfSense ppp: [wan] IPV6CP: SendConfigReq #10
May 11 20:14:55 pfSense ppp: [wan] IPV6CP: parameter negotiation failed
May 11 20:14:55 pfSense ppp: [wan] IPV6CP: state change Req-Sent --> Stopped
May 11 20:14:55 pfSense ppp: [wan] IPV6CP: LayerFinish

The modem responded with "ERROR"

If you send multiple weird AT commands to the modem, it may go into the ERROR state. If you send correct commands when the modem is in an ERROR state, it may still not work. In this case, you should reboot the device and try again.

Reboot if you see an error similar to this:

May 31 16:59:49 pvz-lab ppp: [wan_link0] CHAT: The modem responded with "ERROR" to the command "AT+CGDCONT=1,"IP","4g.tele2.se"" at ModemCmd: label.

Expected LTE speed for pfSense and OPNsense

Both pfSense and OPNsense don't support the modern LTE protocols: QMI, NDIS, etc. 

Only the slow, serial PPP protocol is supported and therefore the speed is greatly limited.

In my tests, I'm getting about 9-21Mbps download and about 8-12Mbps upload in PPP mode, while I get about 80-100Mbps in QMI on OpenWRT using the same hardware.

Here's a screenshot of a "good" result of speed test on OPNSense with Simcom SIM7600G-H LTE kit.