Supported SFP modules

Since there’s no response in another thread, I’ll repost the question here: is there a list of SPF modules that is known to work (in both 3.x and 4.0)? [I’m considering connecting my Omnia to a managed switch sitting before it with a direct-connect SFP cable]

3 Likes

Given the lack of any response, I guess the answer is ‘none’.

You have to try. If it works then it means that it is compatible. If it doesn’t work then it’s not compatible. However, the fault is yours in either case.

Yeah - not sure I want to throw money at something before I know it’ll work.

It would take an investment too big to make a list of compatible connectors. Many different SFP and switch modules and lines should be available. In fact it is a lottery. Either renounce or risk.

I’d recommend SFP modules and optic cables rather than Twinax DAC cables. Yes, it’s more expensive - but based on my experience is less trouble, unless you connect devices of a single vendor.
OEM SFPs like the ones from FlexOptix (https://bit.ly/2YzGyOr) are a good choice. You can get them preconfigured for compatibility to virtually any vendor or If you have the required hardware you can program them on your own, which makes them also reusable if you swap devices.
We use them a lot at work as they are sold at a fraction of the price compared to original vedor equipment (Cisco, Juniper, …).

2 Likes

Thanks for the link.

What’s about TP-LINK TL-SM321B 1000Base-BX WDM Bi-Directional ?

The simplest thing is to try. If you run the WAN to SFP switch command, see that the connection is not going, then it is incompatible. I hope you’re lucky. 70% of Omnia’s choice was for the SFP port. Now I have learned to appreciate the remaining 30%.

Finally checked: TP-LINK TL-SM321B is supported by Turris 4.0.3:

dmesg | grep sfp

[ 5.282570] sfp sfp: module TP-LINK TL-SM321B rev 1.1 sn 35506106580385 dc 17-06-15
[ 5.291907] sfp sfp: LC connector, encoding 8b10b, nominal bitrate 1.3Gbps +0% -0%
[ 5.299674] sfp sfp: 1000BaseSX- 1000BaseLX+ 1000BaseCX- 1000BaseT- 100BaseTLX- 1000BaseFX- BaseBX10- BasePX-
[ 5.309788] sfp sfp: 10GBaseSR- 10GBaseLR- 10GBaseLRM- 10GBaseER-
[ 5.316072] sfp sfp: Wavelength 1310nm, fiber lengths:
[ 5.321397] sfp sfp: 9µm SM : 20000m
[ 5.325675] sfp sfp: 62.5µm MM OM1: unsupported/unspecified
[ 5.331436] sfp sfp: 50µm MM OM2: unsupported/unspecified
[ 5.337195] sfp sfp: 50µm MM OM3: unsupported/unspecified
[ 5.342956] sfp sfp: 50µm MM OM4: unsupported/unspecified
[ 5.348716] sfp sfp: Options: txdisable, txfault, los+
[ 5.354042] sfp sfp: Diagnostics:

I think it would be better to have armada-385-turris-omnia-sfp.dtb by default.

Can you connect? Mine is also recognized. All fantastic, but then it doesn’t work.

I can. Also I think that speed is slightly better: it’s 920Mb/s now, before it was something like 880Mb/s.

1 Like

Automatic detection and switching would be best - as already implemented in the more recent uboot version that ships for the CZ11NIC23 hardware revision.
The one that is currently provided for earlier hardware revisions is rather outdated and supposedly been worked on but has not been introduced.


[1] https://gitlab.labs.nic.cz/turris/turris-os-packages/issues/485

3 posts were split to a new topic: How to flash a new u-boot

n8v8r, thanks for sharing!

BTW, I have a question: https://www.tp-link.com/us/business-networking/accessory/tl-sm321b/#specifications says that data rate is 1.25Gbps.

dmesg says both 1.3Gbps and 1Gbps in different places

# dmesg | egrep sfp\|eth2
[    4.465349] mvneta f1034000.ethernet eth2: Using hardware mac address d8:58:d7:00:50:a4
[    5.302567] sfp sfp: module TP-LINK          TL-SM321B        rev 1.1  sn 35506106580385   dc 17-06-15
[    5.311904] sfp sfp:   LC connector, encoding 8b10b, nominal bitrate 1.3Gbps +0% -0%
[    5.319665] sfp sfp:   1000BaseSX- 1000BaseLX+ 1000BaseCX- 1000BaseT- 100BaseTLX- 1000BaseFX- BaseBX10- BasePX-
[    5.329779] sfp sfp:   10GBaseSR- 10GBaseLR- 10GBaseLRM- 10GBaseER-
[    5.336062] sfp sfp:   Wavelength 1310nm, fiber lengths:
[    5.341388] sfp sfp:     9µm SM    : 20000m
[    5.345666] sfp sfp:  62.5µm MM OM1: unsupported/unspecified
[    5.351426] sfp sfp:    50µm MM OM2: unsupported/unspecified
[    5.357184] sfp sfp:    50µm MM OM3: unsupported/unspecified
[    5.362944] sfp sfp:    50µm MM OM4: unsupported/unspecified
[    5.368704] sfp sfp:   Options: txdisable, txfault, los+
[    5.374029] sfp sfp:   Diagnostics: 
[    5.377616] mvneta f1034000.ethernet eth2: switched to 802.3z/1000base-x link mode
[   21.657946] mvneta f1034000.ethernet eth2: configuring for 802.3z/1000base-x link mode
[   21.972393] mvneta f1034000.ethernet eth2: Link is Up - 1Gbps/Full - flow control off

other tools:

# ethtool eth2
Settings for eth2:
	Supported ports: [ FIBRE ]
	Supported link modes:   1000baseX/Full 
	Supported pause frame use: Symmetric
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  1000baseX/Full 
	Advertised pause frame use: Symmetric
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Speed: 1000Mb/s
	Duplex: Full
	Port: FIBRE
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: on
	Supports Wake-on: d
	Wake-on: d
	Link detected: yes

# mii-tool eth2
eth2: 1000 Mbit, full duplex, link ok

So is it 1.3Gbps or 1Gbps or 1000Mbps ? Also are there a way to get link quality measurements (if they available at all)?

Which is a bit off topic. @Pepe perhaps split from this thread?


There is a difference in between what the module can provide and what the eth port (eth2) that connects the SFP can. Plus

is likely the nominal bitrate which I trust is commonly perceived as the maximum achievable in whatever environment that figure has been conceived.

Notwithstanding the output is generated by different code sources and for different devices:

and may present nominal bitrate vs. actual bitrate.


1 Gbps = 1000 Mbps

1 Like

The 1.3 is a rounded version of 1.25*, and 1250 Mbps comes from giving the gross rate on which a 8/10 encoding is performed:
1250 * 8/10 = 1000
and this then is the gross ethernet rate. Please note that all packets on etthernet carry (>=) 38 bytes of ethernet overhead, so with a typical MTU of 1500 bytes this link will give you an ethernet payload rate of:
1000 * 1500/1538 = 975.29 Mbps
any further protocol like IPv4 and TCP will add more overhead per packet resulting in even lower payload rates. What on-line speedtests typicall measure is a IPv4/TCP/HTML payload rate (or goodput) and for a pure ethernet link without any further encapsulations/options (like a VLAN tag or a PPPoE header, or TCP options, or IP options, or …) you will at best see:
1000 * (1500-20-20)/1538 = 949.28 Mbps

*) IMHO the ethernet standards did the right thing by specifying the nominal speed after the 8/10 encoding (or what ever encoding a specific ethernet type uses), the 1.25 Gbps really are only of interest for people trying to implement the standard and not at all for folks simply using ethernet for data transfers :wink:

1 Like

Please note that in networking people have been using proper SI units for a long time (if not forever), so this is all base 10 and not base 2^10.
Sidenote: the [K|M|G|T|…]i prefixes like Ki or Mi denote base 2^10 numbers, so 1GiB = 1 * 1000^3/(2^10)^3) = 0.931 GB

Thank you guys for the explanation!

There has been a recent flurry of SFP related patches from Linux development committed in the OpenWrt Master branch, which yet have to be uplifted into the stable branches, that may improve the situation for SFP modules.


[3] https://git.openwrt.org/?p=openwrt%2Fopenwrt.git&a=search&h=HEAD&st=commit&s=sfp