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

197 Commits

Author SHA1 Message Date
Lotte Steenbrink
436a105ff7 AODVv2: fix mutex for route message creation 2015-04-10 07:13:35 -07:00
Oleg Hahm
fce1d4538e Merge pull request #2703 from cgundogan/rpl_rm_initializers
rpl: remove needless initializers
2015-04-10 11:48:52 +02:00
Oleg Hahm
bd828f109e Merge pull request #2350 from gebart/pr/sixlowpan-buffer-name
sixlowpan: rename global buffer->sixlowpan_buffer
2015-04-10 11:38:54 +02:00
Oleg Hahm
63c121528a Merge pull request #2624 from cgundogan/rpl_recv_DIS_multiple_dodags
rpl: check all dodags when receiving DIS messages
2015-04-10 00:20:13 +02:00
Oleg Hahm
540ee49e61 Merge pull request #2653 from cgundogan/rpl_remove_get_my_dodag_dependencies
rpl: remove get_my_dodag dependency by passing the dodag as parameter
2015-04-10 00:18:02 +02:00
Oleg Hahm
087b51e10b Merge pull request #2500 from fnack/nhdp_optimize_rx
sys/nhdp: Remove temp address lists to optimize hello processing
2015-04-09 18:43:18 +02:00
Lotte Steenbrink
ccc33ec619 AODVv2: Broken & Expired routes to Invalid routes 2015-04-02 10:45:26 -07:00
Joakim Gebart
f6bade32e6 rpl: Rename buffer->sixlowpan_buffer 2015-03-25 08:00:47 +01:00
Cenk Gündoğan
7e19ef0536 rpl: remove needless initializers 2015-03-24 14:07:58 +01:00
Cenk Gündoğan
9bdcfcbe33 rpl: edit the debug message for instance == NULL 2015-03-22 19:07:31 +01:00
Ludwig Ortmann
cf637942cc *: add missing blank lines
Some functions had no blank lines to separate them from their
neighborhood.
2015-03-21 16:34:59 +01:00
Joakim Gebart
8865d9f25f rpl: Fix DEBUG print which broke in 5585413ce0
rpl: pass rpl_instance_t directly instead of its id #2604
https://github.com/RIOT-OS/RIOT/pull/2604
2015-03-21 14:55:17 +01:00
Martine Lenders
4c6ec9b013 Merge pull request #2596 from kushalsingh007/unused
CppCheck: Removing unusedVariable warnings
2015-03-20 22:20:38 +01:00
Cenk Gündoğan
743f529efd Merge pull request #2610 from cgundogan/rpl_remove_get_my_dodag_for_dio_dao
rpl: remove some usages of rpl_get_my_dodag
2015-03-20 20:19:43 +01:00
Cenk Gündoğan
f2b9b51adb Merge pull request #2644 from cgundogan/rpl_pass_dodag_to_find_parent
rpl: pass dodag to the rpl_find_parent function
2015-03-20 19:52:33 +01:00
kushalsingh007
e3d0471183 CppCheck: Removing unusedVariable warnings
-Suppressed warning which occured due to VDEBUG not being used.
-Added comment explaining reason to suppress the warning.
2015-03-20 04:26:30 +05:30
Cenk Gündoğan
1ab4f7c975 rpl: remove get_my_dodag dependency by passing the dodag as parameter 2015-03-19 19:54:30 +01:00
Cenk Gündoğan
5fb526fde8 rpl: pass dodag to the rpl_find_parent function 2015-03-19 19:47:08 +01:00
Cenk Gündoğan
1cd351e6b0 rpl: check all dodags when receiving DIS messages 2015-03-19 19:44:58 +01:00
Cenk Gündoğan
27f0c2fd3f rpl: remove some usages of rpl_get_my_dodag 2015-03-19 19:08:01 +01:00
Cenk Gündoğan
d7722c1766 rpl: expose global rpl_dodags variable 2015-03-19 11:03:43 +01:00
Oleg Hahm
dd0a6496f7 Merge pull request #2608 from cgundogan/rpl_make_send_DAO_aware_of_multiple_dodags
rpl: make send_DAO aware of multiple dodags
2015-03-18 17:17:25 +01:00
Oleg Hahm
f228586d9f Merge pull request #2609 from cgundogan/rpl_make_send_DIO_aware_of_multiple_dodags
rpl: make send_DIO aware of multiple dodags
2015-03-18 17:16:33 +01:00
Oleg Hahm
c396a9009e Merge pull request #2604 from cgundogan/rpl_use_instance_t_as_parameter
rpl: pass rpl_instance_t directly instead of its id
2015-03-18 14:45:48 +01:00
Joakim Gebart
569d291838 Merge pull request #2543 from cgundogan/rpl_use_global_address
rpl: use global ip addresses instead of link-local ones
2015-03-18 09:21:14 +01:00
Cenk Gündoğan
f8408308d7 rpl: remove call to rpl_get_my_preferred_parent() in rpl_send_DAO, because of dependency to rpl_get_my_dodag() 2015-03-17 19:56:34 +01:00
Cenk Gündoğan
442e7b10b9 rpl: make send_DAO aware of multiple dodags 2015-03-16 12:38:17 +01:00
Cenk Gündoğan
4346513e4b rpl: make send_DIO aware of multiple dodags 2015-03-16 12:26:17 +01:00
Cenk Gündoğan
a7c3807c29 rpl: remove unnecessary check for multiple instances 2015-03-16 09:52:06 +01:00
Cenk Gündoğan
5585413ce0 rpl: pass rpl_instance_t directly instead of its id 2015-03-16 09:35:14 +01:00
Fabian Nack
133aeedea5 sys/nhdp: Add interface specific packet sequence number 2015-03-13 07:06:40 +01:00
Fabian Nack
48ce3d467c sys/nhdp: Remove temp address lists to optimize hello processing 2015-03-13 06:57:06 +01:00
Fabian Nack
4d4b4bf348 sys/nhdp: Allocate memory for NHDP's if table static 2015-03-12 14:57:18 +01:00
Cenk Gündoğan
5d382b4ac8 rpl: use global ip addresses instead of link-local ones 2015-03-10 20:51:58 +01:00
kushalsingh007
3dbe4cd8af Reducing the scope of variable after running static code analyser.
- Part of fix for issue number 480 (variableScope)
- Suppression of warnings that are not needed.
2015-03-10 22:03:18 +05:30
Cenk Gündoğan
c60450df4c rpl: implement basic prefix information option for DIOs 2015-03-03 19:36:14 +01:00
Joakim Gebart
dcebfe55a4 Merge pull request #2491 from cgundogan/rpl_use_all_rpl_nodes_addr
rpl: use the all-RPL-nodes multicast address
2015-02-28 11:08:09 +01:00
Joakim Gebart
1eee289cb4 rpl: Make addr_str static 2015-02-26 09:56:52 +01:00
Cenk Gündoğan
1d4d3fa1c1 rpl: use the all-RPL-nodes multicast address 2015-02-25 20:33:13 +01:00
Fabian Nack
d9480cadfc sys - nhdp: Add nhdp impl 2015-02-24 11:50:58 +01:00
Cenk Gündoğan
d6e8e57d1f rpl: merge storing/non-storing to reduce the amount of redundant code 2015-02-21 15:36:28 +01:00
Cenk Gündoğan
fbf3296ca5 Merge pull request #2462 from BytesGalore/rpl_fix_hardfault_on_no_ocp
sys/net/routing/rpl: catch hardfault when OCP from DIO is not supported
2015-02-21 13:32:01 +01:00
Oleg Hahm
8ad299882c Merge pull request #2191 from cgundogan/rpl_remove_send_mutex
rpl: remove send mutex
2015-02-21 13:30:09 +01:00
BytesGalore
9e0ccc395a sys/net/routing/rpl: catch hardfault when OCP from DIO is not supported 2015-02-19 19:05:27 +01:00
BytesGalore
5a0eba2b1e sys/net/routing/rpl: apply correct byte order for RPL messages 2015-02-17 20:41:11 +01:00
BytesGalore
4b189b6e58 rpl: added configurable RPL MOP on compile time
- e.g. `make RPL_MOP=RPL_MOP_NON_STORING_MODE`
     - changed the MOP defines to have `RPL_MOP_*` prefix
