adamdunkels
8fe15f7b45
New packet attribute for specifiying MAC layer retransmissions; reorder and commented packet attributes
2010-02-28 09:19:43 +00:00
adamdunkels
970a9eb9c7
Increased neighbor lifetime to allow for longer neighbor announcement intervals
2010-02-28 09:19:04 +00:00
adamdunkels
7165a3866f
Significant rework of the Contiki data collection protocol:
...
* the new version makes use of MAC-layer feedback so that bad paths
can be identified quicker and then avoided.
* the new code uses transport layer ACKs that contain feedback from
the collect protocol: when a packet cannot be forwarded due to lack
of resources, the ACK contains a flag that indicates that the packet
could not be forwarded. ACKs also contain the routing metric of the
sender, which improves agility in face of rapid path changes.
* loop detection and management has been improved: with higher path
metric agility, the system is more prone to short-lived routing
loops. Instead of dropping looping packets, the new version adjusts
the routing metric for the routes that exhibit loops so that the
risk for future loops is reduced.
* make use of packet attributes to inform the MAC layer of how many
times packets should be retransmitted.
2010-02-28 09:18:01 +00:00
adamdunkels
b6b4941871
Made the number of MAC-layer retransmissions configurable on a per-packet basis, via a packet attribute
2010-02-28 08:35:16 +00:00
adamdunkels
ed88f487c8
Improved detection of link-layer ACKs; increased the time ContikiMAC waits when it has detected a link-layer ACK; increased the number of silence periods required to detect a CCA false positive
2010-02-28 08:33:21 +00:00
adamdunkels
fa1a96636e
Bugfix: the compile-time check for UIP_LLADDR_LEN previously generated a run-time error, when it should have generated a compile-time error
2010-02-28 08:30:39 +00:00
adamdunkels
ba0e50a7b7
Set the default number of MAC layer retransmissions for IPv6 packets to 2
2010-02-28 08:29:42 +00:00
joxe
0ab2bc9a31
upgraded sicslowpan to hc-06 - no 48 bit multicast compression support yet
2010-02-25 15:50:58 +00:00
nifi
b50d47fb80
added missing function in sicslowmac_driver
2010-02-23 22:45:11 +00:00
nifi
1cfcc8a73a
Removed the combined name of CSMA and NETSTACK_RDC. The name of NETSTACK_RDC can be accessed separately if needed.
2010-02-23 20:42:45 +00:00
nifi
c20047f657
Changed the network stack to use different structures for the different layers (network_driver, mac_driver, rdc_driver, radio_driver). This helps to avoid incorrect configuration.
2010-02-23 20:09:11 +00:00
adamdunkels
bb62749de7
Made debug printfs optional
2010-02-23 18:49:58 +00:00
adamdunkels
0ab2ba433f
Bugfix: the wrong callback pointer was passed to higher layers.
2010-02-23 18:49:45 +00:00
adamdunkels
ed52586e18
Rework of parts of the ContikiMAC code based on input from experimental results. When channel check is triggered because of a false positive, the new version checks the radio several times to make sure that there really is an incoming packet. Otherwise, the radio is switched off. Cleaned up and removed old unused code. Added a few temporary debugging mechanisms and functions.
2010-02-23 18:49:05 +00:00
adamdunkels
ca0417a923
Added the MAC layer callback functionality so that the Rime network layer gets information from the MAC about the status of sent packets: were they successfully transmitted, or was there a collisions? How many retries were there?
2010-02-23 18:38:05 +00:00
adamdunkels
f10eedab3e
Added debug printout
2010-02-23 18:37:15 +00:00
adamdunkels
2d13fecea7
Improved backoff management: timer is now doubled on every transmission, until the using module calls the neighbor_discovery_start() function again. Don't cancel the transmission even if a lower value arrives (this fixes a problem with multi-hop ETX propagaion).
2010-02-23 18:36:50 +00:00
adamdunkels
0eade2886c
Better loop handling: when a loop is detected, the neighbor to which the packet was originally sent gets an inflated ETX; made sure that collect without announcments work; increased timeouts, to work nicer in larger networks
2010-02-23 18:35:23 +00:00
adamdunkels
a4d9d6651b
Added the option to specify the old value to observers so that they can determine if the announcement should be sent out quicklier than otherwise
2010-02-23 18:32:44 +00:00
adamdunkels
b746b7fc06
Reworked the Rime/Chameleon interface so that packets now always hit Rime before Chameleon. Chameleon is now only called by Rime. This makes packet sniffing easier, and allows for sniffing packets after their header has been processed by Chameleon, thereby making per-packet power profiling much easier to implement
2010-02-23 18:29:53 +00:00
adamdunkels
d8cce42d28
Set the default radio driver to nullradio
2010-02-23 18:28:04 +00:00
adamdunkels
0b2b7bcdba
Removed inadvertedly left-over include file
2010-02-18 23:52:34 +00:00
adamdunkels
5cf3b83733
Common initialization code for the netstack
2010-02-18 23:15:26 +00:00
adamdunkels
f49ebfe1c4
Temporarily disabled rime route udp because it breaks with newest MAC interfaces
2010-02-18 21:53:08 +00:00
adamdunkels
e34eb54960
A work-in-progress rework of the Contiki MAC and radio layers. The
...
main ideas are:
* Separates the Contiki low-layer network stack into four layers:
network (e.g. sicslowpan / rime), Medium Access Control MAC
(e.g. CSMA), Radio Duty Cycling RDC (e.g. ContikiMAC, X-MAC), and
radio (e.g. cc2420).
* Introduces a new way to configure the network stack. Four #defines
that specify what mechanism/protocol/driver to use at the four
layers: NETSTACK_CONF_NETWORK, NETSTACK_CONF_MAC, NETSTACK_CONF_RDC,
NETSTACK_CONF_RADIO.
* Adds a callback mechanism to inform the MAC and network layers about
the fate of a transmitted packet: if the packet was not possible to
transmit, the cause of the failure is reported, and if the packets
was successfully transmitted, the number of tries before it was
finally transmitted is reported.
* NULL-protocols at both the MAC and RDC layers: nullmac and nullrdc,
which can be used when MAC and RDC functionality is not needed.
* Extends the radio API with three new functions that enable more
efficient radio duty cycling protocols: channel check, pending
packet, and receiving packet.
* New initialization mechanism, which takes advantage of the NETSTACK
#defines.
2010-02-18 21:48:39 +00:00
adamdunkels
f8c804e28b
ntikiMAC: a new radio duty cycling mechanism that uses a combination
...
of link-layer and MAC-layer mechanisms to achieve a very low power
consumption: during idle listening the radio is switched off between
99.2% and 99.6% of the time. One unicast transmission typically adds
between 0.07% and 1.2% additional radio time, depending on packet
size.
ContikiMAC uses the standard IEEE 802.15.4 message format and adds no
additional headers.
ContikiMAC is simple: it uses periodic two-shot channel sampling
during idle listening to keep the radio on-time down. Transmissions
are done with repeated transmissions until a link-layer ACK is
received.
2010-02-18 21:26:15 +00:00
adamdunkels
f5c48751b5
Reworked 802.15.4 header creation and parsing so that it works regardless of the size of the rimeaddr_t typedef
2010-02-18 21:00:28 +00:00
adamdunkels
2fbf21b2b3
Refactored the phase optimization functionality into a separate module
2010-02-18 20:58:59 +00:00
adamdunkels
515a391ee4
Removed left-over debug printfs
2010-02-15 23:31:05 +00:00
dak664
bb9afb4fb1
Remove compiler warning
2010-02-15 20:49:38 +00:00
adamdunkels
4bb0375251
Buffer name definition bugfix
2010-02-15 19:23:54 +00:00
adamdunkels
9bb149ca13
Bugfix by Raimondas Sasnauskas: TCP SYN duplicate receptions in the SYN_RCVD state was not correctly handled
2010-02-15 18:03:07 +00:00
adamdunkels
d67d1f7340
Major bugfix, found by Raimondas Sasnauskas: the TCP periodic timer was not started when a new connection request arrived. If there were no other active TCP connections, this means that the SYNACK would never be retransmitted, potentially leading to a forever stale TCP connection.
2010-02-09 12:58:53 +00:00
adamdunkels
4a522c96dd
Added debugging statements for packet drops
2010-02-08 21:59:49 +00:00
adamdunkels
2b6a651233
Added missing include, made debug statement more explicit
2010-02-08 21:59:21 +00:00
adamdunkels
2eba08e8f6
Made queuebuf statistics configurable, and off by default
2010-02-08 21:10:32 +00:00
adamdunkels
b98f7d891f
Bugfix: added missing queuebuf allocation
2010-02-06 20:50:24 +00:00
adamdunkels
671216c558
No need to clear the headers now that we explicitly save a queuebuf when sending fragments
2010-02-06 17:07:43 +00:00
adamdunkels
b6647b5630
Turns out that with cxmac, clearing the header after sending a packet is not enough to make fragmentation work. Instead, we allocate a queuebuf and restore the packet after from the queuebuf after sending it.
2010-02-06 09:42:49 +00:00
adamdunkels
494e692d0b
Bugfix: clear the header after sending a packet solves a problem with fragmentation; also prod the watchdog since fragment transmissions can take a long time with some low-power MAC protocol
2010-02-06 07:49:58 +00:00
adamdunkels
a68b4c40c4
Added a function to clear only the header part of the packetbuf
2010-02-06 07:48:52 +00:00
oliverschmidt
e88d209214
Adjusted process name to title case.
2010-02-05 19:13:05 +00:00
nifi
a1199721a6
Changed to use separate Contiki event type for ICMP6 notifications
2010-02-05 12:43:36 +00:00
oliverschmidt
5e66abda50
Initialize lastport in all cases it is defined.
2010-02-04 21:33:51 +00:00
adamdunkels
d8b0625e21
Bugfix: lastport must be defines both when UIP_ACTIVE_OPEN or UIP_UDP are defined (thanks Oliver!)
2010-02-04 21:14:45 +00:00
adamdunkels
7bcb106fa9
Disable the stream mode for TCP packets since it does not seem to work reliably with cxmac
2010-02-04 18:57:33 +00:00
adamdunkels
13f6673d04
Bugfix: drop incoming TCP and UDP packets where port numbers are zero
2010-02-04 11:17:42 +00:00
adamdunkels
d7b7b05d0e
Moved the neigbor_init() call to the collect module, since it is the only one that currently uses it
2010-02-03 20:38:33 +00:00
adamdunkels
75e1c0c8c7
Include contiki-conf.h to let the MAC channel check rate be configurable
2010-02-03 16:45:12 +00:00
adamdunkels
06d17c7e1c
Remove unused rtimer code
2010-02-03 16:44:43 +00:00
adamdunkels
4bffd277f5
Don't set the stream bit on outgoing TCP packets for now - it doesn't seem to play well with IPv6 and X-MAC
2010-02-03 16:44:19 +00:00
adamdunkels
36db5eb70b
Added debug printout
2010-02-03 01:18:24 +00:00
adamdunkels
e419eb3cc5
Retransmit packet if it didn't receive a MAC layer ack
2010-02-03 01:17:54 +00:00
adamdunkels
d68af249ec
Added a MAC layer return value that informs the caller that a packet did not receive a MAC layer acknowledgement
2010-02-03 01:17:32 +00:00
adamdunkels
4bc4f033e8
Increase the trickle resend interval for router advertisements
2010-02-03 01:13:17 +00:00
adamdunkels
181213124b
Added a configuration option for setting the MAC channel check rate (which must be a power of two). The configuration is independent of the MAC protocol.
2010-02-02 23:28:58 +00:00
adamdunkels
f66cd6d44e
Increased the forwarding queue to six packets to improve collection robustness
2010-02-02 21:44:05 +00:00
adamdunkels
901a128e7f
Reconfigured the timeouts to work better on top of a power-cycling radio mechanism
2010-02-02 21:12:29 +00:00
adamdunkels
28052c655f
Removed exit() calls that were unadvertedtly left in from testing
2010-02-02 21:10:38 +00:00
adamdunkels
0db31db624
Moved declarations to the start of each function
2010-02-02 21:09:06 +00:00
adamdunkels
fcf60e9260
Removed the csma_init declaration in the mac_driver struct since it isn't needed and it breaks sdcc
2010-02-02 20:45:58 +00:00
adamdunkels
cc2be0f111
Remove compiler warnings
2010-02-02 16:33:07 +00:00
adamdunkels
88c661b0c2
Rewrote the netif time code so that is avoids the use of floating point numbers; some code style fixes
2010-02-02 16:32:03 +00:00
adamdunkels
1a13d25d33
Revised version of the X-MAC implementation that uses a ctimer instead
...
of an rtimer for the periodic radio duty cycling. The benefit of this
implementation is that it leaves an rtimer free for user tasks. The
drawback is a slightly higher idle power consumption. This new version
is based on the current rtimer-based X-MAC.
2010-01-31 18:44:23 +00:00
adamdunkels
e4168db633
Bugfix: deallocate queuebuf only if there was no collision
2010-01-31 13:55:36 +00:00
adamdunkels
388c5d4244
Made the sicslowpan MAC layer reachable from outside modules
2010-01-28 13:50:51 +00:00
adamdunkels
2ae7ed827c
Increase the default X-MAC channel check rate to 4 Hz instead of 2 Hz
2010-01-28 13:40:47 +00:00
adamdunkels
f94d6df6f0
Bugfix: copy the originator address from the packetbuf into a local variable to avoid it being overwritten
2010-01-27 08:12:56 +00:00
adamdunkels
8430dab039
Typecast to fix nightly build problem
2010-01-27 07:36:31 +00:00
adamdunkels
9e5823f060
Made retransmission timeout configurable
2010-01-26 10:19:26 +00:00
adamdunkels
b728c0927c
Made number of duplicate announcements configurable
2010-01-26 10:18:55 +00:00
adamdunkels
cc3f609eaa
Bugfix for alignment issue. Added mechanism that allows five duplicate announcements before suppressing one's own.
2010-01-25 13:55:17 +00:00
adamdunkels
71ffde578e
Moved route_init() into mesh instead of the generic rime initialiation
2010-01-25 13:54:26 +00:00
adamdunkels
423e37f426
Added parameter to ipolite that specifies how many dups that are acceptable, before suppressing one's own packet
2010-01-25 13:54:06 +00:00
adamdunkels
0b58ca3b22
Bugfix: split full size TCP segments if they match the MSS definition, not only the buffer size definition
2010-01-25 13:53:15 +00:00
adamdunkels
7615a6cf47
Bugfix by Henrik Mäkitaavola: check that ICMP6 process is defined before invoking it
2010-01-25 13:37:05 +00:00
adamdunkels
4f3e8d565c
Added a simple CSMA (Carrier Sense Multiple Access) mechanism that
...
works on top of an underlying duty cycling mechanism. The CSMA layer
retransmits packets that could not be sent because of a collision was
detected.
2010-01-25 11:46:44 +00:00
adamdunkels
7ad93e5d18
Added a field to the struct mac interface:
...
channel_check_interval(). This function returns the interval by which
the duty cycling mechanism checks the radio channel for activity. It
is used by higher layer mechanisms to determine suitable timeouts for
retransmissions.
2010-01-25 11:43:32 +00:00
fros4943
26e0bab11a
bugfix: alignment problem caused by previous bugfix
2010-01-21 11:39:35 +00:00
fros4943
3db4f36c3e
removed compiler specific attribute
2010-01-20 09:58:16 +00:00
adamdunkels
c962f49516
Alignment bugfix
2010-01-18 21:27:21 +00:00
adamdunkels
743e93e650
Do not remove encounters - there is no need to, as they are only an optimization
2010-01-14 20:14:03 +00:00
nvt-se
a03e899c27
Signal the result of transmissions attempts made in the mesh module. Patch from Moritz Struebe
2009-12-18 14:57:15 +00:00
nifi
7b2b93e6e6
clear transmission flag if send failed
2009-12-18 14:49:42 +00:00
adamdunkels
f4e6758b22
Use RTIMER_NOW() instead of rtimer_arch_now()
2009-12-09 18:08:26 +00:00
adamdunkels
2f105e933a
Variable xmac_is_on was used both in interrupt and non-interrupt contexts and needs to be volatile
2009-12-06 23:29:38 +00:00
adamdunkels
53457eb1f0
Fixed compilation warning
2009-12-06 17:10:54 +00:00
adamdunkels
8bcc838d8a
Bugfix: don't set the 'we are sending' flag until we are actually sending
2009-12-06 17:05:45 +00:00
adamdunkels
6897270289
Bugfix to the Contiki LPP encounter timing code: encounters are now
...
properly timed.
2009-12-06 13:18:32 +00:00
adamdunkels
822149f943
Significant improvements to the Contiki X-MAC:
...
* the code is simplified, particularly the duty cycling logic
* old unused code has been removed
* Contiki X-MAC now listens before sending a strobe to avoid MAC-level
collisions
* broadcasts are sent directly, without strobes, reducing the power
consumption of receivers
* turn off radio for 1 ms between sending a strobe and expecting the
strobe ack
2009-12-06 13:16:59 +00:00
adamdunkels
cef2e65c9b
Added an error type for signalling a MAC-layer collision
2009-12-05 21:49:51 +00:00
adamdunkels
4a1a823a49
Code style fix
2009-12-05 13:29:41 +00:00
fros4943
a1b4597b95
fixed announcement compilation error
2009-11-27 14:27:50 +00:00
adamdunkels
aeefa75304
Fixed alignment problems in announcement packet creation
2009-11-27 12:49:27 +00:00
nvt-se
116771adbc
made the route cache timeout configurable
2009-11-20 14:35:58 +00:00
nifi
1f2c226d8e
* Added ctimer_restart(). Patch by Moritz Struebe.
...
* Added ctimer_expired().
2009-11-19 18:32:05 +00:00
nifi
bb0ffe0478
moved rime initialization into rime router so it is easier to switch IPv6 routing module
2009-11-18 13:51:55 +00:00
fros4943
0034fd7bca
generic return values for sent packet
2009-11-13 10:09:02 +00:00
fros4943
9b20f11cd8
chameleon returns 1 only on successful rime_output()
2009-11-13 09:14:52 +00:00
fros4943
583dd11c55
rime_output() now returns RIME_OK or RIME_ERR depending on the MAC return value.
...
this patch may affect Rime sniffers running on top of MAC protocols that do not yet return generic MAC return values
2009-11-13 09:10:24 +00:00
fros4943
26bb5ecd21
added radio and MAC generic return values to allow applications finding out whether the packet was transmitted
2009-11-13 08:59:22 +00:00
joxe
5b0b36c39e
accept messages to all routers if UIP_CONF_ROUTER is set.
2009-11-12 14:05:42 +00:00
adamdunkels
60a3fc0cae
Fixed alignment issue
2009-11-09 08:22:40 +00:00
adamdunkels
56218aba3b
Made rimeaddr_t pointers const where they should be.
2009-11-08 19:40:16 +00:00
adamdunkels
70fc23ac7e
Enable stream mode by default, remove LED debug mode
2009-11-04 16:02:45 +00:00
adamdunkels
5aab2eb77d
A simple addition with significant performance implications:
...
sicslowpan tags TCP packets with the PACKETBUF_ATTR_PACKET_TYPE_STREAM
flag, which makes the underlying power-saving MAC layer keep the radio
on for some time after transmitting the packet. This allows reply
packets to be processed directly, significantly increasing TCP latency
and throughput.
2009-11-02 11:58:56 +00:00
adamdunkels
c7a91ad4a2
Bugfix: UIP_TCP_BUF -> BUF
2009-10-27 23:09:58 +00:00
adamdunkels
631af06c7c
Bugfix: Active TCP connections in uIP are made by first setting up the
...
TCP connection state, then poll uIP to send out the first SYN. Until
now, however, the SYN was not sent as part of the poll, but at the
first retransmission. This is now fixed.
2009-10-27 22:34:08 +00:00
zhitao
1913e1a936
prevent neighbor ETX from wrap-over
2009-10-22 13:11:20 +00:00
nifi
df32fde58c
Made max number of neighbors configurable
2009-10-21 21:25:10 +00:00
adamdunkels
91579fbaab
Removed debug strings to save ROM
2009-10-20 08:06:43 +00:00
nifi
223fa1c8e5
added missing include
2009-10-20 07:42:03 +00:00
adamdunkels
a5ea7ef966
Increased default number of queue buffers
2009-10-19 21:28:59 +00:00
adamdunkels
4d9b05c2ce
Increased default header size in packetbuf to accomodate 802.15.4 headers
2009-10-19 21:28:11 +00:00
adamdunkels
7cdfbca973
Alignment problems with announcements fixed
2009-10-19 21:27:02 +00:00
adamdunkels
9ec57d61ad
Added MAC layer framing support to X-MAC so that packets now are standard 802.15.4 frames
2009-10-19 20:53:56 +00:00
adamdunkels
4de1816e36
Added a new module called "framer" that creates MAC level frames to
...
the packetbuf from packet attributes. Two framer modules are included,
one that creates 802.15.4 frame headers, and one that creates a
minimal "nullmac"-style header that only contains the link-local
addresses.
2009-10-19 18:30:03 +00:00
nifi
ae226c5917
* Set sender and receiver packet attributes on incoming packets
...
* Added link layer destination check
2009-10-19 11:25:54 +00:00
adamdunkels
10c873018d
Ensure that DEFAULT_PERIOD is != 0, to avoid a modulo with 0
2009-10-19 06:39:29 +00:00
adamdunkels
f25856a387
Hack to be able to receive UDPv4 multicast packets
2009-10-18 22:03:44 +00:00
adamdunkels
fb037e0afb
Added function for sending an UDP packet to a specified IP address and port number over an existing UDP connection
2009-10-18 22:02:01 +00:00
adamdunkels
9d26bd663e
A new optimization to X-MAC: senders now keep track of when neighbors
...
last were known to be awake. When sending a packet, a sender does not
start to send strobes until the neighbor is expected to be awake. This
reduces power consumption for senders and decreases the contention in
the network as there are less packets in the air. Additionally, the
ACK optimization was improved so that data/ack exchanges now are
more efficient.
2009-10-18 13:19:25 +00:00
nvt-se
31f41d842e
* decline route discovery requests if we have one in the air
...
* and, by popular demand, switched PRINTF to printf in the debug macro. :-)
2009-10-08 16:30:26 +00:00
nvt-se
f143227205
made the route discovery packet timeout configurable.
2009-09-29 16:02:28 +00:00
nifi
0ad51b8dcc
Moved the link layer destination check to sicslowmac
2009-09-18 16:37:17 +00:00
adamdunkels
1980253ba3
Refresh routes when hearing a packet from a neighbor
2009-09-09 21:10:21 +00:00
adamdunkels
786ed3cf84
Fixed sdcc compiler problem: function pointers cannot be NULL, so added a dummy function instead
2009-09-09 21:09:42 +00:00
adamdunkels
2181e90f69
Added the possibility to switch lpp off. Fixed sdcc compiler issue
2009-09-09 21:09:23 +00:00
adamdunkels
1cafbc6002
sdcc compiler issue fix: compound assignments are not supported, so we use memcpy() instead
2009-09-09 21:08:46 +00:00
nvt-se
4d21a3e203
Don't assume that radio->send turns on the radio automatically.
2009-09-04 10:59:30 +00:00
oliverschmidt
e60db62b10
Added prototype missing for quite some time now - do we need -Werror ?
2009-08-20 20:27:17 +00:00
adamdunkels
522f991f14
Set sender and receiver packet attributes on incoming packets: patch by Gidon Ernst
2009-08-20 18:59:17 +00:00
dak664
c1b7375a5a
*** empty log message ***
2009-07-23 16:13:48 +00:00
dak664
2166261890
Separate input and output debug PRINTFs
2009-07-10 13:33:45 +00:00
nvt-se
38fff1b527
mac_driver structure has been changed to include the init function.
2009-06-24 16:31:49 +00:00
nifi
912aba7280
added init function in MAC driver for easier configuration
2009-06-22 11:14:11 +00:00
nvt-se
33909cc2fd
made neighbor discovery method configurable. default is announcements.
2009-05-30 19:54:05 +00:00
nvt-se
83f2b9ae57
include ctimer.h, since ctimer's are used in the neighbor_discovery_conn struct.
2009-05-30 19:40:39 +00:00
nvt-se
9277f922f1
fixed some documentation typos.
...
also uc -> unicast, stuc -> stunicast.
2009-05-26 13:58:53 +00:00
nifi
f39d2bd4c6
Fixed link panid for broadcasts to be standard compliant. Ignore packets addressed to other non-broadcast panids.
2009-05-26 12:08:29 +00:00
nvt-se
e2bbdbca9b
decrement TTL right after forwarding check.
2009-05-19 11:54:50 +00:00
adamdunkels
5308a09dd3
Added debug output
2009-05-10 21:10:23 +00:00
adamdunkels
02734c9806
Bugfix: must copy the sender and receiver addresses from the packetbuf buffer, otherwise an application program may overwrite them
2009-05-10 21:10:02 +00:00
adamdunkels
fe5a1f1068
Added an optimization option that avoids multiple simultaneous broadcasts from neighbors: when a broadcast is to be sent, a sender does not send until it knows that no other nodes are broadcasting.
2009-05-10 21:09:05 +00:00
adamdunkels
fe30886b37
Added functionality for decaying routes: when a packet is sent over a route, it is decayed. If the route is not refreshed within four packets (with the route_refresh() function, which is called when a new packet arrives), the route is dropped. A route can be decayed at most once per second
2009-05-10 21:08:01 +00:00
adamdunkels
6bf8e0b478
Bugfix by Takahide Matsutsuka: too few items in array, which caused problems with sdcc
2009-05-08 08:52:55 +00:00
zhitao
48d4800f08
removed reference to undefined function in mspgcc
2009-05-06 15:34:28 +00:00
adamdunkels
1d921ddf42
Explicit typecast to avoid compiler problems
2009-05-06 15:07:09 +00:00
adamdunkels
0adceb63b4
Code cleanup; made encounter optimization explicit; added optimization for adaptive off-time, but it currently seems to work bad with broadcasts
2009-05-06 15:06:38 +00:00
adamdunkels
9fff85757d
Code cleanup; made strobe transmission time longer again (seems to work better in cooja?)
2009-05-06 15:05:28 +00:00
adamdunkels
a671ea1146
Documentation fix
2009-05-06 15:04:20 +00:00
zhitao
58940ecbf8
minor documentation fixes
2009-05-06 08:37:48 +00:00
adamdunkels
1752b53f74
Refresh routes when a packet is received. Set a conservatively low route timeout (10 seconds).
2009-05-04 11:24:04 +00:00
adamdunkels
c83c5c4c55
Removed automatic refresh of routes from the route_lookup() function and moved it into an explicit route_refresh() function. The previous behaviour was dangerous, since it meant that even bad routes that someone was looking for were considered fresh. Now such routes time out if they are not explictily refreshed (e.g., on a packet reception)
2009-05-04 11:23:30 +00:00
adamdunkels
f5a57a4e54
Fixes by Ward Van Heddeghem (reapplied from versioin 1.24)
2009-04-30 20:21:06 +00:00
adamdunkels
e70cf0c7c6
Rewrite of the collect module. The new version uses a packet queue for outgoing and forwarded packets so that more than one packet can be forwarded at the same time. The new version uses the packetqueue module to maintain the packet queue.
2009-04-29 20:48:57 +00:00
adamdunkels
c489b1118d
New module: packetqueue. The packetqueue module maintains packet queues for other modules.
2009-04-29 20:47:30 +00:00
adamdunkels
cc44e89415
Reduced default strobe time, which seems to work well. Avoid running the interrupt if the power-save feature is turned off (fixes problems with serial data reception on a gateway mote)
2009-04-29 11:42:13 +00:00
adamdunkels
c02a82ac41
Tag outgoing TCP packets with the ERELIABLE attribute so that an underlying power-saving MAC protocol can treat them differently, because it knows that an ACK might be arriving soon
2009-04-29 11:40:33 +00:00
adamdunkels
c9df0ab123
Bugfix in debug message printout
2009-04-28 14:01:46 +00:00
adamdunkels
81ef83b856
Added option to wait randomly before sending a packet. A few code cleanups. Avoid switching radio off when sending a packet with end-to-end acks, because an ACK may arrive shortly after the transmission.
2009-04-28 14:00:53 +00:00
adamdunkels
fdd05f5c71
Bugfix: psock send should use PT_WAIT_UNTIL() not PT_YIELD_UNTIL(). This improves TCP throughput by 100x under minimal-net
2009-04-28 13:52:04 +00:00
fros4943
7810d362a6
minor bugfixes: a rucb sender could not immediately after start receiving a bulk transfer
2009-04-16 14:32:01 +00:00
nvt-se
c0fb680f12
simplified code by using udp_broadcast_new.
2009-04-13 19:55:15 +00:00
nvt-se
9765df97e5
support udp_broadcast_new also when using IPv6. Suggested by Wolf-Bastian Pttner.
2009-04-13 19:54:07 +00:00
adamdunkels
ef4f5cc0e5
Made TCP MSS configurable
2009-04-10 00:37:48 +00:00
nifi
84b38de494
removed bitfields for compatibility with cc65
2009-04-09 21:54:09 +00:00
adamdunkels
f5f52ffd1f
Fixes by Ward Van Heddeghem (VUB)
2009-04-07 13:06:03 +00:00
nvt-se
03cd533712
made LISTEN_TIME and OFF_TIME configurable.
2009-04-07 11:29:08 +00:00
adamdunkels
5e456aea7d
Added optimization for sending ACKs immediately. Turned optimizations on. Increased listening time to 1/64 s again due to problems with broadcasts with the 1/128 s setting
2009-04-06 22:50:35 +00:00
adamdunkels
ace6567815
Added a timer that randomizes the retransmission of an incoming new trickle version to avoid broadcast collisions
2009-04-06 21:20:35 +00:00
adamdunkels
be1c8ccec9
Added debug printouts
2009-04-06 21:19:34 +00:00
adamdunkels
d02ac74bbc
Increased size of temporary stack value to avoid overflowing when computation is done with 8-bit integers
2009-04-06 21:19:00 +00:00
nifi
000f740adc
typo
2009-04-06 15:54:07 +00:00
nifi
eab96e9b53
added rime-udp.c
2009-04-06 14:10:57 +00:00
nvt-se
d6869018c7
turned off debugging.
2009-04-06 13:27:37 +00:00
nifi
9f2ff48fda
added 802.15.4 frame packeter
2009-04-06 13:19:03 +00:00
nvt-se
3b2ad9cfc4
added packet forwarding and replaceable routing modules.
2009-04-06 13:18:50 +00:00
nvt-se
461ba4082c
in case UIP_CONF_ROUTING is set, check if we have a registered routing
...
module and use it for looking up the next hop of an address.
2009-04-06 13:18:12 +00:00
nvt-se
faf083f09d
save copy of a rime address that points to a packet buffer, since the
...
packet buffer is cleared and overwritten before the address usage is done.
2009-04-06 13:16:39 +00:00
nvt-se
c531f25c94
A module that enables Rime to run over UDP.
2009-04-06 13:13:26 +00:00
nvt-se
005578a722
added multihop routing support through replaceable modules. first implementation
...
uses rime's route discovery by translating between ipv6 and rime addresses.
2009-04-06 13:11:25 +00:00
nifi
4bc60d76d3
fixed alignment problem on MSP430 when using compression
2009-04-06 13:11:20 +00:00
adamdunkels
ed1e945e66
Added guard code so that OFF_TIME is never zero
2009-04-03 20:08:05 +00:00
adamdunkels
8dbd2b2337
Significant power consumption optimization: LPP now keeps track of encounters with neighbors and uses this information to keep the radio switched off longer.
2009-04-03 19:59:22 +00:00
adamdunkels
1d86b01bfb
Made optimizations explicit (and configurable). Added missing initialization of dutycycle protothread. Reduced default listen time and off time.
2009-04-03 11:45:06 +00:00
adamdunkels
04101aae36
Fixed alignment problem on the MSP430, where the LPP header may be misaligned
2009-03-31 17:39:54 +00:00
nvt-se
e2cc8b2a3e
send all queued packet once we have the chance.
2009-03-31 14:44:13 +00:00
nvt-se
1d47e2a8da
send immediate probes only if the packet is directed to us.
...
sleep for OFF_TIME if the queue is empty.
restrict double packet lifetime timeouts to unicast packets.
stop ctimer in remove_queued_packet in case the function is not called
via the ctimer callback. it could overwrite a valid packet otherwise.
2009-03-31 14:11:25 +00:00
nvt-se
dd082f7fcf
improvements to lpp based on code from Adam and discussions with Thiemo.
...
* queue multiple packets
* send a strobe back immediately after receiving a data packet
* double the packet lifetime to allow for a missed probe
2009-03-31 12:47:00 +00:00
nvt-se
d8caaca289
listen time and off time parameters configurable from outside because cc1020 needs longer listen time.
2009-03-26 12:50:57 +00:00
adamdunkels
73fdf05940
Added const to constant parameters (rime addresses)
2009-03-24 07:15:04 +00:00
adamdunkels
a625d80259
Added explicit typecast to buffer definition
2009-03-24 07:14:12 +00:00
adamdunkels
ec1677ca6c
Added a function (quick hack) that sets the radio transmission power of outgoing announcement packets in xmac
2009-03-23 21:06:26 +00:00
adamdunkels
1cbc0f4ea9
Send announcement packets only if there are any announcements to send
2009-03-23 21:00:25 +00:00
adamdunkels
f4b8680174
Defined the packetbuf buffer so that it is always aligned on a 16-bit boundary.
2009-03-23 19:37:45 +00:00
adamdunkels
39af9b361d
Fixed minor bug in comment
2009-03-23 16:39:09 +00:00
adamdunkels
21e0900d18
Made constant addresses const
2009-03-23 16:22:02 +00:00
adamdunkels
143bf11548
The multihop module used the pre-chameleon style packet headers. Converted it to use packet attributes instead of packet headers
2009-03-23 16:20:37 +00:00
adamdunkels
c791d851bb
Send an announcement packet only if there are more than zero announcemnets
2009-03-23 16:19:03 +00:00
nifi
91fa18e0e6
removed unused prototype
2009-03-23 10:58:00 +00:00
nvt-se
cc85a36722
use u8 when writing rime addresses.
2009-03-21 20:53:06 +00:00
nvt-se
4b6c110706
fixed documentation typos.
2009-03-17 20:28:44 +00:00
nifi
f0e56df2eb
fixed compiler warning when timesynch is disabled
2009-03-17 09:57:01 +00:00
nvt-se
13b364bcc1
fixed documentation typos.
2009-03-15 20:29:04 +00:00
nvt-se
41ca9516a7
fixed documentation typos.
2009-03-15 20:21:16 +00:00
adamdunkels
fb8fab739a
Renamed the rimebuf module to packetbuf to signal that the module is used outside of a pure Rime context (e.g., the sicslowpan code uses it).
2009-03-12 23:04:52 +00:00
adamdunkels
65eb5fd4e8
Renamed the rimebuf module to packetbuf to signal that the module is used outside of a pure Rime context (e.g., the sicslowpan code uses it).
2009-03-12 21:58:20 +00:00
adamdunkels
537219bf27
Added a packet attribute to specify transmission power on outgoing packets
2009-03-11 20:33:17 +00:00
zhitao
f304941ab4
raise busy forwarding flag before sending
2009-03-10 14:07:41 +00:00
julienabeille
2a173b465a
more printing in debug mode
2009-03-10 08:00:59 +00:00
zhitao
1eb085834f
Update announcement value after route metric saturates. Not doing this results in stubborn forwards from former children nodes.
2009-03-09 12:54:27 +00:00
adamdunkels
a1260c0c1f
Documentation updates
2009-03-08 21:43:24 +00:00
adamdunkels
366ad7bece
Added Rime documentation from the Rime/Chameleon paper (SenSys 2007)
2009-03-07 11:15:46 +00:00
zhitao
0a12098bd5
avoid ping pong packets during route disruption
2009-03-06 17:33:59 +00:00
adamdunkels
dc7491f810
Bugfix and optimization: X-MAC did not properly switch the radio off after sending a packet, resulting in increased power consumption. For packets that require an ACK, we can let the radio be on in anticipation of the ACK (controlled with an WITH_ACK_OPTIMIZATION option)
2009-03-05 19:37:52 +00:00
zhitao
64badeb282
bugfix: use memcpy() to get attributes longer than a byte properly written to packet header
2009-03-05 13:51:28 +00:00
zhitao
08b2315f41
bugfix: put up busy forwarding flag only after next hop found
2009-03-04 08:59:32 +00:00
fros4943
f701615afa
bugfix: remember active transmissions (sender side) instead of last received packets (receiving side). allows several nodes sending to a single receiver.
...
+ added function for checking if runicast is currently transmitting (non-acked) data
2009-03-03 12:19:46 +00:00
adamdunkels
9816f49fe6
Changed listen and transmit energy attributes so that they are named _TIME rather than _ENERGY, to indicate that they contain the time during which the radio was switched on and not the energy
2009-03-02 22:00:41 +00:00
adamdunkels
78591a003f
Minor documentation update
2009-03-02 21:56:16 +00:00
adamdunkels
45e32894a0
Bugfix: backwards definition of MIN macro (quite embarassing)
2009-03-02 11:22:09 +00:00
adamdunkels
d813d343c5
Cleaned up old left-over code
2009-03-01 20:38:57 +00:00
adamdunkels
7010eb84b8
Added support for communication power accounting. Energy is attributed to idle listening when the radio is switched off. Enegrgy is attributed to an incoming packet when it is received. Energy is attributed to an outgoing packet when it is transmitted.
2009-03-01 20:37:16 +00:00
adamdunkels
aa2f7a3399
Made polite announcement times configurable, added missing right-brace
2009-03-01 10:43:57 +00:00
adamdunkels
3adf8e5807
Call output packet sniffers after the MAC has sent the packet
2009-03-01 10:29:50 +00:00
oliverschmidt
bc3d9d2e3c
Minor rearrangement.
2009-02-28 11:57:46 +00:00
julienabeille
f95c5df7d9
The global prefixes processed must be one less than the total amount of prefixes, as the link local one occupies one slot
2009-02-25 08:35:52 +00:00
adamdunkels
2aedc8490d
Compile only if timesynch is enabled
2009-02-20 21:23:22 +00:00
adamdunkels
e6907a1d8b
Include random.h
2009-02-20 21:22:39 +00:00
adamdunkels
4ec5167276
Rewrote the tcpip_output() and tcpip_set_outputfunc() so that the latter is a proper function (which simplifies debugging) and so that tcpip_output() checks if the output callback function is NULL before calling it
2009-02-20 21:21:56 +00:00
julienabeille
10deaa6fc6
Removed CLOCK_SECOND from stimers in uIPv6, stimers are already in seconds
2009-02-20 07:59:35 +00:00
julienabeille
710e5c621c
changed timer to stimer for neighbor, prefix, default router, address list
2009-02-19 16:42:41 +00:00
fros4943
97f76126e6
remembering last received packet id to avoid multiple recv callbacks for the same retransmitted packet (but still sending back acks of course)
2009-02-17 12:40:18 +00:00
c_oflynn
8516626703
Fixed documentation error (thanks to David Kopf)
2009-02-17 01:28:28 +00:00
adamdunkels
36bb3ece64
If no neighbor is found, we listen for announcements. Cleaned up debug output.
2009-02-16 01:18:53 +00:00
adamdunkels
aaa8c9d2c9
Construct the X-MAC header on the stack instead of directly in the packet header, because the packet header may be misaligned. A bit of cleanup in the code too.
2009-02-15 22:05:06 +00:00
adamdunkels
e4b1ff461e
Added MAC-layer announcement beacons to X-MAC. Configuratble through XMAC_CONF_ANNOUNCEMENTS
2009-02-14 20:35:03 +00:00
adamdunkels
585620c102
Reverted the recent change from random_rand() to rand(). It turned out that
...
since libc rand() returns a signed int, there were frequently problems with
timer values wrapping. By reverting to random_rand(), we can provide a
random generator that returns an unsigned and the timer problems are solved.
2009-02-11 11:08:53 +00:00
adamdunkels
9d75781a78
Added packet attributes for energy spent on a packet (RIMEBUF_ATTR_LISTEN_ENERGY and RIMEBUF_ATTR_TRANSMIT_ENERGY)
2009-02-10 23:51:12 +00:00
adamdunkels
b15198b9a8
Bugfix: the Chameleon header parser modules should not clear the packet attributes, because the MAC or radio layers may have added attributes already
2009-02-10 23:49:58 +00:00
adamdunkels
e1ef13dad6
Reduced the size of the packet cache from four to two to avoid falseley dismissing fresh packets (the header field that hold sequence numbers is only two bits wide, hence all sequence numbers fits in a four-entry cache...)
2009-02-10 00:44:50 +00:00
adamdunkels
6c95bd895a
Added default initialization of polite announcements. Not sure where the best place for this is, but this at least allow us to start experimenting with this.
2009-02-09 22:05:33 +00:00
adamdunkels
3efb83c338
Added announcement includes
2009-02-09 21:09:42 +00:00
adamdunkels
0de445e035
Initialize the announcement module
2009-02-09 21:08:12 +00:00
adamdunkels
3670ef2f44
Rewrote the collect module so that it uses the announcement module rather than the neighbor-discovery module. This makes it possible to implement other annoumcement back-ends than the traditional broadcast-based neighbor discovery
2009-02-09 20:58:25 +00:00
adamdunkels
dd9ffd87c4
Added missing #include announcement.h
2009-02-08 20:14:18 +00:00
adamdunkels
085df6b630
Improved version of LPP with support for broadcasts as well as announcement data in the probes
2009-02-08 19:30:18 +00:00
adamdunkels
91d280c4c9
Reverted to the old behaviour on broadcasts: send strobes for both unicast and broadcast packets.
2009-02-07 18:45:50 +00:00
adamdunkels
4b71003c2f
Changed from random_rand() to rand() for better pseudo randomness
2009-02-07 18:43:45 +00:00
adamdunkels
752291f450
Changed from random_rand() to rand() function for (pseudo) random numbers because random_rand() does not work that well
2009-02-07 16:16:31 +00:00
adamdunkels
91e8487032
Added Doxygen documentation
2009-02-07 16:15:37 +00:00
adamdunkels
be846d8c90
A new experimental network primitive called an 'announcement'. An
...
announcement is an (ID, value) tuple that is disseminated to local
area neighbors. An application or protocol can explicitly listen to
announcements from neighbors. When an announcement is heard, a
callback is invoked.
Announcements can be used for a variety of network mechanisms such as
neighbor discovery, node-level service discovery, or routing metric
dissemination.
Application programs and protocols register announcements with the
announcement module. An announcement back-end, implemented by the
system, takes care of sending out announcements over the radio, as
well as collecting announcements heard from neighbors.
2009-02-05 19:32:01 +00:00
fros4943
4f1a9d3c75
bugfix: stopping timeout timer when we receive route reply (still limited to only one active discovery)
2009-01-21 14:29:24 +00:00
adamdunkels
71e5adb254
Moved packet attributes specifications from rimebuf.h to the appropriate protocol header files
2009-01-15 22:15:51 +00:00
c_oflynn
5ec6412fbc
*Support for Atmel 'Router Under Mac' (RUM) in Jackdaw
2008-12-10 21:26:05 +00:00
c_oflynn
17790ce46a
Bug fix by David Kopf - sicslowpan timeout was always set at 20 seconds, this greatly improves performance!!
2008-12-02 22:04:16 +00:00
adamdunkels
50b1e60621
Rewrote the rimeaddr_copy() loop to use the ->u8 field instead of the ->u16 field (which now finally is removed)
2008-11-30 18:26:57 +00:00
adamdunkels
6951d9d582
Removed the unused ->u16 field (it was there only as a convenience/laziness access method during the initial development of the Rime stack, but has caused problems when being there)
2008-11-30 18:26:06 +00:00
oliverschmidt
7cf3165155
Replaced NETSIM macro with general (and now actually working) solution in Makefile.include.
2008-11-17 22:52:10 +00:00
fros4943
e42d572f81
updated for latest mac driver structure
2008-11-12 12:42:41 +00:00
zhitao
229d60d691
Neighbor ETX should accumulate over retransmission timeouts;
...
Best neighbor has minimum sum of routing metric and neighbor ETX. Previously best neighbor prioritizes routing metric before neighbor ETX, which often causes a poor neighbor with a good upstream path to be selected.
2008-11-12 10:47:17 +00:00
oliverschmidt
75ffd0640c
Inform user about (most likely unintentional) call of dummy_tcpip_output_function.
2008-11-10 21:00:53 +00:00
adamdunkels
3b283a5ff3
Added dummy function so that tcpip_output() always is defined, even if tcpip_set_outputfunc() never has been called. This fixes a bug with programs attempting to use the network when compiled for the native platform.
2008-11-09 12:29:24 +00:00
adamdunkels
5243d58ac5
Added logic for announcing that a network has a gateway to the outside world (with the function uip_over_mesh_make_announced_gateway()). The announced gateway sends a trickle message to the network, containing the address of the gateway. Other nodes will then know that packets destined to the outside world should go through the gateway node.
2008-11-09 12:20:56 +00:00
adamdunkels
8851a6359a
Remove unguarded printf()
2008-11-09 12:16:05 +00:00
oliverschmidt
28889f2210
Commented out otherwise unguarded printf().
2008-11-06 23:15:58 +00:00
nvt-se
0c4f7bed8f
temporary fix to get sicslowpan.c working on the Sky platform:
...
conventional MAC implementations require a call to the MAC driver's
read function.
2008-11-06 20:45:06 +00:00
adamdunkels
d73124cc5e
Bugfix: there was a problem with TCP segments not being properly retransmitted for protosockets-based applications. Cleaning up the logic around acknowledgements and retransmissions fixed the bugs pertaining to retransmissions of lost packets. This bugfix affects both the telnet server and the web server (which now work as expected wrt packet loss).
2008-10-31 18:10:24 +00:00
adamdunkels
f623b81d59
Temporarily out-commented the problematic code and added a comment that describes the problem
2008-10-17 14:40:16 +00:00
mdurvy
75f036f698
uncommented the remove of the router (necessary for compliance)
2008-10-16 09:07:43 +00:00
blakelev
99f6932cdf
Removed one line to prevent the default router from being removed
...
prematurely. This timer should not time out, but it does.
2008-10-15 23:29:38 +00:00
adamdunkels
adc57729c3
struct uip_udp_conn should be declared even if UIP_UDP is zero (it does not add any extra code)
2008-10-15 08:56:44 +00:00
adamdunkels
e931260603
Added more curly brackets to ensure ANSI C compliance when UIP_TCP is defined;
2008-10-15 08:52:30 +00:00
adamdunkels
6a3565f5b6
Added an #if around the whole code if IPv6 is defined
2008-10-15 08:08:32 +00:00
adamdunkels
91910f82dd
added curly brackets to ensure ANSI C compliance when UIP_TCP is defined; some automatic whitespace removal
2008-10-15 07:59:34 +00:00
adamdunkels
647443cb9d
Added payload field to ICMP v4 header that was inadvertedly removed during the uIPv6 commits; automatic whitespace removal at line ends
2008-10-15 07:55:00 +00:00
julienabeille
2238f2e7da
Debugged autoconf for ethernet
2008-10-14 16:50:11 +00:00
julienabeille
4f9bc05f90
ping-ipv6 example compiles on native cygwin
2008-10-14 13:39:12 +00:00
adamdunkels
fc1a8575d6
Removed unused include files (also automatically removed whitespace from line endings)
2008-10-14 12:26:18 +00:00
julienabeille
2e8264010b
Main uIPv6 files addition - more
2008-10-14 09:42:33 +00:00
julienabeille
f95cdc5abb
Main uIPv6 files addition
2008-10-14 09:40:56 +00:00
adamdunkels
7b238a91af
Don't turn on the radio on after sending a broadcast
2008-09-04 17:44:01 +00:00
adamdunkels
41dcd78c8b
Improved debugging output
2008-08-15 19:28:33 +00:00
adamdunkels
31509ad726
Fixed a bunch of bugs in the collection neighbor announcement/discovery code: neighbor announcments were not repeated unless there was a change in the ETX val. Neighbor announcements happened to often when there were changes in the ETX.
2008-08-15 19:00:38 +00:00
adamdunkels
210782d9c6
Set the channel as a packet attribute
2008-08-15 18:59:22 +00:00
adamdunkels
9a4e5dfabf
Rewrote the neighbor discovery code so that messages are suppressed if a lower rtmetric is received. This reduces the overall number of broadcast packets.
2008-07-09 09:33:58 +00:00
adamdunkels
9318117429
Fixed function prototype compiler warning
2008-07-08 10:59:31 +00:00
adamdunkels
ba5c18a468
Rewrote the trickle code to run directly over the broadcast primitive: the previous implementation did not work as expected, because packets were not supressed correctly by the previous underlying netflood primitive
2008-07-07 23:29:30 +00:00
adamdunkels
df33cb6e16
Only send ACK if it was possible to allocate a queuebuf to hold the data packet.
2008-07-07 23:27:57 +00:00
adamdunkels
4d35b905d3
Bugfix: check should cover min(hdrsize, datalen), not max
2008-07-07 23:27:05 +00:00
adamdunkels
c0c26262c4
No need to send strobes for broadcast packets: just send the actual packet instead
2008-07-07 23:25:12 +00:00
adamdunkels
cfcdac3122
Avoid crashing if Rime/Chameleon is not initialized when Rime code is run
2008-07-03 23:13:31 +00:00
adamdunkels
4687c2c948
Renamed Rime module mh to multihop
2008-07-03 22:36:02 +00:00
adamdunkels
d9b3097037
Renamed Rime nf module to netflood
2008-07-03 22:25:22 +00:00
adamdunkels
ec22f3c2fc
Renamed Rime nf module to netflood
2008-07-03 22:02:09 +00:00
adamdunkels
c2c3835110
Changed name of Rime module ruc to unicast
2008-07-03 21:52:25 +00:00
adamdunkels
eddf71f534
Changed name of suc module to stunicast
2008-07-03 21:35:46 +00:00
adamdunkels
8a1ed696d9
Slightly nicer formatting
2008-07-03 21:34:12 +00:00
adamdunkels
a6682c4bfd
originator address is const
2008-07-03 17:58:10 +00:00
adamdunkels
f274b26588
Added CC_CONST_FUNCTION as a work-around to the sdcc const function pointer bug
2008-07-03 07:38:52 +00:00
adamdunkels
040d65c1f6
Added missing #include sys/cc.h to make system compile
2008-07-03 07:37:51 +00:00
matsutsuka
d194d54e8e
CC_CONST_FUNCTION replaces some const keywords in order to workaround a sdcc bug, which cannot handle function pointers as const.
2008-07-02 15:02:33 +00:00
adamdunkels
05454ce929
Documentation bugfix
2008-07-02 14:10:28 +00:00
adamdunkels
66876625d4
Changed name of the simple-cc2420 module to cc2420: changed all function names and variable names from simple_cc2420_* to cc2420_*.
2008-07-02 09:05:40 +00:00
adamdunkels
1586d8f36f
Changed filename of the CC2420 driver from simple-cc2420 to cc2420.
2008-07-01 21:02:51 +00:00
adamdunkels
7054083d88
Reverted mistakenly added #include for non-existant file
2008-06-30 20:00:53 +00:00
adamdunkels
1d1ab90642
Added rimebuf attributes for RSSI, timestamp, and network ID (used for e.g. 802.15.4 PAN ID)
2008-06-30 19:57:10 +00:00
adamdunkels
651a374eca
Removed unused sibc module
2008-06-30 19:56:08 +00:00
adamdunkels
020a0c30aa
Rewrote the collect module to use packet attributes instead of explicit headers
2008-06-30 09:15:22 +00:00
adamdunkels
6bbb99438e
Cleaned up Rime makefile - removed sibc, changed name of sabc to stbroadcast
2008-06-30 08:29:32 +00:00
adamdunkels
e6079870fe
Changed name of the sabc module to stbroadcast
2008-06-30 08:28:53 +00:00
adamdunkels
1093a8fe28
Added name to mac structure. Do not turn radio on when sending a broadcast packet. Changed default off time to half a second.
2008-06-30 08:10:02 +00:00
adamdunkels
247de015b5
added name to mac structure
2008-06-30 08:09:17 +00:00
adamdunkels
c9528fb010
Added name, made default listen time shorter
2008-06-30 08:08:59 +00:00
adamdunkels
a7dfa95551
Added a 'name' field in the mac structure, which allows boot-up code to print out the name of the currently selected MAC protocol
2008-06-30 08:08:27 +00:00
adamdunkels
4349504219
Bugfix: fixed the missing arguments to make Rime compile
2008-06-27 16:44:58 +00:00
nifi
839b6111d6
Changed send function to return false if it was not possible to send
2008-06-26 11:38:59 +00:00
adamdunkels
63c620303a
Changed the 'ibc' and 'uc' Rime modules into the more descriptive names 'broadcast' and 'unicast'
2008-06-26 11:19:22 +00:00
oliverschmidt
a5fcfa2787
I seem to remember that we wanted to avoid ignoring gcc warnings that might trigger errors with other compilers ;-)
2008-05-16 21:31:57 +00:00
adamdunkels
532692e5a0
Removed reference to non-existant function rimebuf_attr_isset()
2008-05-16 15:04:10 +00:00
adamdunkels
8ea461b039
Changed on time to work with the current default tick time on the sky platform
2008-05-15 08:59:48 +00:00
adamdunkels
dbab9fbdb5
A quick, initial implementation of the LPP power-saving MAC protocol (Musaloiu-E et al, IPSN 2008)
2008-05-15 08:56:29 +00:00
adamdunkels
1feb4fe3cb
Removed call to tcpip_set_forwarding() - the UIP_CONF_IP_FORWARDING configuration option is used instead
2008-05-14 19:20:28 +00:00
adamdunkels
31ea41d8db
Changed the name of UIP_CONF_TCP_FORWARD to UIP_CONF_IP_FORWARD since forwarding is done at the IP level
2008-05-14 19:19:28 +00:00
nifi
fe4f8f4339
clear attributes when clearing buffer
2008-04-03 09:07:28 +00:00
nifi
f187981cd6
Fixed type offset bug in rimebuf_addr() and removed unused type for attributes and addresses. Replaced memcpy with loop.
2008-04-02 14:49:21 +00:00
nifi
8d47324d8f
fixed typo
2008-04-01 13:22:59 +00:00
nifi
fabe4393f7
fixed alignment problem with rime/chameleon
2008-04-01 13:10:22 +00:00
oliverschmidt
59145615b0
Changed packet forwarding from a runtime option to a compiletime option. This avoids pulling in uip-fw.o if forwarding isn't required (saves > 1400 bytes on 6502 targets).
...
*** This change breaks all platforms calling tcpip_set_forwarding() ! These calls were intentionally not removed as they need to be replaced by setting the new compiletime option UIP_CONF_TCP_FORWARD - which should be done by the platform owners. ***
2008-03-29 15:19:25 +00:00
adamdunkels
5901bf977a
Changed assignment to explicit copy to enable compilation with SDCC
2008-03-20 09:40:31 +00:00
adamdunkels
39c85118d8
Ensure that header_module is != NULL before calling it. Define and print headers only if DEBUG is set.
2008-03-03 20:20:33 +00:00
oliverschmidt
aa7ba44fb1
Avoided compiler warning.
2008-02-28 23:59:05 +00:00
oliverschmidt
edbae75705
Stick to CC_INLINE.
2008-02-28 21:25:34 +00:00
fros4943
cefaa38581
-debugging output
2008-02-27 10:39:17 +00:00
adamdunkels
a0c833da11
Mistakenly included development code in the Makefile target
2008-02-25 13:22:34 +00:00
adamdunkels
412facb831
This is an initial commit of an implementation of the Chameleon
...
architecture for the Rime stack for Contiki. The Chameleon
architecture separates the header processing from the Rime protocol
logic. Instead of having each protocol create its own part of the
packet header, protocols use packet attributes. Before sending a
packet, a special Chameleon header processing module creates a packet
header from the packet attributes. The same Chameleon module parses
incoming packets and creates packet attributes from the header.
The details are in our SenSys 2007 paper:
Adam Dunkels, Fredrik Osterlind, Zhitao He. An Adaptive Communication
Architecture for Wireless Sensor Networks. In Proceedings of the Fifth
ACM Conference on Networked Embedded Sensor Systems (SenSys 2007),
Sydney, Australia, November 2007.
http://www.sics.se/~adam/dunkels07adaptive.pdf
This is a rewrite of the code that was developed for the paper.
2008-02-25 02:14:34 +00:00
adamdunkels
974870359a
Changed all occurences of u8_t and u16_t to uint8_t and uint16_t
2008-02-24 22:10:30 +00:00
adamdunkels
d99ca27820
Changed all occurences of u8_t and u16_t to uint8_t and uint16_t
2008-02-24 22:05:27 +00:00
adamdunkels
3c1b0f4e65
Debug output slightly improved
2008-02-24 21:09:08 +00:00
adamdunkels
16c715aade
Updated collect_open() definiton to match prototype declaration
2008-02-24 21:08:37 +00:00
adamdunkels
be1dd57cb3
Stopping watchdog before sending packets to allow for wait times longer than 1 second. Reduced default on time to 5 ms. Added option for turning off X-MAC but keeping the radio turned on.
2008-02-24 21:07:28 +00:00
adamdunkels
32a3fa5d4a
Added parameter to the mac off() method that specifies whether or not the radio should be turned off when the MAC layer is turned off
2008-02-24 21:05:28 +00:00
adamdunkels
436d1f25eb
Added a configuration option for using u32 in the uip_ip4addr_t structure: UIP_CONF_UIP_IP4ADDR_T_WITH_U32
2008-02-24 21:04:15 +00:00
adamdunkels
8c782de931
Ensure that no more data than can be held by the buffer is sent with uip_send()
2008-02-24 21:03:24 +00:00
adamdunkels
49bc31236e
Improved debug output
2008-02-24 21:02:09 +00:00
oliverschmidt
8f81934bfd
Since revision 1.11 the usage of the label 'ip_send_nolen' isn't solely depending on UIP_UDP anymore.
2008-02-15 17:12:46 +00:00
oliverschmidt
081d50b878
Reverted part of recent change. The 32-bit member causes 32-bit alignment on 32-bit machines - at least without specific compiler options. That 32-bit alignment causes padding i.e. the ARP structure breaking the existing code.
2008-02-09 16:22:22 +00:00
nifi
b06e6c60a9
Name fix on uip_all_zeroes_addr
2008-02-08 09:12:57 +00:00
adamdunkels
2187212703
Name fix on uip_all_zeroes_addr
2008-02-07 01:35:00 +00:00
adamdunkels
d407fe2e9f
Set TTL on outbound ICMP echo reply packets to make Windows tracert work
2008-02-07 01:34:25 +00:00
adamdunkels
245558fd56
Make windows tracert work: needs ICMP time exceeded sent for ICMP echo packets
2008-02-07 01:33:47 +00:00
adamdunkels
fc603fdcc6
constness
2008-02-05 20:18:57 +00:00
adamdunkels
3d6c1c966b
Bugfix: forwarding functions now have access to its packet headers. Added last hop to the arguments to the reception function
2008-02-05 20:17:43 +00:00
adamdunkels
33bcc24019
Increased timeouts, updated to match new mh API
2008-02-05 20:16:48 +00:00
adamdunkels
465f75736d
Minor source code reformatting
2008-02-03 21:12:44 +00:00
adamdunkels
f1bec7b955
Added the ability to send packets to an external network
2008-02-03 20:56:07 +00:00
adamdunkels
53f0b7feb8
Added line drawing code when compiled for the netsim target
2008-02-03 20:52:41 +00:00
adamdunkels
2886e03f57
Rewrote the neighbor code to use memb and a list instead of a static array
2008-02-03 20:44:11 +00:00
adamdunkels
c576b7b01c
Optimized transmission when interval == 0
2008-01-25 01:06:25 +00:00
adamdunkels
6e89e545b3
Added optional transmission of ICMP destimation unreachable in response to incoming UDP packets with an destination port that is not open. This is needed for correct operation of traceroute
2008-01-24 23:08:58 +00:00
adamdunkels
c9508567a1
Bugfix: IP addresses in ICMP time exceeded messages were not transmitted correctly
2008-01-24 23:07:37 +00:00
adamdunkels
49ac5f9026
Show rt metric in netsim as number of expected transmissions
2008-01-24 21:11:40 +00:00
adamdunkels
cdfe030980
Send immediately if interval == 0. Added debug information
2008-01-24 21:10:50 +00:00
adamdunkels
bf8b5c093d
Made timetable code optional
2008-01-24 06:17:51 +00:00
adamdunkels
e7fb51b14c
Added generic return valued
2008-01-24 06:17:33 +00:00
adamdunkels
29cc2b1266
Updated debug printouts
2008-01-23 16:10:10 +00:00
adamdunkels
c8dccbbd40
Added a function for converting a timesynchronized time to a local (rtimer) time
2008-01-23 15:07:05 +00:00
adamdunkels
8a9b931a4b
Rewrote most of the X-MAC code to make it easier to follow, debug and modify. Also added an optional, experimental time synchronized addition that makes X-MACs on different nodes explicitly de-synchronized
2008-01-23 15:00:54 +00:00
adamdunkels
5c169ac291
Better debug output
2008-01-21 12:19:27 +00:00
adamdunkels
57b54894f8
Removed mistakenly added development files
2008-01-14 16:05:34 +00:00
adamdunkels
34bd11905c
Rewrote the timesynch code to use the Rime sniffer interface instead of the kludge of running timesynch as a MAC layer
2008-01-14 14:50:01 +00:00
adamdunkels
02ee418313
Moving timesynch.[ch] from sys/ to core/net/rime as they have more to do with Rime than with the kernel
2008-01-14 14:22:16 +00:00
adamdunkels
042180c13f
Rewrote the sniffer code to use a list, which makes it possible to add any number of sniffers. Sniffers now can be both for incoming and outoing packets.
2008-01-14 09:42:00 +00:00
adamdunkels
7fcb1f3b2a
Updated debug output
2008-01-14 09:36:35 +00:00
adamdunkels
94f8978443
Rewrote the sniffer code to use a list, which makes it possible to add any number of sniffers. Sniffers now can be both for incoming and outoing packets.
2008-01-14 09:35:53 +00:00
adamdunkels
b26754fd95
Removed unused code
2008-01-14 09:34:33 +00:00
adamdunkels
7b94bfb621
Rewrote the code to use polite broadcasts istead of regular broadcasts. This reduces the amount of broadcast traffic, particularly for dense networks.
2008-01-14 09:34:00 +00:00
adamdunkels
bd125aaac6
Changed the code so that the rtimer is only set from the rtimer (interrupt) code, and not from the non-rtimer code. Removed unused code that was supposed to turn the radio off when a packet for another node was heard (but which didn't really work anyway). Changed default on time to 1/100 seconds, and off time to 1/2 seconds
2008-01-14 09:26:42 +00:00
adamdunkels
f6b4022511
Setting a lower value now causes a discovery packet go out quicker
2008-01-08 08:27:25 +00:00
adamdunkels
bac26c90c8
Made a primary transmission go out immediately instead of within a random interval
2008-01-08 08:26:48 +00:00
adamdunkels
a20202231d
Minor type change
2008-01-08 08:00:13 +00:00
adamdunkels
d2be099c0e
Bugfix: queue buffers were not freed when a new packet was sent, leading to memory leakage. Added debug output.
2008-01-08 07:59:51 +00:00
adamdunkels
c6a43333d2
Call the timeout function only if it is non-NULL
2008-01-08 07:58:49 +00:00
adamdunkels
40d6216ec9
Added API for reading the routing table
2008-01-08 07:58:23 +00:00
adamdunkels
601560b1eb
Added hopcount to callbacks
2008-01-08 07:55:56 +00:00
adamdunkels
0c748d7dd2
Debug formatting fixes
2008-01-08 07:55:15 +00:00
adamdunkels
f737127cca
Minor type change
2008-01-08 07:55:00 +00:00
adamdunkels
16142f12c7
Removed unused code
2008-01-08 07:54:40 +00:00
adamdunkels
88a010acdc
Added a simple sniffer callback, which currently is a hack - a better solution would be a list of sniffers for both outgoing and incoming packets, but this will do for now.
2008-01-08 07:53:02 +00:00
adamdunkels
5b454bbd5f
Added a simple sniffer callback, which currently is a hack - a better solution would be a list of sniffers for both outgoing and incoming packets, but this will do for now. Added trickle, neighbor & route includes.
2008-01-08 07:52:31 +00:00
adamdunkels
25a5434fb5
Sending with interval 0 made explicit
2008-01-07 14:53:04 +00:00
adamdunkels
d33871facc
Bugfix: hops should be at least one for all packets that are sent over the radio
2008-01-07 14:52:23 +00:00
oliverschmidt
00d75c8d16
Made use of uip_ipaddr_to_quad().
2008-01-04 23:28:33 +00:00
oliverschmidt
af6d9a59be
Adjusted value (without distinguishing between Ethernet, SLIP, ...).
2007-12-23 20:24:46 +00:00
oliverschmidt
a9ebc469b8
Avoid usage of POSIX function names even for static functions as some indirectly included system header might declare them.
2007-12-23 14:56:54 +00:00
oliverschmidt
8a4e2ec268
Fixed typo.
2007-12-22 12:02:43 +00:00
adamdunkels
3033b86753
Made the number of routing table entries configurable
2007-12-17 09:20:16 +00:00
adamdunkels
758411d06d
Cleaned up #includes to avoid cyclic dependencies - the Rime includes no longer depend on rime.h
2007-12-17 09:14:08 +00:00
adamdunkels
8287215c82
Removed obsolete, unused files
2007-12-17 09:12:16 +00:00
adamdunkels
07e2ca9287
Documentation updates
2007-12-16 14:33:32 +00:00
adamdunkels
5c5775e93b
Ensure that receiver_callback is set before calling it
2007-12-16 14:31:43 +00:00
fros4943
2c67936d6d
including uaodv-rt
2007-12-13 10:04:59 +00:00
adamdunkels
43d394f758
Maximum rtmetric now defined by the collect module - a bit of a hack since this probably should be configured elsewhere (and be referenced by both the collect and the neighbor module) but it will do for now
2007-12-09 15:44:21 +00:00
adamdunkels
5a89c19b5e
Changed to store neighbors' rtmetrics as 16 bit valued
2007-12-09 15:43:51 +00:00
adamdunkels
01da62aa25
Changed local rtmetric name from 'local_rtmetric' to 'rtmetric' and updated the neighbor discovery module from nbh to neighbor-discovery
2007-12-09 15:43:09 +00:00
adamdunkels
4e1d2906b7
Changed name on the neighbor discovery module from (cryptic) 'nbh' to 'neighbor-discovery'
2007-12-09 15:40:43 +00:00
oliverschmidt
29b2d1d236
Allow to link with UIP_CONF_ACTIVE_OPEN set to 0.
2007-12-08 23:06:02 +00:00
oliverschmidt
3b95e284fc
Allow to actually configure active open support via UIP_CONF_ACTIVE_OPEN.
...
Is there any reason I don't understand why this wasn't allowed? At least it seems to work...
2007-12-08 23:04:34 +00:00
adamdunkels
761ad7dd57
Updated debug output
2007-12-05 13:40:34 +00:00
adamdunkels
fff49f6671
Correct route lookup
2007-12-05 13:40:26 +00:00
adamdunkels
36b7c7e782
Added missing forwarding function
2007-12-05 13:26:13 +00:00
adamdunkels
bfd5db667a
Don't call the forward function if it is not defined
2007-12-05 13:25:07 +00:00
adamdunkels
18fd561041
Avoid switching the radio on and off when the MAC layer is turned off. Cleanups.
2007-12-05 13:23:17 +00:00
adamdunkels
442516356a
Expose the Rime MAC driver so that applications can use it - a bit of a hack, but it works for now
2007-12-05 13:21:58 +00:00
adamdunkels
6720b41707
Removed debug output
2007-11-28 20:03:50 +00:00
adamdunkels
1fd6e1bef9
Increased default route lifetime to 60 seconds. Routes are now refreshed every time they are looked up.
2007-11-28 20:00:57 +00:00
adamdunkels
996a8af0dd
Fixed include of ruc instead of abc
2007-11-28 20:00:07 +00:00
adamdunkels
6e739853f7
Updated the multihop forwarding interface to match the intended operation of the module: to let the user produce the route, and the mh module only does the forwarding
2007-11-28 19:55:27 +00:00
adamdunkels
d9bda3bc80
Added mh.h and rmh.h to the default includes
2007-11-28 19:54:24 +00:00
adamdunkels
dca1e0e446
Changed module name to 'collect' from 'tree' to better reflect the purpose of the module, rather than the particular data structure used to implement it
2007-11-28 16:04:41 +00:00
adamdunkels
b003f32e27
Added #ifdef around label (yes, ugly) to avoid compiler warning with UIP_UDP == 0
2007-11-28 12:53:07 +00:00
adamdunkels
6e228f7a79
uaodv.c now compiles without #if UIP_UDP
2007-11-28 12:52:34 +00:00
adamdunkels
3e35a97776
Exposed a few UDP declarations even when UIP_UDP == 0 to make uaodv.c compile
2007-11-28 12:52:12 +00:00
matsutsuka
1dd0e32a1e
#if UIP_UDP
...
option is added, because this file cannot be compiled and is unnecessary when UIP_UDP==0.
2007-11-28 10:15:44 +00:00
adamdunkels
b07b46dd79
Removed unused return value from ruc recv callback
2007-11-27 23:32:34 +00:00
adamdunkels
f6cf045413
Always add neighbors to the list regardless if their rtmetric is higher than ours or not. If our rtmetric rises, we may need ot have those neighbors in our list.
2007-11-26 23:31:44 +00:00
adamdunkels
98854f80e0
Made Rime address size configurable through contiki-conf.h
2007-11-26 23:30:35 +00:00
adamdunkels
75be20bea6
Added function for accessing a specific neighbor
2007-11-26 23:30:13 +00:00
adamdunkels
58d6310979
Added #ifdef around MAX definition to avoid compiler warnings
2007-11-26 23:22:41 +00:00
adamdunkels
52a8e8d16b
Fixed to match the Contiki code style
2007-11-26 15:31:32 +00:00
nvt-se
977fdc7f03
Format requires unsigned long.
2007-11-18 11:21:29 +00:00
oliverschmidt
aedb4f56da
Moved logically empty files to backyard.
2007-11-18 01:18:09 +00:00
adamdunkels
1e1e44a3f8
Fixed compiler warnings to make code compile with gcc's -pedantic switch
2007-11-17 18:01:00 +00:00
adamdunkels
d9eebf7e17
Fixed compiler warnings
2007-11-17 10:46:25 +00:00
adamdunkels
7fd1eca954
Added debug output
2007-11-17 10:34:17 +00:00
adamdunkels
9bd3c0c07c
Re-added hop count to header, fixes related to ETX computation: adv packets do not add a good etx, timedout packets do not restore the neighbor age, removed unused code
2007-11-17 10:32:54 +00:00
adamdunkels
5e7cbff22a
Fixed compiler warnings
2007-11-17 10:12:19 +00:00
adamdunkels
a7102829e3
Updated ruc callback types to fix compiler warnings
2007-11-17 09:59:48 +00:00
adamdunkels
0a8b1cbd76
Updated ruc callback types to fix compiler warnings
2007-11-17 09:47:55 +00:00
fros4943
532d9814c2
configurable rudolph datasize
2007-11-16 09:17:22 +00:00
nifi
c989d425dc
fixed compiler warning
2007-11-15 13:33:09 +00:00
nifi
a6d827fa1f
moved initialization of ctimer to allow MAC layer to use ctimers
2007-11-15 13:07:42 +00:00
fros4943
c645cad175
fixed conflicting types: nbh.c vs nbh.h
2007-11-15 08:10:42 +00:00
adamdunkels
0a7f35d62c
Added neighborhood discovery module
2007-11-13 21:01:54 +00:00
adamdunkels
1386b8ae8f
Added API to retrieve address of current receiver
2007-11-13 21:00:10 +00:00
adamdunkels
c40dde1209
Updated ruc to send ACKs before notifying applications, and API support for the etx-based tree code
2007-11-13 20:58:46 +00:00
adamdunkels
6845d2a1aa
Updated tree to use expected transmissions (etx) as routing metric
2007-11-13 20:39:29 +00:00
nifi
44480fc7b7
added fix to enable start of ctimers before etimer process has started
2007-11-13 15:13:03 +00:00
adamdunkels
1cb3bad088
Multiple bugfixes and updates to xmac code by Niclas
2007-11-12 22:29:37 +00:00