Skip to content
  1. Apr 27, 2016
  2. Apr 26, 2016
    • David S. Miller's avatar
      Merge branch 'ila-csum-neutral' · fab7b629
      David S. Miller authored
      
      
      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: default avatarDavid S. Miller <davem@davemloft.net>
      fab7b629
    • Tom Herbert's avatar
      ila: add checksum neutral ILA translations · 90bfe662
      Tom Herbert authored
      
      
      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: default avatarTom Herbert <tom@herbertland.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      90bfe662
    • Tom Herbert's avatar
      ila: xlat changes · 642c2c95
      Tom Herbert authored
      
      
      Change model of xlat to be used only for input where lookup is done on
      the locator part of an address (comparing to locator_match as key
      in rhashtable). This is needed for checksum neutral translation
      which obfuscates the low order 16 bits of the identifier. It also
      permits hosts to be in muliple ILA domains (each locator can map
      to a different SIR address). A check is also added to disallow
      translating non-ILA addresses (check of type in identifier).
      
      Signed-off-by: default avatarTom Herbert <tom@herbertland.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      642c2c95
    • Tom Herbert's avatar
      ila: Add struct definitions and helpers · 351596aa
      Tom Herbert authored
      
      
      Add structures for identifiers, locators, and an ila address which
      is composed of a locator and identifier and in6_addr can be cast to
      it. This includes a three bit type field and enums for the types defined
      in ILA I-D.
      
      In ILA lwt don't allow user to set a translation for a non-ILA
      address (type of identifier is zero meaning it is an IID). This also
      requires that the destination prefix is at least 65 bytes (64
      bit locator and first byte of identifier).
      
      Signed-off-by: default avatarTom Herbert <tom@herbertland.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      351596aa
    • Julia Lawall's avatar
      net: tsi108: use NULL for pointer-typed argument · a843311d
      Julia Lawall authored
      The first argument of pci_free_consistent has type struct pci_dev *, so use
      NULL instead of 0.
      
      The semantic patch that performs this transformation is as follows:
      (http://coccinelle.lip6.fr/
      
      )
      
      // <smpl>
      @@
      @@
      pci_free_consistent(
      - 0
      + NULL
        , ...)
      // </smpl>
      
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a843311d