2015-02-05 19:17:51 +01:00
Cenk Gündoğan
13e7bbccfc rpl: wrong length for DAO options 2015-02-03 11:47:07 +01:00
Cenk Gündoğan
c14217c68e rpl: introduce constants for PREFIX_INFO length with/without RPL_OPT_LEN 2015-02-03 10:41:28 +01:00
Cenk Gündoğan
26095013a1 rpl: introduce constants for DODAG_CONF length with and without RPL_OPT_LEN 2015-02-03 10:41:27 +01:00
Cenk Gündoğan
432688accb rpl: wrong length of DIO options
Currently, the DIO options `dodag conf` and `prefix info` are off by two
bytes in their `length` field. The RFC states, that the length field
should not include the option `type` field and the `length` field (two bytes).

For Prefix Info Option: Option Length: 30 (RFC 6550, P.61)
For Dodag Conf  Option: Option Length: 14 (RFC 6550, P.52)

Wireshark complains about DIOs as malformed packets, otherwise.
Can be reproduced by running the rpl_udp example and logging the DIOs
via wireshark.
2015-02-03 10:41:27 +01:00
Cenk Gündoğan
eb202ffe6d rpl: remove unsused warning 2015-02-02 12:54:58 +01:00
Cenk Gündoğan
f3c6ef7e66 rpl: remove common globals by prefixing with static 2015-02-02 12:54:58 +01:00
Oleg Hahm
6715bccf5b Merge pull request #2190 from cgundogan/rpl_new_parent_dodag_assignment
rpl: wrong dodag assignment to parent
2015-01-29 11:24:38 +01:00
Cenk Gündoğan
993f7cc7c6 rpl: remove rpl_send_mutex
This PR is based on #2155.
Since RPL/Trickle is only using one thread in #2155, the send mutex becomes
obsolete and can be removed safely.
2015-01-27 12:35:41 +01:00
Joakim Gebart
f71f8322d9 Merge pull request #2348 from gebart/pr/fno-common-fixes1
Removing (some) common globals, working towards #2346
2015-01-26 09:11:10 +01:00
Joakim Gebart
c5e1683a8c rpl: Make ipv6_buf local. 2015-01-23 19:46:26 +01:00
Joakim Gebart
526a84093b rpl: Remove extra definition of rpl_process_pid. 2015-01-23 19:46:26 +01:00
Joakim Gebart
6a810fe989 sys/net/routing: reduce scope of globals in etx_beaconing.c 2015-01-23 18:01:28 +01:00
Cenk Gündoğan
c4b01b87bc rpl: RPL/Trickle with only *one* thread
This PR proposes an approach to reduce the thread count of RPL.

