zigbee-multicast

Multicast Communication
ZigBee Specification
by
Yi-Chen Lu and Yu-Chee Tseng
NCTU
2008/05/01
1
Outline



Introduction
Upon Receipt of A Multicast Frame from The Next
Higher Layer
Member Mode Multicast



Non-Member Mode Multicast



Initiating A ‘Member Mode’ Multicast
Upon Receipt of A Member Mode Multicast Frame
Initiating A ‘Non-Member Mode’ Multicast
Upon Receipt of A Non-member Mode Multicast Frame
Research Issues
2
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).
Attribute
ID
Type
Read Only
Range
Description
Default
nwkGroupIDTable
0x99
Set
No
Variable
The set of group identifiers, in the
range 0x0000-0xffff, for groups of
which this device is a member.
Null Set
3
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 nonmember of the group.
Relayed by means of unicasts towards a group
member.
Once reaching any member, switch to ‘Member
Mode’.
4
Basic Idea of ZigBee Multicast
M
N
N
N
M
M
N
N
N
N
N
M
N
M
N
Non-member
mode
(unicast)
Member
mode
(k-hop broadcast)
Member
mode
(k-hop broadcast)
5
Example
N
Member mode multicast
broadcast
broadcast
N
M
N
broadcast
M
N
broadcast
broadcast
N
M
N
6
Example
Non-Member mode multicast
Switch to member mode
and broadcast
N
unicast
unicast
N
N
M
M
M
N
M
N
M
7
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?

0x01 implies this is
Group ID, not address



Yes : Initiating a Member
Mode Multicast
No : Initiating a Nonmember Mode Multicast
8
Member Mode Multicast
9
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
10
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).
11
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 rebroadcast the frame.
12
Upon Receipt of A Member Mode Multicast Frame
(Cont.)


Each member mode multicast message shall be
transmitted nwkMaxBroadcastRetries times
and delay a period of nwkPassiveAckTimeout
seconds 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.
13
Example


MaxNonmemberRadius = 3
Current NonmemberRadius = 1
•NonmemberRadius = 1
•Entry isn’t found in
nwkGroupIDTable
•NonmemberRadius = 0
M
•Decrease
NonmemberRadius to 0
N
A member mode
multicast frame with
NonmemberRaduis = 1
•Entry is found in
nwkGroupIDTable
•Set NonmemberRadius to
MaxNonmemberRadius (3)
•NonmemberRadius = 0
N
•Entry isn’t found in
nwkGroupIDTable
•Discard the frame
14
Non-Member Mode Multicast
15
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
16
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.
17
Example
•Entry isn’t found in
nwkGroupIDTable
• Route to GroupID
destination is available
•Entry is found in
nwkGroupIDTable
•Forward to the next
hop according to the
routing table
• Switch to member
mode multicast
broadcast
unicast
unicast
N
N
A non-meber mode
multicast frame
M
•Entry isn’t found in
nwkGroupIDTable
• Route to GroupID
destination is available
•Forward to the next
hop according to the
routing table
18
Summary: Research Issues

Some unspecified parameters.




MaxNonmemberRadius
nwkMaxBroadcastRetries
nwkPassiveAckTimeout
Membership maintenance

Join/Leave a multicast group.
19