1. 18 Oct, 2016 23 commits
    • Daniel Borkmann's avatar
      bpf: add various tests around spill/fill of regs · 1a776b9c
      Daniel Borkmann authored
      Add several spill/fill tests. Besides others, one that performs xadd
      on the spilled register, one ldx/stx test where different types are
      spilled from two branches and read out from common path. Verfier does
      handle all correctly.
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1a776b9c
    • David S. Miller's avatar
      Merge branch 'ethernet-use-core-min-max-mtu' · 1441dc99
      David S. Miller authored
      Jarod Wilson says:
      
      ====================
      ethernet: use core min/max MTU checking
      
      Now that the network stack core min/max MTU checking infrastructure is in
      place, time to start making drivers use it. We'll start with the easiest
      ones, the ethernet drivers, split roughly by vendor, with a catch-all
      patch at the end.
      
      For the most part, every patch does the same essential thing: removes the
      MTU range checking from the drivers' ndo_change_mtu function, puts those
      ranges into the core net_device min_mtu and max_mtu fields, and where
      possible, removes ndo_change_mtu functions entirely.
      
      These patches have all been built through the 0-day build infrastructure
      provided by Intel, on top of net-next as of October 17.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1441dc99
    • Jarod Wilson's avatar
      ethernet: use core min/max MTU checking · 44770e11
      Jarod Wilson authored
      et131x: min_mtu 64, max_mtu 9216
      
      altera_tse: min_mtu 64, max_mtu 1500
      
      amd8111e: min_mtu 60, max_mtu 9000
      
      bnad: min_mtu 46, max_mtu 9000
      
      macb: min_mtu 68, max_mtu 1500 or 10240 depending on hardware capability
      
      xgmac: min_mtu 46, max_mtu 9000
      
      cxgb2: min_mtu 68, max_mtu 9582 (pm3393) or 9600 (vsc7326)
      
      enic: min_mtu 68, max_mtu 9000
      
      gianfar: min_mtu 50, max_mu 9586
      
      hns_enet: min_mtu 68, max_mtu 9578 (v1) or 9706 (v2)
      
      ksz884x: min_mtu 60, max_mtu 1894
      
      myri10ge: min_mtu 68, max_mtu 9000
      
      natsemi: min_mtu 64, max_mtu 2024
      
      nfp: min_mtu 68, max_mtu hardware-specific
      
      forcedeth: min_mtu 64, max_mtu 1500 or 9100, depending on hardware
      
      pch_gbe: min_mtu 46, max_mtu 10300
      
      pasemi_mac: min_mtu 64, max_mtu 9000
      
      qcaspi: min_mtu 46, max_mtu 1500
      - remove qcaspi_netdev_change_mtu as it is now redundant
      
      rocker: min_mtu 68, max_mtu 9000
      
      sxgbe: min_mtu 68, max_mtu 9000
      
      stmmac: min_mtu 46, max_mtu depends on hardware
      
      tehuti: min_mtu 60, max_mtu 16384
      - driver had no max mtu checking, but product docs say 16k jumbo packets
        are supported by the hardware
      
      netcp: min_mtu 68, max_mtu 9486
      - remove netcp_ndo_change_mtu as it is now redundant
      
      via-velocity: min_mtu 64, max_mtu 9000
      
      octeon: min_mtu 46, max_mtu 65370
      
      CC: netdev@vger.kernel.org
      CC: Mark Einon <mark.einon@gmail.com>
      CC: Vince Bridgers <vbridger@opensource.altera.com>
      CC: Rasesh Mody <rasesh.mody@qlogic.com>
      CC: Nicolas Ferre <nicolas.ferre@atmel.com>
      CC: Santosh Raspatur <santosh@chelsio.com>
      CC: Hariprasad S <hariprasad@chelsio.com>
      CC:  Christian Benvenuti <benve@cisco.com>
      CC: Sujith Sankar <ssujith@cisco.com>
      CC: Govindarajulu Varadarajan <_govind@gmx.com>
      CC: Neel Patel <neepatel@cisco.com>
      CC: Claudiu Manoil <claudiu.manoil@freescale.com>
      CC: Yisen Zhuang <yisen.zhuang@huawei.com>
      CC: Salil Mehta <salil.mehta@huawei.com>
      CC: Hyong-Youb Kim <hykim@myri.com>
      CC: Jakub Kicinski <jakub.kicinski@netronome.com>
      CC: Olof Johansson <olof@lixom.net>
      CC: Jiri Pirko <jiri@resnulli.us>
      CC: Byungho An <bh74.an@samsung.com>
      CC: Girish K S <ks.giri@samsung.com>
      CC: Vipul Pandya <vipul.pandya@samsung.com>
      CC: Giuseppe Cavallaro <peppe.cavallaro@st.com>
      CC: Alexandre Torgue <alexandre.torgue@st.com>
      CC: Andy Gospodarek <andy@greyhouse.net>
      CC: Wingman Kwok <w-kwok2@ti.com>
      CC: Murali Karicheri <m-karicheri2@ti.com>
      CC: Francois Romieu <romieu@fr.zoreil.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      44770e11
    • Jarod Wilson's avatar
      ethernet/toshiba: use core min/max MTU checking · 1281a2c7
      Jarod Wilson authored
      gelic_net: min_mtu 64, max_mtu 1518
      - remove gelic_net_change_mtu now that it is redundant
      
      spidernet: min_Mtu 64, max_mtu 2294
      - remove spiter_net_change_mtu now that it is redundant
      
      CC: netdev@vger.kernel.org
      CC: Geoff Levand <geoff@infradead.org>
      CC: Ishizaki Kou <kou.ishizaki@toshiba.co.jp>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1281a2c7
    • Jarod Wilson's avatar
      ethernet/tile: use core min/max MTU checking · f58f0817
      Jarod Wilson authored
      tilegx: min_mtu 68, max_mtu 1500 or 9000, depending on modparam
      - remove tile_net_change_mtu now that it is fully redundant
      
      tilepro: min_mtu 68, max_mtu 1500
      - hardware supports jumbo packets up to 10226, but it's not implemented or
        tested yet, according to code comments
      
      CC: netdev@vger.kernel.org
      CC: Chris Metcalf <cmetcalf@mellanox.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f58f0817
    • Jarod Wilson's avatar
      ethernet/ibm: use core min/max MTU checking · 3d5d96ac
      Jarod Wilson authored
      ehea: min_mtu 68, max_mtu 9022
      - remove ehea_change_mtu, it's now redundant
      
      emac: min_mtu 46, max_mtu 1500 or whatever gets read from OF
      
      CC: netdev@vger.kernel.org
      CC: Douglas Miller <dougmill@linux.vnet.ibm.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3d5d96ac
    • Jarod Wilson's avatar
      ethernet/cavium: use core min/max MTU checking · 109cc165
      Jarod Wilson authored
      liquidio: min_mtu 68, max_mtu 16000
      
      thunder: min_mtu 64, max_mtu 9200
      
      CC: netdev@vger.kernel.org
      CC: Sunil Goutham <sgoutham@cavium.com>
      CC: Robert Richter <rric@kernel.org>
      CC: Derek Chickles <derek.chickles@caviumnetworks.com>
      CC: Satanand Burla <satananda.burla@caviumnetworks.com>
      CC: Felix Manlunas <felix.manlunas@caviumnetworks.com>
      CC: Raghu Vatsavayi <raghu.vatsavayi@caviumnetworks.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      109cc165
    • Jarod Wilson's avatar
      ethernet/neterion: use core min/max MTU checking · 18c310fb
      Jarod Wilson authored
      s2io: min_mtu 46, max_mtu 9600
      
      vxge: min_mtu 68, max_mtu 9600
      
      CC: netdev@vger.kernel.org
      CC: Jon Mason <jdmason@kudzu.us>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      18c310fb
    • Jarod Wilson's avatar
      ethernet/dlink: use core min/max MTU checking · f7ad72bf
      Jarod Wilson authored
      dl2k: min_mtu 68, max_mtu 1536 or 8000, depending on hardware
      - Removed change_mtu, does nothing productive anymore
      
      sundance: min_mtu 68, max_mtu 8191
      
      CC: netdev@vger.kernel.org
      CC: Denis Kirjanov <kda@linux-powerpc.org>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f7ad72bf
    • Jarod Wilson's avatar
      ethernet/sun: use core min/max MTU checking · 540bfe30
      Jarod Wilson authored
      cassini: min_mtu 60, max_mtu 9000
      
      niu: min_mtu 68, max_mtu 9216
      
      sungem: min_mtu 68, max_mtu 1500 (comments say jumbo mode is broken)
      
      sunvnet: min_mtu 68, max_mtu 65535
      - removed sunvnet_change_mut_common as it does nothing now
      
      CC: netdev@vger.kernel.org
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      540bfe30
    • Jarod Wilson's avatar
      ethernet/realtek: use core min/max MTU checking · c7315a95
      Jarod Wilson authored
      8139cp: min_mtu 60, max_mtu 4096
      
      8139too: min_mtu 68, max_mtu 1770
      
      r8169: min_mtu 60, max_mtu depends on chipset, 1500 to 9k-ish
      
      CC: netdev@vger.kernel.org
      CC: Realtek linux nic maintainers <nic_swsd@realtek.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c7315a95
    • Jarod Wilson's avatar
      ethernet/qlogic: use core min/max MTU checking · caff2a87
      Jarod Wilson authored
      qede: min_mtu 46, max_mtu 9600
      - Put define for max in qede.h
      
      qlcnic: min_mtu 68, max_mtu 9600
      
      CC: netdev@vger.kernel.org
      CC Dept-GELinuxNICDev@qlogic.com
      CC: Yuval Mintz <Yuval.Mintz@qlogic.com>
      CC: Ariel Elior <Ariel.Elior@qlogic.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      caff2a87
    • Jarod Wilson's avatar
      ethernet/mellanox: use core min/max MTU checking · b80f71f5
      Jarod Wilson authored
      mlx4: min_mtu 46, max_mtu depends on hardware
      
      mlx5: min_mtu 68, max_mtu depends on hardware
      
      CC: netdev@vger.kernel.org
      CC: Tariq Toukan <tariqt@mellanox.com>
      CC: Saeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b80f71f5
    • Jarod Wilson's avatar
      ethernet/marvell: use core min/max MTU checking · 5777987e
      Jarod Wilson authored
      mvneta: min_mtu 68, max_mtu 9676
      - mtu validation routine mostly did range check, merge back into
        mvneta_change_mtu for simplicity
      
      mvpp2: min_mtu 68, max_mtu 9676
      - mtu validation routine mostly did range check, merge back into
        mvpp2_change_mtu for simplicity
      
      pxa168_eth: min_mtu 68, max_mtu 9500
      
      skge: min_mtu 60, max_mtu 9000
      
      sky2: min_mtu 68, max_mtu 1500 or 9000, depending on hw
      
      CC: netdev@vger.kernel.org
      CC: Mirko Lindner <mlindner@marvell.com>
      CC: Stephen Hemminger <stephen@networkplumber.org>
      CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5777987e
    • Jarod Wilson's avatar
      ethernet/intel: use core min/max MTU checking · 91c527a5
      Jarod Wilson authored
      e100: min_mtu 68, max_mtu 1500
      - remove e100_change_mtu entirely, is identical to old eth_change_mtu,
        and no longer serves a purpose. No need to set min_mtu or max_mtu
        explicitly, as ether_setup() will already set them to 68 and 1500.
      
      e1000: min_mtu 46, max_mtu 16110
      
      e1000e: min_mtu 68, max_mtu varies based on adapter
      
      fm10k: min_mtu 68, max_mtu 15342
      - remove fm10k_change_mtu entirely, does nothing now
      
      i40e: min_mtu 68, max_mtu 9706
      
      i40evf: min_mtu 68, max_mtu 9706
      
      igb: min_mtu 68, max_mtu 9216
      - There are two different "max" frame sizes claimed and both checked in
        the driver, the larger value wasn't relevant though, so I've set max_mtu
        to the smaller of the two values here to retain identical behavior.
      
      igbvf: min_mtu 68, max_mtu 9216
      - Same issue as igb duplicated
      
      ixgb: min_mtu 68, max_mtu 16114
      - Also remove pointless old == new check, as that's done in dev_set_mtu
      
      ixgbe: min_mtu 68, max_mtu 9710
      
      ixgbevf: min_mtu 68, max_mtu dependent on hardware/firmware
      - Some hw can only handle up to max_mtu 1504 on a vf, others 9710
      
      CC: netdev@vger.kernel.org
      CC: intel-wired-lan@lists.osuosl.org
      CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      91c527a5
    • Jarod Wilson's avatar
      ethernet/broadcom: use core min/max MTU checking · e1c6dcca
      Jarod Wilson authored
      tg3: min_mtu 60, max_mtu 9000/1500
      
      bnxt: min_mtu 60, max_mtu 9000
      
      bnx2x: min_mtu 46, max_mtu 9600
      - Fix up ETH_OVREHEAD -> ETH_OVERHEAD while we're in here, remove
        duplicated defines from bnx2x_link.c.
      
      bnx2: min_mtu 46, max_mtu 9000
      - Use more standard ETH_* defines while we're at it.
      
      bcm63xx_enet: min_mtu 46, max_mtu 2028
      - compute_hw_mtu was made largely pointless, and thus merged back into
        bcm_enet_change_mtu.
      
      b44: min_mtu 60, max_mtu 1500
      
      CC: netdev@vger.kernel.org
      CC: Michael Chan <michael.chan@broadcom.com>
      CC: Sony Chacko <sony.chacko@qlogic.com>
      CC: Ariel Elior <ariel.elior@qlogic.com>
      CC: Dept-HSGLinuxNICDev@qlogic.com
      CC: Siva Reddy Kallam <siva.kallam@broadcom.com>
      CC: Prashant Sreedharan <prashant@broadcom.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e1c6dcca
    • Jarod Wilson's avatar
      ethernet/atheros: use core min/max MTU checking · 67bef942
      Jarod Wilson authored
      atl2: min_mtu 40, max_mtu 1504
      
      - Remove a few redundant defines that already have equivalents in
        if_ether.h.
      
      atl1: min_mtu 42, max_mtu 10218
      
      atl1e: min_mtu 42, max_mtu 8170
      
      atl1c: min_mtu 42, max_mtu 6122/1500
      
      - GbE hardware gets a max_mtu of 6122, slower hardware gets 1500.
      
      alx: min_mtu 34, max_mtu 9256
      
      - Not so sure that minimum MTU number is really what was intended, but
        that's what the math actually makes it out to be, due to max_frame
        manipulations and comparison in alx_change_mtu, rather than just
        comparing new_mtu. (I think 68 was the intended min_mtu value).
      
      CC: netdev@vger.kernel.org
      CC: Jay Cliburn <jcliburn@gmail.com>
      CC: Chris Snook <chris.snook@gmail.com>
      Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      67bef942
    • David S. Miller's avatar
      Merge branch 'dp83867-impedance-control' · 60d2d8dd
      David S. Miller authored
      Mugunthan V N says:
      
      ====================
      add support for impedance control for TI dp83867 phy and fix 2nd ethernet on dra72 rev C evm
      
      Add support for configurable impedance control for TI dp83867
      phy via devicetree. More documentation in [1].
      CPSW second ethernet is not working, fix it by enabling
      impedance configuration on the phy.
      
      Verified the patch on DRA72 Rev C evm, logs at [2]. Also pushed
      a branch [3] for others to test.
      
      Changes from v3:
      * Fixup change log text and no code changes.
      
      Changes from v2:
      * Fixed a typo in dts and driver.
      
      Changes from initial version:
      * As per Sekhar's comment, instead of passing impedance values,
        change to max and min impedance from DT
      * Adopted phy_read_mmd_indirect() to cunnrent implementation.
      * Corrected the phy delay timings to the optimal value.
      
      [1] - http://www.ti.com/lit/ds/symlink/dp83867ir.pdf
      [2] - http://pastebin.ubuntu.com/23343139/
      [3] - git://git.ti.com/~mugunthanvnm/ti-linux-kernel/linux.git dp83867-v4
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      60d2d8dd
    • Mugunthan V N's avatar
      ARM: dts: dra72-evm-revc: fix correct phy delay · 1f065544
      Mugunthan V N authored
      The current delay settings of the phy are not the optimal value,
      fix it with correct values.
      Signed-off-by: default avatarMugunthan V N <mugunthanvnm@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1f065544
    • Mugunthan V N's avatar
      ARM: dts: dra72-evm-revc: add phy impedance settings · b76db38c
      Mugunthan V N authored
      The default impedance settings of the phy is not the optimal
      value, due to this the second ethernet is not working. Fix it
      with correct values which makes the second ethernet port to work.
      Signed-off-by: default avatarMugunthan V N <mugunthanvnm@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b76db38c
    • Mugunthan V N's avatar
      net: phy: dp83867: add support for MAC impedance configuration · ed838fe9
      Mugunthan V N authored
      Add support for programmable MAC impedance configuration
      Signed-off-by: default avatarMugunthan V N <mugunthanvnm@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ed838fe9
    • Mugunthan V N's avatar
      net: phy: dp83867: Add documentation for optional impedance control · d6081de7
      Mugunthan V N authored
      Add documention of ti,min-output-impedance and ti,max-output-impedance
      which can be used to correct MAC impedance mismatch using phy extended
      registers.
      Signed-off-by: default avatarMugunthan V N <mugunthanvnm@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d6081de7
    • Tobias Klauser's avatar
      vlan: Remove unnecessary comparison of unsigned against 0 · 403f0727
      Tobias Klauser authored
      args.u.name_type is of type unsigned int and is always >= 0.
      
      This fixes the following GCC warning:
      
        net/8021q/vlan.c: In function ‘vlan_ioctl_handler’:
        net/8021q/vlan.c:574:14: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
      Signed-off-by: default avatarTobias Klauser <tklauser@distanz.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      403f0727
  2. 17 Oct, 2016 14 commits
  3. 15 Oct, 2016 3 commits
    • Julia Lawall's avatar
      ipvlan: constify l3mdev_ops structure · ab530f63
      Julia Lawall authored
      This l3mdev_ops structure is only stored in the l3mdev_ops field of a
      net_device structure.  This field is declared const, so the l3mdev_ops
      structure can be declared as const also.  Additionally drop the
      __read_mostly annotation.
      
      The semantic patch that adds const is as follows:
      (http://coccinelle.lip6.fr/)
      
      // <smpl>
      @r disable optional_qualifier@
      identifier i;
      position p;
      @@
      static struct l3mdev_ops i@p = { ... };
      
      @ok@
      identifier r.i;
      struct net_device *e;
      position p;
      @@
      e->l3mdev_ops = &i@p;
      
      @bad@
      position p != {r.p,ok.p};
      identifier r.i;
      struct l3mdev_ops e;
      @@
      e@i@p
      
      @depends on !bad disable optional_qualifier@
      identifier r.i;
      @@
      static
      +const
       struct l3mdev_ops i = { ... };
      // </smpl>
      
      The effect on the layout of the .o file is shown by the following output
      of the size command, first before then after the transformation:
      
         text    data     bss     dec     hex filename
         7364     466      52    7882    1eca drivers/net/ipvlan/ipvlan_main.o
         7412     434      52    7898    1eda drivers/net/ipvlan/ipvlan_main.o
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ab530f63
    • David S. Miller's avatar
      Merge branch 'ila-cached-route' · f9dbd5a3
      David S. Miller authored
      Tom Herbert says:
      
      ====================
      ila: Cache a route in ILA lwt structure
      
      Add a dst_cache to ila_lwt structure. This holds a cached route for the
      translated address. In ila_output we now perform a route lookup after
      translation and if possible (destination in original route is full 128
      bits) we set the dst_cache. Subsequent calls to ila_output can then use
      the cache to avoid the route lookup.
      
      This eliminates the need to set the gateway on ILA routes as previously
      was being done. Now we can do somthing like:
      
      ./ip route add 3333::2000:0:0:2/128 encap ila 2222:0:0:2 \
          csum-mode neutral-map dev eth0  ## No via needed!
      
      Also, add destroy_state to lwt ops. We need this do destroy the
      dst_cache.
      
      - v2
        - Fixed comparisons to fc_dst_len to make comparison against number
          of bits in data structure not bytes.
        - Move destroy_state under build_state (requested by Jiri)
        - Other minor cleanup
      
      Tested:
      
      Running 200 TCP_RR streams:
      
        Baseline, no ILA
      
          1730716 tps
          102/170/313 50/90/99% latencies
          88.11 CPU utilization
      
        Using ILA in both directions
      
          1680428 tps
          105/176/325 50/90/99% latencies
          88.16 CPU utilization
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f9dbd5a3
    • Tom Herbert's avatar
      ila: Cache a route to translated address · 79ff2fc3
      Tom Herbert authored
      Add a dst_cache to ila_lwt structure. This holds a cached route for the
      translated address. In ila_output we now perform a route lookup after
      translation and if possible (destination in original route is full 128
      bits) we set the dst_cache. Subsequent calls to ila_output can then use
      the cache to avoid the route lookup.
      
      This eliminates the need to set the gateway on ILA routes as previously
      was being done. Now we can do something like:
      
      ./ip route add 3333::2000:0:0:2/128 encap ila 2222:0:0:2 \
          csum-mode neutral-map dev eth0  ## No via needed!
      Signed-off-by: default avatarTom Herbert <tom@herbertland.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      79ff2fc3