CodingBox Q&A Ask question

S-RJ01 in an RB5009 SFP+ cage: auto-negotiation incomplete, port stuck at 100 Mbps

Asked Active Viewed 30 Original language: English
10

Home rack, and the RB5009 has exactly one SFP+ cage. I wanted a second copper gigabit uplink out of it rather than pulling fibre across the room, so a copper module went in instead.

  • MikroTik RB5009UG+S+IN, RouterOS 7.1rc4
  • MikroTik S-RJ01 1000BASE-T copper SFP in sfp-sfpplus1
  • Cat6 patch, about three metres, into a gigabit switch
  • every other port on that switch links at 1G full with the same batch of cables

The port comes up, but only at a hundred:

/interface ethernet monitor sfp-sfpplus1
  Auto Negotiation: incomplete
  Rate: 100Mbps

Under load the interface also collects TX/RX packet errors, which it does not do on any of the built-in ports.

What I tried:

  • disable and re-enable the interface, several times - occasionally it comes up at 1G, mostly it does not
  • a different Cat6 patch and a different port on the far switch
  • fixing the far switch port at 1G full duplex, which changed nothing on this side

Is this the module, the SFP+ cage being asked to run a 1G copper module, or the RouterOS release? And is there anything to try short of giving up and running fibre?

Comments 6

Accepted answer

Stop negotiating and pin it. On every MikroTik box where an S-RJ01 has misbehaved on me, this is what made it stay put:

/interface ethernet set sfp-sfpplus1 auto-negotiation=no speed=1Gbps full-duplex=yes

Then read it back with /interface ethernet monitor sfp-sfpplus1.

As for why the readout confuses you: the lane between the host port and a 1G copper SFP always runs at the SGMII bitrate of 1G, and 100 Mbit is carried over it by repeating every byte ten times. So what the host prints as the rate is not necessarily what the copper PHY inside the module negotiated with your switch - the two halves of the module can disagree, and "incomplete" is the host side giving up on its part of it.

Two caveats. With auto-negotiation off on your side, the far end has to be fixed at 1 Gbps full duplex as well, or it drops to half duplex and you have swapped a speed problem for a duplex problem, which is worse to diagnose. And be clear that this is a workaround - there is no fix from the vendor for it, so if that port carries anything important, a copper module from a different maker is worth trying in the same cage.

8 United Stateslinkeng21US Original (English)

You are on 7.1rc4 and so am I, so that part of it already matches - what I would rather know is what the far end reports while your side says incomplete. Does it also see 100, or does it think it has a gigabit link?

Asking because I have an S-RJ01 in an RB4011iGS+ doing something very similar: it only sometimes reaches 1G, and only after I disable and re-enable the port. I never worked out what makes one attempt different from the next, and it never occurred to me to read the far switch at the same moment.

3 RussianetadminRU Original (English)

The far switch agrees with mine - it also shows a 100 Mbit link, so at least the two ends are not lying to each other in different directions.

Disable and re-enable helps here too, but not reliably: roughly one attempt in four comes back at 1G, the rest land at 100Mbps with the same Auto Negotiation: incomplete line. When it sits at 100 the error counters tick up under load; on the rare occasion it comes up at 1G they stay flat.

4 United Kingdomcoaxpilot98GB Original (English)

Careful with that as a general recipe, because the vendor's own documentation for these copper modules says the opposite: S-RJ01 and S+RJ10 are described as needing negotiated speed and duplex to work at all, and per that page a port with the rate nailed down by hand should not bring a link up. Field practice on RB5009 and RB4011 boxes contradicts that often enough that I would just try both and keep whichever one holds on your hardware, rather than trusting either statement.

Unrelated but on the same release: I had an S+85DLC03D in a CRS318-16P-2S+ dropping link several times a day, so I would not assume every odd thing on an SFP port is the copper module's fault.

And if you ever consider the S+RJ10 for that cage - it draws noticeably more power and runs hot, which is not what you want in a passively cooled box without extra airflow.

0 Indiawaverunner21IN Original (English)

Older box, same family of pain. A CCR1016-12S-1S on 6.45.1 with twelve Finisar FCLF-8521-3 copper modules, which the router insisted on calling FCMJ-8521-3. All twelve were recognised in the module list and not one of them would link - not to the Huawei switches, not to a laptop plugged straight in.

What got every port up:

/interface ethernet set [find] auto-negotiation=no speed=1Gbps full-duplex=yes tx-flow-control=off rx-flow-control=off
/interface ethernet disable [find]
/interface ethernet enable [find]

Turning both flow control directions off mattered, and so did the disable/enable cycle - the modules only re-initialised with the new settings after it. Same caveat about the far end needing to be fixed at 1 Gbps fuull duplex, otherwise it falls back to half.

2 IndiagigengIN Original (English)

Half a result, so I will report it as such. With auto-negotiation off and 1Gbps full-duplex forced on both ends the port has held at 1G, the error counters stopped moving and the disable/enable lottery is over.

What still does not work: an old 100 Mbit device that I plugged directly into the module gets no link at all now, from either side, no matter how I set it. For that leg I dropped a small gigabit switch between the module and the device and stopped fighting it. So the uplink is usable, but I would not call the module fixed.

0 United Kingdomcoaxpilot98GB Original (English)
Log in to comment. Log in