Null-modem ppp-server goes mute (USB port configuration is lost?)

The server ppp-server works ONLY ONCE before appearing to go mute. To restore operation, I have to either:

  1. reboot the server device, or
  2. disable ppp-server, set USB serial "port" to its existing baud rate again, and then enable the ppp-server again

As a further aggravation, the ppp-server is always disabled after a reboot, forcing the user to log into the webfig or CLI to manually enable the ppp-server.

The test setup consists of two Mikrotik devices (they happen to be hAP ac^2 in my testing) running RouterOS v7.20 (stable).

The two devices have a null-modem USB serial interconnect between the two. (I've tried both USB serial chips Prolific PL2303 and FTDI FT232R, if it matters.)

The "server" device has this configuration:

/interface ppp-server add disabled=no name=ppp-in1 null-modem=yes port=usb1 /ppp secret add name=user password="123"

The "client" device has this configuration:

/interface ppp-client add dial-on-demand=no disabled=no name=ppp-out1 null-modem=yes port=usb1 user=user password="123"

If for whatever reason the ppp-server is disabled (even temporarily, as can happen when a setting is being reconfigured), the ppp-server stops responding to the ppp-client.

From that point on, seemingly the only way to make the ppp-server to work again is to either reboot the server device (and once again manually enable the ppp-server), or needlessly reconfigure the USB serial "port" (and then re-enable the ppp-server).

To further diagnose the problem, I wrote code to sniff the UART traffic between the two devices.

The client repeats the following non-PPP text over and over again every ~4 seconds:

/AutoPPP/x0D/x0ACLIENT

(the "/x0D/x0A" is intended to accurately represent a CRLF)

When the ppp-server is manually enabled on the server, it sees the non-PPP traffic from the client, sends HDLC frames (actually expected for PPP) and the client responses with HDLC frames (again, actually expected traffic for PPP).

When the ppp-server gets disabled, there is a HDLC frame with some human-readable text ("administrator request") embedded in the frame (presumably a reason for the disconnect), and the ppp-client responds with a final HDLC frame.

Within a second, the ppp-client starts spewing its AutoPPP CLIENT text, and repeats it every ~4 seconds again.

When the ppp-server is enabled again, it appears to output ABSOLUTELY NOTHING; it has gone completely mute. One possibility is that RouterOS has reconfigured it to a wrong mystery baud rate.

The only way to restore the PPP connection is to reboot the server or do the port reconfigure whilst the ppp-server is disabled.

From my perspective, this mute behavior feels like a bug. Having to manually enable the ppp-server each time the device boots (behavior that is unlike ppp-client) just adds to the aggravation.

The problem is worse than I previously described. Not only does the ppp-server go mute when it is disabled, but it will also go mute when the ppp-client connected to it disconnects.

I'm glad I'm not the only one who's annoyed by this.

It's not just a USB port issue.

I have two RB4011 routers setup with a PPP link over the serial0 port. I'm experimenting with PPP over laser devices and various radios. ROS 7.21.2.

I get the same behavior.

I enabled routerboard=yes device-mode so I could switch to silent boot (so serial0 does not send anything over the serial port at start-up) and have the port disabled for console use.

But I found the PPP server doesn't work until I start a console/terminal first, send it any old random data from the second router's serial port, then stop the console port and start the PPP server. Then the PPP client finally connects, until the link goes down and it's back to square one.

It's very frustrating as I need to get PPP over other serial devices but I don't want to setup a whole Linux machine just to acheive this when I have Mikrotik routers here with a serial port on them.

Gavin.

Does anyone know what the last version of RouterOS was, that the PPP Server works correctly on a serial port and not go mute after a connection is lost?