31 Mar, 2017

1 commit

  • These files all use functions declared in interrupt.h, but currently rely
    on implicit inclusion of this file (via netns/xfrm.h).

    That won't work anymore when the flow cache is removed so include that
    header where needed.

    Signed-off-by: Florian Westphal
    Signed-off-by: David S. Miller

    Florian Westphal
     

30 Jul, 2015

1 commit

  • When transmitting a packet via a mac802154 driver that can sleep in
    its transmit function, mac802154 defers the call to the driver's
    transmit function to a per-device workqueue.

    However, mac802154 uses a single global work_struct for this, which
    means that if you have more than one registered mac802154 interface
    in the system, and you transmit on more than one of them at the same
    time, you'll very easily cause memory corruption.

    This patch moves the deferred transmit processing state from global
    variables to struct ieee802154_local, and this seems to fix the memory
    corruption issue.

    Signed-off-by: Lennert Buytenhek
    Acked-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Lennert Buytenhek
     

23 Jul, 2015

6 commits

  • Instead of passing ieee802154_hw pointer to ieee802154_rx,
    we can directly pass the ieee802154_local pointer.

    Signed-off-by: Varka Bhadram
    Acked-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Varka Bhadram
     
  • Right now there are no other users for ieee802154_rx()
    in kernel. So lets remove EXPORT_SYMBOL() for this.

    Also it moves the function prototype from global header
    file to local header file.

    Signed-off-by: Varka Bhadram
    Acked-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Varka Bhadram
     
  • This patch introduces suspend and resume callbacks to mac802154. When
    doing suspend we calling the stop driver callback which should stop the
    receiving of frames. A transceiver should go into low-power mode then.
    Calling resume will call the start driver callback, which starts receiving
    again and allow to transmit frames.

    This was tested only with the fakelb driver and a qemu vm by doing the
    following commands:

    echo "devices" > /sys/power/pm_test
    echo "freeze" > /sys/power/state

    while doing some high traffic between two fakelb phys.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch adds ieee802154_stop_device for preparing a utility function
    to stop the ieee802154 device.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch removes the unused macro which was removed
    with the rework of linux-wpan kernel.

    Signed-off-by: Varka Bhadram
    Signed-off-by: Marcel Holtmann

    Varka Bhadram
     
  • This patch adds a workaround for using the new nl802154 netlink
    interface with the old ieee802154 netlink interface togehter. The
    nl802154 currently supports no access for llsec layer, currently there
    are users outside which are using both interfaces at the same time. This
    patch adds a necessary call when addresses are updated.

    Reported-by: Simon Vincent
    Suggested-by: Phoebe Buckheister
    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     

07 Jun, 2015

1 commit

  • This patch removes the virtual interface structure from sub if data
    struct, because it isn't used anywhere. This structure could be useful
    for give per interface information at softmac driver layer. Nevertheless
    there exist no use case currently and it contains the interface type
    information currently. This information is also stored inside wpan dev
    which is now used to check on the wpan dev interface type.

    Signed-off-by: Alexander Aring
    Reviewed-by: Varka Bhadram
    Acked-by: Varka Bhadram
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     

23 May, 2015

2 commits

  • This patch removes the mib lock. The new locking mechanism is to protect
    the mib values with the rtnl lock. Note that this isn't always necessary
    if we have an interface up the most mib values are readonly (e.g.
    address settings). With this behaviour we can remove locking in
    hotpath like frame parsing completely. It depends on context if we need
    to hold the rtnl lock or not, this makes the callbacks of
    ieee802154_mlme_ops unnecessary because these callbacks hols always the
    locks.

    Signed-off-by: Alexander Aring
    Reviewed-by: Stefan Schmidt
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch will use atomic operations for sequence number incrementation
    while MAC header generation. Upper layers like af_802154 or 6LoWPAN
    could call this function in a parallel context while generating 802.15.4
    MAC header before queuing into wpan interfaces transmit queue.

    Signed-off-by: Alexander Aring
    Reviewed-by: Stefan Schmidt
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     

01 May, 2015

1 commit

  • This code is based on commit 6bab2e19c5ffd
    ("cfg80211: pass name_assign_type to rdev_add_virtual_intf()")

    This will expose in sysfs whether the ifname of a IEEE-802.15.4
    device is set by userspace or generated by the kernel.
    We are using two types of name_assign_types
    o NET_NAME_ENUM: Default interface name provided by kernel
    o NET_NAME_USER: Interface name provided by user.

    Signed-off-by: Varka Bhadram
    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Varka Bhadram
     

17 Nov, 2014

