• Robert Shearman's avatar
    mpls: flow-based multipath selection · 1c78efa8
    Robert Shearman authored
    Change the selection of a multipath route to use a flow-based
    hash. This more suitable for traffic sensitive to reordering within a
    flow (e.g. TCP, L2VPN) and whilst still allowing a good distribution
    of traffic given enough flows.
    
    Selection of the path for a multipath route is done using a hash of:
    1. Label stack up to MAX_MP_SELECT_LABELS labels or up to and
       including entropy label, whichever is first.
    2. 3-tuple of (L3 src, L3 dst, proto) from IPv4/IPv6 header in MPLS
       payload, if present.
    
    Naturally, a 5-tuple hash using L4 information in addition would be
    possible and be better in some scenarios, but there is a tradeoff
    between looking deeper into the packet to achieve good distribution,
    and packet forwarding performance, and I have erred on the side of the
    latter as the default.
    Signed-off-by: default avatarRobert Shearman <rshearma@brocade.com>
    Signed-off-by: default avatarRoopa Prabhu <roopa@cumulusnetworks.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1c78efa8
af_mpls.c 34.2 KB