Commit graph

424 commits

Author SHA1 Message Date
oliverschmidt 5f3296e943 Changed packet drivers from services to plain processes.
Now tcpip_output() is a function pointer that is supposed to be set via the macro tcpip_set_outputfunc(). Packet drivers do so on process startup.

Thus if there are several packet drivers in a Contiki system the one started last is the one actually used. This behaviour is especially useful for the 'IP forwarding' "meta" packet driver.
2007-05-20 21:29:39 +00:00
fros4943 42a952981b bugfix: could not store last seen rreqs 2007-05-20 20:08:28 +00:00
oliverschmidt c32b2ca581 Replaced function with macro. 2007-05-20 00:04:18 +00:00
oliverschmidt c15984eb24 Avoid function pointer mismatch in set_receive_function(). 2007-05-19 13:19:22 +00:00
oliverschmidt 0e9c61ca0c The PT_* macros contain return statements so a function using them must return a value. 2007-05-19 13:12:00 +00:00
oliverschmidt e5d6dd1db5 Removed sources from makefile which don't exist in the CVS repository. 2007-05-17 19:22:04 +00:00
adamdunkels 940da856de Bugfixes, updates 2007-05-15 08:09:21 +00:00
adamdunkels a9e8e9f4fe Replaced uabc with polite, uibc with ipolite, added rudolph2 2007-05-15 08:08:05 +00:00
adamdunkels ac9ba33bd5 Yet another network bulk flooding protocol 2007-05-15 08:07:46 +00:00
adamdunkels 18825e05b6 Strobes for unicast packets are now acked immediately. Sleep cycle is now configurable. Many bugfixes 2007-05-15 08:07:07 +00:00
adamdunkels 434a6376d7 Added nullmac 2007-05-15 08:06:07 +00:00
adamdunkels d1c6b2eb0d Added output functions 2007-05-15 08:05:52 +00:00
adamdunkels db0571bef3 Identified polite broadcast primitive 2007-05-15 07:41:36 +00:00
adamdunkels f539f4efd8 Polite broadcast primitive 2007-05-15 07:41:22 +00:00
adamdunkels 5728570aa4 A 'null' MAC protocol that does not do anything 2007-05-15 07:40:22 +00:00
bg- 5fb8871fb6 * NULL pointer spotted by Vlasios. 2007-05-13 15:14:48 +00:00
oliverschmidt 4832e803e8 Made use of signed 32 bit data type. 2007-05-12 21:04:05 +00:00
bg- 82aa4b4926 * When looking up potentially bad routes use uaodv_rt_lookup_any
rather than uaodv_rt_lookup.
2007-05-09 16:45:03 +00:00
bg- faf94db265 * Respect "destination only" flag in RREQs.
* If our routes seqno is <= requester last known seqno our route must
  be bad (in his eyes). Previos comparison was < which must be wrong.
2007-05-09 14:53:54 +00:00
bg- 34490eeecb * Make it explicit that some seqno:s are in host byte order by naming
them hseqno.

* Change uaodv_rt_add to take argument in (standard) network byte
  order (and change it to be a pointer).
2007-05-09 13:54:41 +00:00
bg- 1b3c2da7ab * Make it explicit that some seqno:s are in host byte order by naming
them hseqno.

* Change uaodv_rt_add to take argument in (standard) network byte
  order (and change it to be a pointer).
2007-05-09 13:45:16 +00:00
bg- 9cde72c806 * Make filtering criterion on rssi more liberal and don't use the
correlation value at all.
2007-05-09 13:07:55 +00:00
bg- 822f8f01f6 * Change function uaodv_bad_route to uaodv_bad_dest. 2007-05-08 16:07:59 +00:00
bg- c23e583129 * Added flag UAODV_RERR_UNKNOWN to deal with unknown errors that are
often the result of rebooting nodes.

* Change function uaodv_bad_route to uaodv_bad_dest.
2007-05-08 13:33:57 +00:00
bg- 9e9cadabaf * Added flag UAODV_RERR_UNKNOWN to deal with unknown errors that are
often the result of rebooting nodes.
2007-05-08 13:32:55 +00:00
bg- a207770a1e * Add attribute to track bad routes and necessary support for this.
* Revamp forwarding to deal with bad routes or request new routes as
  appropriate.