5 commits

  • This patch adds support for deleting a wpan interface via nl802154.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch adds support for setting an extended address while
    registration a new interface. If ieee802154_is_valid_extended_addr
    getting as parameter and invalid extended address then the perm address
    is fallback. This is useful to make some default handling while for
    example default registration of a wpan interface while phy registration.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This parameter was grabbed from wireless implementation with the
    identically wireless dev struct. We don't need this right now and so we
    remove it. Maybe we will add it later again if we found any real reason
    to have such parameter.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch replace the depracted IEEE802154_DEV to the new introduced
    NL802154_IFTYPE_NODE types. There is a backwards compatibility to have
    the identical types for both enum definitions. Also remove some inlcude
    issue with "linux/nl802154.h", because the export nl_policy inside this
    header it was always necessary to have an include of "net/rtnetlink.h"
    before. The reason for this is more complicated. Nevertheless we removed
    this now, because "linux/nl802154.h" is the depracted netlink interface.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch removes some prototypes which are not used anymore.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     

13 Nov, 2014

1 commit

  • This patch adds a new interframe spacing time handling into mac802154
    layer. Interframe spacing time is a time period between each transmit.
    This patch adds a high resolution timer into mac802154 and starts on
    xmit complete with corresponding interframe spacing expire time if
    ifs_handling is true. We make it variable because it depends if
    interframe spacing time is handled by transceiver or mac802154. At the
    timer complete function we wake the netdev queue again. This avoids
    new frame transmit in range of interframe spacing time.

    For synced driver we add no handling of interframe spacing time. This
    is currently a lack of support in all synced xmit drivers. I suppose
    it's working because the latency of workqueue which is needed to call
    spi_sync.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     

12 Nov, 2014

3 commits


10 Nov, 2014

2 commits

  • This patch removes the mac_params from subif data struct. Instead we
    manipulate the wpan attributes directly.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch moves all mac pib attributes into the wpan_dev struct.
    Furthermore we can easier access these attributes over the netdev
    802154_ptr pointer. Currently this is only possible over a complicated
    callback structure in mac802154 because subif data structure is
    accessable inside mac802154 only.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     

06 Nov, 2014

5 commits

  • Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch adds an ieee802154_vif similar like the ieee80211_vif which
    holds the interface type and maybe further more attributes like the
    ieee80211_vif structure.

    Signed-off-by: Alexander Aring
    Cc: Varka Bhadram
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch meld mac802154_netdev_register into ieee802154_if_add
    function. Also we have now only one alloc_netdev call with one interface
    setup routine "ieee802154_if_setup" instead two different one for each
    interface type. This patch checks via runtime the interface type and do
    different handling now. Additional we add the wpan_dev struct in
    ieee802154_sub_if_data and set the new ieee802154_ptr while netdev
    registration. This behaviour is very similar the mac80211 netdev
    registration functionality.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch moves and renames the mac802154_add_iface and
    mac802154_netdev_register functions into iface.c. The function
    mac802154_add_iface is renamed to ieee802154_if_add which is a similar naming
    convention like mac80211.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch moves and rename the mac802154_del_iface function into
    iface.c and rename the function to ieee802154_if_remove which is a similar
    naming convention like mac80211.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     

02 Nov, 2014

2 commits

  • This patch moves the setting of hardware extended address filtering
    inside of interface up instead doing it directly inside of netlink interface.
    Also we don't need to set the sdata extended attribute in netlink. This
    is already done by ndo_set_mac_address of net_device_ops.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch removes the wpan_phy callbacks for add and del an interface
    on a phy. Instead we introduce deprecated cfg802154 callbacks for this.
    Furthermore we introduce a new netlink interface nl802154 which use
    different callbacks. The deprecated function is to have a backwards
    compatibility with the current netlink interface.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     

30 Oct, 2014

1 commit

  • This patch adds basic support for monitor mode. Also change the open
    call that we set the transceiver mac setting on an interface up. Futher
    patches will add a better handling while interface up an interface.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     

29 Oct, 2014

7 commits


28 Oct, 2014

2 commits

  • This removes the call of monitor receive funktion when any interface
    type call xmit. There exist no such use case that a monitor interface
    should receive the actual sending frame. One use case could be that a
    wpan interface and monitor interface could be running at the same time
    on one phy. Then the monitor interface receives the wpan frames also.
    Furthermore we adding support for promiscous mode setting. With
    promiscous mode setting we can't run a wpan and monitor interface at the
    same time.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch removes all relevant receiving functions inclusive frame
    parsing into rx file. Like mac80211 we should implement the complete
    receive handling and parsing in this file.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring