Commit Graph

46 Commits (57e54e254dbda1c0a4a8fd88eb37bbec33c2b1d0)

Author SHA1 Message Date
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.
8 years ago
Kaspar Schleiser 9ce0b676b4 core: sys: move ringbuffer to core 8 years ago
Thomas Eichinger dfb1b56fad drivers/at86rf231: refactoring of the at86rf231 radio driver
* deploy extended operation mode
* cleanup
* implement netdev 802154.h interface
9 years ago
Fabian Nack 07fff37efe drivers - cc110x_ng: rename ng driver to legacy 9 years ago
Oleg Hahm 9cf21545fa make: fix dependencies
uart0 depends on POSIX, not the other way around.
9 years ago
Oleg Hahm cf49dec303 make: fix the order of Makefile.dep for timex
The order of modules in Makefile.dep matters.
9 years ago
René Kijewski f49bd3e660 make: add Makefile.features telling the BOARDs' features
Please see #1715.
Closes #1715.

This PR implements the new Makefile variables "FEATURES_PROVIDED" and
"FEATURES_REQUIRED". A board *can* have a new file `Makefile.features`
which looks like:

```make
FEATURES_PROVIDED = transceiver
```

An application can have a corresponding line

```make
FEATURES_REQUIRED = transceiver
```

If the selected BOARD does not fulfil the requirements of the
application, then a *warning* is issued at compile time.

This change only includes the feature "transceiver", further features
are expected to be listed in further PRs. The requirement "transceiver"
is automatically added if the application uses the module
"defaulttransceiver".

`make buildtest` understands the new feature listing, so the user won't
need to add boards to `BOARD_BLACKLIST` manually.

Part of the change are the added Make targets
* `info-features-missing`, which prints the required features
  `\setminus` the provided features. The output is empty if there are no
  features missing.
* `info-boards-features-missing`, the same as `info-features-missing`
  but as a table for all boards, but heeded `BOARD_WHITELIST` and
  `BOARD_BLACKLIST`.

Applications don't have to use this new feature. This change does not
break existing Makefile.
9 years ago
Martin Lenders 30c92efa43 Initialize addresses from CPU ID 9 years ago
Cenk Gündoğan 710c7e6cf6 transport_layer: Splitting UDP and TCP
Currently, the tcp and udp implementations are bound to each other in a
module called *destiny*. Thus, when using only one of them then the
other one gets also compiled into the binary and initialized,
which results in unnecessary RAM usage and workload for the CPU.

The approach in this PR defines a common module named *socket_base*,
which contains functions used by the posix layer. Compiled by it's own,
those functions return negative error codes, to symbolize upper layers
that they are not supported. When also including the modules *udp* or
*tcp* respectively, functions from *socket_base* get overwritten with the
correct functionality.

Defining *udp* or *tcp* in a Makefile also includes *socket_base*.
Defining *pnet* in a Makefile also includes *socket_base*.
9 years ago
Kevin Funk e8141ca5d8 cbor: CBOR implementation for RIOT-OS
This is a malloc-free implementation of the Concise Binary Object
Representation (CBOR) data format for the RIOT-OS.

This implementation mostly stand-alone, and it should be pretty easy to
port to other platforms. We're only using the C STL and some custom
network-related functionaliy which could be easily replaced by depending
on arpa/inet.h.

The CBOR API is straight-forward to use and provides encoding/decoding
functionality for all major C types, such as:
- int
- uint64_t
- int64_t
- float
- double
- char*
- struct tm
- time_t

