GSOC 2015 - NE2000 emulation in bhyve Status

Alex Teaca ionutalex.teaca at
Wed Jul 29 16:08:37 UTC 2015


- I've added support for the read-only registers from the page0
- handle the monitor mode of the NIC
- lock the reception flow with the .pe_barwrite and .pe_barwrite flows

At the moment I am going to handle the multicast traffic and promiscuous


On Sat, Jul 11, 2015 at 12:27 PM, Alex Teaca <ionutalex.teaca at>

> Hi,
> I've implemented the reception protocol of the NE2000 nic card. In order
> to test it, I send in both directions (from guest to host and from host to
> guest) big files (about 350M)
> and it works without any problems.
> At the moment, I want to implement a mechanism to lock the access on the
> shared resources between the tx and rx flows.
> Thanks,
> Alex
> On Sun, Jun 28, 2015 at 7:16 PM, Alex Teaca <ionutalex.teaca at>
> wrote:
>> Hi,
>> From the last status report:
>> implement 2 commits:
>> - parse the input string parameter and get the tap name and mac address
>> from it
>> - implement some logging and asserts related with the receive buffer ring
>> Also, I start to think about the receive protocol which is the next step
>> of the implementation by reading the specification from the datasheet
>> and understanding the implementation of the ED driver regarding the way
>> it receives packets from the NE2000 memory. It is pretty clear
>> what we need to implement and after a short design I will be able to
>> implement.
>> Thanks,
>> Alex
>> On Sun, Jun 14, 2015 at 11:37 PM, Alex Teaca <ionutalex.teaca at>
>> wrote:
>>> Hi,
>>> At the moment I am able to configure an IP address on the network
>>> interface corresponding to the NE2000 NIC. When I ping
>>> to the host IP, the tcpdump catches both ARP Request (sent by the guest
>>> using the NE2000 card) and an ARP Reply
>>> sent by the host OS. So, there is implemented the transmission protocol.
>>> For reception, the packets are only read
>>> from the tap device when it is notified by the mevent mechanism.
>>> For mode details, see the commits.
>>> Thanks,
>>> Alex
>>> On Tue, Jun 2, 2015 at 7:45 PM, Alex Teaca <ionutalex.teaca at>
>>> wrote:
>>>> Hi,
>>>> I've started the implementation of the NE2000 module. At the moment the
>>>> ED driver is able to probe the emulated device (RealTek 8029) and add it as
>>>> a network interface.
>>>> Some of the features which are implemented:
>>>> - implement some logging support
>>>> - clone the /usr/src/sys/dev/ed/if_edreg.h register interface from the
>>>> ed driver into the bhyve tree sources
>>>> - implement the NE2000 registers support and an API to access the NIC
>>>> registers (get and set by offset)
>>>> - design and implement the Remote DMA protocol so the ED driver can
>>>> store and load from the NIC's RAM memory
>>>> Thanks,
>>>> Alex

More information about the soc-status mailing list