Is it possible to halt Ethernet traffic during idle times?

Hi, I’m Darshan Hiranandani, I’m wondering if it’s possible to halt Ethernet traffic during idle times. Does anyone have suggestions or methods for achieving this? Your input would be greatly appreciated!

Thanks,
Darshan Hiranandan

Yes, certainly.

From perspective of the network protocol above Ethernet, the effect is packet loss. A packet may arrive when the device is not listening.

Exact details will depend on the ethernet PHY and firmware stack you are using. I don’t recall this information.

The effect can be simulated by withdrawing and reinserting an RJ45 plug, but this will likely trigger some negotiation as well.

Hello.

Are you asking about the Ethernet itself? Or the encoded data riding on top of it?

Considering your statement about “idle”. I find your question, to me at least, seems a bit too general. Possibly not aware of the different mechanisms at hand.

Please note that in general Ethernet is the Layer 1 and Layer 2 of the OSI model. In general (critics be nice if I don’t get it perfect).

L1 is the physical and electrical layer (electrons to bits).

L2 groups the bits to frames and sends the frames with the MAC and payload for routing between Endpoints, using ARP tables.

L3 is the TCP/UDP-IP routing between endpoints, allowing routing beyond the hub/switch.

L4 and up is the payload, such as HTML etc…

So, when you say idle. I suspect that you may mean L4 idle, the application has no data to send. Which in turn typically means L3 and L2. As there should be nothing to send.

Note, L3 can have Keep-A-Live’s enabled as per program or OS. So that each end of the socket knows the other end is listening and the health of L3/L2 is good.

As for L1 that would be relatable to the LINK LED on the connector. This usually never turns off, unless disconnected. That said with direct access to the PHY chip, one can set the register to turn off the Manchester encoding and stop the link. In Linux this is often done by turning off the driver module, which is very ugly. Some versions of Linux are easier than others.

So which layer do you wish to be idle.
L4 – that is up to the Application.

L3 – make sure you turn off keep-a-lives.

L2 – Turn off your Routing stack, as to remove it from the ARP table.

L1 – turn off the Port in the PHY chip.

One needs to look at the goal of “why”. Examples.
is costing too much LTE byte counts on your low cost cellular plan.
Is it costing too much CPU. Yeah. I eventually grew out of using ethernet shields on the Arduino Uno.

Maybe you think you want to save power at this point if there nothing to send and turning off the PHY or L1 will save power. Not only will prevent any messages from getting to you. And depending upon your OS/RTOS/driver it may rip out L2, L3, L4 etc… some app’s are tolerant of this. And some are. So, it really depends on your situation and environment.

I hope this helps.

It’s possible for devices of newer origin to put the link in sleep mode doing link negotiations. Older versions has active signals in case of no telegrams