1309 Commits

Author SHA1 Message Date
goldsimon
d79416eee6 lowpan6: move a function to delete one prototype 2018-03-14 16:59:20 +01:00
goldsimon
08bcfa2b29 netif: initialize netif->output with a dummy function for IPv6 only netifs 2018-03-13 20:29:37 +01:00
Axel Lin
10ae311a93 lowpan6: Rework to speed up dequeue datagram process
Current implementation iterates the lowpan6_data.reass_list every time
dequeue_datagram() is called.
We can get previous lrh in all the context calling dequeue_datagram().
By adding a prev arguemnt to dequeue_datagram(), we can speed up the
dequeue datagram process.

All the callers never check return value of dequeue_datagram() as it
always return ERR_OR, thus make it return void instead.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Simon Goldschmidt <goldsimon@gmx.de>
2018-03-13 08:16:35 +08:00
goldsimon
16afe566ff lowpan6: fix doc warning in clang 2018-03-09 13:40:15 +01:00
goldsimon
8d8572354b lowpan6: fix bug #47291 (wrong datagram size for fragmentation)
Fragment datagram_size and datagram_offset should be calculated from the uncompressed datagram.
We did this on the compressed size and thus were not compatible to other implementations.
Now my test setup communicates with contiki sicslowpan.

Signed-off-by: goldsimon <goldsimon@gmx.de>
2018-03-09 11:28:35 +01:00
goldsimon
b86f9b97e0 lowpan6: refactor decompression to not allocate a pbuf 2018-03-09 06:37:59 +01:00
goldsimon
972f32dd47 zepif: fix compiling with IPv4 disabled 2018-03-07 19:58:09 +01:00
goldsimon
91a2d9e237 zepif: fix comment for calling netif->input() 2018-03-05 08:40:51 +01:00
goldsimon
5474498f7e zepif: call netif->input instead of tcpip_6lowpan_input for rx packets
This allows reusing zepif e.g. with contiki 6LoWPAN code for testing.
2018-03-05 06:43:57 +01:00
Dirk Ziegelmeier
91038e4979 Improve 6LoWPAN documentation 2018-03-03 11:09:57 +01:00
Dirk Ziegelmeier
08bf8b7121 Improve documentation for 6LOWPAN BLE and ZEPIF 2018-03-03 11:00:04 +01:00
goldsimon
282e1601ef finally got zepif running 2018-03-02 13:01:05 +01:00
goldsimon
ab0e457066 lowpan6: change the name of 2 members to indicate usage for tx 2018-03-01 22:17:12 +01:00
goldsimon
a137e16ff8 lowpan6.c: fix referenced RFCs 2018-03-01 12:44:18 +01:00
goldsimon
cb746a1aea zepif: fix destination IP (default should be broadcast, not 0.0.0.0) 2018-03-01 07:08:03 +01:00
goldsimon
fcccc47be4 lowpan6.c: fix clang doc warnings 2018-03-01 07:00:32 +01:00
goldsimon
002ba1a66b zeoif: ZEPIF_LOOPBACK should be 0 default, not 1 2018-03-01 06:15:55 +01:00
goldsimon
43a55003da Added a netif encapsulating 6LowPAN in ZEP (ZigBee Enxapsulation Protocol)
This protocol is sent over a 2nd netif via UDP/IP and can used to analyze
6LoWPAN with a Wireshark dissector.

Signed-off-by: goldsimon <goldsimon@gmx.de>
2018-02-28 22:58:48 +01:00
goldsimon
3a8af612b3 lowpan6.c: handle 6-byte MAC addresses on netif, too 2018-02-28 22:46:55 +01:00
goldsimon
2a5b66c9b1 lowpan6.c: tiny whitespace fix 2018-02-28 22:32:58 +01:00
goldsimon
3a93029e92 lowpan6.c: implement software CRC (e.g. required for use with ZEP) 2018-02-28 21:39:38 +01:00
goldsimon
fe68fa49f7 lowpan6.c: refactor parsing and writing the ieee 802.15.4 header to separate function 2018-02-28 21:38:49 +01:00
goldsimon
5e91cd47c9 lowpan6.c: ensure netif->hwaddr_len == 8 (to not create invalid frames) 2018-02-28 21:09:55 +01:00
goldsimon
569464ffd3 lowpan6.c: move static variables declared inside lowpan6_frag into lowpan6_data 2018-02-28 20:42:31 +01:00
Axel Lin
2e2c607727 lowpan6.c: Fix ‘lowpan6_context_lookup’ defined but not used build warning
Fix build warning with LWIP_6LOWPAN_NUM_CONTEXTS==0.
lowpan6_context_lookup() is only used when LWIP_6LOWPAN_IPHC &&
LWIP_6LOWPAN_NUM_CONTEXTS > 0.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
2018-02-27 18:01:18 +08:00
goldsimon
49acdae8d0 lowpan6.c: fix building with LWIP_6LOWPAN_NUM_CONTEXTS==0 2018-02-27 10:07:15 +01:00
goldsimon
7db978ca03 lowpan6.c: rework lowpan6_input processing of the ieee 802.15.4 header
This should fix bug #48825 (lowpan6: source PAN ID is skipped without
checking PAN ID compression flag)
2018-02-26 21:47:24 +01:00
goldsimon
731b83ac5f lowpan6.c: a netif input function must return ERR_OK only if the input pbuf was freed 2018-02-26 20:51:13 +01:00
goldsimon
fb5bbca1d9 lowpan6.c: move IEEE 802.15.4 definitions to their own header file
This is mainly a preparation to merge the two 6LoWPAN netifs
2018-02-26 20:38:41 +01:00
goldsimon
a022590f40 lowpan6.c: move netif-specific data to a common struct 2018-02-26 20:32:39 +01:00
Axel Lin
c28aa02820 lowpan6_ble: Convert to use pbuf_remove_header instead of pbuf_header
Signed-off-by: Axel Lin <axel.lin@ingics.com>
2018-02-26 10:20:05 +08:00
Axel Lin
265f6f5047 lowpan6_ble: Fix build warning if LWIP_RFC7668_LINUX_WORKAROUND_PUBLIC_ADDRESS==0
Fix unused parameter ‘public_addr’ build warning if
LWIP_RFC7668_LINUX_WORKAROUND_PUBLIC_ADDRESS==0.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
2018-02-25 12:05:24 +08:00
goldsimon
a3034a442b lowpan6_ble: fix compiling with LWIP_RFC7668_NUM_CONTEXTS==0 2018-02-24 11:39:31 +01:00
goldsimon
2ce3c79ec5 lowpan6_ble.c: travis complains... 2018-02-23 14:00:56 +01:00
goldsimon
c510e92cf4 get lowpan6_ble.c to compile 2018-02-23 13:16:14 +01:00
goldsimon
69eaafecca lowpan6_ble.c: fixed whitespace & indentation 2018-02-23 13:08:00 +01:00
Benjamin Aigner
10209ee788 Added a RFC7668 netif.
Works as expected, but some features are not implemented yet.

