DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
...
| Code Block |
|---|
/****************************************************************************
* Function: tiva_ipv6multicast |
...
* * Description: * Configure the IPv6 multicast MAC address. * * Parameters: * priv - A reference to the private driver state structure * * Returned Value: * OK on success; Negated errno on failure. * * Assumptions: ***************************************************************************/ |
...
| Code Block |
|---|
#ifdef CONFIG_NET_ICMPv6
static void tiva_ipv6multicast(FAR struct tiva_ethmac_s *priv)
{
struct net_driver_s *dev;
uint16_t tmp16;
uint8_t mac[6];
/* For ICMPv6, we need to add the IPv6 multicast address
|
...
* For IPv6 multicast addresses, the |
...
Ethernet MAC is derived by * the four low-order octets OR'ed with the MAC 33:33:00:00:00:00, |
...
* so for example the IPv6 address FF02:DEAD:BEEF::1:3 would |
...
map * to the Ethernet MAC address 33:33:00:01:00:03. |
...
* NOTES: This appears correct for the ICMPv6 Router |
...
Solicitation * Message, but the ICMPv6 Neighbor Solicitation message seems |
...
to * use 33:33:ff:01:00:03. |
...
| Code Block |
|---|
*/ mac[0] = 0x33; mac[1] = 0x33; dev = &priv->dev; tmp16 = dev->d_ipv6addr[6]; mac[2] = 0xff; mac[3] = tmp16 >> 8; tmp16 = dev->d_ipv6addr[7]; mac[4] = tmp16 & 0xff; mac[5] = tmp16 >> 8; nvdbg("IPv6 Multicast: %02x:%02x:%02x:%02x:%02x:%02x\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); (void)tiva_addmac(dev, mac); #ifdef CONFIG_NET_ICMPv6_AUTOCONF /* Add the IPv6 all link-local nodes Ethernet address. This is the |
- address that we expect to receive ICMPv6 Router Advertisement
- packets.
- /
| Code Block |
|---|
* address that we expect to receive ICMPv6 Router Advertisement
* packets.
*/
(void)tiva_addmac(dev, g_ipv6_ethallnodes.ether_addr_octet);
#endif /* CONFIG_NET_ICMPv6_AUTOCONF */
#ifdef CONFIG_NET_ICMPv6_ROUTER
/* Add the IPv6 all link-local routers Ethernet address. This is the
|
- address that we expect to receive ICMPv6 Router Solicitation
- packets.
- /
| Code Block |
|---|
* address that we expect to receive ICMPv6 Router Solicitation * packets. */ (void)tiva_addmac(dev, g_ipv6_ethallrouters.ether_addr_octet); #endif /* CONFIG_NET_ICMPv6_ROUTER */ } #endif /* CONFIG_NET_ICMPv6 */ |
The following Ethernet drivers are complete and IPv6 ready. All others Ethernet drivers have all required IPv6 support except that they are missing (1) the required ICMPv6 addressing filtering described above and/or (2) support for multi-cast address filtering.
...