The current RPL/Trickle stack needs about 5 threads to handle tasks
like updating the trickle timer, routing entries and the transmission of
DAOs.

This PR modifies RPL to use only one thread with a looped `msg_recv()` call.
The message is then multiplexed to the right task.
2015-01-14 19:42:13 +01:00
Oleg Hahm
34908f11a9 Merge pull request #2257 from cgundogan/rpl_fix_srh_for_storing_mode
rpl: node-to-node communication broken (rpl_udp)
2015-01-13 18:49:14 +01:00
Oleg Hahm
a31bc97e1c Merge pull request #2253 from cgundogan/rpl_srh_remove_relay_debugf
rpl: move msg_send_receive outside of DEBUGF
2015-01-13 14:43:18 +01:00
Ludwig Ortmann
154a6b5d22 Merge pull request #2268 from cgundogan/rpl_cleanup_no_routing_table
rpl: remove routing table dependent code
2015-01-13 14:09:32 +01:00
Oleg Hahm
0421ab96ee Merge pull request #2245 from cgundogan/rpl_remove_routing_decision_in_rpl_send
rpl: remove decision to drop packets in rpl_send
2015-01-13 14:04:53 +01:00
Cenk Gündoğan
a06c667af5 rpl: remove routing table dependent code
This PR removes code depending on a routing table with an entries
size > 0. Currently, all those functions and symbols are compiled into the binary,
even when there is no effective space in the routing table (as it is the
case for normal nodes in non-storing mode)
2015-01-13 13:11:32 +01:00
Cenk Gündoğan
22f466ab80 rpl: remove needless call to rpl_get_of_for_ocp
This line has no further significance to the application other than burning cpu cycles.
2015-01-08 09:40:08 +01:00
Cenk Gündoğan
da12f62751 rpl: remove return value completely as it is not really used, gives
`unsused` warning otherwise
2015-01-08 09:31:30 +01:00
Lotte Steenbrink
3591894698 aodvv2: fix calls to DEBUG()
``debug.h`` was included before ``ENABLE_DEBUG`` was set to 0 or 1. In consequence, setting ``ENABLE_DEBUG`` to 1 had no effect. This should be fixed now.
2015-01-06 15:57:12 -08:00
Lotte Steenbrink
465f9096b1 aodvv2: call aodv_packet_reader_handle_packet() when recieved packet is *not* our own.
For some reason the call to aodv_packet_reader_handle_packet() got lumped in with the check if a received packet is ours. In consequence, all packets which were not sent by the node that received them (i.e. the important ones) were silently ignored, preventing any routes from being established.
This should be fixed now: foreign packets are now handled again, while own packets are ignored.
Also, I made the corresponding comment a bit less passive-aggressive.
2015-01-06 12:54:14 -08:00
Cenk Gündoğan
40c28dd3bf rpl: node-to-node communication broken (rpl_udp)
Calling ipv6_iface_set_srh_indicator with storing mode breaks the
neighbour discovery code in **ip.c:480**.
Thus, it is not possible to use `send <n> test` from node to node.
2015-01-06 18:04:54 +01:00
Cenk Gündoğan
843be5ad6d rpl: minor changes to comments in rpl_storing.c 2015-01-06 13:24:42 +01:00
Cenk Gündoğan
d4b57b301d rpl: move msg_send_receive outside of DEBUGF
When the debug flag is set to off, the call to msg_send_receive will be
ignored. @fabianbrandt am I missing something?
2015-01-06 13:04:26 +01:00
Oleg Hahm
be67f662ac Merge pull request #2248 from cgundogan/rpl_remove_faulty_comment
rpl: remove faulty comment
2015-01-06 12:55:15 +01:00
Cenk Gündoğan
8b7386fc8b rpl: remove faulty comment
Can be misleading since we also support non-storing mode now.
2015-01-06 10:24:25 +01:00
Cenk Gündoğan
652b4f84a6 rpl: remove decision to drop packets in rpl_send
The dicision to drop a packet if no next hop exists is made by the
`rpl_get_next_hop` function, which is initialized as the routing
provider for rpl applications. Hence, it seems needless to do this in the
`rpl_send` function.
2015-01-06 09:34:15 +01:00
Cenk Gündoğan
36893ded6d rpl: typo childs -> children 2015-01-06 09:23:56 +01:00
Cenk Gündoğan
aca1ade01c rpl: cleanup, changing structdefs into typedefs 2014-12-26 21:13:33 +01:00
Cenk Gündoğan
eeafd426d5 rpl: wrong dodag assignment to parent
`dodag` is the representation of the incoming DIO and thus is temporary.
Assigning this to the parent would lead to failure when reading/writing
to/from the parent's dodag attribute later.
`my_dodag`on the other hand is the local persistent representation of
the DIO's dodag and therefore the right choice.
2014-12-14 09:41:42 +01:00
BytesGalore
0ced7338e4 sys:net:routing:rpl made the number of routing entries configurable on compile time. 2014-12-12 09:42:33 +01:00
Cenk Gündoğan
42d0fe3f78 rpl: removing unnecessary recv_mutex
In the main function of RPL (rpl_process thread)
a mutex is used after receiving a message via msg_recv.
However, this mutex is never used in another thread and thus is rendered
obsolete.
2014-12-05 16:31:41 +01:00
Oleg Hahm
312e2b10a8 Merge pull request #2146 from cgundogan/rpl_unused_parameter_warning_nonstoring
rpl: make unused parameter warning disappear
2014-12-05 15:11:01 +01:00
Cenk Gündoğan
6bfb82ca13 rpl: make unused parameter warning disappear 2014-12-05 14:16:11 +01:00
Cenk Gündoğan
8d31f8b8ed rpl: fix offset for transit buf
As a result of PR #1404, entries will not be added to the routing table
when running in storing mode, although it is supposed to do so.
You can verify by running rpl_udp and call *route* on the dodag-root.

