1. 15 Nov, 2013 6 commits
    • David S. Miller's avatar
      Merge branch 'macvlan' · 82c80e9d
      David S. Miller authored
      Michal Kubecek says:
      
      ====================
      macvlan: disable LRO on lowerdev instead of a macvlan
      
      A customer of ours encountered a problem with LRO on an ixgbe network
      card. Analysis showed that it was a known conflict of forwarding and LRO
      but the forwarding was enabled in an LXC container where only a macvlan
      was, not the ethernet device itself.
      
      I believe the solution is exactly the same as what we do for "normal"
      (802.1q) VLAN devices: if dev_disable_lro() is called for such device,
      LRO is disabled on the underlying "real" device instead.
      
      v2: adapt to changes merged from net-next
      
      v3: use BUG() in macvlan_dev_real_dev() if compiled without macvlan
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      82c80e9d
    • Michal Kubeček's avatar
      macvlan: disable LRO on lower device instead of macvlan · 529d0489
      Michal Kubeček authored
      A macvlan device has always LRO disabled so that calling
      dev_disable_lro() on it does nothing. If we need to disable LRO
      e.g. because
      
        - the macvlan device is inserted into a bridge
        - IPv6 forwarding is enabled for it
        - it is in a different namespace than lowerdev and IPv4
          forwarding is enabled in it
      
      we need to disable LRO on its underlying device instead (as we
      do for 802.1q VLAN devices).
      
      v2: use newly introduced netif_is_macvlan()
      Signed-off-by: default avatarMichal Kubecek <mkubecek@suse.cz>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      529d0489
    • Michal Kubeček's avatar
      macvlan: introduce macvlan_dev_real_dev() helper function · be9eac48
      Michal Kubeček authored
      Introduce helper function macvlan_dev_real_dev which returns the
      underlying device of a macvlan device, similar to vlan_dev_real_dev()
      for 802.1q VLAN devices.
      
      v2: IFF_MACVLAN flag and equivalent of is_macvlan_dev() were
      introduced in the meantime
      
      v3: do BUG() if compiled without macvlan support
      Signed-off-by: default avatarMichal Kubecek <mkubecek@suse.cz>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      be9eac48
    • Wang Weidong's avatar
      bonding: add ip checks when store ip target · f9de11a1
      Wang Weidong authored
      I met a Bug when I add ip target with the wrong ip address:
      
      echo +500.500.500.500 > /sys/class/net/bond0/bonding/arp_ip_target
      
      the wrong ip address will transfor to 245.245.245.244 and add
      to the ip target success, it is uncorrect, so I add checks to avoid
      adding wrong address.
      
      The in4_pton() will set wrong ip address to 0.0.0.0, it will return by
      the next check and will not add to ip target.
      
      v2
      According Veaceslav's opinion, simplify the code.
      
      v3
      According Veaceslav's opinion, add broadcast check and make a micro
      definition to package it.
      
      v4
      Solve the problem of the format which David point out.
      Suggested-by: default avatarVeaceslav Falico <vfalico@redhat.com>
      Suggested-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarDing Tianhong <dingtianhong@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f9de11a1
    • Jukka Rissanen's avatar
      6lowpan: Uncompression of traffic class field was incorrect · 1188f054
      Jukka Rissanen authored
      If priority/traffic class field in IPv6 header is set (seen when
      using ssh), the uncompression sets the TC and Flow fields incorrectly.
      
      Example:
      
      This is IPv6 header of a sent packet. Note the priority/TC (=1) in
      the first byte.
      
      00000000: 61 00 00 00 00 2c 06 40 fe 80 00 00 00 00 00 00
      00000010: 02 02 72 ff fe c6 42 10 fe 80 00 00 00 00 00 00
      00000020: 02 1e ab ff fe 4c 52 57
      
      This gets compressed like this in the sending side
      
      00000000: 72 31 04 06 02 1e ab ff fe 4c 52 57 ec c2 00 16
      00000010: aa 2d fe 92 86 4e be c6 ....
      
      In the receiving end, the packet gets uncompressed to this
      IPv6 header
      
      00000000: 60 06 06 02 00 2a 1e 40 fe 80 00 00 00 00 00 00
      00000010: 02 02 72 ff fe c6 42 10 fe 80 00 00 00 00 00 00
      00000020: ab ff fe 4c 52 57 ec c2
      
      First four bytes are set incorrectly and we have also lost
      two bytes from destination address.
      
      The fix is to switch the case values in switch statement
      when checking the TC field.
      Signed-off-by: default avatarJukka Rissanen <jukka.rissanen@linux.intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1188f054
    • Erik Hugne's avatar
      tipc: fix dereference before check warning · 3db0a197
      Erik Hugne authored
      This fixes the following Smatch warning:
      net/tipc/link.c:2364 tipc_link_recv_fragment()
          warn: variable dereferenced before check '*head' (see line 2361)
      
      A null pointer might be passed to skb_try_coalesce if
      a malicious sender injects orphan fragments on a link.
      Signed-off-by: default avatarErik Hugne <erik.hugne@ericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3db0a197
  2. 14 Nov, 2013 34 commits