Contiki 2.5
Files | Data Structures | Macros | Functions | Variables
IEEE 802.15.4 Convergence Layer

Files

file  convergence_layer.c
 IEEE 802.15.4 Convergence Layer Implementation.
 
file  convergence_layer.h
 IEEE 802.15.4 Convergence Layer Implementation.
 

Data Structures

struct  transmit_ticket_t
 Bundle Queue Entry. More...
 

Macros

#define CONVERGENCE_LAYER_QUEUE   10
 How many outgoing bundles can we queue?
 
#define CONVERGENCE_LAYER_QUEUE_FREE   (0.2 * CONVERGENCE_LAYER_QUEUE)
 How many queue slots remain free for internal use?
 
#define CONVERGENCE_LAYER_RETRIES   4
 How often shall we retransmit bundles before we notify routing.
 
#define CONVERGENCE_LAYER_FAILED_RETRIES   15
 How often shell we retry to transmit, if it has not been transmitted at all?
 
#define CONVERGENCE_LAYER_TIMEOUT   5
 How long shall we wait for an app-layer ACK or NACK? [in seconds].
 
#define CONVERGENCE_LAYER_RETRANSMIT_TIMEOUT   0.5
 How long shell we wait before retransmitting an app-layer ACK or NACK? [in seconds].
 
#define CONVERGENCE_LAYER_RETRANSMIT_TRIES   (CONVERGENCE_LAYER_TIMEOUT / CONVERGENCE_LAYER_RETRANSMIT_TIMEOUT)
 How often shall we retransmit?
 
#define CONVERGENCE_LAYER_QUEUE_ACTIVE   0x01
 Bundle queue flags.
 
#define CONVERGENCE_LAYER_COMPAT   0x00
 CL COMPAT VALUES.
 
#define CONVERGENCE_LAYER_TYPE_DATA   0x10
 CL Header Types.
 
#define CONVERGENCE_LAYER_FLAGS_FIRST   0x02
 CL Packet Flags.
 
#define CONVERGENCE_LAYER_MASK_COMPAT   0xC0
 CL Field Masks.
 
#define CONVERGENCE_LAYER_STATUS_OK   0x01
 CL Callback Status.
 
#define CONVERGENCE_LAYER_PRIORITY_NORMAL   0x01
 CL Priority Values.
 
#define CONVERGENCE_LAYER_MAX_LENGTH   115
 Maximum payload length of one outgoing frame.
 

Functions

 LIST (transmission_ticket_list)
 List to keep track of outgoing bundles.
 
 LIST (blocked_neighbour_list)
 List to keep track of blocked neighbours.
 
int convergence_layer_is_blocked (rimeaddr_t *neighbour)
 Internal functions.
 
 PROCESS (convergence_layer_process,"CL process")
 CL process.
 
 PROCESS_NAME (convergence_layer_process)
 Convergence Layer Process.
 

Variables

int convergence_layer_transmitting
 MUTEX to avoid flooding the MAC layer with outgoing bundles.
 
int convergence_layer_slots
 Keep track of the allocated tickets.
 
int convergence_layer_queue
 Keep track of the tickets in queue.
 
uint8_t outgoing_sequence_number
 Use a unique sequence number of each outgoing segment.
 
uint8_t convergence_layer_pending
 Indicate when a continue event or poll to ourselves is pending to avoid exceeding the event queue size.
 
struct etimer convergence_layer_backoff
 Backoff timer.
 

Detailed Description