29 Jan, 2008

12 commits

  • Update the bonding documentation: more discussion on
    initialization and configuration, changes to discussion of packet
    reordering in balance-rr, update some out of date information.

    Based in part on input from Rick Jones
    and Andy Gospodarek .

    Signed-off-by: Jay Vosburgh
    Acked-by: Andy Gospodarek
    Signed-off-by: David S. Miller

    Jay Vosburgh
     
  • This patch contains the scheduled removal of the shaper driver.

    Signed-off-by: Adrian Bunk
    Acked-by: Alan Cox
    Signed-off-by: David S. Miller

    Adrian Bunk
     
  • Signed-off-by: Takahiro Yasui
    Signed-off-by: Hideo Aoki
    Signed-off-by: David S. Miller

    Hideo Aoki
     
  • Signed-off-by: Masahide NAKAMURA
    Signed-off-by: David S. Miller

    Masahide NAKAMURA
     
  • This statistics is shown factor dropped by transformation
    at /proc/net/xfrm_stat for developer.
    It is a counter designed from current transformation source code
    and defined as linux private MIB.

    See Documentation/networking/xfrm_proc.txt for the detail.

    Signed-off-by: Masahide NAKAMURA
    Signed-off-by: David S. Miller

    Masahide NAKAMURA
     
  • This adds a socket option and signalling support for the case where the server
    holds timewait state on closing the connection, as described in RFC 4340, 8.3.

    Since holding timewait state at the server is the non-usual case, it is enabled
    via a socket option. Documentation for this socket option has been added.

    The setsockopt statement has been made resilient against different possible cases
    of expressing boolean `true' values using a suggestion by Ian McDonald.

    Signed-off-by: Gerrit Renker
    Signed-off-by: Ian McDonald
    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Gerrit Renker
     
  • Thanks dave, herbert, gerrit, andi and other people for your
    discussion about this problem.

    UdpInDatagrams can be confusing because it counts packets that
    might be dropped later.
    Move UdpInDatagrams into recvmsg() as allowed by the RFC.

    Signed-off-by: Wang Chen
    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Wang Chen
     
  • Signed-off-by: Gerrit Renker
    Acked-by: Ian McDonald
    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Gerrit Renker
     
  • This patch addresses the following problems:

    1. DCCP relies for its proper functioning on having at least one CCID module
    enabled (as in TCP plugable congestion control). Currently it is possible to
    disable both CCIDs and thus leave the DCCP module in a compiled, but entirely
    non-functional state: no sockets can be created when no CCID is available.
    Furthermore, the protocol is (again like TCP) not intended to be used without
    CCIDs. Last, a non-empty CCID list is needed for doing CCID feature negotiation.

    2. Internally the default CCID that is advertised by the Linux host is set to CCID2
    (DCCPF_INITIAL_CCID in include/linux/dccp.h). Disabling CCID2 in the Kconfig
    menu without changing the defaults leads to a failure `module not found' when
    trying to load the dccp module (which internally tries to load the default CCID).

    3. The specification (RFC 4340, sec. 10) treats CCID2 somewhat like a
    `minimum common denominator'; the specification says that:

    * "New connections start with CCID 2 for both endpoints"

    * "A DCCP implementation intended for general use, such as an implementation in a
    general-purpose operating system kernel, SHOULD implement at least CCID 2.
    The intent is to make CCID 2 broadly available for interoperability [...]"

    Providing CCID2 as minimum-required CCID (like Reno/Cubic in TCP) thus seems reasonable.

    Hence this patch automatically selects CCID2 when DCCP is enabled. Documentation also added.

    Discussions with Ian McDonald on this subject are gratefully acknowledged.

    Signed-off-by: Gerrit Renker
    Signed-off-by: Ian McDonald
    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Gerrit Renker
     
  • This updates the DCCP documentation, following input from Ian McDonald,
    clarifiying the status of DCCP, and adding a note about the test tree.

    Signed-off-by: Gerrit Renker
    Signed-off-by: Ian McDonald
    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Gerrit Renker
     
  • This extends the DCCP socket API by honouring any shutdown(2) option set by the user.
    The behaviour is, as much as possible, made consistent with the API for TCP's shutdown.

    This patch exploits the information provided by the user via the socket API to reduce
    processing costs:
    * if the read end is closed (SHUT_RD), it is not necessary to deliver to input CCID;
    * if the write end is closed (SHUT_WR), the same idea applies, but with a difference -
    as long as the TX queue has not been drained, we need to receive feedback to keep
    congestion-control rates up to date. Hence SHUT_WR is honoured only after the last
    packet (under congestion control) has been sent;
    * although SHUT_RDWR seems nonsensical, it is nevertheless supported in the same manner
    as for TCP (and agrees with test for SHUTDOWN_MASK in dccp_poll() in net/dccp/proto.c).

    Furthermore, most of the code already honours the sk_shutdown flags (dccp_recvmsg() for
    instance sets the read length to 0 if SHUT_RD had been called); CCID handling is now added
    to this by the present patch.

    There will also no longer be any delivery when the socket is in the final stages, i.e. when
    one of dccp_close(), dccp_fin(), or dccp_done() has been called - which is fine since at
    that stage the connection is its final stages.

    Motivation and background are on http://www.erg.abdn.ac.uk/users/gerrit/dccp/notes/shutdown

    A FIXME has been added to notify the other end if SHUT_RD has been set (RFC 4340, 11.7).

    Note: There is a comment in inet_shutdown() in net/ipv4/af_inet.c which asks to "make
    sure the socket is a TCP socket". This should probably be extended to mean
    `TCP or DCCP socket' (the code is also used by UDP and raw sockets).

    Signed-off-by: Gerrit Renker
    Signed-off-by: Ian McDonald
    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Gerrit Renker
     
  • This patch adds documentation for the PF_CAN protocol family.

    Signed-off-by: Oliver Hartkopp
    Signed-off-by: Urs Thuermann
    Signed-off-by: David S. Miller

    Oliver Hartkopp
     

