Why do we need this MDNS_Generic library
MDNS (Multicast DNS) is a protocol to resolve hostnames to IP addresses within small networks that do not include a local name server. It is a zero-configuration service, using essentially the same programming interfaces, packet formats and operating semantics as the unicast Domain Name System (DNS).
mDNS can work in conjunction with DNS Service Discovery (DNS-SD), a companion zero-configuration networking technique specified separately in RFC 6763.
This MDNS_Generic library is based on and modified from Dario Pennisi’s ArduinoMDNS Library to provide support to many more boards, such as Arduino SAMD21, Adafruit SAMD21/SAMD51, Seeeduino SAMD21/SAMD51, nRF52, STM32F/L/H/G/WB/MP1, Teensy, SAM DUE, AVR Mega, etc. and enable those boards to use MDNS services. The currently supported modules/shield is W5x00 using Ethernet or EthernetLarge library. The WiFiNINA, ENC28J60 and LAN8742A Ethernet modules/shields are not yet supported as library modifications are needed.