MAC/PHY Layer Access to change MAC Address Destination in Photon


#1

I need to be able to construct a packet with a specific MAC address for the destination. It is a well-known multicast destination. I cannot reverse engineer based on an IP Address because of the variable choices the translation creates. Below is the MAC address and a description of how that specific MAC address is used.

Is there a library that I can use (like w5100.h in arduino) where I have access to the MAC layer of a paket?

01:00:0c:cc:cc:cc

Cisco devices send CDP announcements to the multicast destination address 01-00-0c-cc-cc-cc, out each connected network interface. These multicast packets may be received by Cisco switches and other networking devices that support CDP into their connected network interface. This multicast destination is also used in other Cisco protocols such as VTP. By default, CDP announcements are sent every 60 seconds on interfaces that support Subnetwork Access Protocol (SNAP) headers, including Ethernet,


#2

Ping @mdma, @jvanier


#3

@briantquinn31, did anything come of this? I’d also like to be able to do this in order to use the Photon as an mDNS client.


#4

Hi @carlosr

mDNS runs over UDP and there are already mDNS clients for Particle. Search here in the forum and you will find them.


#5

Hello @bko!
I see some posts with regards to making the Photon an mDNS server, but none with regards to making it an mDNS client…

I am able to send the right UDP packet to the right IP address and port, but because the Photon sends to the router’s MAC address instead of the mDNS multicast MAC address, I don’t get any response from the third party device I am trying to discover on the network. Wireshark actually recognizes it as a malformed mDNS packet, and I can see that the destination MAC address is the issue.


#6

OK, I’m sure this can be done by accessing the WICED stack directly but I don’t think you are going to get to the MAC layer via the Particle/Arduino level calls.

Due to the way the HAL works, you will likely have to use a local compile strategy and a monolithic build to access the WICED stack in the way you want.


#7

Understood, thanks!