23 Jan, 2008

1 commit

  • Fix typo in arch/powerpc/boot/flatdevtree_env.h.
    There is no Documentation/networking/ixgbe.txt.

    README.cycladesZ is now in Documentation/.
    wavelan.p.h is now in drivers/net/wireless/.
    HFS.txt is now Documentation/filesystems/hfs.txt.
    OSS-files are now in sound/oss/.

    Signed-off-by: Johann Felix Soden
    Acked-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Johann Felix Soden
     

19 Jan, 2008

1 commit


08 Dec, 2007

1 commit

  • Add new hash for balance-xor and 802.3ad modes. Originally
    submitted by "Glenn Griffin" ; modified by
    Jay Vosburgh to move setting of hash policy out of line, tweak the
    documentation update and add version update to 3.2.2.

    Glenn's original comment follows:

    Included is a patch for a new xmit_hash_policy for the bonding driver
    that selects slaves based on MAC and IP information. This is a middle
    ground between what currently exists in the layer2 only policy and the
    layer3+4 policy. This policy strives to be fully 802.3ad compliant by
    transmitting every packet of any particular flow over the same link.
    As documented the layer3+4 policy is not fully compliant for extreme
    cases such as ip fragmentation, so this policy is a nice compromise
    for environments that require full compliance but desire more than the
    layer2 only policy.

    Signed-off-by: "Glenn Griffin"
    Signed-off-by: Jay Vosburgh
    Signed-off-by: Jeff Garzik

    Jay Vosburgh
     

13 Nov, 2007

1 commit


07 Nov, 2007

5 commits


26 Oct, 2007

2 commits


25 Oct, 2007

1 commit


20 Oct, 2007

2 commits

  • Most of these fixes were already submitted for old kernel versions, and were
    approved, but for some reason they never made it into the releases.

    Because this is a consolidation of a couple old missed patches, it touches both
    Kconfigs and documentation texts.

    Signed-off-by: Matt LaPlante
    Acked-by: Randy Dunlap
    Signed-off-by: Adrian Bunk

    Matt LaPlante
     
  • Spelling fixes in Documentation/.

    Signed-off-by: Simon Arlott
    Signed-off-by: Adrian Bunk

    Simon Arlott
     

17 Oct, 2007

1 commit

  • Make request_key() and co fundamentally asynchronous to make it easier for
    NFS to make use of them. There are now accessor functions that do
    asynchronous constructions, a wait function to wait for construction to
    complete, and a completion function for the key type to indicate completion
    of construction.

    Note that the construction queue is now gone. Instead, keys under
    construction are linked in to the appropriate keyring in advance, and that
    anyone encountering one must wait for it to be complete before they can use
    it. This is done automatically for userspace.

    The following auxiliary changes are also made:

    (1) Key type implementation stuff is split from linux/key.h into
    linux/key-type.h.

    (2) AF_RXRPC provides a way to allocate null rxrpc-type keys so that AFS does
    not need to call key_instantiate_and_link() directly.

    (3) Adjust the debugging macros so that they're -Wformat checked even if
    they are disabled, and make it so they can be enabled simply by defining
    __KDEBUG to be consistent with other code of mine.

    (3) Documentation.

    [alan@lxorguk.ukuu.org.uk: keys: missing word in documentation]
    Signed-off-by: David Howells
    Signed-off-by: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     

16 Oct, 2007

