BTW, this is why I'm quite sceptically looking at the Juniper's marketing of Express Chip simplicity and corresponded benefits. Lower number of transistors in the crystal, greater MTBF, blah-blah.

Because of the mentioned features, which I don't really believe Juniper could easily throw out, the LSR's PFE must be still quite smart. Otherwise we'll have much of fun, if the "revolutionary state-of-the-art PTX platform" can never do what Kompella and Drake proposed because of the hardware limitations :)

What they really could do (and looks like they did) is to reduce amount of SRAM for FIB and to assume that because of mostly label lookups, the ALU speed can be slower.


I meant that in order to do LB on labels alone (to have
enough of hash-keys for micro-flows), you need a large
enough set of labels in the core and more or less
uniformly distributed traffic over these labels. If you
have, say, 10 PoPs and 90 core tunnels, it's very
probable that 20% of them carry 80% of traffic. But
label-based hash will share labels 50:50. This is why
label alone is not sufficient for limited set of LSPs
and you need to construct hashes with more parameters
from payload.
Seems like a problem that can be solved with the so-called
Entropy Label:

http://tools.ietf.org/html/draft-ietf-mpls-entropy-label-00

Thanks, I didn't see it. Cool idea, which allows to signal sharing proportion from the ingress to LSRs down the path. But, I am afraid, it's still not for the cheap PFEs. At least it seems like that from the first glance.

    Entropy labels are generated by an ingress LSR, based entirely on
    load balancing information.  However, they MUST NOT have values in
    the reserved label space (0-15).  Entropy labels MUST be at the
    bottom of the label stack, and thus the 'Bottom of Stack' (S) bit
    ([RFC3032  <http://tools.ietf.org/html/rfc3032>]) in the label should be 
set.  To ensure that they are not
    used inadvertently for forwarding, entropy labels SHOULD have a TTL
    of 0.

So, the LSR must be clever enough to inspect the label stack down to the bottom, find the entropy label, extract it, push it to the network processor, construct a hash on it, etc.

Keeping in mind what we discussed in the next thread, it's way too complicated for the cheap ASICs, used in ethernet switches. Most of them, as far as I understand, are just hardcoded to extract bits with given offsets and that's all. In addition, looks like they have a limited-size memory cells (registers or whatever), on which they can do xor/mod/cmp/etc for the hash-key calculations and hash-key->next-hop mapping.


_______________________________________________
juniper-nsp mailing list juniper-nsp@puck.nether.net
https://puck.nether.net/mailman/listinfo/juniper-nsp

Reply via email to