Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
summerofcode2015:ne2000emulationforbhyve [2015/08/23 20:09] – AlexTeacasummerofcode2015:ne2000emulationforbhyve [2015/08/23 20:17] (current) – AlexTeaca
Line 43: Line 43:
  
 ===== Final Results ===== ===== Final Results =====
-I've implemented the NE2000 emulation in the bhyve hypervisor under both PCI and LPC attachements. The full implementation is located in: +I've implemented the NE2000 emulation in the bhyve hypervisor under both PCI and LPC attachments. The full implementation is located in: 
-/usr/src/usr.sbin/bhyve/ne2000.c, and emulates the ne2000 device for the ED driver in %%FreeBSD%%: /usr/src/sys/dev/ed/if_ed.c+///usr/src/usr.sbin/bhyve/ne2000.c//, and emulates the ne2000 device for the ED driver in %%FreeBSD%%: ///usr/src/sys/dev/ed/if_ed.c//
  
 In order to use the device in bhyve, you need to configure it in the parameters list as: In order to use the device in bhyve, you need to configure it in the parameters list as:
Line 72: Line 72:
 Any ne2000 device attached under the PCI bus will be probed as the ed2, ed3 ... network interfaces. Any ne2000 device attached under the PCI bus will be probed as the ed2, ed3 ... network interfaces.
  
-Note0: For the LPC attachements you need to add in the /boot/device.hints file from the guest operating system the following lines:{{{+'''Note0:''' For the LPC attachments you need to add in the /boot/device.hints file from the guest operating system the following lines:{{{
 hint.ed.0.at="isa" hint.ed.0.at="isa"
 hint.ed.0.port="0x310" hint.ed.0.port="0x310"
Line 81: Line 81:
  
 == Test Plan == == Test Plan ==
-All these thests haved passed succesfully:+All these tests have passed successfully:
  * transmit/receive tcp/udp traffic on the ED interface  * transmit/receive tcp/udp traffic on the ED interface
  * stop, start the ED interface during the traffic is running  * stop, start the ED interface during the traffic is running
Line 96: Line 96:
 ifconfig bridge0 addm tap0 addm tap1 ifconfig bridge0 addm tap0 addm tap1
 ifconfig bridge0 inet 192.168.0.10}}} ifconfig bridge0 inet 192.168.0.10}}}
 +
 +For the UDP traffic I've run these iperf commands:{{{
 +guest2: iperf -s -u
 +guest1: iperf -c 192.168.0.2 -f Mbyte -u -b 7m
 +------------------------------------------------------------
 +Client connecting to 192.168.0.2, UDP port 5001
 +Sending 1470 byte datagrams
 +UDP buffer size: 0.01 MByte (default)
 +------------------------------------------------------------
 +[  3] local 192.168.0.1 port 54052 connected with 192.168.0.2 port 5001
 +[ ID] Interval       Transfer     Bandwidth
 +[  3]  0.0-10.0 sec  7.09 MBytes  0.71 MBytes/sec
 +[  3] Sent 5057 datagrams
 +[  3] Server Report:
 +[  3]  0.0-10.0 sec  7.09 MBytes  0.71 MBytes/sec   2.649 ms    0/ 5056 (0%)
 +[  3]  0.0-10.0 sec  1 datagrams received out-of-order}}}
 +
 +For the TCP traffic I've run these iperf commands:{{{
 +guest2: iperf -s
 +guest1: iperf -c 192.168.0.2 -f Mbyte
 +------------------------------------------------------------
 +Client connecting to 192.168.0.2, TCP port 5001
 +TCP window size: 0.03 MByte (default)
 +------------------------------------------------------------
 +[  3] local 192.168.0.1 port 31221 connected with 192.168.0.2 port 5001
 +[ ID] Interval       Transfer     Bandwidth
 +[  3]  0.0-10.0 sec  6.75 MBytes  0.67 MBytes/sec}}}
 +
 +'''Note1:''' The hardware N2000 devices are supposed to work at 10 Mbits/sec which means 1.25 MBytes/sec.
  
 == The Code == == The Code ==
  • summerofcode2015/ne2000emulationforbhyve.1440360585.txt.gz
  • Last modified: 2015/08/23 20:09
  • by AlexTeaca