Following are the learning from RFC about IPv6 Multicast Group Addressing
Learning IPv6
rfc4291:
=======
The type of an IPv6 address is identified by the high-order bits of
the address, as follows:
Address type Binary prefix IPv6 notation Section
------------ ------------- ------------- -------
Unspecified 00...0 (128 bits) ::/128 2.5.2
Loopback 00...1 (128 bits) ::1/128 2.5.3
Multicast 11111111 FF00::/8 2.7
Link-Local unicast 1111111010 FE80::/10 2.5.6
Global Unicast (everything else)
An IPv6 multicast address is an identifier for a group of interfaces
(typically on different nodes). An interface may belong to any
number of multicast groups. Multicast addresses have the following
format:
| 8 | 4 | 4 | 112 bits |
+------ -+----+----+---------------------------------------------+
|11111111|flgs|scop| group ID |
+--------+----+----+---------------------------------------------+
binary 11111111 at the start of the address identifies the address
as being a multicast address.
+-+-+-+-+
flgs is a set of 4 flags: |0|R|P|T|
+-+-+-+-+
The high-order flag is reserved, and must be initialized to 0.
T = 0 indicates a permanently-assigned ("well-known") multicast
address, assigned by the Internet Assigned Numbers Authority
(IANA).
T = 1 indicates a non-permanently-assigned ("transient" or
"dynamically" assigned) multicast address.
out of 112 bits - 80 bits unused must be "zeros"
rest 32 bits - used for group id
Unicast-Prefix-based IPv6 Multicast Addresses
===============================================
| 8 | 4 | 4 | 8 | 8 | 64 | 32 |
+--------+----+----+--------+--------+----------------+----------+
|11111111|flgs|scop|reserved| plen | network prefix | group ID |
+--------+----+----+--------+--------+----------------+----------+
+-+-+-+-+
flgs is a set of 4 flags: |0|0|P|T|
+-+-+-+-+
o P = 0 indicates a multicast address that is not assigned
based on the network prefix.
o P = 1 indicates a multicast address that is assigned based
on the network prefix.
o If P = 1, T MUST be set to 1
plen indicates the actual number of bits in the network prefix field
that identify the subnet when P = 1.
network prefix identifies the network prefix of the unicast subnet
owning the multicast address. If P = 1, this field contains the
unicast network prefix assigned to the domain owning, or allocating,
the multicast address. All non-significant bits of the network
prefix field SHOULD be zero.
It should be noted that the Interface Identifier requirements in
Section 2.5.1 of [ADDRARCH] effectively restrict the length of the
unicast prefix to 64 bits, hence the network prefix portion of the
multicast address will be at most 64 bits.
Group ID is set based on the guidelines outlined in [IPV6 GID].
The scope of the unicast-prefix based multicast address MUST NOT
exceed the scope of the unicast prefix embedded in the multicast
address.
Embedding the Rendezvous Point (RP) Address
in an IPv6 Multicast Address
FF01 to FF0F are well defined multicast ipv6 address family
first 8 bit always should be '1' - for multicast addressing
next 4 bit - 0
next 4 bit follows notation defined scope
- 0 reserved
1 interface-local scope
2 link-local scope
3 reserved
4 admin-local scope
5 site-local scope
6 (unassigned)
7 (unassigned)
8 organization-local scope
9 (unassigned)
A (unassigned)
B (unassigned)
C (unassigned)
D (unassigned)
E global scope
F reserved
1'st 16bits
===========
FF - 8bit
4it flag
0,1,2,3,5,7 - allowed
4 - can't be
4it - scope
0 to F out of which 0,3,f are reserved
2nd 16bits
==========
8 bit reserved case of unicase prefix based/ rvcd,RRId in case of ext embedding RP
8 bit pem - used for subnet
3,4,5,6th 16bits
===================
In case unicast prefix based used as - Network Prefix
All bits are zeros - normally
specially 6th 16bit - can be value as '1' for defined IANA addresses
7,8th 16bits
============
Group ID - can be 32bit mac address based EUI format how system create link local ip address based on mac
8th 16bit - can't be zero - which is reserved
and can't be 100 to 12A
7,8th 16 bits can't be 2:7ffd/e/f, 8000,ffff