* Mark bad routes (rather than tossing them) as we are informed by
  other hosts.

* No longer wait two ticks before making route request.
2007-05-08 08:41:26 +00:00
bg- 67e23ee564 * Add attribute to track bad routes and necessary support for this. 2007-05-08 08:30:49 +00:00
bg- 7ec3d191a2 * Need to track if we at the moment are doing forwarding or sending. 2007-05-08 08:28:59 +00:00
bg- b9a3721076 * Keep track of last known seqno. Send last known seqno in RREQs.
* If we have rebooted, bump seqno (gleaned from RREQs).

* Reworked filtering of RREQs.

* Use last known seqno check before responding to RREQ that we have a
  route for. Never graft onto an existing but old route.
2007-05-07 11:51:20 +00:00
bg- 948a88d9e6 * Set route timeout to maximum value for std compliance.
* Rename aodvconn to bcastconn for clarity and uniformity.

* Use uip_udp_packet_send where possible.

* Change a lot of debug printfs.

* Moved call to fwc_add.

* Set ttl to sensible value if AODV_COMPLIANCE.
2007-04-30 15:26:09 +00:00
bg- b2bc97ddba * Constness, voidness. 2007-04-30 15:19:21 +00:00
bg- 5abe5334c8 * Remove forgotten printf. 2007-04-30 09:51:51 +00:00
bg- b14026a394 * Move AODV_COMPLIANCE hack into better place. 2007-04-30 09:51:06 +00:00
bg- 9acf8e021e * Missing return when filtering out bad neigbours.
* Make routing messages bypass routing rather than creating artificial
  neigbours.
2007-04-30 09:49:32 +00:00
bg- a9d536e50c * AODV requires that 255.255.255.255 is not rebroadcasted! Deal with
this using conditional compilation (AODV_COMPLIANCE).
2007-04-24 16:58:58 +00:00
bg- 8b1cd7a470 * Explain that SCMP32 comes from RFC 3561 and is easy to implement
using 2's complement arithmetic. Unfortunately C only defines
  unsigned arithmetic and consequently machines that don't use 2's
  complement (i.e unknown arithmetic) will have to be dealt with on a
  per machine basis.
2007-04-24 16:37:45 +00:00
bg- 42fe071745 * Some more debug printfs.
* Correct hop_count when an existing route is found.
2007-04-24 16:08:10 +00:00
oliverschmidt 195cf8cafb Made it build, but certainly _NOT_ work on non-gcc platforms. 2007-04-18 21:26:09 +00:00
oliverschmidt 4bf1ecc20e Made endianess configuration actually work. 2007-04-11 00:25:38 +00:00
adamdunkels 336246f406 Makefile 2007-04-07 05:43:52 +00:00
adamdunkels d335cb8087 Power saving MAC protocol based on X-MAC [SenSys 2006] 2007-04-07 05:43:31 +00:00
bg- e03f25aea7 * Unifdef UAODV_BAD_ROUTE.
* Allow more frequent RREQs but avoid some unnecessary ones.
2007-04-05 12:30:17 +00:00
bg- e486c95da2 * Some constness and signedness.
* Connect new routes to existing routes.

* RERR bad destinations not bad nexthops.
2007-04-05 12:09:32 +00:00
bg- 9c8f01be41 * Major overhaul in order to support route sequence numbers.
* Changes to use network byte order.

* Add RREQ forwading cache.

* Fix some const:ness and casts.

* RERR shall only delete old routes.

* Filter RREQ:s also using cc2420_check_remote().

* LRU management of routes.
2007-04-04 12:12:21 +00:00
bg- 8994d8e0b5 * Make uaodv_rt_add return meaningful value.
* uaodv_rt_lru() moves route to head of list.

* Hop count is only 8 bits.
2007-04-04 11:52:29 +00:00
bg- 1d7932c6b3 * Make uaodv_rt_add return meaningful value.
* uaodv_rt_lru() moves route to head of list.

