1.2.1.1.1 Abstraction Model
Discovering the Board
The Announce module provides an easy way to determine useful parameters for your TCP/IP node’s interfaces. This module works in conjunction with the TCP/IP Discoverer personal computer utility to display an interface’s MAC and IPv4/IPv6 addresses, IPv6 multicast listeners, NBNS host name, and MAC type. During stack operation several events may cause an Announce packet to be broadcast on a particular interface. These include:
- Reception of an Announce packet request on that interface
- A DHCP event on that interface (i.e., the interface has configured a new IPv4 address using DHCP)
- The addition or removal of an IPv6 Unicast Address from an interface (after Duplicate Address Detection)
- The addition or removal of an IPv6 Multicast Listener from an interface
- A user call to the ANNOUNCE_Notify function specifying the interface on which to send the announce message
Each Announce packet is a UDP packet broadcast from the corresponding interface’s IP address. The payload is a series of fields beginning with an 8-bit field ID, followed by field information, followed by a field terminator (0x0D 0x0A). The current field IDs and information formats are:
- 0x01 – This field ID indicates that not all of the interface’s address information
could be transmitted in one packet. There is no field information for this ID.
- 0x01 0x0A 0x0D
- 0x02 – MAC address (6 bytes).
- 0x02 0x00 0x04 0xA3 0x12 0x0f 0x94 0x0D 0x0A
- 0x03 – MAC type. The field information for this ID is a variable length string
describing the MAC type of this interface – "ENCJ60", "ENCJ600", "97J60",
"PIC32INT", "PIC32CINT", etc.
- 0x03 ‘P’ ‘I’ ‘C’ ‘3’ ‘2’ ‘I’ ‘N’ ‘T’ 0x0D 0x0A
- 0x04 – Host name. The NBNS host name of the interface, with trailing spaces.
- 0x04 ‘M’ ‘C’ ‘H’ ‘P’ ‘B’ ‘O’ ‘A’ ‘R’ ‘D’ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ 0x0D 0x0A
- 0x05 – The interface’s IPv4 address (4 bytes, big-endian).
- 0x05 0x0A 0x00 0x01 0x03 0x0D 0x0A
- 0x06 – One of the interface's IPv6 unicast addresses (16 bytes, big-endian). Note
that the interface may have more than one of these. The interface also has a
corresponding solicited-node multicast address listener for every unicast address
that is given. The interface may have static IP address.
- 0x06 0xFE 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x04 0xA3 0xFF 0xFE 0x12 0x0F 0x94 0x0D 0x0A
- 0x06 0xFD 0xFE 0xDC 0xDA 0x98 0x76 0x00 0x01 0x02 0x04 0xA3 0xFF 0xAA 0xAA 0xAA 0xAA 0x0D 0x0A
- 0x07 – One of the interface’s IPv6 multicast address listeners (16 bytes,
big-endian). The solicited-node multicast address listeners will not be included.
- 0x07 0xFF 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x0D 0x0A
- 0x08 – One of the interface's IPv6 default router address (16 bytes, big-endian).
- 0x08 0xFD 0xFE 0xDC 0xDA 0x98 0x76 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x0D 0x0A
- 0x09 – One of the interface's IPv6 default gateway address (16 bytes, big-endian).
- 0x09 0xFD 0xFE 0xDC 0xDA 0x98 0x76 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x0D 0x0A