This PR fixes the wrong offset calculation.
2014-12-05 13:45:22 +01:00
Ludwig Ortmann
28e5b1bb9a Merge pull request #2134 from cgundogan/rpl_addr_str_debug_fix
rpl: addr_str not renamed to addr_str_mode
2014-12-04 11:34:40 +01:00
Cenk Gündoğan
0f66a9e06e rpl: addr_str not renamed to addr_str_mode
In PR #1404 addr_str was renamed to addr_str_mode,
but at some places it was still referenced as addr_str.
When enabling debug messages, the compiler complains.
2014-12-04 10:46:59 +01:00
Oleg Hahm
c92effaead debug: removed superfluous additional debug flag 2014-12-03 22:59:14 +01:00
Hinnerk van Bruinehsen
59a6e5836b lint: fix uselessAssignmentArg start_index 2014-11-28 01:10:35 +01:00
Fabian Brandt
12cd62c689 Introduction of RPL non-storing mode.
This implementation is based on RFC 6550 with addition of RFC 6554 (Source Routing Header for RPL). Both can be found under the following links:
- http://tools.ietf.org/html/rfc6550
- http://tools.ietf.org/html/rfc6554

The PR provides basic functionality for handling and forwarding packages in non-storing mode. In addition the structure of the previous implemented RPL storing mode is now revised, so that readability and modularity is increased. The following features are implemented:
- building function for a SRH and integration in common packets
- source-route build algorithm based on the structure of the DODAG
- an RPL-based interpretation of the SRH and removal at destination
- new structure for RPl-module with extracted beaconing-functionality
- leaf nodes are now supported

