On Wed, Feb 25, 2015 at 4:48 PM, Mehrdad Moradi <imehrdad2...@gmail.com>
wrote:
> Given MPLS is a layer 2.5 protocol VLAN is a layer 2 protocol, I guess I
> would like to have EoMPLS. Does it make sense?
>
It makes sense what you want, but both are common deployment scenarios.. :-)
> The scenario is like you want to match on both IPV6 and MPLS header at the
> same time.
>
Exactly, and you also cannot do this (reliably, anyhow).
The problem is how far are you supposed to look into the packet, and how
much time does that take. This manifests in several ways - one is that
MPLS allows for arbitrary label stacking, and most hardware can only
operate on 3 labels at wire speed, so if the tag stack is more than 3
labels deep you absolutely cannot look into the contents of the actual data
frame. However, even if what you want is only one label deep, you almost
certainly need to actually pop the label in the pipeline before you can
determine what the contents of the nested packet actually are (and leverage
the hardware built to perform this operation). Matching a label *and* an
address of a high layer protocol wrapped inside that label requires
speculative parsing of *every* MPLS packet, because you can't tell the
difference between ones that carry ethernet, more MPLS, IPv4, IPv6, etc.
Also this is part of where OF does not carry enough of the information that
LDP would have otherwise pushed to an MPLS LSR (the inner VC frame type).
(Your MPLS frame could include raw IP without another ethernet frame, or it
could include more ethernet, etc.)
A software switch could obviously perform this operation, but it would mean
that packet parse time would be highly variable and add to even more jitter
than we already have in these pipelines.
If you want to perform match operations on MPLS packets on anything above
the MPLS label, you must pop the label before you make those matches (and
then possibly re-push it as an output action). Other things might work
with various software implementations, but they are unlikely to be
practical in any kind of hardware deployment.
--
Nick
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel