From TinyOS Wiki
Jump to: navigation, search


Meeting Notes


* Source routing framework


* Mike, JHU
* Om, USC

Source Routing Framework

net2 is discussing a framework and interfaces for source routing. The interfaces provided by the forwarding engine will allow user applications to specify the end-to-end path for each packet.

We discussed the first iteration of the proposed packet structure and interfaces. Based on the feedback, we are preparing the second iteration, which will be up for discussion soon. The first iteration of the proposal is posted below for future reference:


 #define MAX_ROUTE_LEN 10
 typedef nx_struct srcRoutePacket_t
   nx_uint8_t routelength:4;   // Limits maximum path length to 16
   nx_uint8_t curhop:4;
   nx_am_addr_t route[MAX_ROUTE_LEN];
 } srcRoutePacket_t;
 interface SrcRouteSend
   command error_t clearRoute(message_t *msg);
   command error_t setRoute(message_t *msg, uint8_t hopIdx, uint16_t nodeId);
   command nx_am_addr_t* getRoute(message_t *msg);
   command uint8_t getRouteLen(message_t *msg);
   command error_t setRouteLen(message_t *msg, uint8_t len);
   command error_t send(message_t *msg);
 interface SrcRoutePacket
   command am_addr_t getNextHop(message_t *msg);
   command am_addr_t getDest(message_t *msg);
   command uint8_t getCurHop(message_t *msg);
   command error_t setCurHop(message_t *msg, uint8_t hop);
   command uint8_t getRouteLen(message_t *msg);
   command uint8_t setRouteLen(message_t *msg, uint8_t len);
   command nx_am_addr_t* getRoute(message_t *msg);