Is it a problem of NIC or SFP+ module? We do not even know if SFP+ module is officialy supported by ROS.
What about readings of other SFP+ modules used in the same NIC or same module used in another NIC model?
Hey Michel, I think you two are kinda talking past each other. BartoszP wasn’t saying anything’s broken, he just wanted to rule out the NIC vs the module, and you’ve already done that since both show full DOM under plain Linux.
The thing is, like BartoszP said, RouterOS isn’t really “Linux” in the way you’re used to. Yeah, there’s a Linux kernel under the hood, but MikroTik builds their own kernel with whatever drivers they choose to include, often patched or older versions. And everything on top of that is their own stuff. There’s no ethtool, no standard userspace, nothing. So the fact that it works in Debian or OpenWrt doesn’t really tell you much about what RouterOS will do with the same card.
For DOM to show up in RouterOS two things have to line up: the driver they ship has to support reading the module EEPROM, and RouterOS itself has to actually ask for it and show it in "/interface ethernet monitor". My guess is the second part is where it falls apart. Those SFP fields are built around MikroTik’s own hardware where they know exactly which ports are SFP cages. On x86 the 82599 just looks like a regular ethernet port to RouterOS, which is also why it says 10G-baseT instead of SR.
If DOM monitoring actually matters to you, one option is to go the CHR route BartoszP mentioned. Run something like Proxmox on the box and let the host own the 82599, then hand it to CHR as virtio or an SR-IOV VF (the 82599 supports that). You’d still not see DOM inside RouterOS, but you’d have full ethtool -m on the host and could monitor the optics from there. Just don’t do PCI passthrough, then RouterOS owns the card again and you’re back where you started. Also keep in mind you’ll need a paid CHR license to get 10G.
I haven’t seen MikroTik document this officially though, so like BartoszP said, a support ticket is the way to go if you want a definite answer. If it turns out to be unsupported, it doesn’t hurt to ask for it as a feature request.