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