Hi all, I wanted to brain storm here to collect ideas about the ENCX24J600 Ethernet chip emulation in python. And, how actually would it be used in Runtime emulator or in our testing system. Until so far: - Writing the code for ENCX24J600 in python. Most of the code structure is based on the existing actual driver in the Runtime (SPI SFR map, addresses, register initialization, SPI op-codes, Ethernet interface etc) - Studying the Linux TAP/TUN and how would they be used in Tx & Rx logic - Encapsulating the Tx & Rx in separate processes or threads (threading would suite in my point of view, if we run on computers that support no multi-processors) *Challenges:* - Thinking a way to emulate the ECNX24J600 memory organization e.g. separating different memory segments (SFR, Main memory SRAM etc) and providing interface in terms of SPI byte instructions and also bit set/clear instructions (In my point of view, encapsulating the memory as a python list/dictionary and providing interface for the SPI op-codes. I think, there is no need to emulate SPI itself, but only providing the SPI op-code interface to control ENCX24J600 would be fine). - We also need to implement indirect addressing interface (external pointers) to the memory organization. - Thinking a way for Tx & Rx buffer wrap around and also Rx queuing and buffer full/empty conditions. - Synchronization and communication among Tx & Rx threads and how to make use of Linux virtual TUN/TAP devices here - How to provide an interface for Runtime emulator code for CoAP to call ENCX24J600 emulator to send and receive packets May be I am silly or completely wrong in my thinking above, so please provide as much ideas as you can. -- *With Best Regards,Asif Sardar.+358 43 8265795*