17 Oct, 2008

3 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (26 commits)
    decnet: Fix compiler warning in dn_dev.c
    IPV6: Fix default gateway criteria wrt. HIGH/LOW preference radv option
    net/802/fc.c: Fix compilation warnings
    netns: correct mib stats in ip6_route_me_harder()
    netns: fix net_generic array leak
    rt2x00: fix regression introduced by "mac80211: free up 2 bytes in skb->cb"
    rtl8187: Add USB ID for Belkin F5D7050 with RTL8187B chip
    p54usb: Device ID updates
    mac80211: fixme for kernel-doc
    ath9k/mac80211: disallow fragmentation in ath9k, report to userspace
    libertas : Remove unused variable warning for "old_channel" from cmd.c
    mac80211: Fix scan RX processing oops
    orinoco: fix unsafe locking in spectrum_cs_suspend
    orinoco: fix unsafe locking in orinoco_cs_resume
    cfg80211: fix debugfs error handling
    mac80211: fix debugfs netdev rename
    iwlwifi: fix ct kill configuration for 5350
    mac80211: fix HT information element parsing
    p54: Fix compilation problem on PPC
    mac80211: fix debugfs lockup
    ...

    Linus Torvalds
     
  • Remove Andrew Morton's http://www.zip.com.au/~akpm/ urls, update to new
    ones when necessary, delete references otherwise.

    There are still instances of that living in:
    Documentation/zh_CN/HOWTO
    Documentation/zh_CN/SubmittingPatches
    Documentation/ko_KR/HOWTO
    Documentation/ja_JP/SubmittingPatches

    Signed-off-by: Francois Cami
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    FD Cami
     
  • People can use the real name an an index into MAINTAINERS to find the
    current email address.

    Signed-off-by: Francois Cami
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Francois Cami
     

15 Oct, 2008

1 commit


08 Oct, 2008

1 commit


06 Oct, 2008

1 commit


30 Sep, 2008

1 commit


24 Sep, 2008

1 commit


23 Sep, 2008

1 commit


20 Sep, 2008

1 commit


18 Sep, 2008

1 commit


16 Sep, 2008

1 commit

  • This adds the new wireless regulatory infrastructure. The
    main motiviation behind this was to centralize regulatory
    code as each driver was implementing their own regulatory solution,
    and to replace the initial centralized code we have where:

    * only 3 regulatory domains are supported: US, JP and EU
    * regulatory domains can only be changed through module parameter
    * all rules were built statically in the kernel

    We now have support for regulatory domains for many countries
    and regulatory domains are now queried through a userspace agent
    through udev allowing distributions to update regulatory rules
    without updating the kernel.

    Each driver can regulatory_hint() a regulatory domain
    based on either their EEPROM mapped regulatory domain value to a
    respective ISO/IEC 3166-1 country code or pass an internally built
    regulatory domain. We also add support to let the user set the
    regulatory domain through userspace in case of faulty EEPROMs to
    further help compliance.

    Support for world roaming will be added soon for cards capable of
    this.

    For more information see:

    http://wireless.kernel.org/en/developers/Regulatory/CRDA

    For now we leave an option to enable the old module parameter,
    ieee80211_regdom, and to build the 3 old regdomains statically
    (US, JP and EU). This option is CONFIG_WIRELESS_OLD_REGULATORY.
    These old static definitions and the module parameter is being
    scheduled for removal for 2.6.29. Note that if you use this
    you won't make use of a world regulatory domain as its pointless.
    If you leave this option enabled and if CRDA is present and you
    use US or JP we will try to ask CRDA to update us a regulatory
    domain for us.

    Signed-off-by: Luis R. Rodriguez
    Signed-off-by: John W. Linville

    Luis R. Rodriguez
     

13 Sep, 2008

4 commits

  • This patch resolves a few issues found with multiq including wording
    suggestions and a problem seen in the allocation of queues.

    Signed-off-by: Alexander Duyck
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Alexander Duyck
     
  • Signed-off-by: Alexander Duyck
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Alexander Duyck
     
  • This new action will have the ability to change the priority and/or
    queue_mapping fields on an sk_buff.

    Signed-off-by: Alexander Duyck
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Alexander Duyck
     
  • This patch is intended to add a qdisc to support the new tx multiqueue
    architecture by providing a band for each hardware queue. By doing
    this it is possible to support a different qdisc per physical hardware
    queue.

    This qdisc uses the skb->queue_mapping to select which band to place
    the traffic onto. It then uses a round robin w/ a check to see if the
    subqueue is stopped to determine which band to dequeue the packet from.

    Signed-off-by: Alexander Duyck
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Alexander Duyck
     

