1. 01 8月, 2011 7 次提交
    • S
      dccp ccid-2: check Ack Ratio when reducing cwnd · d96a9e8d
      Samuel Jero 提交于
      This patch causes CCID-2 to check the Ack Ratio after reducing the congestion
      window. If the Ack Ratio is greater than the congestion window, it is
      reduced. This prevents timeouts caused by an Ack Ratio larger than the
      congestion window.
      
      In this situation, we choose to set the Ack Ratio to half the congestion window
      (or one if that's zero) so that if we loose one ack we don't trigger a timeout.
      
      Signed-off-by: Samuel Jero <sj323707@ohio.edu> 
      Acked-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      d96a9e8d
    • S
      dccp ccid-2: increment cwnd correctly · 0ce95dc7
      Samuel Jero 提交于
      This patch fixes an issue where CCID-2 will not increase the congestion
      window for numerous RTTs after an idle period, application-limited period,
      or a loss once the algorithm is in Congestion Avoidance.
      
      What happens is that, when CCID-2 is in Congestion Avoidance mode, it will
      increase hc->tx_packets_acked by one for every packet and will increment cwnd
      every cwnd packets. However, if there is now an idle period in the connection,
      cwnd will be reduced, possibly below the slow start threshold. This will
      cause the connection to go into Slow Start. However, in Slow Start CCID-2
      performs this test to increment cwnd every second ack:
      
      	++hc->tx_packets_acked == 2
      
      Unfortunately, this will be incorrect, if cwnd previous to the idle period
      was larger than 2 and if tx_packets_acked was close to cwnd. For example:
      	cwnd=50  and  tx_packets_acked=45.
      
      In this case, the current code, will increment tx_packets_acked until it
      equals two, which will only be once tx_packets_acked (an unsigned 32-bit
      integer) overflows.
      
      My fix is simply to change that test for tx_packets_acked greater than or
      equal to two in slow start.
      Signed-off-by: NSamuel Jero <sj323707@ohio.edu>
      Acked-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      0ce95dc7
    • S
      dccp ccid-2: prevent cwnd > Sequence Window · d346d886
      Samuel Jero 提交于
      Add a check to prevent CCID-2 from increasing the cwnd greater than the
      Sequence Window.
      
      When the congestion window becomes bigger than the Sequence Window, CCID-2
      will attempt to keep more data in the network than the DCCP Sequence Window
      code considers possible. This results in the Sequence Window code issuing
      a Sync, thereby inducing needless overhead. Further, if this occurs at the
      sender, CCID-2 will never detect the problem because the Acks it receives
      will indicate no losses. I have seen this cause a drop of 1/3rd in throughput
      for a connection.
      
      Also add code to adjust the Sequence Window to be about 5 times the number of
      packets in the network (RFC 4340, 7.5.2) and to adjust the Ack Ratio so that
      the remote Sequence Window will hold about 5 times the number of packets in
      the network. This allows the congestion window to increase correctly without
      being limited by the Sequence Window.
      Signed-off-by: NSamuel Jero <sj323707@ohio.edu>
      Acked-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      d346d886
    • G
      dccp ccid-2: use feature-negotiation to report Ack Ratio changes · 31daf039
      Gerrit Renker 提交于
      This uses the new feature-negotiation framework to signal Ack Ratio changes,
      as required by RFC 4341, sec. 6.1.2.
      
      That raises some problems with CCID-2, which at the moment can not cope
      gracefully with Ack Ratios > 1. Since these issues are not directly related
      to feature negotiation, they are marked by a FIXME.
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: NSamuel Jero <sj323707@ohio.edu>
      Acked-by: NIan McDonald <ian.mcdonald@jandi.co.uk>
      31daf039
    • S
      dccp: send Confirm options only once · a6444f42
      Samuel Jero 提交于
      If a connection is in the OPEN state, remove feature negotiation Confirm
      options from the list of options after sending them once; as such options
      are NOT supposed to be retransmitted and are ONLY supposed to be sent in
      response to a Change option (RFC 4340 6.2).
      Signed-off-by: NSamuel Jero <sj323707@ohio.edu>
      Acked-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      a6444f42
    • G
      dccp: support for exchanging of NN options in established state 2/2 · 44e6fd9e
      Gerrit Renker 提交于
      This patch adds the receiver side and the (fast-path) activation part for
      dynamic changes of non-negotiable (NN) parameters in (PART)OPEN state.
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: NSamuel Jero <sj323707@ohio.edu>
      Acked-by: NIan McDonald <ian.mcdonald@jandi.co.uk>
      44e6fd9e
    • G
      dccp: support for the exchange of NN options in established state 1/2 · d6916f87
      Gerrit Renker 提交于
      In contrast to static feature negotiation at the begin of a connection, this
      patch introduces support for exchange of dynamically changing options.
      
      Such an update/exchange is necessary in at least two cases:
       * CCID-2's Ack Ratio (RFC 4341, 6.1.2) which changes during the connection;
       * Sequence Window values that, as per RFC 4340, 7.5.2, should be sent "as
         the connection progresses".
      
      Both are non-negotiable (NN) features, which means that no new capabilities
      are negotiated, but rather that changes in known parameters are brought
      up-to-date at either end.
      
      Thse characteristics are reflected by the implementation:
       * only NN options can be exchanged after connection setup;
       * an ack is scheduled directly after activation to speed up the update;
       * CCIDs may request changes to an NN feature even if a negotiation for that
         feature is already underway: this is required by CCID-2, where changes in
         cwnd necessitate Ack Ratio changes, such that the previous Ack Ratio (which
         is still being negotiated) would cause irrecoverable RTO timeouts (thanks
         to work by Samuel Jero).	   
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: NSamuel Jero <sj323707@ohio.edu>
      Acked-by: NIan McDonald <ian.mcdonald@jandi.co.uk>
      d6916f87
  2. 28 7月, 2011 3 次提交
    • N
      net: Audit drivers to identify those needing IFF_TX_SKB_SHARING cleared · 550fd08c
      Neil Horman 提交于
      After the last patch, We are left in a state in which only drivers calling
      ether_setup have IFF_TX_SKB_SHARING set (we assume that drivers touching real
      hardware call ether_setup for their net_devices and don't hold any state in
      their skbs.  There are a handful of drivers that violate this assumption of
      course, and need to be fixed up.  This patch identifies those drivers, and marks
      them as not being able to support the safe transmission of skbs by clearning the
      IFF_TX_SKB_SHARING flag in priv_flags
      Signed-off-by: NNeil Horman <nhorman@tuxdriver.com>
      CC: Karsten Keil <isdn@linux-pingi.de>
      CC: "David S. Miller" <davem@davemloft.net>
      CC: Jay Vosburgh <fubar@us.ibm.com>
      CC: Andy Gospodarek <andy@greyhouse.net>
      CC: Patrick McHardy <kaber@trash.net>
      CC: Krzysztof Halasa <khc@pm.waw.pl>
      CC: "John W. Linville" <linville@tuxdriver.com>
      CC: Greg Kroah-Hartman <gregkh@suse.de>
      CC: Marcel Holtmann <marcel@holtmann.org>
      CC: Johannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      550fd08c
    • N
      net: add IFF_SKB_TX_SHARED flag to priv_flags · d8873315
      Neil Horman 提交于
      Pktgen attempts to transmit shared skbs to net devices, which can't be used by
      some drivers as they keep state information in skbs.  This patch adds a flag
      marking drivers as being able to handle shared skbs in their tx path.  Drivers
      are defaulted to being unable to do so, but calling ether_setup enables this
      flag, as 90% of the drivers calling ether_setup touch real hardware and can
      handle shared skbs.  A subsequent patch will audit drivers to ensure that the
      flag is set properly
      Signed-off-by: NNeil Horman <nhorman@tuxdriver.com>
      Reported-by: NJiri Pirko <jpirko@redhat.com>
      CC: Robert Olsson <robert.olsson@its.uu.se>
      CC: Eric Dumazet <eric.dumazet@gmail.com>
      CC: Alexey Dobriyan <adobriyan@gmail.com>
      CC: David S. Miller <davem@davemloft.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d8873315
    • E
      net: sock_sendmsg_nosec() is static · 894dc24c
      Eric Dumazet 提交于
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      CC: Anton Blanchard <anton@samba.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      894dc24c
  3. 27 7月, 2011 5 次提交
  4. 26 7月, 2011 6 次提交
  5. 24 7月, 2011 3 次提交
  6. 23 7月, 2011 15 次提交
  7. 22 7月, 2011 1 次提交