3 commits

  • * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (42 commits)
    [IPV6]: Consolidate the ip6_pol_route_(input|output) pair
    [TCP]: Make snd_cwnd_cnt 32-bit
    [TCP]: Update the /proc/net/tcp documentation
    [NETNS]: Don't panic on creating the namespace's loopback
    [NEIGH]: Ensure that pneigh_lookup is protected with RTNL
    [INET]: kmalloc+memset -> kzalloc in frag_alloc_queue
    [ISDN]: Fix compile with CONFIG_ISDN_X25 disabled.
    [IPV6]: Replace sk_buff ** with sk_buff * in input handlers
    [SELINUX]: Update for netfilter ->hook() arg changes.
    [INET]: Consolidate the xxx_put
    [INET]: Small cleanup for xxx_put after evictor consolidation
    [INET]: Consolidate the xxx_evictor
    [INET]: Consolidate the xxx_frag_destroy
    [INET]: Consolidate xxx_the secret_rebuild
    [INET]: Consolidate the xxx_frag_kill
    [INET]: Collect common frag sysctl variables together
    [INET]: Collect frag queues management objects together
    [INET]: Move common fields from frag_queues in one place.
    [TG3]: Fix performance regression on 5705.
    [ISDN]: Remove local copy of device name to make sure renames work.
    ...

    Linus Torvalds
     
  • * Say that this interface is deprecated.
    * Update function name references to match the current code.

    Signed-off-by: Jean Delvare
    Signed-off-by: David S. Miller

    Jean Delvare
     
  • Update the "don't change MAC of slaves" functionality added in
    previous changes to be a generic option, rather than something tied to
    IB devices, as it's occasionally useful for regular ethernet devices as
    well.

    Adds "fail_over_mac" option (which is automatically enabled for IB
    slaves), applicable only to active-backup mode.

    Includes documentation update.

    Updates bonding driver version to 3.2.0.

    Signed-off-by: Jay Vosburgh
    Signed-off-by: Jeff Garzik

    Jay Vosburgh
     

11 Oct, 2007

