contiki-os/contiki — pull request #648 by laurentderu (2014-04-18 12:40:21+00:00)
Title: High throughput fixes for csma and sixlowpan

When traffic is send to a node with a higher rate than the radio can output this consumes all the available packet buffers in CSMA, nay other traffic is blocked or seriously slowed; this can break the DAG as DIO/DAO are no longer send timely. This fix add a new configuration parameter, CSMA_CONF_MAX_PACKET_PER_NEIGHBOR, limiting the number of packet buffer used by a given neighour. Its default value is set to MAX_QUEUED_PACKETS so that the default behaviour of CSMA is not modified.

Also, if this high rate traffic is fragmented, it will also consumes all the available queuebuf leading to a strange behaviour : only the first fragment is sent as at a time only one queuebuf can be released by the radio, all the remaining fragments are dropped and the message is never received by the target node. Also, as all the queuebuf are used almost no other traffic can go trough.

High throughput traffic also requires modifications in native-rdc, they will be part of another PR