* Configurable number of routes.
2007-04-04 11:50:54 +00:00
bg- 8c0fa5bc8a * Abbreviate originator as orig rather than src to avoid confusion.
* #if 0 unused defines.
2007-04-04 11:48:49 +00:00
bg- e5fa567869 * htonl and friends. 2007-04-04 11:37:20 +00:00
adamdunkels cda806dc84 Bugfix: rudolph1 sometimes failed because the first packet was received from a neighbor 2007-04-02 19:12:37 +00:00
adamdunkels d42b91fd20 Documentation updates 2007-04-02 18:07:10 +00:00
adamdunkels 2d42bd9e2a Now keeps track of highest chunk number heard and sends NACKs until it sees it 2007-04-02 17:53:27 +00:00
adamdunkels a26906f478 Made send intervals configurable when sending a new file 2007-04-02 09:51:45 +00:00
adamdunkels 25af6bdcea Documentation updates 2007-04-01 18:20:41 +00:00
adamdunkels ac3b3ea3ca Removed unused file 2007-03-31 18:36:03 +00:00
adamdunkels 6dc06d09af Made the number of retransmissions configurable 2007-03-31 18:33:27 +00:00
adamdunkels 91aa54dc77 Made advertisments for new shorter routes quicker, and advertisements for longer routes slower 2007-03-31 18:33:04 +00:00
adamdunkels 0650a014b5 Documentation updates 2007-03-31 18:31:27 +00:00
adamdunkels 36bc77d27f Documentation fixes 2007-03-29 23:38:07 +00:00
adamdunkels bc1bb96809 Documentation fixes 2007-03-29 23:18:47 +00:00
adamdunkels 2f079ca8e2 Debug output 2007-03-29 23:18:22 +00:00
adamdunkels 4cde369174 Added call to timedout callback 2007-03-29 22:22:44 +00:00
adamdunkels 81b469d4b7 Made buffer sizes configurable from contiki-conf.h 2007-03-29 22:22:20 +00:00
adamdunkels f35eeb49dd Added debugging output 2007-03-29 22:21:56 +00:00
adamdunkels 8e0ae73fa5 Increased default packet size to 64, removed out-commented code 2007-03-28 19:52:27 +00:00
adamdunkels 75dc71f70b Minor documentation change 2007-03-28 19:51:33 +00:00
oliverschmidt f60b7aabcf Added stdio.h for printf. 2007-03-26 22:45:49 +00:00
adamdunkels fbdd9799bd Use random_rand() instead of rand() due to bug on msp430 2007-03-25 21:44:23 +00:00
adamdunkels 06386b6f30 Reduce header before passing over to receiver 2007-03-25 21:44:06 +00:00
adamdunkels 41630b0f03 Free queued packet when closing 2007-03-25 21:43:23 +00:00
oliverschmidt 90f82d6a12 Keep system includes in front of Contiki includes. 2007-03-25 21:31:24 +00:00
oliverschmidt 4043448c02 Make consistent presumptions about inlcude paths. 2007-03-25 21:29:02 +00:00
adamdunkels f67a47aff4 Documentation update, removed unneeded includes 2007-03-25 17:16:25 +00:00
adamdunkels 3eb156019e Documentation fix 2007-03-25 17:15:43 +00:00
adamdunkels 0f55a4efee Route discovery timeout configurable at run-time 2007-03-25 12:13:22 +00:00
adamdunkels 0c0d823dbf Typo 2007-03-25 12:13:04 +00:00
adamdunkels d19e475fe6 Fixed include files 2007-03-25 12:06:39 +00:00
adamdunkels f69268b4ab Timeouts configurable at run-time 2007-03-25 12:06:28 +00:00
adamdunkels e12086c980 Documentation fixes 2007-03-25 12:05:51 +00:00
adamdunkels f3872aac48 Make route lifetime dynamically configurable 2007-03-25 12:03:59 +00:00
adamdunkels 4a2f71c3ef Make use of consistent timer interface code 2007-03-25 12:03:41 +00:00
adamdunkels 6f72d9282b Added debugging output 2007-03-25 12:03:12 +00:00
adamdunkels d9f0c89726 Moved rudolph{0,1} from apps/ directory into core/net/rime 2007-03-25 11:56:59 +00:00
adamdunkels e57126ed0e Removed unused files 2007-03-25 11:55:20 +00:00
oliverschmidt b3ab4b4e8f Added missing include. 2007-03-25 09:19:16 +00:00
adamdunkels 9d110c9adf File description 2007-03-24 16:42:43 +00:00
adamdunkels deb8196333 #if'ed away debugging code 2007-03-24 16:42:36 +00:00
adamdunkels 047c807332 Removed redundant initialization 2007-03-24 16:42:21 +00:00
oliverschmidt 0ded7a166e Added stdio.h for printf. 2007-03-24 13:57:04 +00:00
oliverschmidt e552140425 Added missing prototype. 2007-03-24 13:54:05 +00:00
oliverschmidt 41d6a76019 Make consistent presumptions about inlcude paths. 2007-03-24 13:42:25 +00:00
oliverschmidt 1a0d00e1d4 Added stdio.h for sprintf. 2007-03-24 13:38:06 +00:00
adamdunkels 013701f50c Renamed rimebuf_hdrextend() to rimebuf_hdralloc() 2007-03-23 10:46:35 +00:00
adamdunkels 2caf271d58 Removed unused node-id,.h 2007-03-22 23:57:19 +00:00
adamdunkels c699512354 ctimer_set() bugfix 2007-03-22 23:57:08 +00:00
adamdunkels de8a3fd507 Removed mesh and tree, added queuebuf 2007-03-22 19:03:07 +00:00
adamdunkels eea7f463d7 Transmission of IP packets over mesh routing, implemented with Rime 2007-03-22 18:58:40 +00:00
adamdunkels 1f91695771 Added route initializaion 2007-03-22 18:54:45 +00:00
adamdunkels 095952f97d Added support for multiple simulteaneous tree connections, removed sibc connection in favour of a uibc connection 2007-03-22 18:54:22 +00:00
adamdunkels 3134789a94 Added debugging, reduced wait time 2007-03-22 18:53:38 +00:00
adamdunkels 5b5d9209a1 Refactored the mesh code by splitting multi-hop forwarding and route discovery. The mesh module is now much simpler than before 2007-03-22 18:53:22 +00:00
adamdunkels 423dc1a951 Queued packet pointer should be NULL when no packet is queued 2007-03-22 17:37:10 +00:00
adamdunkels 5af2430f95 Added automatic timeouts 2007-03-22 17:34:43 +00:00
adamdunkels 2ef8c91bbc Refactored the mesh code by splitting multi-hop forwarding and route discovery. The mesh module is now much simpler than before 2007-03-22 17:34:16 +00:00
adamdunkels c914d268ca Best effort multi-hop routing 2007-03-22 17:33:15 +00:00
adamdunkels 5c6c6e3358 Added configurable interval 2007-03-21 23:23:02 +00:00
adamdunkels d1de1e0001 Added hop counting, remade the rimeaddr_t u16 to be an array rather than a scalar 2007-03-21 23:22:42 +00:00
adamdunkels b7afd2baf0 Remade the rimeaddr_t u16 to be an array rather than a scalar 2007-03-21 23:22:11 +00:00
adamdunkels b377a83730 Removed automatic setting of Rime node address 2007-03-21 23:22:02 +00:00
adamdunkels 70f2be4652 nf is now based on uibc 2007-03-21 23:21:54 +00:00
adamdunkels 9951aba084 Unique identified best effort local area broadcast 2007-03-21 23:21:01 +00:00
adamdunkels 4328947d26 Debugging added, whitespace removed 2007-03-21 23:19:52 +00:00
adamdunkels d9406024d0 Split interval: one half listen only, second half send packet 2007-03-21 09:09:33 +00:00
adamdunkels 4bd8cd32ac Fixed debug output 2007-03-20 12:28:13 +00:00
adamdunkels 558ebf3c5d Renamed suc_send_uc() to suc_send(), fixed debug output 2007-03-20 12:27:32 +00:00
adamdunkels d937ff8d16 Fixed compilation problem, added send() call so that a packet is sent out immediately 2007-03-20 12:26:57 +00:00
adamdunkels 516f9316ab Added functions for accessing the data and length of a queued buffer 2007-03-20 12:26:23 +00:00
adamdunkels accea52d88 New Rime module: unique anonymous best effort broadcast 2007-03-20 11:59:55 +00:00
adamdunkels 8147f47aab Trickle implementation for Rime 2007-03-19 23:26:18 +00:00
adamdunkels e4a739a76c Added *_close() function to all Rime modules 2007-03-19 22:10:16 +00:00
adamdunkels aa1389e873 Removed unused files 2007-03-19 22:07:48 +00:00
adamdunkels 43326b5ae6 API change for Rime: *_setup() renamed to *_open() 2007-03-19 19:24:36 +00:00
bg- cb6bda5378 * Support longer lease times. 2007-03-16 12:16:16 +00:00
adamdunkels cc87617ef2 Removed inclusion of non-existant file rime-types.h 2007-03-16 09:16:40 +00:00
adamdunkels 2e6dbad62b node_id -> rimeaddr_node_addr 2007-03-15 21:25:06 +00:00
adamdunkels e4e57fca96 Renamed input function to rime_input() and the output function to rime_driver_send() 2007-03-15 21:24:11 +00:00
adamdunkels 833d098096 New Rime module: tree, a converge cast / tree data collection protocol 2007-03-15 20:04:30 +00:00
adamdunkels cc60843e8b New Rime module: mesh, a mesh routing protocol 2007-03-15 19:52:51 +00:00
adamdunkels ab0d556353 Added a new type for all addresses in Rime: rimeaddr_t. This is an abstract type that currently is defined as a 16-bit quantity but that most likely will be redefined in the future 2007-03-15 19:43:07 +00:00
adamdunkels 2b119b054e const qualifiers 2007-03-15 19:41:29 +00:00
adamdunkels fd33a89214 Renamed ulayer -> callbacks 2007-03-15 10:01:04 +00:00
adamdunkels 26a681cf37 rimebuf_totle() prototype & documentation 2007-03-15 09:57:00 +00:00
adamdunkels 16bdd2f18c Sequence number now reported 2007-03-15 09:56:30 +00:00
adamdunkels 168765a205 Compiler warning fix 2007-03-15 09:56:15 +00:00
adamdunkels 537ecb9198 UDP initialization fixed 2007-03-15 09:56:00 +00:00
adamdunkels fb23363a70 Removed abc-udp.c 2007-03-15 09:54:58 +00:00
adamdunkels 548e4ce556 New rime module: best-effort network flooding (nf) 2007-03-14 00:30:46 +00:00
adamdunkels 674f373f76 Renamed function for compacting the data in the rimebuf: rimebuf_compact 2007-03-14 00:30:11 +00:00
adamdunkels 91f8c4b8e4 Renamed driver output function to abc_driver_send 2007-03-14 00:29:05 +00:00
adamdunkels 355724669e Default channel allocations 2007-03-14 00:27:36 +00:00
adamdunkels 11627c2406 Added generic abc layer 2007-03-13 13:05:30 +00:00
adamdunkels ba1dc7105f Rime driver running over UDP 2007-03-13 13:02:33 +00:00
adamdunkels 358259105e Generic abc module 2007-03-13 13:01:48 +00:00
adamdunkels 6930910cd3 Renamed old netbuf -> rimebuf 2007-03-13 10:28:52 +00:00
adamdunkels ca359a6314 Removed the explicit header buffer; both the header and data are not in the same 'physical' buffer. Added function for copying referenced data into the rimebuf. 2007-03-13 10:28:16 +00:00
adamdunkels 21ef887f07 +Documentation 2007-03-13 10:27:36 +00:00
adamdunkels 2d7aab3ffe Initial import of the experimental Rime code into the SourceForge CVS. 2007-02-28 16:38:51 +00:00
bg- abbde5d8fa * Use convince macro uip_ipaddr_to_quad.
* Printf format check and fix format strings.

