08 Jul, 2016

1 commit

  • This patch adds netns support for 802.15.4 subsystem. Most parts are
    copy&pasted from wireless subsystem, it has the identically userspace
    API.

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

    Alexander Aring
     

30 Sep, 2015

1 commit

  • This patch adds support for accessing mac802154 llsec implementation
    over nl802154. I added for a new Kconfig entry to provide this
    functionality CONFIG_IEEE802154_NL802154_EXPERIMENTAL. This interface is
    still in development. It provides to change security parameters and
    add/del/dump entries of security tables. Later we can add also a get to
    get an entry by unique identifier.

    Cc: Phoebe Buckheister
    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     

22 Sep, 2015

1 commit

  • The current header_ops callback structure of net device are used mostly
    from 802.15.4 upper-layers. Because this callback structure is a very
    generic one, which is also used by e.g. DGRAM AF_PACKET sockets, we
    can't make this callback structure 802.15.4 specific which is currently
    is.

    I saw the smallest "constraint" for calling this callback with
    dev_hard_header/dev_parse_header by AF_PACKET which assign a 8 byte
    array for address void pointers. Currently 802.15.4 specific protocols
    like af802154 and 6LoWPAN will assign the "struct ieee802154_addr" as
    these parameters which is greater than 8 bytes. The current callback
    implementation for header_ops.create assumes always a complete
    "struct ieee802154_addr" which AF_PACKET can't never handled and is
    greater than 8 bytes.

    For that reason we introduce now a "generic" create/parse header_ops
    callback which allows handling with intra-pan extended addresses only.
    This allows a small use-case with AF_PACKET to send "somehow" a valid
    dataframe over DGRAM.

    To keeping the current dev_hard_header behaviour we introduce a similar
    callback structure "wpan_dev_header_ops" which contains 802.15.4 specific
    upper-layer header creation functionality, which can be called by
    wpan_dev_hard_header.

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

    Alexander Aring
     

11 Aug, 2015

2 commits

  • This patch introduce a new mib entry which isn't part of 802.15.4 but
    useful as default behaviour to set the ack request bit or not if we
    don't know if the ack request bit should set. This is currently used for
    stacks like IEEE 802.15.4 6LoWPAN.

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

    Alexander Aring
     
  • We currently supports multiple lowpan interfaces per wpan interface. I
    never saw any use case into such functionality. We drop this feature now
    because it's much easier do deal with address changes inside the under
    laying wpan interface.

    This patch removes the multiple lowpan interface and adds a lowpan_dev
    netdev pointer into the wpan_dev, if this pointer isn't null the wpan
    interface belongs to the assigned lowpan interface.

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

    Alexander Aring
     

23 Jul, 2015

1 commit

  • This patch help to implement suspend/resume in mac802154, these
    hooks will be run before the device is suspended and after it
    resumes.

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

    Varka Bhadram
     

28 May, 2015

1 commit


27 May, 2015

1 commit


23 May, 2015

2 commits

  • 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
     
  • This patch removes the pib lock which is now replaced by rtnl lock. The
    new interface already use the rtnl lock only. Nevertheless this patch
    will fix issues while using new and old interface at the same time.

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

    Alexander Aring
     

19 May, 2015

8 commits

  • This patch adds capability flags for supported interface types.

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

    Alexander Aring
     
  • This patch introduce a flag property for the wpan phy structure.
    The current flag settings in ieee802154_hw are accessable in mac802154
    layer only which is okay for flags which indicates MAC handling which
    are done by phy. For real PHY layer settings like cca mode, transmit
    power, cca energy detection level.

    The difference between these flags are that the MAC handling flags are
    only handled in mac802154/HardMac layer e.g. on an interface up. The phy
    settings are direct netlink calls from nl802154 into the driver layer
    and the nl802154 need to have a chance to check if the driver supports
    this handling before sending to the next layer.

    We also check now on PHY flags while dumping and setting pib attributes.
    In comparing with MIB attributes the 802.15.4 gives us an default value
    which we assume when a transceiver implement less functionality. In case
    of MIB settings the nl802154 layer doesn't need to check on the
    ieee802154_hw flags then.

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

    Alexander Aring
     
  • This patch adds check if the value is really changed inside pib/mib.
    If a transceiver do support only one value for e.g. max_be then this
    will also handle that the driver layer doesn't need to care about
    handling to set one value only.

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

    Alexander Aring
     
  • This patch adds support for phy supported handling for all other already
    existing handling 802.15.4 functionality. We assume now a fully 802.15.4
    complaint transceiver at phy allocation. If a transceiver can support
    802.15.4 default values only, then the values should be overwirtten by
    values the transceiver supports. If the transceiver doesn't set the
    according hardware flags, we assume the 802.15.4 defaults now which
    cannot be changed.

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

    Alexander Aring
     
  • This patch introduce the wpan_phy_supported struct for wpan_phy. There
    is currently no way to check if a transceiver can handle IEEE 802.15.4
    complaint values. With this struct we can check before if the
    transceiver supports these values before sending to driver layer.

    Signed-off-by: Alexander Aring
    Suggested-by: Phoebe Buckheister
    Acked-by: Varka Bhadram
    Cc: Alan Ott
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • This patch change the handling of cca energy detection level from dbm to
    mbm. This prepares to handle floating point cca energy detection levels
    values. The old netlink 802.15.4 will convert the dbm value to mbm for
    handling backward compatibility.

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

    Alexander Aring
     
  • This patch change the handling of transmit power level from dbm to mbm.
    This prepares to handle floating point transmit power levels values. The
    old netlink 802.15.4 will convert the dbm value to mbm for handling
    backward compatibility.

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

    Alexander Aring
     
  • This patch change the transmit power from s8 to s32. This prepares to store a
    mbm value instead dbm inside the transmit power variable. The old
    interface keep the a s8 dbm value, which should be backward compatibility
    when assign s8 to s32.

    Signed-off-by: Alexander Aring
    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
     

19 Dec, 2014

2 commits


17 Nov, 2014

5 commits


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

9 commits


10 Nov, 2014

4 commits

  • This patch adds a wpan_dev_list list into cfg802154_registered_device
    struct. Also adding new wpan_dev into this list while
    cfg802154_netdev_notifier_call. This behaviour is mostly grab from
    wireless core.c implementation and is needed for preparing nl802154
    framework.

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

    Alexander Aring
     
  • This patch adds an iftype argument to the wpan_dev. This is needed to
    get the interface type from netdev ieee802154_ptr. The subif data struct
    can only accessible in mac802154 branch.

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

    Alexander Aring
     
  • This patch renames the wpan_phy_alloc function to wpan_phy_new. This
    naming convention is like wireless and "wiphy_new" function.

    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