09 Oct, 2014

1 commit

  • Pull networking updates from David Miller:
    "Most notable changes in here:

    1) By far the biggest accomplishment, thanks to a large range of
    contributors, is the addition of multi-send for transmit. This is
    the result of discussions back in Chicago, and the hard work of
    several individuals.

    Now, when the ->ndo_start_xmit() method of a driver sees
    skb->xmit_more as true, it can choose to defer the doorbell
    telling the driver to start processing the new TX queue entires.

    skb->xmit_more means that the generic networking is guaranteed to
    call the driver immediately with another SKB to send.

    There is logic added to the qdisc layer to dequeue multiple
    packets at a time, and the handling mis-predicted offloads in
    software is now done with no locks held.

    Finally, pktgen is extended to have a "burst" parameter that can
    be used to test a multi-send implementation.

    Several drivers have xmit_more support: i40e, igb, ixgbe, mlx4,
    virtio_net

    Adding support is almost trivial, so export more drivers to
    support this optimization soon.

    I want to thank, in no particular or implied order, Jesper
    Dangaard Brouer, Eric Dumazet, Alexander Duyck, Tom Herbert, Jamal
    Hadi Salim, John Fastabend, Florian Westphal, Daniel Borkmann,
    David Tat, Hannes Frederic Sowa, and Rusty Russell.

    2) PTP and timestamping support in bnx2x, from Michal Kalderon.

    3) Allow adjusting the rx_copybreak threshold for a driver via
    ethtool, and add rx_copybreak support to enic driver. From
    Govindarajulu Varadarajan.

    4) Significant enhancements to the generic PHY layer and the bcm7xxx
    driver in particular (EEE support, auto power down, etc.) from
    Florian Fainelli.

    5) Allow raw buffers to be used for flow dissection, allowing drivers
    to determine the optimal "linear pull" size for devices that DMA
    into pools of pages. The objective is to get exactly the
    necessary amount of headers into the linear SKB area pre-pulled,
    but no more. The new interface drivers use is eth_get_headlen().
    From WANG Cong, with driver conversions (several had their own
    by-hand duplicated implementations) by Alexander Duyck and Eric
    Dumazet.

    6) Support checksumming more smoothly and efficiently for
    encapsulations, and add "foo over UDP" facility. From Tom
    Herbert.

    7) Add Broadcom SF2 switch driver to DSA layer, from Florian
    Fainelli.

    8) eBPF now can load programs via a system call and has an extensive
    testsuite. Alexei Starovoitov and Daniel Borkmann.

    9) Major overhaul of the packet scheduler to use RCU in several major
    areas such as the classifiers and rate estimators. From John
    Fastabend.

    10) Add driver for Intel FM10000 Ethernet Switch, from Alexander
    Duyck.

    11) Rearrange TCP_SKB_CB() to reduce cache line misses, from Eric
    Dumazet.

    12) Add Datacenter TCP congestion control algorithm support, From
    Florian Westphal.

    13) Reorganize sk_buff so that __copy_skb_header() is significantly
    faster. From Eric Dumazet"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1558 commits)
    netlabel: directly return netlbl_unlabel_genl_init()
    net: add netdev_txq_bql_{enqueue, complete}_prefetchw() helpers
    net: description of dma_cookie cause make xmldocs warning
    cxgb4: clean up a type issue
    cxgb4: potential shift wrapping bug
    i40e: skb->xmit_more support
    net: fs_enet: Add NAPI TX
    net: fs_enet: Remove non NAPI RX
    r8169:add support for RTL8168EP
    net_sched: copy exts->type in tcf_exts_change()
    wimax: convert printk to pr_foo()
    af_unix: remove 0 assignment on static
    ipv6: Do not warn for informational ICMP messages, regardless of type.
    Update Intel Ethernet Driver maintainers list
    bridge: Save frag_max_size between PRE_ROUTING and POST_ROUTING
    tipc: fix bug in multicast congestion handling
    net: better IFF_XMIT_DST_RELEASE support
    net/mlx4_en: remove NETDEV_TX_BUSY
    3c59x: fix bad split of cpu_to_le32(pci_map_single())
    net: bcmgenet: fix Tx ring priority programming
    ...

    Linus Torvalds
     

08 Oct, 2014

1 commit

  • Pull "trivial tree" updates from Jiri Kosina:
    "Usual pile from trivial tree everyone is so eagerly waiting for"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)
    Remove MN10300_PROC_MN2WS0038
    mei: fix comments
    treewide: Fix typos in Kconfig
    kprobes: update jprobe_example.c for do_fork() change
    Documentation: change "&" to "and" in Documentation/applying-patches.txt
    Documentation: remove obsolete pcmcia-cs from Changes
    Documentation: update links in Changes
    Documentation: Docbook: Fix generated DocBook/kernel-api.xml
    score: Remove GENERIC_HAS_IOMAP
    gpio: fix 'CONFIG_GPIO_IRQCHIP' comments
    tty: doc: Fix grammar in serial/tty
    dma-debug: modify check_for_stack output
    treewide: fix errors in printk
    genirq: fix reference in devm_request_threaded_irq comment
    treewide: fix synchronize_rcu() in comments
    checkstack.pl: port to AArch64
    doc: queue-sysfs: minor fixes
    init/do_mounts: better syntax description
    MIPS: fix comment spelling
    powerpc/simpleboot: fix comment
    ...

    Linus Torvalds
     

08 Sep, 2014

1 commit


26 Aug, 2014

1 commit


20 Aug, 2014

2 commits


14 Aug, 2014

3 commits


16 Jul, 2014

1 commit

  • Extend alloc_netdev{,_mq{,s}}() to take name_assign_type as argument, and convert
    all users to pass NET_NAME_UNKNOWN.

    Coccinelle patch:

    @@
    expression sizeof_priv, name, setup, txqs, rxqs, count;
    @@

    (
    -alloc_netdev_mqs(sizeof_priv, name, setup, txqs, rxqs)
    +alloc_netdev_mqs(sizeof_priv, name, NET_NAME_UNKNOWN, setup, txqs, rxqs)
    |
    -alloc_netdev_mq(sizeof_priv, name, setup, count)
    +alloc_netdev_mq(sizeof_priv, name, NET_NAME_UNKNOWN, setup, count)
    |
    -alloc_netdev(sizeof_priv, name, setup)
    +alloc_netdev(sizeof_priv, name, NET_NAME_UNKNOWN, setup)
    )

    v9: move comments here from the wrong commit

    Signed-off-by: Tom Gundersen
    Reviewed-by: David Herrmann
    Signed-off-by: David S. Miller

    Tom Gundersen
     

08 Jul, 2014

2 commits

  • This patch adds new mac802154 hw flags for transmit power, csma and
    listen before transmit (lbt). These flags indicates that the transceiver
    supports these features. If the flags are set and the driver doesn't
    implement the necessary functions, then ieee802154_register_device
    returns -ENOSYS "Function not implemented".

    This patch merges also all at86rf230 operations into one operations structure
    and set the right hw flags for the at86rf230 transceivers.

    Signed-off-by: Alexander Aring
    Signed-off-by: David S. Miller

    Alexander Aring
     
  • This patch fixed the coding style issues reported by checkpatch.pl

    following issues fixed:
    CHECK: Alignment should match open parenthesis
    WARNING: line over 80 characters
    CHECK: Blank lines aren't necessary before a close brace '}'
    WARNING: networking block comments don't use an empty /* line, use /* Comment...
    WARNING: Missing a blank line after declarations
    WARNING: networking block comments start with * on subsequent lines
    CHECK: braces {} should be used on all arms of this statement

    Signed-off-by: Varka Bhadram
    Tested-by: Alexander Aring
    Signed-off-by: David S. Miller

    Varka Bhadram
     

12 Jun, 2014

2 commits


07 Jun, 2014

1 commit


23 May, 2014

3 commits


17 May, 2014

8 commits


16 May, 2014

3 commits

  • This function is only used within the same translation unit, so mark it
    static.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     
  • The current mac_cb handling of ieee802154 is rather awkward and limited.
    Decompose the single flags field into multiple fields with the meanings
    of each subfield of the flags field to make future extensions (for
    example, link-layer security) easier. Also don't set the frame sequence
    number in upper layers, since that's a thing the MAC is supposed to set
    on frame transmit - we set it on header creation, but assuming that
    upper layers do not blindly duplicate our headers, this is fine.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     
  • The current WPAN header creation code checks for EMSGSIZE conditions,
    but does not account for the MIC field that link layer security may add
    at the end of the frame. Now that we can accurately calculate the
    maximum payload size of packets, use that to check for EMSGSIZE
    conditions.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     

08 Apr, 2014

