you forgot to mention only worked on some specific devices (CRS317-1G-16S+ and CRS309-1G-8S+)
`
I didn't "forget to mention it". The context was, as StubArea51 put it, "day one of the Marvell chips being introduced". The Marvell switch chips are only used in certain products, of course. Only certain models of Marvell switch chip support MPLS label switching, so only those models were supported. Finally, CRS309 and CRS317 were the only two models of anything with the proper Marvell chip in them that MikroTik had released prior to RouterOS 7 finally coming out of beta.
So it was all obvious from the context. No hardware released since RouterOS 7 came out has ever supported it, obviously, because RouterOS 7 wholly lacks support for the feature, and none of those devices (e.g. CCR2116/2216, CRS5xx) can be downgraded to run on RouterOS 6 since ROS 6 obviously lacks all hardware/driver support to run on those models.
`
and only for transit, popping MPLS labels from packets still had to be done by CPU
`
See below.
`
Yes, but it was a different linux kernel and they pulled it back out of ROSv6. So there had to be some issue with it.
`
Look, here's the thing: MikroTik releases the CRS309 and CRS317, and promises "HW MPLS forwarding coming in future software update" (Newsletter 77). This support is released in RouterOS 6.41 (end of 2017). It is
clear that this is P-router-only (only label switching, no push/pop) to anyone paying attention. To this day, even the
CRS317 brochure advertises "HW MPLS forwarding".
Based on all of this, several years ago, we got a 317 in order to play with this feature in the lab. After getting it working successfully and liking the results, WE BOUGHT A WHOLE BUNCH OF THEM AND DEPLOYED THEM IN PRODUCTION as 10gig P-routers. And guess what: in that role, they work
great. Would it have been
nice if they also supported label push/pop and VPLS encap/decap in hardware? Sure. But we were happy just having these in the transport path, and using e.g. CCR1072 as PE-router for those functions when 10gig was needed at the edge, or something lesser if particular PE didn't need to be 10gig.
So in our experience, there was no "issue" with the feature, in terms of it being buggy or not working as-advertised. Maybe there were issues with the old implementation under the covers that was hamstringing further development, but frankly...that's not our problem. And it is downright irresponsible to completely REMOVE a WORKING feature FOR FOUR YEARS that had been previously
delivered and
marketed, and that at least some of your customers then became
dependent on. I can understand the possible need to refactor or completely rewrite the feature from scratch, especially if that is required in order to add support for additional features. But I don't see how that prevents you from CONTINUING to ship the originally WORKING feature while you undertake that effort. We don't need HW MPLS support to magically drop from on-high with 100% of all features working when it does. What we need RIGHT NOW is ONLY the label-switching part that WE HAD BEFORE. That will tide us over just fine until the new implementation is ready along with all of the associated "cool" new features it brings.
By MikroTik removing the hardware label switching support entirely from CRS309 and CRS317 while they "regroup" on the effort, we have been prevented from upgrading our network to RouterOS 7, since upgrading our CRS3xx P-routers is out of the question (poor little ARM CPU will get slammed), and we aren't willing to move to a hybrid ROS 6/7 network since we don't want to deal with the potential headaches resulting from OSPF and/or LDP interop bugs between ROS 6 & 7. And ripping-and-replacing these CRS3xx devices acting in the role as P-routers on our network would be such a massive and expensive undertaking (both capital and labor-wise) that it is hard to even fathom going down that path...if it ever came to that, there would be so much bad blood between us that we would likely just say goodbye to MikroTik entirely. So MikroTik has completely ****ed us over by getting us dependent on their product, releasing ROS 7 without a headlining feature that previously EXISTED and which we NEED because we are already USING it, then putting ROS 6 into effectively maintenance mode and only fixing security vulnerabilities in it. And since all of their new hardware is all ROS 7 only, it means we can't freaking USE any of it until this ABSURD situation is resolved. We. Are. Stuck.
The correct, right, and responsible thing for MikroTik to have done here would have been to 100% prioritize making sure that ROS 7 could match ROS 6 feature-for-feature BEFORE they started chasing after the fun and sexy new features that the new Linux kernel would enable them to provide. But they apparently lacked the discipline to do so, and they decided to have dessert before dinner instead, screwing over many of their users in the process.