190 likes | 201 Views
This document outlines the specification of multicast communication in ZigBee networks, covering member and non-member modes, addressing, message relay methods, research issues, and example scenarios.
E N D
Multicast CommunicationZigBee SpecificationbyYi-Chen Luand Yu-Chee TsengNCTU 2008/05/01
Outline • Introduction • Upon Receipt of A Multicast Frame from The Next Higher Layer • Member Mode Multicast • Initiating A ‘Member Mode’ Multicast • Upon Receipt of A Member Mode Multicast Frame • Non-Member Mode Multicast • Initiating A ‘Non-Member Mode’ Multicast • Upon Receipt of A Non-member Mode Multicast Frame • Research Issues
Introduction • Multicast addressing is accomplished by 16-bit multicast group IDs. • A multicast group is a collection of nodes • Registered under the same multicast group ID. • Physically separated by a hop distance of no more than MaxNonMemberRadius. • Each node has a group ID Table • Contains a set of 16-bit group identifiers to which the device belongs. • nwkGroupIDTable is an attribute of the NIB (Network Information Base).
Introduction (Cont.) • ‘Member Mode’ • The original message was created by a member of the group. • Relayed by means of broadcasts. • ‘Non-Member Mode’ • The original message was created by a non-member of the group. • Relayed by means of unicasts towards a group member. • Once reaching any member, switch to ‘Member Mode’.
Basic Idea of ZigBee Multicast M N N M N M N N M N N N M N N Non-member mode (unicast) Member mode (k-hop broadcast) Member mode (k-hop broadcast)
Example N broadcast broadcast Member mode multicast N M N broadcast M N broadcast broadcast N M N
Example Non-Member mode multicast M Switch to member mode and broadcast N unicast unicast M N N M N M N M
Upon Receipt of A Multicast Frame from the Higher Layer • NLDE-DATA.request is received from its next higher level and the DstAddrMode is 0x01. • An entry exists in the nwkGroupIDTable? • Yes : Initiating a Member Mode Multicast • No : Initiating a Non-member Mode Multicast 0x01 implies this is Group ID, not address
Initiating A Member Mode Multicast • Set the multicast mode sub-field of the multicast control field to 0x01 (member mode). • If the BTT (Broadcast Transmission Table) is full and contains no expired entries. • The message shall not be sent. • Issue the NLDE-DATA.confirm primitive with a Status value of BT_TABLE_FULL. • If the BTT is not full or contains an expired BTR (Broadcast Transmission Record) • Create a new BTR. • Transmit the message. 0x01
Upon Receipt of A Member Mode Multicast Frame • Compare the sequence number and the source address of the multicast frame with the records in its BTT. • If the device has a BTR of this multicast frame discard the frame (duplicate message!) • If no record is found and the BTT is full and contains no expired entries discard the frame (buffer full!) • If no record is found and the BTT is not full or contains an expired BTR (OK!) create a new BTR, then continue processing (see the next page).
Upon Receipt of A Member Mode Multicast Frame (Cont.) • An entry exists in the nwkGroupIDTable? • Yes : (I am a member!) • Pass the message to the next higher layer. • Set the multicast mode sub-field of the multicast control field to 0x01 (member mode). • Set the value of the NonmemberRadius sub-field to the value of the MaxNonmemberRadius sub-field in the multicast control field. • Re-broadcast the frame. • No : (I am not a member!) • Examine the frame's multicast NonmemberRadius field. • 0 discard the frame along with the newly added BTR. • Otherwise decrease NonmemberRadius field by 1 and re-broadcast the frame.
Upon Receipt of A Member Mode Multicast Frame (Cont.) • Each member mode multicast message shall be transmitted nwkMaxBroadcastRetriestimes and delay a period of nwkPassiveAckTimeoutseconds between retransmissions. • The NWK layer issues an MCPSDATA.request primitive to the MAC sub-layer. • DstAddrMode parameter set to 0x02 (16-bit network address). • DstAddr parameter set to 0xffff.
Example • MaxNonmemberRadius = 3 • Current NonmemberRadius = 1 • NonmemberRadius = 1 • Entry isn’t found in nwkGroupIDTable • Decrease NonmemberRadius to 0 • NonmemberRadius = 0 • Entry is found in nwkGroupIDTable • Set NonmemberRadius to MaxNonmemberRadius (3) M N A member mode multicast frame with NonmemberRaduis = 1 • NonmemberRadius = 0 • Entry isn’t found in nwkGroupIDTable • Discard the frame N
Initiate a Non-Member Mode Multicast • Set the multicast mode sub-field of the multicast control field to 0x00 (non-member mode). • An entry corresponding to the GroupID destination in the routing table? • Yes : examine the entry's status field (a route exists!) • If the status is ACTIVE, then transmit the frame. • If the status is VALIDATION_UNDERWAY, then change the status to ACTIVE and transmit the frame. • Issue the NLDEDATA.confirm primitive with the Status value received from the MCPSDATA.confirm primitive. • No : (no route exists!) • DiscoverRoute parameter is 0x00 : • Discard the frame • Issue the NLDE-DATA.confirm primitive with a Status value of ROUTE_DISCOVERY_FAILED. • DiscoverRoute parameter is 0x01 : • Initiate route discovery
Upon Receipt of A Non-member Mode Multicast Frame • An entry exists in the nwkGroupIDTable? • Yes : (I am a member!) • Set multicast control field to 0x01 (member mode). • The message shall be processed as if it had been received as a member mode multicast. • No : (I am not a member!) check its routing table for an entry corresponding to the GroupID destination • No such entry discard the frame. (There would be a record in routing table if we had initiated a non-member mode multicast frame and we had tried to find a route) • Otherwise examine the entry's status field. • If the status is ACTIVE, then the device shall (re)transmit the frame. • If the status is VALIDATION_UNDERWAY, then the status shall be changed to ACTIVE and the device shall (re)transmit the frame. • Issues an MCPSDATA.request primitive to the MAC sublayer. • DstAddrMode set to 0x02 (16-bit network address) • DstAddr parameter set to the next hop as determined from the matching routing table entry.
Example • Entry isn’t found in nwkGroupIDTable • Route to GroupID destination is available • Forward to the next hop according to the routing table • Entry is found in nwkGroupIDTable • Switch to member mode multicast broadcast unicast unicast N N M • Entry isn’t found in nwkGroupIDTable • Route to GroupID destination is available • Forward to the next hop according to the routing table A non-meber mode multicast frame
Summary: Research Issues • Some unspecified parameters. • MaxNonmemberRadius • nwkMaxBroadcastRetries • nwkPassiveAckTimeout • Membership maintenance • Join/Leave a multicast group.