1. 10 Aug, 2015 35 commits
  2. 07 Aug, 2015 5 commits
    • Tom Herbert's avatar
      net: Fix race condition in store_rps_map · 10e4ea75
      Tom Herbert authored
      There is a race condition in store_rps_map that allows jump label
      count in rps_needed to go below zero. This can happen when
      concurrently attempting to set and a clear map.
      
      Scenario:
      
      1. rps_needed count is zero
      2. New map is assigned by setting thread, but rps_needed count _not_ yet
         incremented (rps_needed count still zero)
      2. Map is cleared by second thread, old_map set to that just assigned
      3. Second thread performs static_key_slow_dec, rps_needed count now goes
         negative
      
      Fix is to increment or decrement rps_needed under the spinlock.
      Signed-off-by: default avatarTom Herbert <tom@herbertland.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      10e4ea75
    • Wenyu Zhang's avatar
      openvswitch: Make 100 percents packets sampled when sampling rate is 1. · e05176a3
      Wenyu Zhang authored
      When sampling rate is 1, the sampling probability is UINT32_MAX. The packet
      should be sampled even the prandom32() generate the number of UINT32_MAX.
      And none packet need be sampled when the probability is 0.
      Signed-off-by: default avatarWenyu Zhang <wenyuz@vmware.com>
      Acked-by: default avatarPravin B Shelar <pshelar@nicira.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e05176a3
    • Alexei Starovoitov's avatar
      vxlan: combine VXLAN_FLOWBASED into VXLAN_COLLECT_METADATA · da8b43c0
      Alexei Starovoitov authored
      IFLA_VXLAN_FLOWBASED is useless without IFLA_VXLAN_COLLECT_METADATA,
      so combine them into single IFLA_VXLAN_COLLECT_METADATA flag.
      'flowbased' doesn't convey real meaning of the vxlan tunnel mode.
      This mode can be used by routing, tc+bpf and ovs.
      Only ovs is strictly flow based, so 'collect metadata' is a better
      name for this tunnel mode.
      Signed-off-by: default avatarAlexei Starovoitov <ast@plumgrid.com>
      Acked-by: default avatarThomas Graf <tgraf@suug.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      da8b43c0
    • David S. Miller's avatar
      Merge branch 'rds-tcp-netns' · e03c5128
      David S. Miller authored
      Sowmini Varadhan says:
      
      ====================
      RDS-TCP: Network namespace support
      
      This patch series contains the set of changes to correctly set up
      the infra for PF_RDS sockets that use TCP as the transport in multiple
      network namespaces.
      
      Patch 1 in the series is the minimal set of changes to allow
      a single instance of RDS-TCP to run in any (i.e init_net or other) net
      namespace.  The changes in this patch set ensure that the execution of
      'modprobe [-r] rds_tcp' sets up the kernel TCP sockets
      relative to the current netns, so that RDS applications can send/recv
      packets from that netns, and the netns can later be deleted cleanly.
      
      Patch 2 of the series further allows multiple RDS-TCP instances,
      one per network namespace. The changes in this patch allows dynamic
      creation/tear-down of RDS-TCP client and server sockets  across all
      current and future namespaces.
      
      v2 changes from RFC sent out earlier:
          David Ahern comments in patch 1, net_device notifier in patch 2,
          patch 3 broken off and submitted separately.
      v3: Cong Wang review comments.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e03c5128
    • Sowmini Varadhan's avatar
      RDS-TCP: Support multiple RDS-TCP listen endpoints, one per netns. · 467fa153
      Sowmini Varadhan authored
      Register pernet subsys init/stop functions that will set up
      and tear down per-net RDS-TCP listen endpoints. Unregister
      pernet subusys functions on 'modprobe -r' to clean up these
      end points.
      
      Enable keepalive on both accept and connect socket endpoints.
      The keepalive timer expiration will ensure that client socket
      endpoints will be removed as appropriate from the netns when
      an interface is removed from a namespace.
      
      Register a device notifier callback that will clean up all
      sockets (and thus avoid the need to wait for keepalive timeout)
      when the loopback device is unregistered from the netns indicating
      that the netns is getting deleted.
      Signed-off-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      467fa153