Hi Robert,

On 26 Jul 2014, at 23:26, Robert Raszuk <rob...@raszuk.net> wrote:

> Perhaps you can expand on how an LSR programs its LFIB such that it has 
> multiple labels matched with a single entry please?
> 
> ​When you install a label to LFIB you also pass its depth ie number of 
> significant bits to match on. 
> 
> Hardware will treat the remaining bits as "do not care". That is pretty basic 
> logical function for any match operation. 

rjs> So, this is exactly akin to the description I gave of partitioning the 
label space - since it requires one to sterilise some of the label space 
(N-bits are now significant for forwarding, with the remaining (20-M) being 
used for entropy).

> At least I am quite sure it is much simpler then any other form of search for 
> ELI/EL within the SR deep stack :)

rjs> The look-up logic has to change somewhat for the data-plane. Particularly 
as:

- We need to check whether the top-most label is within the block of labels 
that we are using for this function.
- If it is, we do a lookup based on the first N-bits to determine the next-hop.
        - if it’s not, we need to do a lookup based on the entire label.
- If this was in the entropy block we determine the OIF by matching this 
next-hop along with the hash of the remaining (20-N) bits.
        - else we fallback to the existing hashing procedures.

Alternatively, we need to:

- Look-up the next-hop based on the top-most label.
- If the ELI is in the label stack, take the following label as the EL.
- Determine the OIF based on the next-hop and the EL value received.
        - if the EL is not present, then hash based on existing procedures.

Is the former “much simpler”? I am no hardware expert, but I would say they 
seem roughly analogous in terms of decision process that needs to be made - 
other than the latter needs visibility into more of the packet (such that 
ELI/EL is included in the header that is extracted). 

It’s notable that the latter logic must be implemented anyway at an LSR, 
because we have now standardised ELI/EL and it is implemented.

> I’m struggling to comprehend how this fits into the existing implementations, 
> or can be realised without requiring some forwarding/entropy split of the 
> 20-bit label as I described before.
> 
> ​The split I have in mind is passed explicitiely in control plane. So there 
> is no additional logic required for it. ​
> 
> ​Now you may rightfully state that this requires an upgrade. Well true but 
> any alternative discussed here requires an upgrade as well. Moreover even 
> support of SR requires an upgrade :)
> 
> Control plane vs data plane .. EL based solution requires both day one. Label 
> mask does not strictly require any data plane change during the transition 
> period as it could install all atomic labels till the mask support in LFIB is 
> available later.
> 

rjs> In smaller nodes (aggregation/access nodes) then this might have 
significant impact, given LFIB limitations. If we need to have M*(number of 
destination FECs) installed in the LFIB then this might bust some limits.

Whilst label mask is a potential solution, my view is that we should continue 
to leverage the EL work already done by this WG.

Kind regards,

> Cheers,
> R.​
> 

_______________________________________________
spring mailing list
spring@ietf.org
https://www.ietf.org/mailman/listinfo/spring

Reply via email to