1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

45 Commits

Author SHA1 Message Date
Martine S. Lenders
3273602f24
tests: provide test application for IPHC+VRB behavior 2019-12-10 13:59:41 +01:00
Martine Lenders
a689f51e9a
gnrc_sixlowpan_iphc: add rudimentary forwarding routine 2019-12-10 13:56:33 +01:00
Martine S. Lenders
e31394536b
gnrc_sixlowpan_iphc: factor encoding out of sending function 2019-12-10 13:56:05 +01:00
Martine S. Lenders
556d71a7da
gnrc_sixlowpan_iphc: create VRB entry from uncompressed header
... when VRB is available
2019-12-10 13:56:02 +01:00
Martine Lenders
2a1e002d6d
Merge pull request #12627 from miri64/gnrc_sixlowpan_iphc_nhc/enh/frag+iphc-payload_len
gnrc_sixlowpan_iphc_nhc: determine UDP hdr length from RB
2019-11-01 19:47:08 +01:00
Martine S. Lenders
f33111a9c2 gnrc_sixlowpan_iphc: remove duplicate gnrc_netif_hdr_get_netif()
The interface is already fetched in the beginning of the function and
doesn't change during its run, so getting the interface again at this
point is just redundant.
2019-11-01 18:29:44 +01:00
Martine S. Lenders
806f33fce4 gnrc_sixlowpan_iphc_nhc: determine UDP hdr length from RB
When decoding IPHC in a fragmented datagram, relying on the size of the
allocated space for the decoded packet is wrong when fragments are
forwarded and decoded on an intermediate node (for which the reassembly
buffer's space is used): Using the full datagram size for allocation in
this case would be wasteful, so the allocated space is only marginally
larger than the fragment's compressed form.
This in turn results in the wrong UDP payload size being chosen and
even worse being forwarded to the subsequent nodes.

This change uses the (virtual) reassembly buffer's `datagram_size`
instead of relying on the allocated space for the encoded
datagram/fragment.
2019-11-01 13:18:00 +01:00
Martine S. Lenders
f8d75d7add gnrc_sixlowpan_frag_rb: behavioral change to add()
Rather than dispatching the packet automatically once it is complete,
`gnrc_sixlowpan_frag_rb_add()` now only returns success, and leaves it
to the caller to dispatch the packet.
2019-10-18 09:02:32 +02:00
Martine Lenders
e9ff46b2ea gnrc_sixlowpan_frag_rb: unify naming scheme 2019-09-28 12:11:54 +02:00
Martine S. Lenders
b5545fe334 gnrc_sixlowpan: include reassembly buffer only where needed 2019-09-27 21:11:36 +02:00
Martine Lenders
3ee75c3ca9 gnrc_sixlowpan_iphc: assure ctx != NULL for dst compression
For the source address compression it was already done the same way in
12bcc46f15
2019-06-20 16:18:23 +02:00
Martine Lenders
5e7803d506 gnrc_sixlowpan_frag: add datagram size to base type 2019-05-28 18:07:42 +02:00
Martine Lenders
52e4247798 gnrc_sixlowpan_frag: introduce reassembly buffer base class 2019-05-28 18:07:42 +02:00
Martine Lenders
3582dedd4e gnrc_sixlowpan_iphc: check ptr != NULL in compressible check
Not only does this leave open a risk to crash the node for the check
in `_compressible()` but also is the `tmp` check below getting confused
when `ptr` is `NULL`, since `gnrc_pktbuf_start_write()` returns `NULL`
in that case.
2019-03-12 16:48:33 +01:00
Martine Lenders
43c2c728c9 gnrc_sixlowpan_iphc: fix _compressible()
When either `gnrc_sixlowpan_iphc_nhc` or `gnrc_udp` is not compiled
in `_compressible()` never returns `true`. This causes the
`dispatch` snip in `gnrc_sixlowpan_iphc_send()` to be of length 0,
meaning `dispatch->data` is `NULL`, causing possible crashes when
trying to send IPv6 packets over 6LoWPAN without NHC or UDP.
2019-02-05 15:22:41 +01:00
Martine Lenders
a7e3791f3b gnrc_sixlowpan_iphc: allow address compression for non-IEEE802.15.4 2018-12-07 13:03:40 +01:00
Martine Lenders
d94ba6c7d1 gnrc_sixlowpan_iphc: use gnrc_netif_hdr_get_netif() function 2018-12-05 14:08:32 +01:00
Martine Lenders
0a9793c49b gnrc_sixlowpan_iphc: cleanup NHC encoding 2018-08-16 16:55:28 +02:00
Martine Lenders
69d9ecc0d9 gnrc_sixlowpan_iphc: refactor reception for #8511
This refactors reception/decoding part of `gnrc_sixlowpan_iphc` to the
more layered approach modeled in #8511. Since the reception part is
already complicated enough I decided to divide send and receive up into
separate changes.
2018-07-25 18:15:09 +02:00
Martine Lenders
80322cbd7d gnrc_sixlowpan_iphc: refactor sending for #8511
This refactors sending/encoding part of `gnrc_sixlowpan_iphc` to the
more layered approach modeled in #8511. Since the reception part is
already was pretty complicated to refactor, I decided to divide send
and receive up into separate changes.
2018-07-25 17:35:59 +02:00
smlng
b283b7784c make: fix various compile errors with Wextra
pkg, nordic_softdevice_ble: disable CFLAGS to omit compiler error
        sys, pm_layered: fix casting nonscalar to the same type
        cpu, stm32_common: fix type-limits, remove always true assert
        cpu, stm32f4: fix pointer arithmetic in periph/i2c
        drivers, at86rf2xx: fix type-limits where condition always true
        saul, gpio: fix if no gpio configured for saul
        cpu, saml21: add frequency check to periph/timer
        driver, cc110x: fix unused param and type-limts errors
        boards, wsn430-common: fix old-style-declaration
        make: fix old style definition
        drivers, sdcard_spi: fix old style typedef
        driver, at30tse: remove unnecessary check
        driver, nrf24: fix type-limit
        driver, pn532: change buffer from char to uint8_t
        tests/driver_sdcard: fix type limits
        boards, feather-m0: add missing field inits
        driver, tcs37727: fix type limits
        pkg, emb6: disable some compiler warnings
        tests/emb6: disable some compiler warings
        pkg, openthread: fix sign compare and unused params
        tests/trickle: fix struct init
        tests/pthread_cooperation: fix type limits
        board, mips-malta: remove feature periph_uart
        shell: fix var size for netif command
        gnrc, netif: fix sign-compare
        gnrc, nib: fix sign-compare
        shell: fix output in netif command
        posix: fix type-limits in pthread_cond
2017-11-28 18:31:43 +01:00
Joakim Nohlgård
0ba9fd3456 6lo: Avoid null ptr dereference when DAC=1, DAM=00, M=1 2017-04-02 18:42:01 +02:00
e0164660eb Merge pull request #6064 from miri64/gnrc_sixlowpan_nhc/fix/forwarding
gnrc_sixlowpan_nhc: fix forwarding case
2016-11-09 15:56:21 +01:00
Martin Elshuber
b582e64b09 gnrc_sixlowpan_iphc.c: Updated comments some logic 2016-11-08 13:04:12 +01:00
Martin Elshuber
faa47a0e03 gnrc_sixlowpan_iphc: Fixed encoding when COMP=0
Summary:

Even ehen COMP is cleared, the algorithm always elides part of the address when a matching
context is found.

This behviour occurs because in the line

  if ((src_ctx != NULL) || ipv6_addr_is_link_local(&(ipv6_hdr->src)))

the COMP bit is not tested.

This patch fixes the problem by setting [src|dst]_ctx to NULL if the
context must not be used.
2016-11-07 19:53:04 +01:00
Martine Lenders
1605b506c9 gnrc_sixlowpan_nhc: fix forwarding case 2016-11-07 15:46:56 +01:00
Peter Kietzmann
e8e9619f01 Merge pull request #5501 from Yonezawa-T2/gnrc_sixlowpan_iphc_propagate_error
gnrc_sixlowpan_iphc: propagate UDP decode error
2016-06-03 10:07:06 +02:00
Yonezawa-T2
ba4b099d93 gnrc_sixlowpan_iphc: propagate UDP decode error 2016-06-03 11:35:22 +09:00
Yonezawa-T2
a6c14dadb3 gnrc_sixlowpan_iphc: fix compile error for debug output 2016-06-03 11:33:08 +09:00
Martine Lenders
84a9ddb2db gnrc_sixlowpan_iphc: fix comparison signage 2016-04-20 06:55:24 +02:00
Johann Fischer
f405891b68 gnrc_sixlowpan_iphc.c: handle forwarded GNRC_NETTYPE_IPV6 packet 2016-04-02 07:52:47 +02:00
Martine Lenders
ae52bf9a12 gnrc_sixlowpan_iphc_nhc: fix NHC UDP decoding for fragmented packets 2016-03-04 16:40:45 +01:00
Joakim Nohlgård
647c87c9a5 6lo: Fix typo in UDP NHC checksum elision bit define 2016-03-01 12:35:14 +01:00
Cenk Gündoğan
7d628514ab sixlowpan: iphc: fix dependencies for udp and nhc 2015-12-23 13:57:55 +01:00
Martine Lenders
d342d35dd8 gnrc_sixlowpan: Fix IPHC/NHC packet order problem 2015-12-22 17:14:33 +01:00
Johann Fischer
a85d50b9d1 gnrc_sixlowpan_iphc.c: add nhc udp decoding and encoding
This patch adds UDP Header Compression and Decompression as
specified in https://tools.ietf.org/html/rfc6282#section-4.3
UDP NHC module will be included only if UDP is used.
2015-12-08 14:50:25 +01:00
test
db7e8a7b37 sixlowpan: iphc: minor optimizations 2015-11-23 13:17:23 +01:00
Martine Lenders
493597ec1d Merge pull request #3845 from cgundogan/pr/gnrc_sixlowpan_iphc/assert
gnrc_sixlowpan_iphc: move assert to a valid position
2015-10-27 20:11:47 +01:00
Martine Lenders
7bbb5d62b0 6lowpan IPHC: set dest context to DCI field not SCI 2015-09-24 23:21:15 +02:00
Martine Lenders
109b2ab522 Merge pull request #3950 from authmillenon/gnrc_sixlowpan_iphc/fix/set-mcast-ctx
gnrc_sixlowpan_iphc: actually set context for unicast prefix based comp
2015-09-24 02:33:16 +02:00
Martine Lenders
1372b9b779 gnrc_sixlowpan_iphc: actually set context for unicast prefix based comp 2015-09-24 02:15:35 +02:00
Oleg Hahm
e9d6eb8170 6lowpan IPHC: set stateful compression mode f. dst
For destionation addresses the stateful compression mode bit wasn't set.
2015-09-24 02:15:21 +02:00
Cenk Gündoğan
12bcc46f15 gnrc_sixlowpan_iphc: move assert to a valid position 2015-09-16 09:54:08 +02:00
Martine Lenders
ab9d57dec5 gnrc_sixlowpan_iphc: set correct length for IPv6 header 2015-08-20 12:35:44 +02:00
Martine Lenders
58ff31bfe9 gnrc: make all gnrc modules sub-modules of gnrc 2015-08-18 23:00:07 +02:00