It is possible to conditionally compile this module via CFLAGS:
- CBOR_NO_SEMANTIC_TAGGING: All semantic-tagging features removed
- CBOR_NO_CTIME: All ctime related features removed
- CBOR_NO_FLOAT: All floating-point related features removed
- CBOR_NO_PRINT: All features depending on printf removed
9 years ago
René Kijewski d7b4f1a5ba pkg: add USEPKG module "libfixmath"
This PR adds the USEPKG module "libfixmath".
It integrates https://code.google.com/p/libfixmath/ into RIOT, cmp. #1457.
9 years ago
René Kijewski 0ab1b86e5f Add generic `char` pipe implementation 9 years ago
Ludwig Ortmann 44d6afd5ad make: replace spaces with tabs in Makefile.dep 9 years ago
Ludwig Ortmann a49f16b1ea make: model net_if dependency on net_help 9 years ago
Hauke Petersen 231e8eb3e9 make: removed shell_commands dependency 9 years ago
Hauke Petersen 9e0653afbb drivers: added rgbled driver 9 years ago
René Kijewski 96fba8a19b sys:crypto: put ciphers into one module 9 years ago
René Kijewski a8064fd97c Automatically remove dups in `$(USEMODULE)` 9 years ago
Fabian Brandt ef5eaff1bc ETX-functionality is now part of a common routing-module 9 years ago
Christian Mehlis 60feb7ea37 posix: move posix semaphore in posix module 9 years ago
Christian Mehlis 1a438b64a5 posix: added sleep and usleep 9 years ago
Martin Lenders 00acab920b Let IPv6 and ICMP use new 6LoWPAN layer (+fixes) 9 years ago
Martin Lenders 4e39cbdd54 Put 6LoWPAN border router in its own module 9 years ago
Martin Lenders 4a6495987e Add shell commands for interface configuration 9 years ago
Martin Lenders 848ac70f90 Implement net_if module 9 years ago
Oleg Hahm 93e32953b3 always build and initialize hwtimer
Eliminates special treatment of the hwtimer module and makes it a
mandatory part of the kernel.
9 years ago
Martin Lenders 24b63bd9f0 Update libcoap 9 years ago
René Kijewski 4a12c91d95 Fix cc110x vs cc110x_ng problems 9 years ago
René Kijewski d86509db66 Use `filter` instead of `findstring`
See #672
9 years ago
Ludwig Ortmann 2525920426 remove trailing whitespace and newlines 9 years ago
Ludwig Ortmann 2ab55174a7 model uart dependency on posix 9 years ago
Martin Lenders 03f458ce69 Fix module dependencies for 802.15.4 drivers 9 years ago
Oleg Hahm 8c0b78925d add vtimer dependencies to Makefile.dep 9 years ago
Martin Lenders 96489b85c6 Define stdin, stdout and stderr 9 years ago
Martin Lenders f9ae76fa4b Start POSIX net [pnet] module 9 years ago
authmillenon 9bfcc8df99 Fix sixlowpan dependencies 10 years ago
Martin Lenders c02a097232 Add module dependancies for destiny 10 years ago
Oleg Hahm b64fb65935 Merge branch 'agilefox_clean' of https://github.com/AlaeddineWeslati/RIOT into AlaeddineWeslati-agilefox_clean
Conflicts:
	sys/include/transceiver.h
	sys/transceiver/transceiver.c

Additional changes:
* allow for multi-transceiver initialization
* change packet reception to old implementation
10 years ago
Martin Lenders b944a48da9 Set up new directory structure 10 years ago
Alaeddine WESLATI 11bb09b7f8 started adding at86rf231 driver
at86rf231 TX and RX

driver is using vtimer instead of hwtimer_ functions, TO CHECK

vtimer debug function prototype fix
10 years ago
Oleg Hahm 956f0e8656 fix for #87, replacing - with _ in module protocol_multiplex 10 years ago
Oleg Hahm f7ecc704a4 fixed includes and include pathes 10 years ago
Oliver Hahm 57cc002c67 Merge branch 'wsn430'
Conflicts:
	core/include/queue.h
	core/queue.c
	cpu/msp430-common/hwtimer_cpu.c
	cpu/msp430x16x/hwtimer_msp430.c
	sys/lib/hashtable.c
	sys/net/ieee802154/ieee802154_frame.c
	sys/shell/commands/sc_cc110x_ng.c
	sys/transceiver/transceiver.c
	sys/vtimer/vtimer.c
10 years ago
Oliver Hahm e6177e811a * moved cpu and board specific parts to corresponding Makefiles
* introduced variable for cpu folder
10 years ago
Oliver Hahm 8a175a5702 * added dependency for cc110x_ng to transceiver 10 years ago
Oliver Hahm 5ffe5a9c27 * renamed makefiles to Makefile 10 years ago