Hi William, [bits inline] On Tue, May 16, 2017 at 08:14:09PM -0600, William George wrote:
Looking at the docs on https://frrouting.org/ it's not *exactly* clear what the current state is. I notice in the tests for LDP, there's a number of "all-fails", but I'm not familiar enough w/ the protocol to know whether those are strictly necessary for a working implementation.
It's on par with the test failures we see on well-working, reliable protocols. Some of the tests are simply very strict and the implementation may be a bit too forgiving; some are just things that aren't implemented -- and some are probably bugs ;). I've sucessfully run ldpd against an Extreme Networks switch, but I'm a developer so this isn't a deployment where I would notice hidden issues. Also note that FRR ldpd is (99%) the same as OpenBSD ldpd, which is pretty well-tested AFAIK.
I was going to add that I wasn't sure if the "vpnv4" address family was supported but I found this <https://frrouting.org/user-guide/BGP-Address-Family.html#index-show-ip-bgp-vpnv4-all>. It explicitly calls out the supported RFCs, so I guess we're good there (though it should probably be noted in the "supported RFCs" page. If the contribution process is simple enough I'll probably submit a pull request).
This is relatively new and if you check the issue tracker you'll see a few open issues on it. We'd be happy to get feedback, but keep it in a lab for now ;) (The "new" bits are the pieces that actually put MPLS labels into the RIB & FIB -- the address family support has been there for 10+ years.)
So the BGP support seems to be there, and LDP seems "mostly" complete, whatever that means. Does that mean FRR can actually integrate with a functioning MPLS network? How "production ready" should this be considered?
LDP should be production ready, the BGP pieces not quite just yet. It's moving pretty rapidly though!
Similarly, though I know this isn't exactly the responsibility of FRR, can anyone give me an idea of the state of open hardware support for MPLS? From what I've seen so far, it's actually rather lacking, but I'm not confident I'm looking in the right places. Last thing I want to do is add an MPLS node that's going to punt every MPLS frame to CPU or something :)
I unfortunately have no idea on this. FRR uses the system interfaces for MPLS on Linux and OpenBSD. You may need to buy some vendor's devices that come accompanied by closed-source kernel<>hw layers ;) (There's work ongoing in the Linux kernel on switch silicon drivers, but last I checked - half a year ago - this didn't include MPLS.) Cheers, -David