* More info in some printfs.

* Be conservative about keeping working routes in RREQ (forward) path.

* Put some spacing between forwarded packet and RREQ.
2007-02-01 14:33:05 +00:00
bg- 539ad552bd * Convince macro uip_ipaddr_to_quad. 2007-02-01 14:27:17 +00:00
bg- 90cbfbba9c * Conditional compilation on CC2420_RADIO rather than TMOTE_SKY. 2007-01-24 16:32:34 +00:00
oliverschmidt cada8d324f Up to now the DNS resolver relied on the uIP 1/2 second polling for its retry management (implementing a linear back-off). But Contiki 2.x uIP doesn't implement the 1/2 second polling for UDP connections anymore! Therefore I added an event timer to the DNS resolver for its retry management. I went for a 1 second interval (still with the same linear back-off) as compromise between officially recommended longer intervals (i.e. BIND with 5 seconds and exponential back-off) and a reasonable user experience for the self induced packet loss in ARP setups. 2007-01-07 13:52:25 +00:00
adamdunkels 35395c10e0 Added *experimental* module for sending raw (non-routed) packets from Contiki. The name of the module is likely to change. 2006-10-22 12:31:46 +00:00
adamdunkels 528760f924 Updated code 2006-10-09 11:53:56 +00:00
adamdunkels a2befb9dd0 Made headercompression work on external buffer 2006-10-09 11:53:43 +00:00
adamdunkels e117830406 Must reset uip_slen to zero after transmit to avoid confusing uIP if it is invoked after this function 2006-09-26 22:12:59 +00:00
adamdunkels b9607d3be2 Fixed the order of the statistics fields, added UIP_APPDATA_PTR pointer that always points to the application data space in the uip_buf buffer, added the documentation for an uip_ipaddr_isbroadcast() function. 2006-09-26 21:02:35 +00:00
oliverschmidt 9e9677b4f0 Added the CCIF (Contiki Core InterFace) declarations necessary for a loadable ARP handler. 2006-09-23 20:10:08 +00:00
oliverschmidt 3e92f843ba More uip_ipaddr_t fixes. 2006-09-18 23:27:42 +00:00
oliverschmidt 83561d8963 Added the CCIF (Contiki Core InterFace) declarations necessary for a loadable packet driver. 2006-09-09 23:24:39 +00:00
bg- 35e6053795 Use ticks for s.ticks. 2006-09-07 15:57:59 +00:00
adamdunkels b8bf33f53f Functions for sending individual UDP datagrams 2006-08-31 09:35:27 +00:00
oliverschmidt 98bb911ffa Avoid compiler warnings. 2006-08-27 00:07:15 +00:00
oliverschmidt 424fde144d Added the CCIF (Contiki Core InterFace) declarations used by the applications which are currently part of the Win32 build. 2006-08-26 23:54:00 +00:00
oliverschmidt 3aa884cb20 Get uip_ethaddr declaration. 2006-08-26 23:40:46 +00:00
bg- f0a14fbeae * Some ntohs stuff.
* Etimer package only allows you to sleep half as many ticks as one
  would expect. Adjust for this.