09 Sep, 2008

1 commit


04 Sep, 2008

8 commits

  • This patch adds a generic infrastructure for policy-based dequeueing of
    TX packets and provides two policies:
    * a simple FIFO policy (which is the default) and
    * a priority based policy (set via socket options).
    Both policies honour the tx_qlen sysctl for the maximum size of the write
    queue (can be overridden via socket options).

    The priority policy uses skb->priority internally to assign an u32 priority
    identifier, using the same ranking as SO_PRIORITY. The skb->priority field
    is set to 0 when the packet leaves DCCP. The priority is supplied as ancillary
    data using cmsg(3), the patch also provides the requisite parsing routines.

    Signed-off-by: Tomasz Grobelny
    Signed-off-by: Gerrit Renker

    Tomasz Grobelny
     
  • This adds full support for local/remote Sequence Window feature, from which the
    * sequence-number-validity (W) and
    * acknowledgment-number-validity (W') windows
    derive as specified in RFC 4340, 7.5.3.

    Specifically, the following changes are introduced:
    * integrated new socket fields into dccp_sk;
    * updated the update_gsr/gss routines with regard to these fields;
    * updated handler code: the Sequence Window feature is located at the TX side,
    so the local feature is meant if the handler-rx flag is false;
    * the initialisation of `rcv_wnd' in reqsk is removed, since
    - rcv_wnd is not used by the code anywhere;
    - sequence number checks are not done in the LISTEN state (cf. 7.5.3);
    - dccp_check_req checks the Ack number validity more rigorously;
    * the `struct dccp_minisock' became empty and is now removed.

    Until the handshake completes with activating negotiated values, the local/remote
    Sequence-Window values are undefined and thus can not reliably be estimated.
    This issue is addressed in a separate patch.

    Signed-off-by: Gerrit Renker
    Acked-by: Ian McDonald

    Gerrit Renker
     
  • This removes the use of the sysctl and the minisock variable for the Send Ack
    Vector feature, which is now handled fully dynamically via feature negotiation;
    i.e. when CCID2 is enabled, Ack Vectors are automatically enabled (as per
    RFC 4341, 4.).

    Using a sysctl in parallel to this implementation would open the door to
    crashes, since much of the code relies on tests of the boolean minisock /
    sysctl variable. Thus, this patch replaces all tests of type

    if (dccp_msk(sk)->dccpms_send_ack_vector)
    /* ... */
    with
    if (dp->dccps_hc_rx_ackvec != NULL)
    /* ... */

    The dccps_hc_rx_ackvec is allocated by the dccp_hdlr_ackvec() when feature
    negotiation concluded that Ack Vectors are to be used on the half-connection.
    Otherwise, it is NULL (due to dccp_init_sock/dccp_create_openreq_child),
    so that the test is a valid one.

    The activation handler for Ack Vectors is called as soon as the feature
    negotiation has concluded at the
    * server when the Ack marking the transition RESPOND => OPEN arrives;
    * client after it has sent its ACK, marking the transition REQUEST => PARTOPEN.

    Adding the sequence number of the Response packet to the Ack Vector has been
    removed, since
    (a) connection establishment implies that the Response has been received;
    (b) the CCIDs only look at packets received in the (PART)OPEN state, i.e.
    this entry will always be ignored;
    (c) it can not be used for anything useful - to detect loss for instance, only
    packets received after the loss can serve as pseudo-dupacks.

    Signed-off-by: Gerrit Renker
    Acked-by: Ian McDonald

    Gerrit Renker
     
  • 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 is with 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: Gerrit Renker
    Acked-by: Ian McDonald

    Gerrit Renker
     
  • 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 earlier in this
    patch set.

    Also removed 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: Gerrit Renker
    Acked-by: Ian McDonald

    Gerrit Renker
     
  • With this patch, TX/RX CCIDs can now be changed on a per-connection basis, which
    overrides the defaults set by the global sysctl variables for TX/RX CCIDs.

    To make full use of this facility, the remaining patches of this patch set are
    needed, which track dependencies and activate negotiated feature values.

    Note on the maximum number of CCIDs that can be registered:
    -----------------------------------------------------------
    The maximum number of CCIDs that can be registered on the socket is constrained
    by the space in a Confirm/Change feature negotiation option.

    The space in these in turn depends on the size of header options as defined
    in RFC 4340, 5.8. Since this is a recurring constant, it has been moved from
    ackvec.h into linux/dccp.h, clarifying its purpose.

    Relative to this size, the maximum number of CCID identifiers that can be
    present in a Confirm option (which always consumes 1 byte more than a Change
    option, cf. 6.1) is 2 bytes less than the maximum TLV size: one for the
    CCID-feature-type and one for the selected value.

    Signed-off-by: Gerrit Renker

    Gerrit Renker
     
  • This patch deprecates the Ack Ratio sysctl, since
    * Ack Ratio is entirely ignored by CCID-3 and CCID-4,
    * Ack Ratio currently doesn't work in CCID-2 (i.e. is always set to 1);
    * even if it would work in CCID-2, there is no point for a user to change it:
    - Ack Ratio is constrained by cwnd (RFC 4341, 6.1.2),
    - if Ack Ratio > cwnd, the system resorts to spurious RTO timeouts
    (since waiting for Acks which will never arrive in this window),
    - cwnd is not a user-configurable value.

    The only reasonable place for Ack Ratio is to print it for debugging. It is
    planned to do this later on, as part of e.g. dccp_probe.

    With this patch Ack Ratio is now under full control of feature negotiation:
    * Ack Ratio is resolved as a dependency of the selected CCID;
    * if the chosen CCID supports it (i.e. CCID == CCID-2), Ack Ratio is set to
    the default of 2, following RFC 4340, 11.3 - "New connections start with Ack
    Ratio 2 for both endpoints";
    * what happens then is part of another patch set, since it concerns the
    dynamic update of Ack Ratio while the connection is in full flight.

    Thanks to Tomasz Grobelny for discussion leading up to this patch.

    Signed-off-by: Gerrit Renker
    Acked-by: Arnaldo Carvalho de Melo

    Gerrit Renker
     
  • This provides a data structure to record which CCIDs are locally supported
    and three accessor functions:
    - a test function for internal use which is used to validate CCID requests
    made by the user;
    - a copy function so that the list can be used for feature-negotiation;
    - documented getsockopt() support so that the user can query capabilities.

    The data structure is a table which is filled in at compile-time with the
    list of available CCIDs (which in turn depends on the Kconfig choices).

    Using the copy function for cloning the list of supported CCIDs is useful for
    feature negotiation, since the negotiation is now with the full list of available
    CCIDs (e.g. {2, 3}) instead of the default value {2}. This means negotiation
    will not fail if the peer requests to use CCID3 instead of CCID2.

    Signed-off-by: Gerrit Renker
    Acked-by: Ian McDonald

    Gerrit Renker
     

13 Aug, 2008

2 commits

  • Documentation/networking/ifenslave.c:1084: warning: pointer targets in assignment differ in signedness

    >From include/linux/socket.h:
    * 1003.1g requires sa_family_t and that sa_data is char.

    and from SUSv3:
    (http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/socket.h.html)

    The header shall define the sockaddr structure that includes at least the following members:

    sa_family_t sa_family Address family.
    char sa_data[] Socket address (variable-length data).

    Signed-off-by: Randy Dunlap
    Cc: Sam Ravnborg
    Cc: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Currently source files in the Documentation/ sub-dir can easily bit-rot
    since they are not generally buildable, either because they are hidden in
    text files or because there are no Makefile rules for them. This needs to
    be fixed so that the source files remain usable and good examples of code
    instead of bad examples.

    Add the ability to build source files that are in the Documentation/ dir.
    Add to Kconfig as "BUILD_DOCSRC" config symbol.

    Use "CONFIG_BUILD_DOCSRC=1 make ..." to build objects from the
    Documentation/ sources. Or enable BUILD_DOCSRC in the *config system.
    However, this symbol depends on HEADERS_CHECK since the header files need
    to be installed (for userspace builds).

    Built (using cross-tools) for x86-64, i386, alpha, ia64, sparc32,
    sparc64, powerpc, sh, m68k, & mips.

    Signed-off-by: Randy Dunlap
    Reviewed-by: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

27 Jul, 2008

1 commit


23 Jul, 2008

1 commit


22 Jul, 2008

1 commit

  • This patch clamps the cscov setsockopt values to a maximum of 0xFFFF.

    Setsockopt values greater than 0xffff can cause an unwanted
    wrap-around. Further, IPv6 jumbograms are not supported (RFC 3838,
    3.5), so that values greater than 0xffff are not even useful.

    Further changes: fixed a typo in the documentation.

    Signed-off-by: Gerrit Renker
    Signed-off-by: David S. Miller

    Gerrit Renker
     

18 Jul, 2008

1 commit


15 Jul, 2008

2 commits


11 Jul, 2008

3 commits


09 Jul, 2008

2 commits


08 Jul, 2008

1 commit


06 Jul, 2008

1 commit