38 #ifndef __ORCHESTRA_H__
39 #define __ORCHESTRA_H__
41 #include "net/mac/tsch/tsch.h"
43 #include "net/mac/tsch/tsch-schedule.h"
47 struct orchestra_rule {
48 void (* init)(uint16_t slotframe_handle);
49 void (* new_time_source)(
const struct tsch_neighbor *old,
const struct tsch_neighbor *
new);
50 int (* select_packet)(uint16_t *slotframe, uint16_t *timeslot);
51 void (* child_added)(
const linkaddr_t *
addr);
52 void (* child_removed)(
const linkaddr_t *
addr);
55 struct orchestra_rule eb_per_time_source;
56 struct orchestra_rule unicast_per_neighbor_rpl_storing;
57 struct orchestra_rule unicast_per_neighbor_rpl_ns;
58 struct orchestra_rule default_common;
60 extern linkaddr_t orchestra_parent_linkaddr;
61 extern int orchestra_parent_knows_us;
64 void orchestra_init(
void);
67 void orchestra_callback_packet_ready(
void);
69 void orchestra_callback_new_time_source(
const struct tsch_neighbor *old,
const struct tsch_neighbor *
new);
71 void orchestra_callback_child_added(
const linkaddr_t *
addr);
73 void orchestra_callback_child_removed(
const linkaddr_t *
addr);
static uip_ds6_addr_t * addr
Pointer to a router list entry.