- //\r
- // Translate the IPv4 address into a multicast MAC address if the NIC is an\r
- // ethernet NIC.\r
- //\r
- MacAddress->Addr[0] = 0x01;\r
- MacAddress->Addr[1] = 0x00;\r
- MacAddress->Addr[2] = 0x5E;\r
- MacAddress->Addr[3] = (UINT8) (IpAddress->v4.Addr[1] & 0x7F);\r
- MacAddress->Addr[4] = IpAddress->v4.Addr[2];\r
- MacAddress->Addr[5] = IpAddress->v4.Addr[3];\r
+ if (!Ipv6Flag) {\r
+ //\r
+ // Translate the IPv4 address into a multicast MAC address if the NIC is an\r
+ // ethernet NIC according to RFC1112..\r
+ //\r
+ MacAddress->Addr[0] = 0x01;\r
+ MacAddress->Addr[1] = 0x00;\r
+ MacAddress->Addr[2] = 0x5E;\r
+ MacAddress->Addr[3] = (UINT8) (IpAddress->v4.Addr[1] & 0x7F);\r
+ MacAddress->Addr[4] = IpAddress->v4.Addr[2];\r
+ MacAddress->Addr[5] = IpAddress->v4.Addr[3];\r
+ } else {\r
+ //\r
+ // Translate the IPv6 address into a multicast MAC address if the NIC is an \r
+ // ethernet NIC according to RFC2464.\r
+ //\r
+ \r
+ MacAddress->Addr[0] = 0x33;\r
+ MacAddress->Addr[1] = 0x33;\r
+ MacAddress->Addr[2] = Ip6Address->Addr[12];\r
+ MacAddress->Addr[3] = Ip6Address->Addr[13];\r
+ MacAddress->Addr[4] = Ip6Address->Addr[14];\r
+ MacAddress->Addr[5] = Ip6Address->Addr[15];\r
+ }\r