2006-08-17 12:51:07 +00:00
oliverschmidt 5bd04b9c0d Avoid compiler warnings. 2006-08-14 23:31:40 +00:00
bg- eb7fcb54b4 * Change uip_ipaddr_t to be initialized from bytes rather than 2006-08-14 13:58:28 +00:00
oliverschmidt ffb4edc3e3 Removed designated union initializers from recent change to avoid dependence on ISO C99 compliant compilers. 2006-08-13 14:53:45 +00:00
oliverschmidt fab4acbfe4 Avoid compiler warning. 2006-08-13 14:06:24 +00:00
bg- e8030141f2 More uip_ipaddr_t fixes. 2006-08-10 16:43:32 +00:00
bg- fb94d50410 Change typedef of uip_ipaddr_t from a vector type to a union.
typedef union uip_ip4addr_t {
  u16_t u16[2];
  u8_t  u8[4];
} uip_ip4addr_t;

typedef uip_ip4addr_t uip_ipaddr_t;

This implies that one must consistently pass pointers to
uip_ipaddr_t:s and not mix and match pointers with
uip_ipaddr_t:s as was done earlier.
2006-08-09 16:13:39 +00:00
nifi 8ed2e44003 changed to use constant instead of numeric value 2006-07-07 06:45:45 +00:00
gpz 82170f0015 added cast in line 254 to make cc65 happy 2006-06-24 17:59:28 +00:00
adamdunkels 5221a7b124 Moved PPP code that was inadvertedly put into the net/ directory into its own ppp/ subdirectory 2006-06-17 22:48:08 +00:00
adamdunkels c9e808d638 Import of the contiki-2.x development code from the SICS internal CVS server 2006-06-17 22:41:10 +00:00