aboutsummaryrefslogtreecommitdiff
path: root/net/ieee802154
AgeCommit message (Collapse)AuthorFilesLines
2012-11-306lowpan: consider checksum bytes in fragmentation thresholdAlan Ott1-1/+2
Change the threshold for framentation of a lowpan packet from using the MTU size to now use the MTU size minus the checksum length, which is added by the hardware. For IEEE 802.15.4, this effectively changes it from 127 bytes to 125 bytes. Signed-off-by: Alan Ott <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-09-18net/ieee802154/6lowpan.c: Remove unecessary semicolonPeter Senna Tschudin1-1/+1
Found by http://coccinelle.lip6.fr/ Signed-off-by: Peter Senna Tschudin <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-09-10netlink: Rename pid to portid to avoid confusionEric W. Biederman2-6/+6
It is a frequent mistake to confuse the netlink port identifier with a process identifier. Try to reduce this confusion by renaming fields that hold port identifiers portid instead of pid. I have carefully avoided changing the structures exported to userspace to avoid changing the userspace API. I have successfully built an allyesconfig kernel with this change. Signed-off-by: "Eric W. Biederman" <[email protected]> Acked-by: Stephen Hemminger <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-09-016lowpan: handle NETDEV_UNREGISTER eventAlan Ott1-7/+37
Before, it was impossible to remove a wpan device which had lowpan attached to it. Signed-off-by: Alan Ott <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-09-016lowpan: Make a copy of skb's delivered to 6lowpanAlan Ott1-1/+8
Since lowpan_process_data() modifies the skb (by calling skb_pull()), we need our own copy so that it doesn't affect the data received by other protcols (in this case, af_ieee802154). Signed-off-by: Alan Ott <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-07-166lowpan: Change byte order when storing/accessing to len fieldTony Cheneau1-8/+12
Lenght field should be encoded using big endian byte order, such as intend in the specs. As it is currently written, the len field would not be decoded properly on an implementation using the correct byte ordering. Hence, it could lead to interroperability issues. Also, I rewrote the code so that iphc0 argument of lowpan_alloc_new_frame could be removed. Signed-off-by: Tony Cheneau <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-07-166lowpan: Change byte order when storing/accessing u16 tagTony Cheneau1-3/+3
The tag field should be stored and accessed using big endian byte order (as intended in the specs). Or else, when displayed with a trafic analyser, such a Wireshark, the field not properly displayed (e.g. 0x01 00 instead of 0x00 01, and so on). Signed-off-by: Tony Cheneau <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-07-166lowpan: Fix null pointer dereference in UDP uncompression functionTony Cheneau1-0/+3
When a UDP packet gets fragmented, a crash will occur at reassembly time. This is because skb->transport_header is not set during earlier period of fragment reassembly. As a consequence, call to udp_hdr() return NULL and uh (which is NULL) gets dereferenced without much test. Signed-off-by: Tony Cheneau <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-07-126lowpan: rework fragment-deleting routine[email protected]1-19/+20
6lowpan module starts collecting incomming frames and fragments right after lowpan_module_init() therefor it will be better to clean unfinished fragments in lowpan_cleanup_module() function instead of doing it when link goes down. Changed spinlocks type to prevent deadlock with expired timer event and removed unused one. Signed-off-by: Alexander Smirnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-07-126lowpan: fix tag variable size[email protected]1-1/+1
Function lowpan_alloc_new_frame() takes u8 tag as an argument. However, its only caller, lowpan_process_data() passes down a u16. Hence, the tag value can get corrupted. This prevent 6lowpan fragment reassembly of a message when the fragment tag value is over 256. Signed-off-by: Alexander Smirnov <[email protected]> Cc: Tony Cheneau <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-07-126lowpan: get extra headroom in allocated frame[email protected]1-2/+2
Use netdev_alloc_skb_ip_align() instead of alloc_skb() to get some extra headroom in case we need to forward this frame in a tunnel or something else. Signed-off-by: Alexander Smirnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-07-126lowpan: revert: add missing spin_lock_init()[email protected]1-3/+1
Revert the commit 768f7c7c121e80f458a9d013b2e8b169e5dfb1e5 to initialize spinlock in the more preferable way and make it static to avoid sparse warning. Signed-off-by: Alexander Smirnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-07-10Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/netDavid S. Miller1-6/+6
Conflicts: net/batman-adv/bridge_loop_avoidance.c net/batman-adv/bridge_loop_avoidance.h net/batman-adv/soft-interface.c net/mac80211/mlme.c With merge help from Antonio Quartulli (batman-adv) and Stephen Rothwell (drivers/net/usb/qmi_wwan.c). The net/mac80211/mlme.c conflict seemed easy enough, accounting for a conversion to some new tracing macros. Signed-off-by: David S. Miller <[email protected]>
2012-07-08ieee802154: verify packet size before trying to allocate itSasha Levin1-6/+6
Currently when sending data over datagram, the send function will attempt to allocate any size passed on from the userspace. We should make sure that this size is checked and limited. We'll limit it to the MTU of the device, which is checked later anyway. Signed-off-by: Sasha Levin <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-07-056lowpan: revert 'reuse eth_mac_addr()'[email protected]1-2/+14
This reverts the commit cdf49c283e2e105da86ca575ad35b453f5ff24ea which replaces lowpan '.ndo_set_mac_address' method by ethernet's one. Accorind to the IEEE 802.15.4 standard, device has 8-byte length address, so this hook loses the last 2 bytes which may rise a compatibility problems with other IEEE 802.15.4 standard implementations. Signed-off-by: Alexander Smirnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-06-28net: Use NLMSG_DEFAULT_SIZE in combination with nlmsg_new()Thomas Graf3-4/+4
Using NLMSG_GOODSIZE results in multiple pages being used as nlmsg_new() will automatically add the size of the netlink header to the payload thus exceeding the page limit. NLMSG_DEFAULT_SIZE takes this into account. Signed-off-by: Thomas Graf <[email protected]> Cc: Jiri Pirko <[email protected]> Cc: Dmitry Eremin-Solenikov <[email protected]> Cc: Sergey Lapin <[email protected]> Cc: Johannes Berg <[email protected]> Cc: Lauro Ramos Venancio <[email protected]> Cc: Aloisio Almeida Jr <[email protected]> Cc: Samuel Ortiz <[email protected]> Reviewed-by: Jiri Pirko <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-06-276lowpan: double unlock on an error pathDan Carpenter1-1/+1
We already unlocked a few lines earlier here, so we can go directly to drop without passing through unlock. This was introduced recently in c5d3687f6c ('6lowpan: read data from skb safely'). Signed-off-by: Dan Carpenter <[email protected]> Acked-by: Alexander Smirnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-06-256lowpan: remove excessive argument in pr_debug[email protected]1-57/+37
Remove excessive __func__ argument in pr_debug function and some excessive debug messages. Signed-off-by: Alexander Smirnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-06-256lowpan: fix hop limit compression[email protected]1-0/+1
Add missing pointer shift for the 'default' case. Signed-off-by: Alexander Smirnov <[email protected]> Cc: Tony Cheneau <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-06-256lowpan: read data from skb safely[email protected]1-32/+38
Check if skb buffer can pull requested amount of bytes and return an error in opposite case. Signed-off-by: Alexander Smirnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-05-16ieee802154: interface type to be added[email protected]1-1/+8
This stack implementation distinguishes several types of slave interfaces. Another parameter to 'add_iface_' function is added to clarify the interface type is going to be registered. Signed-off-by: Alexander Smirnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-05-07Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/netDavid S. Miller1-2/+38
Conflicts: drivers/net/ethernet/intel/e1000e/param.c drivers/net/wireless/iwlwifi/iwl-agn-rx.c drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c drivers/net/wireless/iwlwifi/iwl-trans.h Resolved the iwlwifi conflict with mainline using 3-way diff posted by John Linville and Stephen Rothwell. In 'net' we added a bug fix to make iwlwifi report a more accurate skb->truesize but this conflicted with RX path changes that happened meanwhile in net-next. In e1000e a conflict arose in the validation code for settings of adapter->itr. 'net-next' had more sophisticated logic so that logic was used. Signed-off-by: David S. Miller <[email protected]>
2012-04-266lowpan: duplicate definition of IEEE802154_ALEN[email protected]2-5/+2
The same macros is defined in 'include/net/af_ieee802154.h' and is called IEEE802154_ADDR_LEN. No need another one, so remove it. Signed-off-by: Alexander Smirnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-04-266lowpan: move frame allocation code to a separate function[email protected]1-33/+48
Separate frame allocation routine from data processing function. This makes code more human readable and easier for understanding. Signed-off-by: Alexander Smirnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-04-266lowpan: add missing spin_lock_init()[email protected]1-0/+2
Add missing spin_lock_init() for frames list lock. Signed-off-by: Alexander Smirnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-04-266lowpan: clean up fragments list if module unloaded[email protected]1-2/+11
Clean all the pending fragments and relative timers if 6lowpan link is going to be deleted. Signed-off-by: Alexander Smirnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-04-266lowpan: fix segmentation fault caused by mlme request[email protected]1-0/+25
Add nescesary mlme callbacks to satisfy "iz list" request from user space. Due to 6lowpan device doesn't have its own phy, mlme implemented as a pipe to a real phy to which 6lowpan is attached. Signed-off-by: Alexander Smirnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-04-15net: cleanup unsigned to unsigned intEric Dumazet3-5/+5
Use of "unsigned int" is preferred to bare "unsigned" in net tree. Signed-off-by: Eric Dumazet <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-04-02ieee802154: Stop using NLA_PUT*().David S. Miller2-90/+85
These macros contain a hidden goto, and are thus extremely error prone and make code hard to audit. Signed-off-by: David S. Miller <[email protected]>
2012-02-22net/ieee802154/6lowpan.c: reuse eth_mac_addr()Danny Kukawka1-14/+2
Use eth_mac_addr() for .ndo_set_mac_address, remove lowpan_set_address since it do currently the same as eth_mac_addr(). Additional advantage: eth_mac_addr() already checks if the given address is valid Signed-off-by: Danny Kukawka <[email protected]> Acked-by: Dmitry Eremin-Solenikov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-11-18net: Remove all uses of LL_ALLOCATED_SPACEHerbert Xu2-4/+10
net: Remove all uses of LL_ALLOCATED_SPACE The macro LL_ALLOCATED_SPACE was ill-conceived. It applies the alignment to the sum of needed_headroom and needed_tailroom. As the amount that is then reserved for head room is needed_headroom with alignment, this means that the tail room left may be too small. This patch replaces all uses of LL_ALLOCATED_SPACE with the macro LL_RESERVED_SPACE and direct reference to needed_tailroom. This also fixes the problem with needed_headroom changing between allocating the skb and reserving the head room. Signed-off-by: Herbert Xu <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-11-166LoWPAN: double free in lowpan_fragment_xmit()Dan Carpenter1-3/+0
dev_queue_xmit() consumes its own skb, so the call to dev_kfree_skb() in lowpan_fragment_xmit() is a double free. Signed-off-by: Dan Carpenter <[email protected]> Acked-by: Alexander Smirnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-11-146LoWPAN: UDP header decompression[email protected]1-1/+60
This patch provides possibility to decompress UDP headers. Derived from Contiki OS. Signed-off-by: Alexander Smirnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-11-146LoWPAN: UDP header compression[email protected]2-4/+52
This patch adds support for UDP header compression. Derived from Contiki OS. Signed-off-by: Alexander Smirnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-11-146LoWPAN: set proper netdev flags[email protected]1-2/+1
This patch fixes settings for device initialization which makes possible to use NDISC and TCP. Signed-off-by: Alexander Smirnov <[email protected]> Acked-by: Dmitry Eremin-Solenikov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-11-146LoWPAN: disable debugging by default[email protected]1-2/+0
This patch disables debug output enabled by default. Signed-off-by: Alexander Smirnov <[email protected]> Acked-by: Dmitry Eremin-Solenikov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-11-146LoWPAN: add fragmentation support[email protected]2-4/+274
This patch adds support for frame fragmentation. Signed-off-by: Alexander Smirnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-10-31net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modulesPaul Gortmaker1-0/+1
These files are non modular, but need to export symbols using the macros now living in export.h -- call out the include so that things won't break when we remove the implicit presence of module.h from everywhere. Signed-off-by: Paul Gortmaker <[email protected]>
2011-09-156LoWPAN: fix skb_copy call[email protected]1-8/+9
This patch fixes 2 issues in lowpan_skb_deliver function: 1. Check for return status of skb_copy call; 2. Use skb_copy with proper GFP flag, drop check for non-interrupt context. Signed-off-by: Alexander Smirnov <[email protected]> Signed-off-by: Eric Dumazet <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-09-156LoWPAN: call dev_put() on error in lowpan_newlink()Dan Carpenter1-1/+4
We should release the dev_hold() on error before returning here. Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-09-156LoWPAN: use the _safe version of list_for_eachDan Carpenter1-1/+3
When we kfree(entry) that causes a use-after-free bug so we have to use list_for_each_entry_safe() safe here. Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-09-156LoWPAN: use kfree_skb() instead of kfree()Dan Carpenter1-1/+1
Use kfree_skb() to free sbk_buffs. Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-08-24IEEE802.15.4: 6LoWPAN basic supportAlexander Smirnov4-3/+1108
This patch provides base support for transmission of IPv6 packets as well as the formation of IPv6 link-local addresses and statelessly autoconfigured addresses on top of IEEE 802.15.4 networks. For more information please look at the RFC4944 "Compression Format for IPv6 Datagrams in Low Power and Losst Networks (6LoWPAN). Signed-off-by: Alexander Smirnov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-06-30ieee802154: free skb buffer if dev isn't runningAlexander Smirnov1-1/+1
Signed-off-by: Alexander Smirnov <[email protected]> Signed-off-by: Dmitry Eremin-Solenikov <[email protected]>
2011-06-30ieee802154: it's IEEE 802.15.4, not ZigBeeDmitry Eremin-Solenikov1-1/+1
Signed-off-by: Dmitry Eremin-Solenikov <[email protected]>
2011-06-30ieee802154: support specifying hw address for created devicesDmitry Eremin-Solenikov1-0/+31
Signed-off-by: Dmitry Eremin-Solenikov <[email protected]>
2011-06-13ieee802154: Don't leak memory in ieee802154_nl_fill_phyJesper Juhl1-1/+2
In net/ieee802154/nl-phy.c::ieee802154_nl_fill_phy() I see two small issues. 1) If the allocation of 'buf' fails we may just as well return -EMSGSIZE directly rather than jumping to 'out:' and do a pointless kfree(0). 2) We do not free 'buf' unless we jump to one of the error labels and this leaks memory. This patch should address both. Signed-off-by: Jesper Juhl <[email protected]> Acked-by: Dmitry Eremin-Solenikov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-04-12ieee802154: Remove hacked CFLAGS in net/ieee802154/MakefileDavid S. Miller1-2/+0
It adds -Wall (which the kernel carefully controls already) and of all things -DDEBUG (which should be set by other means if desired, please we have dynamic-debug these days). Kill this noise. Reported-by: Dave Jones <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-12-08net: RCU conversion of dev_getbyhwaddr() and arp_ioctl()Eric Dumazet1-3/+3
Le dimanche 05 décembre 2010 à 09:19 +0100, Eric Dumazet a écrit : > Hmm.. > > If somebody can explain why RTNL is held in arp_ioctl() (and therefore > in arp_req_delete()), we might first remove RTNL use in arp_ioctl() so > that your patch can be applied. > > Right now it is not good, because RTNL wont be necessarly held when you > are going to call arp_invalidate() ? While doing this analysis, I found a refcount bug in llc, I'll send a patch for net-2.6 Meanwhile, here is the patch for net-next-2.6 Your patch then can be applied after mine. Thanks [PATCH] net: RCU conversion of dev_getbyhwaddr() and arp_ioctl() dev_getbyhwaddr() was called under RTNL. Rename it to dev_getbyhwaddr_rcu() and change all its caller to now use RCU locking instead of RTNL. Change arp_ioctl() to use RCU instead of RTNL locking. Note: this fix a dev refcount bug in llc Signed-off-by: Eric Dumazet <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-05-23ieee802154: Fix possible NULL pointer dereference in wpan_phy_allocDenis Kirjanov1-1/+6
Check for NULL pointer after kzalloc Signed-off-by: Denis Kirjanov <[email protected]> Signed-off-by: David S. Miller <[email protected]>