Martine S. Lenders
ac222521ab
gnrc_sixlowpan_iphc: zero IPv6 header before decompressing into it
2020-03-25 14:54:18 +01:00
Martine S. Lenders
0b3f785dfe
gnrc_sixlowpan_iphc: add extension header decoding
2020-01-30 17:59:59 +01:00
Martine S. Lenders
3bf426e6fc
gnrc_sixlowpan_iphc: factor-out IPv6 header decoding into own function
2019-12-10 15:46:51 +01:00
Martine S. Lenders
8ce3c745c8
gnrc_sixlowpan_iphc: add extension header encoding
2019-12-10 15:31:56 +01:00
Martine S. Lenders
a0a334a491
gnrc_sixlowpan_iphc: factor-out IPv6 header encoding into own function
2019-12-10 15:29:06 +01:00
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