27 Apr, 2016

38 commits


26 Apr, 2016

2 commits

  • Tom Herbert says:

    ====================
    ila: Support for checksum neutral translations

    This patch set updates ILA to support draft-herbert-nvo3-ila-02. The
    primary addition is support checksum neutral ILA translation.
    This allows address to be performed and still keep any transport
    layer checksums that include the addresses in their pseudo header to
    still be correct without the translator needing to parse L4.

    Other items are:
    - Structures for ILA addresses, identifiers, locators
    - Disallow translation on non-ILA addresses (check by
    type in identifier).
    - Change xlat (nf_input) to translates solely based
    on matching locators not identifiers (since identifiers
    are not obfuscated by checksum neutral).
    - Side effect if above is that multiple ILA domains are
    supported. Each local locator can map to a different
    SIR address (ILA domain), and each domain defines its
    own identifier space.

    Tested: Ran TCP_RR with 200 cnxs. ILA performance is slightly better
    than previously since we are not longer parsing L4 for checksum
    handling. I amd seeing about 1% performance overhead. Also ran
    TCP_STREAM and tested non-ILA address (type=0) are not translated.

    v2: Fix compilation errors
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Support checksum neutral ILA as described in the ILA draft. The low
    order 16 bits of the identifier are used to contain the checksum
    adjustment value.

    The csum-mode parameter is added to described checksum processing. There
    are three values:
    - adjust transport checksum (previous behavior)
    - do checksum neutral mapping
    - do nothing

    On output the csum-mode in the ila_params is checked and acted on. If
    mode is checksum neutral mapping then to mapping and set C-bit.

    On input, C-bit is checked. If it is set checksum-netural mapping is
    done (regardless of csum-mode in ila params) and C-bit will be cleared.
    If it is not set then action in csum-mode is taken.

    Signed-off-by: Tom Herbert
    Signed-off-by: David S. Miller

    Tom Herbert