(See patch #9364: RFC7668 - 6lowpan over Bluetooth Low Energy -- a new netif)
(I've change the file names only; sg)

Signed-off-by: goldsimon <goldsimon@gmx.de>
2018-02-23 13:07:31 +01:00
Dirk Ziegelmeier
2501913cde Move ethernetif.c from lwIP main rep to contrib examples directory where it has a chance to be actually found by users 2018-02-19 07:46:56 +01:00
Dirk Ziegelmeier
47c55c3d96 Improve documentation for 6LOWPAN and SLIPIF 2018-02-18 17:49:54 +01:00
goldsimon
546a8c4860 Revert "vj_compress_tcp: help coverity to see we're not accessing out of bounds (this is a union)"
This reverts commit 2390eb68266fbe5bf76cab36cf1e357a6d51aabb.
I've already marked other issues like this as 'invalid', so do this here, too.
Although I don't like the code, there's not much use in fixing this in one place only.
2018-02-14 07:34:05 +01:00
goldsimon
2390eb6826 vj_compress_tcp: help coverity to see we're not accessing out of bounds (this is a union) 2018-02-13 12:47:00 +01:00
goldsimon
d4047ea1d1 Try to fix issues reported by coverity 2018-02-13 12:10:19 +01:00
goldsimon
e20e9bc3d4 Try to fix issues reported by coverity 2018-02-13 12:09:18 +01:00
goldsimon
9d087ad2d2 Add LWIP_ASSERT_CORE_LOCKED() to ppp (see task #14780)
Signed-off-by: goldsimon <goldsimon@gmx.de>
2018-02-03 22:13:32 +01:00
Dirk Ziegelmeier
330793d94d Fix bug #52880: ethernet_output() Compile error. 2018-01-14 09:24:41 +01:00
Dirk Ziegelmeier
653313cb37 Work on task #14780: Add debug helper asserts to ensure threading/locking requirements are met
Add LWIP_ASSERT_CORE_LOCKED() to several more places
2018-01-12 13:15:36 +01:00
Axel Lin
5b9f79680c lowpan6: Fix build warning when LWIP_6LOWPAN_IPHC=0
Fix below build warning if LWIP_6LOWPAN_IPHC=0.

../../../../lwip/src/netif/lowpan6.c:186:1: error: ‘lowpan6_get_address_mode_mc’ defined but not used [-Werror=unused-function]
 lowpan6_get_address_mode_mc(const ip6_addr_t *ip6addr)
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../lwip/src/netif/lowpan6.c:160:1: error: ‘lowpan6_get_address_mode’ defined but not used [-Werror=unused-function]
 lowpan6_get_address_mode(const ip6_addr_t *ip6addr, const struct ieee_802154_addr *mac_addr)
 ^~~~~~~~~~~~~~~~~~~~~~~~

Also correct comment typo: s/LWIP_6LOWPAN_HC/LWIP_6LOWPAN_IPHC/g

Signed-off-by: Axel Lin <axel.lin@ingics.com>
2017-12-24 12:46:11 +01:00
Axel Lin
975e23bf5e bridgeif: Remove redundant port_netif NULL test in bridgeif_send_to_port
portif = br->ports[dstport_idx].port_netif;
So no need to have NULL test for both br->ports[dstport_idx].port_netif
and portif.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Dirk Ziegelmeier <dirk@ziegelmeier.net>
2017-11-26 21:13:08 +01:00
Axel Lin
7a241b6b52 slipif: Fix unbalance SYS_ARCH_PROTECT in slipif_process_rxqueue()
Fixes: 3d1a306518a5 ("SLIP netif: add support for multiple input strategies (threaded, polling, RX from ISR)")
Signed-off-by: Axel Lin <axel.lin@ingics.com>
2017-11-08 19:48:00 +01:00
Dirk Ziegelmeier
98d5e06dba Silence gcc 7 warning about fall-through in case statement by adding a comment 2017-10-22 21:27:32 +02:00