Contiki 2.5
Macros | Functions | Variables
routing_flooding.c File Reference

implementation of flood routing More...

#include <string.h>
#include "net/netstack.h"
#include "net/rime/rimeaddr.h"
#include "lib/list.h"
#include "lib/memb.h"
#include "contiki.h"
#include "clock.h"
#include "logging.h"
#include "bundle.h"
#include "storage.h"
#include "sdnv.h"
#include "agent.h"
#include "discovery.h"
#include "statistics.h"
#include "bundleslot.h"
#include "delivery.h"
#include "convergence_layer.h"
#include "registration.h"
#include "routing.h"

Go to the source code of this file.

Macros

#define FLOOD_ROUTE_RETURN_OK   1
 Internally used return values.
 

Functions

 PROCESS (routing_process,"FLOOD ROUTE process")
 Routing process.
 
void routing_flooding_send_to_known_neighbours (void)
 iterate through all bundles and forward bundles More...
 
void routing_flooding_check_keep_bundle (uint32_t bundle_number)
 Checks whether a bundle still has to be kept or can be deleted. More...
 
int routing_flooding_blacklist_add (rimeaddr_t *neighbour)
 Adds (or refreshes) the entry of 'neighbour' on the blacklist. More...
 
void routing_flooding_blacklist_delete (rimeaddr_t *neighbour)
 Deletes a neighbour from the blacklist. More...
 
void routing_flooding_init (void)
 called by agent at startup
 
void routing_flooding_schedule_resubmission (void)
 Poll our process, so that we can resubmit bundles.
 
void routing_flooding_new_neighbour (rimeaddr_t *dest)
 checks if there are bundle to send to dest More...
 
int routing_flooding_send_bundle (uint32_t bundle_number, rimeaddr_t *neighbour)
 Send bundle to neighbour. More...
 
int routing_flooding_send_to_local (struct routing_entry_t *entry)
 Deliver a bundle to a local service. More...
 
int routing_flooding_forward_directly (struct routing_entry_t *entry)
 Forward a bundle to its destination. More...
 
int routing_flooding_forward_normal (struct routing_entry_t *entry)
 Forward a bundle to the next hop. More...
 
void routing_flooding_resubmit_bundles ()
 Wrapper function for agent calls to resubmit bundles for already known neighbours.
 
int routing_flooding_new_bundle (uint32_t *bundle_number)
 Adds a new bundle to the list of bundles. More...
 
void routing_flooding_delete_bundle (uint32_t bundle_number)
 deletes bundle from list More...
 
void routing_flooding_bundle_sent (struct transmit_ticket_t *ticket, uint8_t status)
 Callback function informing us about the status of a sent bundle. More...
 
void routing_flooding_bundle_delivered_locally (struct mmem *bundlemem)
 Incoming notification, that service has finished processing bundle. More...
 
 PROCESS_THREAD (routing_process, ev, data)
 Routing persistent process.
 

Variables

struct routing_list_entry_t * next
 pointer to the next entry
 
struct mmem entry
 pointer to MMEM containing the routing_entry_t
 
uint32_t bundle_number
 number of the bundle
 
uint8_t flags
 bundle flags
 
uint8_t send_to
 number of nodes the bundle has been sent to already
 
rimeaddr_t neighbours [ROUTING_NEI_MEM]
 addresses of nodes this bundle was sent to
 
uint32_t destination_node
 bundle destination
 
uint32_t source_node
 bundle source
 
rimeaddr_t received_from_node
 neighbour from which we have received the bundle
 

Detailed Description

implementation of flood routing

Author
Georg von Zengen vonze.nosp@m.ng@i.nosp@m.br.cs.nosp@m..tu-.nosp@m.bs.de
Wolf-Bastian Poettner poett.nosp@m.ner@.nosp@m.ibr.c.nosp@m.s.tu.nosp@m.-bs.d.nosp@m.e

Definition in file routing_flooding.c.