[j-nsp] MX80 no more hash-key option in 12.2?

magno massimo.magnani at gmail.com
Tue Oct 23 11:12:24 EDT 2012


Hi Paul!

 Leaving the hash-key stanza enabled for MX80 leaves room to unexpected
behaviours as you could observe yourself.

 the only supported way to tweak load balancing input paramters for TRIO
based devices (I mean MPCs and MX80 for instance) is to use the
enhanced-hash-key stanza.

 The culprit for the new 12.2 behavior is me, I asked for this modification
in the code. The reasons why I asked are:

1) hash-key is not the right config stanza for TRIO as per design, so the
enhanced-hash-key stanza was created;
2) Our docs is not, let me say, so precise ... to say it in a fair way;
3) the hash-key, on MX80, produced unpredictable results as some commands
led to wrong configurations on the TRIO chipset (for instance, I tried
personally with a 10.4 release to configure source/destination ports which
are on by default and I found in the PFE this command activated the input
interface);

Please take into consideration that the engineers that designed TRIO LB
decided to simplify the LB options traditionally available on other
chipsets, so you may find missing ones under the enhanced-hash-key. TRIO LB
algorithm is already pretty much sophisticated by default.

Of course, if you explain what you want to do, maybe we may find the best
way to satisfy your needs.

Hope this  helps tp clarify the subject a little bit more.

Massimo.

On Tue, Oct 23, 2012 at 4:14 PM, Paul Vlaar <paul at vlaar.net> wrote:

> Doug,
>
> On 23/10/12 9:52 AM, Doug Hanks wrote:
> > Pretty much. enhanced-hash-hey does a lot by default. Harry can
> elaborate.
>
> So on 11.2 at least, enhanced-hash-key doesn't offer me any options to
> set, as the defaults should already enable port based hashing:
>
> mx80# set forwarding-options enhanced-hash-key family inet ?
> Possible completions:
> + apply-groups         Groups from which to inherit configuration data
> + apply-groups-except  Don't inherit configuration dta from these groups
>   incoming-interface-index  Include incoming interface index in the hash
> key
>   no-destination-port  Omit IP destination port in the hash key
>   no-source-port       Omit IP source port in the hash key
>   type-of-service      Include TOS byte in the hash key
> [edit]
>
> So I'm left with no options to set. And when I deactivate/remove the
> hash-key setting from forwarding-options, I get:
>
> mx80# request pfe execute command "show jnh lb" target tfeb0
> SENT: Ukern command: show jnh lb
> GOT:
> GOT: Unilist Seed Configured 0x8bce4c39 System Mac address
> 00:00:00:00:00:00
> GOT: Hash Key Configuration: 0x0000000000e8ff00 0xffffffff00000000
> GOT:            IIF-V4: Yes
> GOT:          SPORT-V4: Yes
> GOT:          DPORT-V4: Yes
> GOT:               TOS: Yes
> GOT:
> GOT:            IIF-V6: No
> GOT:          SPORT-V6: No
> GOT:          DPORT-V6: No
> GOT:     TRAFFIC_CLASS: No
> GOT:
> GOT:          IIF-MPLS: No
> GOT:      MPLS_PAYLOAD: Yes
> GOT:          MPLS_EXP: No
> GOT:
> GOT:       IIF-BRIDGED: No
> GOT:     MAC ADDRESSES: Yes
> GOT:     ETHER_PAYLOAD: Yes
> GOT:      802.1P OUTER: No
> GOT:
> GOT: Services Hash Key Configuration:
> GOT:          SADDR-V4: No
> GOT:            IIF-V4: No
> GOT:
> LOCAL: End of file
>
> So that shows there is no port based hashing done for ECMP IPv6 traffic.
>
> Bringing back:
>
> forwarding-options hash-key family inet6 { layer3; layer4; }
>
> Yields:
>
> pvlaar at r1.iad1> request pfe execute command "show jnh lb" target tfeb0
> SENT: Ukern command: show jnh lb
> GOT:
> GOT: Unilist Seed Configured 0x8bce4c39 System Mac address
> 00:00:00:00:00:00
> GOT: Hash Key Configuration: 0x0000000000ecffff 0xffffffffffffffff
> GOT:            IIF-V4: Yes
> GOT:          SPORT-V4: Yes
> GOT:          DPORT-V4: Yes
> GOT:               TOS: Yes
> GOT:
> GOT:            IIF-V6: Yes
> GOT:          SPORT-V6: Yes
> GOT:          DPORT-V6: Yes
> GOT:     TRAFFIC_CLASS: Yes
> GOT:
> GOT:          IIF-MPLS: No
> GOT:      MPLS_PAYLOAD: Yes
> GOT:          MPLS_EXP: No
> GOT:
> GOT:       IIF-BRIDGED: No
> GOT:     MAC ADDRESSES: Yes
> GOT:     ETHER_PAYLOAD: Yes
> GOT:      802.1P OUTER: No
> GOT:
> GOT: Services Hash Key Configuration:
> GOT:          SADDR-V4: No
> GOT:            IIF-V4: No
> GOT:
> LOCAL: End of file
>
>
> So the hash-key option definitely does *something*, and is in fact
> necessary on 11.2 to get port hashing working for IPv6.
>
>         ~paul
>
>
>
> _______________________________________________
> juniper-nsp mailing list juniper-nsp at puck.nether.net
> https://puck.nether.net/mailman/listinfo/juniper-nsp
>


More information about the juniper-nsp mailing list