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
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
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
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 -
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
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
28 May, 2015
1 commit
-
This patch adds support for setting the current cca ed level value over
nl802154.Signed-off-by: Alexander Aring
Reviewed-by: Varka Bhadram
Signed-off-by: Marcel Holtmann
27 May, 2015
1 commit
-
This patch adds transmission power setting support for IEEE-802.15.4
devices via nl802154.Signed-off-by: Varka Bhadram
Acked-by: Alexander Aring
Signed-off-by: Marcel Holtmann
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 -
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
19 May, 2015
8 commits
-
This patch adds capability flags for supported interface types.
Signed-off-by: Alexander Aring
Signed-off-by: Marcel Holtmann -
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 -
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 -
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 -
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 -
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 -
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 -
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
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
19 Dec, 2014
2 commits
-
This patch adds support for setting cca parameters via nl802154.
Signed-off-by: Alexander Aring
Signed-off-by: Marcel Holtmann -
The current cca setting handle is a driver specific call. We need to
introduce some 802.15.4 specific layer and mapping 802.15.4 cca modes to
driver specific ones inside the 802.15.4 driver. This patch will add
such 802.15.4 layer and mapping the cca settings to driver specific ones.Signed-off-by: Alexander Aring
Signed-off-by: Marcel Holtmann
17 Nov, 2014
5 commits
-
This patch changes the byteorder handling for short and panid handling.
We now except to get little endian in nl802154 for these attributes.Signed-off-by: Alexander Aring
Signed-off-by: Marcel Holtmann -
This patch moves the 802.15.4 constraints WPAN_NUM_ defines into
"net/ieee802154.h" which should contain all necessary 802.15.4 related
information. Also rename these defines to a common name which is
IEEE802154_MAX_CHANNEL and IEEE802154_MAX_PAGE.Signed-off-by: Alexander Aring
Signed-off-by: Marcel Holtmann -
This patch adds support for deleting a wpan interface via nl802154.
Signed-off-by: Alexander Aring
Signed-off-by: Marcel Holtmann -
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 -
This patch adds a new nl802154 command for adding a new interface
according to a wpan phy via nl802154.Signed-off-by: Alexander Aring
Signed-off-by: Marcel Holtmann
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
12 Nov, 2014
9 commits
-
This patch adds support for setting listen before transmit mode via
nl802154 framework.Signed-off-by: Alexander Aring
Signed-off-by: Marcel Holtmann -
This patch add support for setting mac frame retries setting via
nl802154 framework.Signed-off-by: Alexander Aring
Signed-off-by: Marcel Holtmann -
This patch add support for max csma backoffs setting via nl802154
framework.Signed-off-by: Alexander Aring
Signed-off-by: Marcel Holtmann -
This patch adds support for setting backoff exponents via nl802154
framework.Signed-off-by: Alexander Aring
Signed-off-by: Marcel Holtmann -
This patch adds support for setting short address via nl802154 framework.
Also added a comment because a 0xffff seems to be valid address that we
don't have a short address. This is a valid setting but we need
more checks in upper layers to don't allow this address as source address.
Also the current netlink interface doesn't allow to set the short_addr
to 0xffff. Same for the 0xfffe short address which describes a not
allocated short address.Signed-off-by: Alexander Aring
Signed-off-by: Marcel Holtmann -
This patch adds support for setting pan_id via nl802154 framework.
Adding a comment because setting 0xffff as pan_id seems to be valid
setting. The pan_id 0xffff as source pan is invalid. I am not sure now
about this setting but for the current netlink interface this is an
invalid setting, so we do the same now. Maybe we need to change that
when we have coordinator support and association support.Signed-off-by: Alexander Aring
Signed-off-by: Marcel Holtmann -
This patch adds page and channel setting support to nl802154 framework.
Signed-off-by: Alexander Aring
Signed-off-by: Marcel Holtmann -
This is patch is cleanup to have a similar indentation like cfg80211
implementation.Signed-off-by: Alexander Aring
Signed-off-by: Marcel Holtmann -
This patch adds an unique id for an wpan_phy. This behaviour is mostly
grabbed from wireless stack. This is needed for upcomming patches which
identify the wpan netdev while NETDEV_CHANGENAME in netdev notify function.Signed-off-by: Alexander Aring
Signed-off-by: Marcel Holtmann
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 -
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 -
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 -
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