10 commits

  • This corrects erroneous documentation of the socket API.

    Signed-off-by: Gerrit Renker
    Signed-off-by: Ian McDonald
    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Gerrit Renker
     
  • This adds documentation on the use of service codes on client and
    server.

    Signed-off-by: Gerrit Renker
    Signed-off-by: Ian McDonald
    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Gerrit Renker
     
  • This enables applications to query the current value of the Maximum
    Packet Size via a socket option, suggested as a SHOULD in (RFC 4340,
    p. 102).

    This socket option is useful to avoid the annoying bail-out via
    `-EMSGSIZE'. In particular, as fragmentation is not currently
    supported (and its use is partly discouraged in RFC 4340).

    With this option, it is possible to size buffers accordingly, e.g.

    int buflen = dccp_get_cur_mps(sockfd);

    /* or */
    if (msgsize > dccp_get_cur_mps(sockfd))
    die("message is too large for this path");

    Signed-off-by: Gerrit Renker
    Signed-off-by: Ian McDonald
    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Gerrit Renker
     
  • This improves radiotap injection by removing the shortcut over TX handlers
    that led to BUGS when injecting frames without setting a rate and also
    resulted in various other quirks. Now, TX handlers are run but some
    information that was present in the radiotap header is used instead of
    automatic settings.

    Signed-off-by: Johannes Berg
    Cc: Andy Green
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • Stop building and configuring driver for Digi RightSwitch, which was
    never actually sold to anyone, and remove it from MAINTAINERS.

    In response to an investigation into the firmware of the "Digi Rightswitch"
    driver, Andres Salomon discovered:
    >
    > Dear Andres:
    >
    > After further research, we found that this product was killed in place
    > and never reached the market. We would like to request that this not be
    > included.

    Since the product never reached market, clearly nobody is using this orphaned
    driver.

    Signed-off-by: Nathanael Nerode
    Cc: "David S. Miller"
    Cc: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Nathanael Nerode
     
  • This implements a SHOULD from RFC 4340, 7.5.4:
    "To protect against denial-of-service attacks, DCCP implementations SHOULD
    impose a rate limit on DCCP-Syncs sent in response to sequence-invalid packets,
    such as not more than eight DCCP-Syncs per second."

    The rate-limit is maintained on a per-socket basis. This is a more stringent
    policy than enforcing the rate-limit on a per-source-address basis and
    protects against attacks with forged source addresses.

    Moreover, the mechanism is deliberately kept simple. In contrast to
    xrlim_allow(), bursts of Sync packets in reply to sequence-invalid packets
    are not supported. This foils such attacks where the receipt of a Sync
    triggers further sequence-invalid packets. (I have tested this mechanism against
    xrlim_allow algorithm for Syncs, permitting bursts just increases the problems.)

    In order to keep flexibility, the timeout parameter can be set via sysctl; and
    the whole mechanism can even be disabled (which is however not recommended).

    The algorithm in this patch has been improved with regard to wrapping issues
    thanks to a suggestion by Arnaldo.

    Commiter note: Rate limited the step 6 DCCP_WARN too, as it says we're
    sending a sync.

    Signed-off-by: Gerrit Renker
    Signed-off-by: Ian McDonald
    Signed-off-by: Arnaldo Carvalho de Melo

    Gerrit Renker
     
  • Am Freitag, 21. September 2007 schrieb Herbert Xu:
    > Please don't use LLTX in new drivers. We're trying to get rid
    > of it since it's
    >
    > 1) unnecessary;
    > 2) causes problems with AF_PACKET seeing things twice.

    I suggest to document that LLTX is deprecated.

    Signed-off-by: Christian Borntraeger
    Acked-by: Herbert Xu
    Signed-off-by: David S. Miller

    Christian Borntraeger
     
  • Since the SACK enhanced FRTO was added, the code has been
    under test numerous times so remove "experimental" claim
    from the documentation. Also be a bit more verbose about
    the usage.

    Signed-off-by: Ilpo Järvinen
    Signed-off-by: David S. Miller

    Ilpo Järvinen
     
  • Based upon initial work by Keiichi Kii .

    This patch introduces support for dynamic reconfiguration (adding, removing
    and/or modifying parameters of netconsole targets at runtime) using a
    userspace interface exported via configfs. Documentation is also updated
    accordingly.

    Issues and brief design overview:

    (1) Kernel-initiated creation / destruction of kernel objects is not
    possible with configfs -- the lifetimes of the "config items" is managed
    exclusively from userspace. But netconsole must support boot/module
    params too, and these are parsed in kernel and hence netpolls must be
    setup from the kernel. Joel Becker suggested to separately manage the
    lifetimes of the two kinds of netconsole_target objects -- those created
    via configfs mkdir(2) from userspace and those specified from the
    boot/module option string. This adds complexity and some redundancy here
    and also means that boot/module param-created targets are not exposed
    through the configfs namespace (and hence cannot be updated / destroyed
    dynamically). However, this saves us from locking / refcounting
    complexities that would need to be introduced in configfs to support
    kernel-initiated item creation / destroy there.

    (2) In configfs, item creation takes place in the call chain of the
    mkdir(2) syscall in the driver subsystem. If we used an ioctl(2) to
    create / destroy objects from userspace, the special userspace program is
    able to fill out the structure to be passed into the ioctl and hence
    specify attributes such as local interface that are required at the time
    we set up the netpoll. For configfs, this information is not available at
    the time of mkdir(2). So, we keep all newly-created targets (via
    configfs) disabled by default. The user is expected to set various
    attributes appropriately (including the local network interface if
    required) and then write(2) "1" to the "enabled" attribute. Thus,
    netpoll_setup() is then called on the set parameters in the context of
    _this_ write(2) on the "enabled" attribute itself. This design enables
    the user to reconfigure existing netconsole targets at runtime to be
    attached to newly-come-up interfaces that may not have existed when
    netconsole was loaded or when the targets were actually created. All this
    effectively enables us to get rid of custom ioctls.

    (3) Ultra-paranoid configfs attribute show() and store() operations, with
    sanity and input range checking, using only safe string primitives, and
    compliant with the recommendations in Documentation/filesystems/sysfs.txt.

    (4) A new function netpoll_print_options() is created in the netpoll API,
    that just prints out the configured parameters for a netpoll structure.
    netpoll_parse_options() is modified to use that and it is also exported to
    be used from netconsole.

    Signed-off-by: Satyam Sharma
    Acked-by: Keiichi Kii
    Signed-off-by: Andrew Morton
    Signed-off-by: David S. Miller

    Satyam Sharma
     
  • Based upon initial work by Keiichi Kii .

    This patch introduces support for multiple targets, independent of
    CONFIG_NETCONSOLE_DYNAMIC -- this is useful even in the default case and
    (including the infrastructure introduced in previous patches) doesn't really
    add too many bytes to module text. All the complexity (and size) comes with
    the dynamic reconfigurability / userspace interface patch, and so it's
    plausible users may want to keep this enabled but that disabled (say to avoid
    a dependency on CONFIG_CONFIGFS_FS too).

    Also update documentation to mention the use of ";" separator to specify
    multiple logging targets in the boot/module option string.

    Brief overview:

    We maintain a target_list (and corresponding lock). Get rid of the static
    "default_target" and introduce allocation and release functions for our
    netconsole_target objects (but keeping sure to preserve previous behaviour
    such as default values). During init_netconsole(), ";" is used as the
    separator to identify multiple target specifications in the boot/module option
    string. The target specifications are parsed and netpolls setup. During
    exit, the target_list is torn down and all items released.

    Signed-off-by: Satyam Sharma
    Signed-off-by: Keiichi Kii
    Signed-off-by: Andrew Morton
    Signed-off-by: David S. Miller

    Satyam Sharma