Data Sheet

Power Management—Ethernet Controller I210
177
The mDNS proxy architecture is based on the receive filter and the management controller, the filter is
responsible to parse and filter incoming packets and pass the relevant packets to the management
controller or wake the system if a packet matches one of the wake up filters. The host driver is
responsible to properly configure the filter. The host driver is also responsible to configure the
management controller using the Set mDNS Proxy Command for proper operation.
The configuration for proxy includes:
A list of IPv4 and IPv6 addresses for the interface and enablement of their protocol offload (see
Section 5.7.1).
The I210 supports mDNS proxy of up to 1 IPv4 addresses and/or up to 2 IPv6 addresses.
An array of DNS Resource Records (RRs) to be proxyied by firmware
An array of UDP and TCP port numbers for the services
The configuration is loaded to the Flash. Refer to Figure 3.6, Figure 3-7, and to Section 6.8.11, 6.8.12.
In order to prevent Flash wear out, the host driver writes these Flash areas only if, since the last time
the system went into a sleep state, a record has been modified/added, or if the FW image has been
updated. Then, prior to entering a sleep state, the host uses the Set mDNS Proxy command defined in
Section 10.8.2.4.2.5 to activate the mDNS proxy.
When activated, the mDNS proxy must act as a responsible mDNS responder.
It needs to:
Listen for both unicast and multicast DNS queries on UDP port 5353
Respond with a unicast or multicast answer depending on the QU/QM flag
Not respond if the answer it would give is already in the answer section and the RR TTL is over half
the original TTL
Properly handle queries that span multiple packets (truncated bit is set)
Support negative responses for known-missing rrtype “A” and “AAAA” queries
Implement the random delays before responding to non-probe queries, as required to avoid packet
storms
Support merging answers from multiple queries into a single response
Support legacy DNS queries
Respond to ARP and IPv6 neighbor solicitation requests
Respond ICMP PING requests
Wake the system if one of the offload services is requested or a pre-defined wake up/Magic packet
was received. The service wake detection wake up is configured by the host driver using the
WFUTPF[31:0], RFUTPF, RWPFC registers.
Wake the system if the link was lost and re-gained while sleeping
Wake the system if mDNS name conflict was detected
Provide the wakeup-reason to the software device driver that details why the system is being
woken up.
Proposed configuration of the receive and wakeup filters: