Re: [PATCH 1/2] mac802154: add a software MAC 802.15.4 implementation
flat view
From: Johannes Berg <hidden>
Date: 2009-08-10 14:27:46
Also in:
linux-wireless
On Mon, 2009-08-10 at 18:16 +0400, Dmitry Eremin-Solenikov wrote:
Some of available devices are just dump radios implementing IEEE 802.15.4
dump -> dumb
Note this implementaion is neither certified, nor feature complete!
implementation
quoted hunk
+ * @tx: Handler that 802.15.4 module calls for each transmitted frame. + * skb cntains the buffer starting from the IEEE 802.15.4 header. + * The low-level driver should send the frame based on available + * configuration. + * This function should return zero or negative errno.
That return value is strange.
quoted hunk
+++ b/net/Makefile@@ -61,6 +61,7 @@ ifneq ($(CONFIG_DCB),) obj-y += dcb/ endif obj-y += ieee802154/ +obj-y += mac802154/
I think you should use obj-$(CONFIG_MAC802154) as there's no need to recurse into the dir unless that's selected. But does it make sense to actually have this little code as a separate dir/module?
quoted hunk
+ Note: this implementation is neither certified, nor feature + complete! We do not garantee that it is compatible w/ other + implementations, etc.
guarantee But generally, you don't have to write that anyway due to the license.
quoted hunk
+ If you plan to use HardMAC IEEE 802.15.4 devices, you can + say N here. Alternatievly you can say M to compile it as + module.
white space gone wrong
quoted hunk
+ struct net_device *netdev; /* mwpanX device */ + int open_count; + /* As in mac80211 slaves list is modified: + * 1) under the RTNL + * 2) protected by slaves_mtx; + * 3) in an RCU manner + * + * So atomic readers can use any of this protection methods + */ + struct list_head slaves;
heh.
+static int ieee802154_master_open(struct net_device *dev)
+{
We've had no end to trouble with the master netdev, I suggest you look
into the current mac80211 code and see if you can get rid of it.
quoted hunk
+struct ieee802154_dev *ieee802154_alloc_device(size_t priv_size, + struct ieee802154_ops *ops) +{
+ if (!try_module_get(ops->owner)) {
That isn't necessary since the module is just calling your function. In
fact, doing this removes the ability to rmmod any module using this
which is bogus.
johannes Attachments
- signature.asc [application/pgp-signature] 801 bytes