1. 08 Dec, 2008 8 commits
    • Gerrit Renker's avatar
      dccp: Remove manual influence on NDP Count feature · 4098dce5
      Gerrit Renker authored
      
      
      Updating the NDP count feature is handled automatically now:
       * for CCID-2 it is disabled, since the code does not use NDP counts;
       * for CCID-3 it is enabled, as NDP counts are used to determine loss lengths.
      
      Allowing the user to change NDP values leads to unpredictable and failing
      behaviour, since it is then possible to disable NDP counts even when they
      are needed (e.g. in CCID-3).
      
      This means that only those user settings are sensible that agree with the
      values for Send NDP Count implied by the choice of CCID. But those settings
      are already activated by the feature negotiation (CCID dependency tracking),
      hence this form of support is redundant.
      
      At startup the initialisation of the NDP count feature uses the default
      value of 0, which is done implicitly by the zeroing-out of the socket when
      it is allocated. If the choice of CCID or feature negotiation enables NDP
      count, this will then be updated via the NDP activation handler.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      Acked-by: default avatarIan McDonald <ian.mcdonald@jandi.co.nz>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4098dce5
    • Gerrit Renker's avatar
      dccp: Remove obsolete parts of the old CCID interface · 0049bab5
      Gerrit Renker authored
      
      
      The TX/RX CCIDs of the minisock are now redundant: similar to the Ack Vector
      case, their value equals initially that of the sysctl, but at the end of
      feature negotiation may be something different.
      
      The old interface removed by this patch thus has been replaced by the newer
      interface to dynamically query the currently loaded CCIDs.
      
      Also removed are the constructors for the TX CCID and the RX CCID, since the
      switch "rx <-> non-rx" is done by the handler in minisocks.c (and the handler
      is the only place in the code where CCIDs are loaded).
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      Acked-by: default avatarIan McDonald <ian.mcdonald@jandi.co.nz>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0049bab5
    • Gerrit Renker's avatar
      dccp: Clean up old feature-negotiation infrastructure · 63b8e286
      Gerrit Renker authored
      
      
      The code removed by this patch is no longer referenced or used, the added
      lines update documentation and copyrights.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      Acked-by: default avatarIan McDonald <ian.mcdonald@jandi.co.nz>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      63b8e286
    • Gerrit Renker's avatar
      dccp: Integration of dynamic feature activation - part 3 (client side) · 991d927c
      Gerrit Renker authored
      
      
      This integrates feature-activation in the client:
      
       1. When dccp_parse_options() fails, the reset code is already set; request_sent\
          _state_process() currently overrides this with `Packet Error', which is not
          intended - changed to use the reset code supplied by dccp_parse_options().
      
       2. When feature negotiation fails, the socket should be marked as not usable,
          so that the application is notified that an error occurred. This is achieved
          by a new label 'unable_to_proceed': generating an error code of `Aborted',
          setting the socket state to CLOSED, returning with ECOMM in sk_err.
      
       3. Avoids parsing the Ack twice in Respond state by not doing option processing
          again in dccp_rcv_respond_partopen_state_process (as option processing has
          already been done on the request_sock in dccp_check_req).
      
      Since this addresses congestion-control initialisation, a corresponding
      FIXME has been removed.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      Acked-by: default avatarIan McDonald <ian.mcdonald@jandi.co.nz>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      991d927c
    • Gerrit Renker's avatar
      dccp: Integration of dynamic feature activation - part 2 (server side) · 192b27ff
      Gerrit Renker authored
      
      
      This patch integrates the activation of features at the end of negotiation
      into the server-side code.
      
      Note regarding the removal of 'const':
      --------------------------------------
       The 'const' attribute has been removed from 'dreq' since dccp_activate_values()
       needs to operate on dreq's feature list. Part of the activation is to remove
       those options from the list that have already been confirmed, hence it is not
       purely read-only.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      Acked-by: default avatarIan McDonald <ian.mcdonald@jandi.co.nz>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      192b27ff
    • Gerrit Renker's avatar
      dccp: Integration of dynamic feature activation - part 1 (socket setup) · 6eb55d17
      Gerrit Renker authored
      
      
      This first patch out of three replaces the hardcoded default settings with
      initialisation code for the dynamic feature negotiation.
      
      The patch also ensures that the client feature-negotiation queue is flushed
      only when entering the OPEN state.
      
      Since confirmed Change options are removed as soon as they are confirmed
      (in the DCCP-Response), this ensures that Confirm options are retransmitted.
      
      Note on retransmitting Confirm options:
      ---------------------------------------
      Implementation experience showed that it is necessary to retransmit Confirm
      options. Thanks to Leandro Melo de Sales who reported a bug in an earlier
      revision of the patch set, resulting from not retransmitting these options.
      
      As long as the client is in PARTOPEN, it needs to retransmit the Confirm
      options for the Change options received on the DCCP-Response from the server.
      
      Otherwise, if the packet containing the Confirm options gets dropped in the
      network, the connection aborts due to undefined feature negotiation state.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      Acked-by: default avatarIan McDonald <ian.mcdonald@jandi.co.nz>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6eb55d17
    • Wang Chen's avatar
      netdevice: Kill netdev->priv · b74ca3a8
      Wang Chen authored
      
      
      This is the last shoot of this series.
      After I removing all directly reference of netdev->priv, I am killing
      "priv" of "struct net_device" and fixing relative comments/docs.
      
      Anyone will not be allowed to reference netdev->priv directly.
      If you want to reference the memory of private data, use netdev_priv()
      instead.
      If the private data is not allocted when alloc_netdev(), use
      netdev->ml_priv to point that memory after you creating that private
      data.
      Signed-off-by: default avatarWang Chen <wangchen@cn.fujitsu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b74ca3a8
    • Wang Chen's avatar
      staging-winbond: Kill directly reference of netdev->priv · 5a001a07
      Wang Chen authored
      
      
      This driver is not yet finished.
      At this time, we don't know how netdev be created and how
      private data be allocated.
      So, simply use netdev_priv() now and leave some temp comment.
      
      Compile test only.
      Signed-off-by: default avatarWang Chen <wangchen@cn.fujitsu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5a001a07
  2. 07 Dec, 2008 5 commits
  3. 05 Dec, 2008 27 commits