1 commit

  • The commit e6278d92005e ("mac802154: use header operations to
    create/parse headers") included the header

    net/ieee802154_netdev.h

    which had been included by the commit b70ab2e87f17 ("ieee802154:
    enforce consistent endianness in the 802.15.4 stack"). Fix this
    duplicate #include by deleting the latter one as the required header
    has already been in place.

    Signed-off-by: Jean Sacren
    Cc: Alexander Smirnov
    Cc: Dmitry Eremin-Solenikov
    Cc: Phoebe Buckheister
    Cc: linux-zigbee-devel@lists.sourceforge.net
    Signed-off-by: David S. Miller

    Jean Sacren
     

02 Apr, 2014

2 commits

  • Commit 9b2777d6089bcd (ieee802154: add TX power control to wpan_phy)
    and following erroneously added CSMA and CCA parameters for 802.15.4
    devices as PHY parameters, while they are actually MAC parameters and
    can differ for any two WPAN instances. Since it is now sensible to have
    multiple WPAN devices with differing CSMA/CCA parameters, make these
    parameters MAC parameters instead.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     
  • All 802.15.4 PHY devices with drivers in tree can support only one WPAN
    at any given time, yet the stack allows arbitrarily many WPAN devices to
    be created and up at the same time. This cannot work with what the
    hardware provides, and in the current implementation, provides an easy
    DoS vector to any process on the system that may call socket() and
    sendmsg().

    Thus, allow only one WPAN per PHY to be up at once, just like mac80211
    does for managed devices.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     

15 Mar, 2014

5 commits

  • Have mac802154 header_ops.create fail with -EMSGSIZE if the length
    passed will be too large to fit a frame. Since 6lowpan will ensure that
    no packet payload will be too large, pass a length of 0 there. 802.15.4
    dgram sockets will also return -EMSGSIZE on payloads larger than the
    device MTU instead of -EINVAL.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     
  • Change all internal uses of ieee802154_addr_sa to ieee802154_addr,
    except for those instances that communicate directly with userspace.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     
  • Use the operations on 802.15.4 header structs introduced in a previous
    patch to create and parse all headers in the mac802154 stack. This patch
    reduces code duplication between different parts of the mac802154 stack
    that needed information from headers, and also fixes a few bugs that
    seem to have gone unnoticed until now:

    * 802.15.4 dgram sockets would return a slightly incorrect value for
    the SIOCINQ ioctl
    * mac802154 would not drop frames with the "security enabled" bit set,
    even though it does not support security, in violation of the
    standard

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     
  • Enable sparse warnings about endianness, replace the remaining fields
    regarding network operations without explicit endianness annotations
    with such that are annotated, and propagate this through the entire
    stack.

    Uses of ieee802154_addr_sa are not changed yet, this patch is only
    concerned with all other fields (such as address filters, operation
    parameters and the likes).

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     
  • The struct as currently defined uses host byte order for some fields,
    and most big endian/EUI display byte order for other fields. Inside the
    stack, endianness should ideally match network byte order where possible
    to minimize the number of byteswaps done in critical paths, but this
    patch does not address this; it is only preparatory.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     

18 Feb, 2014

3 commits

  • Introduce new netlink attributes for SET_PHY_ATTRS:
    * CSMA minimal backoff exponent
    * CSMA maximal backoff exponent
    * CSMA retry limit
    * frame retransmission limit

    The CSMA attributes shall correspond to minBE, maxBE and maxCSMABackoffs of
    802.15.4, respectively. The frame retransmission shall correspond to
    maxFrameRetries of 802.15.4, unless given as -1: then the old behaviour
    of the stack shall apply. For RF2xy, the old behaviour is to not do
    channel sensing at all and simply send *right now*, which is not
    intended behaviour for most applications and actually prohibited for
    some channel/page combinations.

    For all values except frame retransmission limit, the defaults of
    802.15.4 apply. Frame retransmission limits are set to -1 to indicate
    backward-compatible behaviour.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     
  • Since three of the four clear channel assesment modes make use of energy
    detection, provide an API to set the energy detection threshold.
    Driver support for this is available in at86rf230 for the RF212 chips.
    Since for these chips the minimal energy detection threshold depends on
    page and channel used, add a field to struct at86rf230_local that stores
    the minimal threshold. Actual ED thresholds are configured as offsets
    from this value.

    For RF212, setting the ED threshold will not work before a channel/page
    has been set due to the dependency of energy detection in the chip and
    the actual channel/page selected.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister
     
  • The standard describes four modes of clear channel assesment: "energy
    above threshold", "carrier found", and the logical and/or of these two.
    Support for CCA mode setting is included in the at86rf230 driver,
    predicated for RF212 chips.

    Signed-off-by: Phoebe Buckheister
    Signed-off-by: David S. Miller

    Phoebe Buckheister