[Tinyos-devel] Current status of the message buffer discussion

Miklos Maroti mmaroti at math.u-szeged.hu
Mon Jun 1 10:51:59 PDT 2009


My question is, then how far in the networking stack do you want to
handle differently the 16-bit and 64-bit addresses?

I will come up with more interfaces.

Miklos

On Mon, Jun 1, 2009 at 3:49 PM, Omprakash Gnawali <gnawali at usc.edu> wrote:
> We discussed these interfaces during net2 meeting last week. Option 3
> might be problematic because something like blip might need support
> for multiple addressing modes.
>
> - om_p
>
> On Fri, May 22, 2009 at 2:43 PM, Miklos Maroti <mmaroti at math.u-szeged.hu> wrote:
>> Dear Eric,
>>
>> You brought up very good points, and I am very happy that others are
>> also engaged in the discussion. At this point I am convinced that both
>> Jan's and my proposals could be made to work. But to really compare
>> the two approaches we need use cases, very well defined used cases.
>>
>> Just to start the discussion, let me start with IEEE 802.15.4 link
>> layer. Here are some options:
>>
>> ------- Option #1 -------
>>
>> interface Ieee154Send
>> {
>>        command error_t send64(uint64_t dest, bool ackReq, message_t* msg);
>>        command error_t send16(uint16_t dest, bool ackReq, message_t* msg);
>>        event void sendDone(message_t* msg, error_t error, bool acked);
>>        command void* getPayload(message_t* msg, uint8_t len);
>> }
>>
>> interface Ieee154Packet
>> {
>>        command uint16_t getSource16(message_t* msg);
>>        command uint64_t getSource64(message_t* msg);
>>        command uint16_t getDestination16(message_t* msg);
>>        command uint64_t getDestination64(message_t* msg);
>>        // no set commands as this interface should be used only for
>> received messages
>>
>>        command void* getPayload(message_t* msg);
>>        command uint8_t getLength(message_t* msg);
>> }
>>
>> ------- Option #2 -------
>>
>> enum ieee154_flags
>> {
>>        IEEE154_ACK_REQ = 1 << 0,
>>        IEEE154_FRAME_PENDING = 1 << 1,
>>        IEEE154_COMPRESS_TO_16BIT = 1 << 2,
>> };
>>
>> interface Ieee154Send
>> {
>>        command error_t send(uint64_t dest, uint8_t flags, message_t* msg,
>> void* payload, uint8_t length);
>>        event void sendDone(message_t* msg, error_t error, uint8_t flags);
>>        command void* getPayload(message_t* msg, uint8_t len);
>>        command uint8_t getMaxPayload();
>> }
>>
>> interface Ieee154Receive
>> {
>>        event message_t* receive(uint64_t source, message_t* msg, void*
>> payload, uint8_t length);
>> }
>>
>> ------- Option #3 -------
>>
>> #ifdef USE_64BIT_ADDR
>> typedef uint64_t address_t;
>> #else
>> typedef uint16_t address_t;
>> #endif
>>
>> interface Ieee154Packet
>> {
>>        command void format(message_t* msg, uint8_t flags);
>>
>>        command address_t getSource(message_t* msg);
>>        command address_t getDestination(message_t* msg);
>>        command void setSource(message_t* msg, address_t addr);
>>        command void setDestination(message_t* msg, address_t addr);
>>
>>        command void requestAck(message_t* msg, bool ack);
>>        command bool wasAcknowledged(message_t* msg);
>>
>>        command void* payload(message_t* msg);
>>        command uint8_t payloadLength(message_t* msg);
>>        command void setPayloadLength(message_t* msg, uint8_t len);
>>        command uint8_t maxPayloadLength(message_t* msg);
>> }
>>
>> interface Send
>> {
>>        command error_t send(message_t* msg);
>>        event void sendDone(message_t* msg, error_t error);
>> }
>>
>> interface Receive
>> {
>>        event message_t* receive(message_t* msg);
>> }
>>
>> Miklos
>>
>> _______________________________________________
>> Tinyos-devel mailing list
>> Tinyos-devel at millennium.berkeley.edu
>> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-devel
>>
>



More information about the Tinyos-devel mailing list