Commit Graph

69 Commits (9c88fbce2cad06657edf325322f83f87dfda44e5)

Author SHA1 Message Date
Martine Lenders c80c04d6ed netreg: Initial import 8 years ago
Martine Lenders b208371163 Merge pull request #2417 from authmillenon/netif/feat/initial
netif: Initial import of ng_* version
8 years ago
Martine Lenders 7317097db2 pkt: simplify API 8 years ago
Martine Lenders 894cd964f9 netif: Initial import of ng_* version 8 years ago
Hauke Petersen 87e2b6db50 ng_net: added new version of NETAPI 8 years ago
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

This PR modifies RPL to use only one thread with a looped `msg_recv()` call.
The message is then multiplexed to the right task.
8 years ago
Oleg Hahm 2d874af904 Merge pull request #2158 from authmillenon/pkt/feat/initial-import
pkt: Initial import
8 years ago
Martine Lenders 99e2feca48 pkt: Initial import
This data type is bound to replace the `(netdev_hlist_t *ulh, void
*data)` tuples in netapi and netdev.
8 years ago
Martin Lenders 96502e2fd4 sys: net: Initial import of a basic MAC protocol layer 8 years ago
Martine Lenders 115420a510 Merge pull request #1228 from OlegHahm/l2_ping
net: Link Layer Ping
8 years ago
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

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
Martine Lenders b7a079471a sys: net: Initial import of a general interface to a network protocol 8 years ago
Oleg Hahm c692b3a00a net: move ping to sys/net
* moved the former ping module from `sys` to `sys/net/link_layer` and renamed to l2_ping
* use defaulttransceiver instead of cc110x
* some refactoring
8 years ago
René Kijewski 9a15a6def5 make: easify {sys,drivers}/Makefile
Currently you need to add every new sys and driver module into the
respective Makefile. This requires rebasing if another module was merged
in the meantime.

This PR allows you to omit the entry to {sys,drivers}/Makefile, if the
subfolder has the same name as the module name, which should be sensible
in most cases.
8 years ago
Martine Lenders 3519a3d9be sys: Initial import of analytical object dump (od) module 9 years ago
Martine Lenders a569f2b92c net: Initial import of a global packet buffer 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 0ab1b86e5f Add generic `char` pipe implementation 9 years ago
Hauke Petersen 839955cd05 sys: added color module 9 years ago
René Kijewski 467b41ad49 make: easifier usage of module subdirectories
Many modules have subdirectories. Often these subdirectories should only
be included under certain circumstances. Modules that use submodules
currently need to use this pattern:

DIRS = …

all: $(BINDIR)$(MODULE).a
   @for i in $(DIRS) ; do $(MAKE) -C $$i ; done ;

include $(RIOTBASE)/Makefile.base

   @for i in $(DIRS) ; do $(MAKE) -C $$i clean ; done ;

This PR moves the `all:` and `clean::` boilerplate into `Makefile.base`.
9 years ago
René Kijewski 1b89f334e3 msp430: provide oneway-malloc implicitly
For MSP430 boards oneway-malloc is already used *if* `malloc.h` was
included. The problem is that `malloc.h` is not a standard header, even
though it is common. `stdlib.h` in the right place to look for
`malloc()` and friends.

This change removes this discrepancy. `malloc()` is just named like
that, without the leading underscore. The symbols now are weak, which
means that they won't override library functions if MSP's standard
library will provide these functions at some point. (Unlikely, since
using `malloc()` on tiny systems is less then optimal ...)

Closes #1061 and #863.
9 years ago
René Kijewski 96fba8a19b sys:crypto: put ciphers into one module 9 years ago
Fabian Brandt ef5eaff1bc ETX-functionality is now part of a common routing-module 9 years ago
René Kijewski 300d6b3e35 Make: exterminate 'clean' buildtarget
Closes #993.

We do not need to descend into the modules to know what to do on
`make clean BOARD=blub`. We can just invoke `rm -rf bin/blub`.

This PR only keeps the descending into the USEPKGs, since they might
want to delete cached/downloaded/extracted data.
9 years ago
René Kijewski fbc4531877 make: replace findstring with filter in sys/Makefile 9 years ago
René Kijewski de29e4184c Add include paths automatocally for USEMODULES
Application developers use `$(USEMODULES)` in their Makefiles to have
the relevant functionally automagically added to their apps. This even
does basic dependency tracking by means of `Makefile.dep`.

But an important thing is missing: the automatic adding of include
paths. This is inconvenient, error prone, and will hinder the RIOT core
developers in future to change folder structures.
9 years ago
Christian Mehlis 60feb7ea37 posix: move posix semaphore in posix module 9 years ago
Ludwig Ortmann 9b61d95545 make: don't ignore failures in for loops
Add `|| exit 1` to all constructs like `@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;`, so that compilation stops on the first error.
9 years ago
Martin Lenders 4e39cbdd54 Put 6LoWPAN border router in its own module 9 years ago
Martin Lenders 848ac70f90 Implement net_if module 9 years ago
Christian Mehlis e865022a31 pthread: initial add 9 years ago
Oleg Hahm 6c0482b976 Merge pull request #701 from Kijewski/issue-672
Use `filter` instead of `findstring`
9 years ago
René Kijewski 24defa5289 Merge pull request #572 from Kijewski/quad-math
Add quadword math library
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
René Kijewski 76bbac4c2b Add quadword math lib
GCC implicitly calls functions like __adddi3 to handle arithmetics on
long long.

Copied from
which is curtesy of the OpenBSD project (3 clause BSD license).
9 years ago
Martin Lenders f9ae76fa4b Start POSIX net [pnet] module 9 years ago
Oleg Hahm c7d985d371 removed redundant include pathes from Makefiles 9 years ago
Oleg Hahm 593ee623b6 simplify and unify include pathes
* exporting include path in sys is mandatory for subfolders
* removed duplicate object file in linker call
9 years ago
Oleg Hahm 7642dd0f1d moved net_help into crosslayer subfolder 9 years ago
Oleg Hahm 59e55c354c moved sixlowpan into network_layer subfolder 9 years ago
Oleg Hahm 2f20e9db51 moved protocol-multiplex into link_layer subfolder 9 years ago
Oleg Hahm 38be829901 moved ieee802154 into link_layer subfolder 9 years ago
Oleg Hahm acd304e1cc moved RPL into routing subfolder 9 years ago
Oleg Hahm a7d3092a4e moved destiny into transport_layer subfolder 9 years ago
Hauke Petersen 05419a5547 Initial import of crypto libs from SecureMicroMesh
- Imported files from secure micro mesh library
- added Makefiles and included libs into sys/Makefile
9 years ago
Christian Mehlis 8ae7750263 import ccn lite 10 years ago
Christian Mehlis 39d5299f69 posix: add semaphore implementation 10 years ago
Oleg Hahm 46deefe0f8 make Makefiles proof for spaces in $PATH 10 years ago