1. 23 6月, 2006 2 次提交
    • H
      [NET]: Add software TSOv4 · f4c50d99
      Herbert Xu 提交于
      This patch adds the GSO implementation for IPv4 TCP.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f4c50d99
    • H
      [NET]: Merge TSO/UFO fields in sk_buff · 7967168c
      Herbert Xu 提交于
      Having separate fields in sk_buff for TSO/UFO (tso_size/ufo_size) is not
      going to scale if we add any more segmentation methods (e.g., DCCP).  So
      let's merge them.
      
      They were used to tell the protocol of a packet.  This function has been
      subsumed by the new gso_type field.  This is essentially a set of netdev
      feature bits (shifted by 16 bits) that are required to process a specific
      skb.  As such it's easy to tell whether a given device can process a GSO
      skb: you just have to and the gso_type field and the netdev's features
      field.
      
      I've made gso_type a conjunction.  The idea is that you have a base type
      (e.g., SKB_GSO_TCPV4) that can be modified further to support new features.
      For example, if we add a hardware TSO type that supports ECN, they would
      declare NETIF_F_TSO | NETIF_F_TSO_ECN.  All TSO packets with CWR set would
      have a gso_type of SKB_GSO_TCPV4 | SKB_GSO_TCPV4_ECN while all other TSO
      packets would be SKB_GSO_TCPV4.  This means that only the CWR packets need
      to be emulated in software.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7967168c
  2. 20 6月, 2006 2 次提交
    • D
      [SCTP]: Fix unintentional change to SCTP_ASSERT when !SCTP_DEBUG · 65fd28f7
      David S. Miller 提交于
      A local debugging change slipped into a previous changeset.
      
      When SCTP_DEBUG is off SCTP_ASSERT should do nothing.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      65fd28f7
    • H
      [NET]: Prevent multiple qdisc runs · 48d83325
      Herbert Xu 提交于
      Having two or more qdisc_run's contend against each other is bad because
      it can induce packet reordering if the packets have to be requeued.  It
      appears that this is an unintended consequence of relinquinshing the queue
      lock while transmitting.  That in turn is needed for devices that spend a
      lot of time in their transmit routine.
      
      There are no advantages to be had as devices with queues are inherently
      single-threaded (the loopback device is not but then it doesn't have a
      queue).
      
      Even if you were to add a queue to a parallel virtual device (e.g., bolt
      a tbf filter in front of an ipip tunnel device), you would still want to
      process the queue in sequence to ensure that the packets are ordered
      correctly.
      
      The solution here is to steal a bit from net_device to prevent this.
      
      BTW, as qdisc_restart is no longer used by anyone as a module inside the
      kernel (IIRC it used to with netif_wake_queue), I have not exported the
      new __qdisc_run function.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      48d83325
  3. 18 6月, 2006 20 次提交
  4. 16 6月, 2006 1 次提交
    • L
      [PATCH] wireless: Changes to ieee80211.h for user space regulatory daemon · 74f49033
      Larry Finger 提交于
      Attached are two small patches for include/net/ieee80211.h to prepare
      for later submission of code to implement a user-space daemon that
      supplies 802.11 regulatory information.
      
      The first change adds a bit indicating that 802.11h rules are to be
      applied to a channel. As discussed earlier in this list, a single bit
      is unlikely to be sufficient; however, at this time I have been unable
      to find any regulations implementing differences between 802.11a and
      802.11h other than DFS, radar detection and passive scanning. A single
      bit is thus sufficient to convey to the driver that these rules should
      be obeyed.
      
      The second change adds comments to the freq and max_power fields of
      struct ieee80211_channel to indicate the units that are used.
      Signed-Off-By: NLarry Finger <Larry.Finger@lwfinger.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      74f49033
  5. 06 6月, 2006 2 次提交
    • D
      [PATCH] softmac: Fix handling of authentication failure · 6ae15df1
      Daniel Drake 提交于
      My router blew up earlier, but exhibited some interesting behaviour during
      its dying moments. It was broadcasting beacons but wouldn't respond to
      any authentication requests.
      
      I noticed that softmac wasn't playing nice with this, as I couldn't make it try
      to connect to other networks after it had timed out authenticating to my ill
      router.
      
      To resolve this, I modified the softmac event/notify API to pass the event
      code to the callback, so that callbacks being notified from
      IEEE80211SOFTMAC_EVENT_ANY masks can make some judgement. In this case, the
      ieee80211softmac_assoc callback needs to make a decision based upon whether
      the association passed or failed.
      Signed-off-by: NDaniel Drake <dsd@gentoo.org>
      Acked-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      6ae15df1
    • D
      [PATCH] softmac: complete shared key authentication · 76ea4c7f
      Daniel Drake 提交于
      This patch finishes of the partially-complete shared key authentication
      implementation in softmac.
      
      The complication here is that we need to encrypt a management frame during
      the authentication process. I don't think there are any other scenarios where
      this would have to happen.
      
      To get around this without causing too many headaches, we decided to just use
      software encryption for this frame. The softmac config option now selects
      IEEE80211_CRYPT_WEP so that we can ensure this available. This also involved
      a modification to some otherwise unused ieee80211 API.
      Signed-off-by: NDaniel Drake <dsd@gentoo.org>
      Acked-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      76ea4c7f
  6. 01 6月, 2006 1 次提交
  7. 23 5月, 2006 1 次提交
  8. 20 5月, 2006 2 次提交
  9. 13 5月, 2006 1 次提交
    • S
      [NEIGH]: Fix IP-over-ATM and ARP interaction. · bd89efc5
      Simon Kelley 提交于
      The classical IP over ATM code maintains its own IPv4 <-> <ATM stuff>
      ARP table, using the standard neighbour-table code. The
      neigh_table_init function adds this neighbour table to a linked list
      of all neighbor tables which is used by the functions neigh_delete()
      neigh_add() and neightbl_set(), all called by the netlink code.
      
      Once the ATM neighbour table is added to the list, there are two
      tables with family == AF_INET there, and ARP entries sent via netlink
      go into the first table with matching family. This is indeterminate
      and often wrong.
      
      To see the bug, on a kernel with CLIP enabled, create a standard IPv4
      ARP entry by pinging an unused address on a local subnet. Then attempt
      to complete that entry by doing
      
      ip neigh replace <ip address> lladdr <some mac address> nud reachable
      
      Looking at the ARP tables by using 
      
      ip neigh show
      
      will reveal two ARP entries for the same address. One of these can be
      found in /proc/net/arp, and the other in /proc/net/atm/arp.
      
      This patch adds a new function, neigh_table_init_no_netlink() which
      does everything the neigh_table_init() does, except add the table to
      the netlink all-arp-tables chain. In addition neigh_table_init() has a
      check that all tables on the chain have a distinct address family.
      The init call in clip.c is changed to call
      neigh_table_init_no_netlink().
      
      Since ATM ARP tables are rather more complicated than can currently be
      handled by the available rtattrs in the netlink protocol, no
      functionality is lost by this patch, and non-ATM ARP manipulation via
      netlink is rescued. A more complete solution would involve a rtattr
      for ATM ARP entries and some way for the netlink code to give
      neigh_add and friends more information than just address family with
      which to find the correct ARP table.
      
      [ I've changed the assertion checking in neigh_table_init() to not
        use BUG_ON() while holding neigh_tbl_lock.  Instead we remember that
        we found an existing tbl with the same family, and after dropping
        the lock we'll give a diagnostic kernel log message and a stack dump.
        -DaveM ]
      Signed-off-by: NSimon Kelley <simon@thekelleys.org.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bd89efc5
  10. 06 5月, 2006 4 次提交
  11. 04 5月, 2006 3 次提交
  12. 30 4月, 2006 1 次提交