GSOC 2015 - NE2000 emulation in bhyve Status

Alex Teaca ionutalex.teaca at gmail.com
Tue Aug 18 11:05:37 UTC 2015


Hi,

I've measured the performance of the NE2000 implementation. I will update
the project wiki page with the results I've got.

2 commits related with the software reset state:
- redesign the emulation of the CR register
- implement the software reset workaround, and the software reset routine
Practically, they've fixed a bug, because the emulator was able to receive
traffic when the interface was down. From now on the packets are dropped.

Started to research on the ISA attachment of the ne2k emulation.

Thanks,
Alex


On Thu, Aug 6, 2015 at 12:29 AM, Alex Teaca <ionutalex.teaca at gmail.com>
wrote:

> Hi,
>
> - handle the received multicast traffic
> - accept the frames in the Promiscuous mode for the destination addresses
> that do not match the station's address
>
> Thanks,
> Alex
>
>
>
> On Wed, Jul 29, 2015 at 7:08 PM, Alex Teaca <ionutalex.teaca at gmail.com>
> wrote:
>
>> Hi,
>>
>> - 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
>> mode.
>>
>> Thanks,
>> Alex
>>
>>
>> On Sat, Jul 11, 2015 at 12:27 PM, Alex Teaca <ionutalex.teaca at gmail.com>
>> wrote:
>>
>>> 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 gmail.com>
>>> 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 gmail.com
>>>> > 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 gmail.com>
>>>>> 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