Hi, this patch series contains a rework of 802.15.4 6LoWPAN receive handling. We need to check on some things before which never checked before, like is 802.15.4 dataframe, if we can access skb->data[0] (could be that skb->len is 0 then), etc. Also various bug fixes like the masking for fragmentation dispatch value which is currently wrong. Also we should again check the dispatch value after successful reassembly a fragment, we currently assume always a iphc header there. This is wrong it could also be a non-compressed header. This can occur if the compressed header is larger than lower interface MTU size, we doesn't react on this while transmit which is another issue. Nevertheless we also don't reach this case at worst-case compression currently. I introduced a complete new handling for the dispatch values based on mac80211 receive handling mechanism. - Alex Cc: Jukka Rissanen <jukka.rissanen@xxxxxxxxxxxxxxx> changes since PATCH: - rebase to current bluetooth-next/master - remove unnecessary else branch in fragmentation handling - add more detailed "why" in the commit message of "ieee802154: 6lowpan: register packet layer while open" - replace magic numbers for getting dgram size high bytes by some defines. - Add the "Updated Last" date at iana code commentary for dispatch values. - Add Jukka into Cc: because we touch the 6LoWPAN generic branch. (Should only 802.15.4 related changes there, see "ieee820154: 6lowpan: dispatch evaluation rework" - Add several "Reviewed-by: Stefan Schmidt <stefan@xxxxxxxxxxxxxxx>", thanks for giving some feedback. changes since v2: - I know there is some patch on net-next which occurs in merge conflicts, I will wait until this patch is in bluetooth-next before sending as PATCH. - fix the "ieee820154: 6lowpan: dispatch evaluation rework" by also doing dispatch evaluation on FRAG1. Also we do now FRAG1 uncompression (if iphc) on-the-fly. This is currently solved by doing special lltype handling in generic 6LoWPAN. Maybe we can introduce some "payload_len" parameter to the uncompression functions, to avoid the use of skb->cb. The complete patch looks different now, I fixup also some other patches into this patch. Also add skb_unshare on dispatches where we manipulate the skb data. Change address handling for fragmentation for parse again skb_mac_header instead using skb->cb which was filled from lower layer. - replace the removal of wdev running patch "ieee802154: 6lowpan: change if lowpan dev is running". - add lowpan_dff dispatch. - change reserved dispatch values to use ranges. - add "ieee802154: 6lowpan: register packet layer while open". - add "ieee802154: 6lowpan: remove check on null". - change order at "ieee802154: 6lowpan: trivial checks at" to check on "wdev->type != ARPHRD_IEEE802154" at first. - change "ieee802154: 6lowpan: check on valid 802.15.4 frame", we don't need to check on addr none. Dataframes which belongs to a "node" type should always have source and destination addresses. This need to be handled in the lower layers. - add "ieee802154: 6lowpan: remove tx full-size" which removes a ugly workaround to calculate the full size of iphc packet. We don't need it since we use FRAG1 uncompression on the fly. Also change this behaviour for transmit and remove the ugly workaround functions. Alexander Aring (16): ieee802154: 6lowpan: change dev vars to wdev and ldev ieee802154: 6lowpan: register packet layer while open ieee802154: 6lowpan: remove check on null ieee802154: 6lowpan: remove set to zero ieee802154: 6lowpan: remove EXPORT_SYMBOL ieee802154: 6lowpan: change if lowpan dev is running ieee802154: 6lowpan: cleanup pull of iphc bytes ieee802154: 6lowpan: trivial checks at first ieee802154: 6lowpan: earlier skb->dev switch ieee820154: 6lowpan: dispatch evaluation rework ieee802154: 6lowpan: add generic lowpan header check ieee802154: 6lowpan: add handler for all dispatch values ieee802154: 6lowpan: add check for reserved dispatch ieee802154: 6lowpan: check on valid 802.15.4 frame ieee802154: 6lowpan: remove packet type to host ieee802154: 6lowpan: remove tx full-size calc workaround include/linux/ieee802154.h | 25 +++ include/net/6lowpan.h | 144 +++------------ include/net/mac802154.h | 15 ++ net/6lowpan/iphc.c | 13 +- net/6lowpan/nhc_udp.c | 13 +- net/ieee802154/6lowpan/6lowpan_i.h | 14 +- net/ieee802154/6lowpan/core.c | 116 ++++++------ net/ieee802154/6lowpan/reassembly.c | 157 +++++++++++----- net/ieee802154/6lowpan/rx.c | 352 ++++++++++++++++++++++++++++-------- net/ieee802154/6lowpan/tx.c | 51 +++--- 10 files changed, 572 insertions(+), 328 deletions(-) -- 2.5.1 -- To unsubscribe from this list: send the line "unsubscribe linux-wpan" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html