1. 28 2月, 2010 1 次提交
  2. 27 2月, 2010 4 次提交
    • P
      rtnetlink: support specifying device flags on device creation · 3729d502
      Patrick McHardy 提交于
      commit e8469ed959c373c2ff9e6f488aa5a14971aebe1f
      Author: Patrick McHardy <kaber@trash.net>
      Date:   Tue Feb 23 20:41:30 2010 +0100
      
      Support specifying the initial device flags when creating a device though
      rtnl_link. Devices allocated by rtnl_create_link() are marked as INITIALIZING
      in order to surpress netlink registration notifications. To complete setup,
      rtnl_configure_link() must be called, which performs the device flag changes
      and invokes the deferred notifiers if everything went well.
      
      Two examples:
      
      # add macvlan to eth0
      #
      $ ip link add link eth0 up allmulticast on type macvlan
      
      [LINK]11: macvlan0@eth0: <BROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
          link/ether 26:f8:84:02:f9:2a brd ff:ff:ff:ff:ff:ff
      [ROUTE]ff00::/8 dev macvlan0  table local  metric 256  mtu 1500 advmss 1440 hoplimit 0
      [ROUTE]fe80::/64 dev macvlan0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
      [LINK]11: macvlan0@eth0: <BROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP> mtu 1500
          link/ether 26:f8:84:02:f9:2a
      [ADDR]11: macvlan0    inet6 fe80::24f8:84ff:fe02:f92a/64 scope link
             valid_lft forever preferred_lft forever
      [ROUTE]local fe80::24f8:84ff:fe02:f92a via :: dev lo  table local  proto none  metric 0  mtu 16436 advmss 16376 hoplimit 0
      [ROUTE]default via fe80::215:e9ff:fef0:10f8 dev macvlan0  proto kernel  metric 1024  mtu 1500 advmss 1440 hoplimit 0
      [NEIGH]fe80::215:e9ff:fef0:10f8 dev macvlan0 lladdr 00:15:e9:f0:10:f8 router STALE
      [ROUTE]2001:6f8:974::/64 dev macvlan0  proto kernel  metric 256  expires 0sec mtu 1500 advmss 1440 hoplimit 0
      [PREFIX]prefix 2001:6f8:974::/64 dev macvlan0 onlink autoconf valid 14400 preferred 131084
      [ADDR]11: macvlan0    inet6 2001:6f8:974:0:24f8:84ff:fe02:f92a/64 scope global dynamic
             valid_lft 86399sec preferred_lft 14399sec
      
      # add VLAN to eth1, eth1 is down
      #
      $ ip link add link eth1 up type vlan id 1000
      RTNETLINK answers: Network is down
      
      <no events>
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3729d502
    • P
      dev: support deferring device flag change notifications · bd380811
      Patrick McHardy 提交于
      Split dev_change_flags() into two functions: __dev_change_flags() to
      perform the actual changes and __dev_notify_flags() to invoke netdevice
      notifiers. This will be used by rtnl_link to defer netlink notifications
      until the device has been fully configured.
      
      This changes ordering of some operations, in particular:
      
      - netlink notifications are sent after all changes have been performed.
        As a side effect this surpresses one unnecessary netlink message when
        the IFF_UP and other flags are changed simultaneously.
      
      - The NETDEV_UP/NETDEV_DOWN and NETDEV_CHANGE notifiers are invoked
        after all changes have been performed. Their relative is unchanged.
      
      - net_dmaengine_put() is invoked before the NETDEV_DOWN notifier instead
        of afterwards. This should not make any difference since both RX and TX
        are already shut down at this point.
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bd380811
    • P
      rtnetlink: handle rtnl_link netlink notifications manually · a2835763
      Patrick McHardy 提交于
      In order to support specifying device flags during device creation,
      we must be able to roll back device registration in case setting the
      flags fails without sending any notifications related to the device
      to userspace.
      
      This patch changes rollback_registered_many() and register_netdevice()
      to manually send netlink notifications for devices not handled by
      rtnl_link and allows to defer notifications for devices handled by
      rtnl_link until setup is complete.
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a2835763
    • P
      rtnetlink: ignore NETDEV_PRE_UP notifier in rtnetlink_event() · 10de05af
      Patrick McHardy 提交于
      Commit 3b8bcfd5 (net: introduce pre-up netdev notifier) added a new
      notifier which is run before a device is set UP for use by cfg80211.
      
      The patch missed to add the new notifier to the ignore list in
      rtnetlink_event(), so we currently get an unnecessary netlink
      notification before a device is set UP.
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      10de05af
  3. 26 2月, 2010 5 次提交
  4. 24 2月, 2010 1 次提交
    • A
      net: bug fix for vlan + gro issue · c4d49794
      Ajit Khaparde 提交于
      Traffic (tcp) doesnot start on a vlan interface when gro is enabled.
      Even the tcp handshake was not taking place.
      This is because, the eth_type_trans call before the netif_receive_skb
      in napi_gro_finish() resets the skb->dev to napi->dev from the previously
      set vlan netdev interface. This causes the ip_route_input to drop the
      incoming packet considering it as a packet coming from a martian source.
      
      I could repro this on 2.6.32.7 (stable) and 2.6.33-rc7.
      With this fix, the traffic starts and the test runs fine on both vlan
      and non-vlan interfaces.
      
      CC: Herbert Xu <herbert@gondor.apana.org.au>
      CC: Patrick McHardy <kaber@trash.net>
      Signed-off-by: NAjit Khaparde <ajitk@serverengines.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c4d49794
  5. 23 2月, 2010 1 次提交
  6. 20 2月, 2010 1 次提交
  7. 18 2月, 2010 4 次提交
  8. 17 2月, 2010 3 次提交
  9. 16 2月, 2010 3 次提交
  10. 13 2月, 2010 2 次提交
  11. 12 2月, 2010 1 次提交
  12. 11 2月, 2010 1 次提交
  13. 09 2月, 2010 1 次提交
  14. 05 2月, 2010 1 次提交
  15. 04 2月, 2010 1 次提交
  16. 26 1月, 2010 1 次提交
  17. 23 1月, 2010 1 次提交
  18. 21 1月, 2010 1 次提交
  19. 20 1月, 2010 1 次提交
  20. 18 1月, 2010 1 次提交
  21. 15 1月, 2010 1 次提交
  22. 14 1月, 2010 1 次提交
  23. 08 1月, 2010 1 次提交
  24. 07 1月, 2010 2 次提交
    • J
      net: Make it easier to parse /proc/net/dev contents. · 2d13bafe
      Jesper Dangaard Brouer 提交于
      The contents of /proc/net/dev is annoying to parse, because
      it changes whether there is a space after the "ethX:" or not.
      It depends upon the size of the "Receive bytes" counter,
      if the number is below 7 digits, then there is whitespaces
      else if the number is 8 digits or above there is no space
      between the ":" and the number.
      
      This patch changes the output to assure there is always a space
      between the ":" and the number.  Given that all existing userspace
      application already need to handle the whitespaces, I see
      no breakage of existing tools.
      Signed-off-by: NJesper Dangaard Brouer <hawk@comx.dk>
      Acked-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2d13bafe
    • A
      fix bonding: allow arp_ip_targets on separate vlans to use arp validation · ca8d9ea3
      Andy Gospodarek 提交于
      On Wed, Jan 06, 2010 at 10:10:03PM +0100, Eric Dumazet wrote:
      > Le 06/01/2010 19:38, Eric Dumazet a écrit :
      > >
      > > (net-next-2.6 doesnt work well on my bond/vlan setup, I suspect I need a bisection)
      >
      > David, I had to revert 1f3c8804
      > (bonding: allow arp_ip_targets on separate vlans to use arp validation)
      >
      > Or else, my vlan devices dont work (unfortunatly I dont have much time
      > these days to debug the thing)
      >
      > My config :
      >
      >               +---------+
      > vlan.103 -----+ bond0   +--- eth1 (bnx2)
      >               |         +
      > vlan.825 -----+         +--- eth2 (tg3)
      >               +---------+
      >
      > $ cat /proc/net/bonding/bond0
      > Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
      >
      > Bonding Mode: fault-tolerance (active-backup)
      > Primary Slave: None
      > Currently Active Slave: eth2
      > MII Status: up
      > MII Polling Interval (ms): 100
      > Up Delay (ms): 0
      > Down Delay (ms): 0
      >
      > Slave Interface: eth1  (bnx2)
      > MII Status: down
      > Link Failure Count: 1
      > Permanent HW addr: 00:1e:0b:ec:d3:d2
      >
      > Slave Interface: eth2   (tg3)
      > MII Status: up
      > Link Failure Count: 0
      > Permanent HW addr: 00:1e:0b:92:78:50
      >
      
      This patch fixes up a problem with found with commit
      1f3c8804.  The original change
      overloaded null_or_orig, but doing that prevented any packet handlers
      that were not tied to a specific device (i.e. ptype->dev == NULL) from
      ever receiving any frames.
      
      The null_or_orig variable cannot be overloaded, and must be kept as NULL
      to prevent the frame from being ignored by packet handlers designed to
      accept frames on any interface.
      Signed-off-by: NAndy Gospodarek <andy@greyhouse.net>
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Acked-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ca8d9ea3