There are some missed goals and should be included in future updates:
- building a common routing table structure for different types of routing protocols
- routing tables are statically assigned via source code, future update should have an optional variable at build-time, which sets the size of the routing table depending on the desired functionality of a node in the network (root, node, leaf)
2014-11-27 21:42:40 +01:00
Oleg Hahm
b358d8517f Merge pull request #1080 from fabianbrandt/of_manager
Introduction of an of-manager for RPL.
2014-11-27 18:17:18 +01:00
Fabian Brandt
38d9b42762 Introduction of a of-manager for RPL.
The of-manager should gather all available of´s and initialize the prefered one, based on rpl_config.h.
2014-11-27 17:18:54 +01:00
Lotte Steenbrink
0c67c02047 Add the AODVv2 Routing Protocol
This PR depends on #1766.

It contains a minimal implementation of the AODVv2 routing protocol.
*Not* implemented are:

	- AckReqs
	- alternate metrics
	- multiple interfaces
	- clients and Client Networks
	- buffering
	- all addresses, TLVs, and features that are marked as optional

An example application can be found at https://github.com/Lotterleben/RIOT-AODVv2/tree/master/aodvv2_demo.

The implementation relies heavily on a functioning Neighbor Discovery Protocol.
It might be necessary to fill the neighbor cache manually with the current state
of RIOTs NDP implementation.

The value of AODVV2_MAX_UNREACHABLE_NODES has been chosen arbitrarily and will be subject to
future improvement.

Please note that based on my experience, with the default transceiver
buffer size (3) of the native port, about 2/3 of the route discoveries
will fail. This has been addressed in issue #1747. It is advised to increase
the transceiver buffer size when using AODVv2 as a routing protocol.
2014-11-27 03:50:20 -08:00
Lotte Steenbrink
c0ffbf52d2 Simplify rpl_clear_routing_table()
Instead of looping over the entire table and setting every entry to 0, memset the entire table at once.
2014-11-25 12:01:21 -08:00
BytesGalore
de3c3cebd0 c++: sys: add extern C to header files 2014-11-08 20:09:55 +01:00
Oleg Hahm
5cf154223b trickle: increase stacksize for timer thread
printf is used in this thread
2014-10-30 21:27:12 +01:00
Oleg Hahm
762e9492a6 Merge pull request #1528 from OlegHahm/silent_rpl
rpl: mute RPL
2014-09-29 10:56:10 +02:00
Hinnerk van Bruinehsen
57b998e4a1 cpu/examples/sys/drivers: reduce scope of variables 2014-09-13 19:03:40 +02:00
Oleg Hahm
46d5947044 rpl: mute RPL
Removes all but one occurrence of printf and puts within routing (the
remaining puts is called from a debug function.
2014-09-10 18:04:17 +02:00
Ludwig Ortmann
b7992922ce fix license headers in non-.c files 2014-08-23 16:16:26 +02:00
Oleg Hahm
400fb29a6b licenses: updated some missing licenses in headers 2014-08-21 23:52:42 +02:00
Oleg Hahm
8b34d323e2 rpl: moved headers to sys/net/include 2014-08-21 21:34:45 +02:00
Oleg Hahm
aa2ecf6216 initialize kernel_pid_t correctly 2014-08-07 16:31:27 +02:00