Commit Graph

24 Commits

Author SHA1 Message Date
Volker Ruppert
614ecd7455 Some fixes for the vnet module found with TCP / FTP testing code.
Fixed maximum size of an ethernet packet (1460 bytes TCP user data + headers).
Don't activate timer for a new packet if another is still pending.
2020-05-18 19:25:27 +00:00
Volker Ruppert
9c3a99856e Added basic TCP handling and FTP server stub for testing.
- Partly re-implemented host_to_guest methods from legacy eth_vnet.cc.
- Added two dynamic packet buffers for vnet server replies.
- TFTP and FTP servers are only available if root directory is configured.
- Added TCP port handler methods similar to the UDP ones.
- Added basic TCP connection management and 3-way handshake.
- Added FTP server stub for testing TCP (only login/logout for now).
2020-05-12 20:51:26 +00:00
Volker Ruppert
9b844fc341 Some changes in the 'vnet' networking module.
- Enable packet logging in text format if file name is specified with the
  "script" parameter.
- Don't start RX timer if vnet server returns 0.
- Added TCP header structure for future extensions.
2020-05-02 21:21:53 +00:00
Volker Ruppert
451b60b8a2 Rewrite of the 'vnet' server code used by the vnet networking mode and the bxhub
utility to get rid of code duplication. New class vnet_server_c now contains all
of the network emulation including the DNS code from bxhub.cc.
2020-04-12 09:14:01 +00:00
Volker Ruppert
d22cdbdbf7 Some work on the bxhub utility.
- Added DNS service support for the server "vnet" and connected clients.
- Added command line option "-loglev=" to control whether or not there is
  BX_ERROR, BX_INFO or BX_DEBUG output. Default value is 1 (BX_ERROR only).
2017-06-17 12:40:13 +00:00
Volker Ruppert
2ae5fd563e Added destructors to some networking modules and call fclose() there for the
case the logging feature is enabled.
2017-06-16 08:27:55 +00:00
Volker Ruppert
c897ffa619 Cleanups in the Bochs system timer code
- Now using macro DEV_register_timer() in all devices and lowlevel modules.
- Removed unused timer stuff from the plugin.cc/.h code.
2017-03-30 18:08:15 +00:00
Volker Ruppert
18e138b0b4 Fixes and improvements for the network plugins changes in previous commit.
- In "non-plugin" mode loading and unloading network module is not necessary.
  Now enabled loading for the plugin mode only and removed unloading function
  for that case. The "pseudo plugin" entries of the dummy entry points are
  necessary to make sure the self-registering network driver objects are not
  optimized out.
- slirp / vnet: Since the plugin init function is not called in non-plugin
  mode, revert the instance count init change.
- Fixed a makefile dependecy.
- TODO: Implement self-registering objects in the sound driver code.
2017-03-12 20:26:42 +00:00
Volker Ruppert
758f4de4d4 Rewrite of the network driver plugin code.
- Removed "pseudo device plugin" containing common code and specific drivers.
- Moved network module base classes and module handling to the Bochs core.
  Now loading network driver plugins in netmod.cc.
- Moved shared networking code used by the 'vnet' driver and 'bxhub' from
  netmod.cc/.h to new files netutil.cc/.h.
- Created separate plugins for each network driver implementation.
- Modified Bochs plugin system to support new plugin type PLUGTYPE_NETWORK.
2017-03-12 07:48:08 +00:00
Volker Ruppert
c756fed13e Fixed and simplified default IP address generation. 2017-03-04 13:32:41 +00:00
Volker Ruppert
e08024f6a1 Some work on the networking modules and documentation.
- The 'vnet' module now uses the 'script' parameter for an alternative log
  file name.
- Renamed log file names in some networking modules (replaced 'ne2k' by a name
  related to the module name).
- Documentation updates (networking stuff and cmosimage).
2017-03-04 10:26:22 +00:00
Volker Ruppert
112e9016c2 Some changes in bxhub and related code.
- Increase maximum number of Bochs client sessions to 6.
- Define bx_devmodel_c to 'void' for the bxhub case to simplify netmod code.
- Minor cleanups in bxhub and related vnet code.
2017-03-03 09:56:18 +00:00
Volker Ruppert
06511be14d Added support for up to 4 connections to Bochs sessions (same machine only). 2017-03-02 10:21:14 +00:00
Volker Ruppert
0011092ddb Some work on the eth_vnet and bxhub code to reduce code duplication. Moved some
shared functions to netmod.cc and modified ARP, IPv4 and ICMP code.
2017-03-01 16:53:57 +00:00
Volker Ruppert
16e0130753 Switch back to the original 'vnet' ARP implementation.
Improved Slirp documentation.
2014-04-13 13:32:52 +00:00
Volker Ruppert
7ec9adbb2d Switch to Winsock2 library for all Windows cases 2014-02-15 12:18:15 +00:00
Volker Ruppert
f8ea396a2c Several fixes for compiling Bochs successfully in Cygwin64 2013-11-01 18:19:52 +00:00
Volker Ruppert
4b59e6b884 slirp / vnet: added support for multiple TFTP sessions
slirp: fixed minimum eth packet size for builtin replies
2013-09-27 11:47:59 +00:00
Volker Ruppert
ec4990a380 slirp / vnet: only one instance per Bochs session supported yet 2013-09-16 17:06:03 +00:00
Volker Ruppert
5ac2776cd0 Added IP and UDP header data structure definitions and related code cleanups 2013-08-22 11:53:40 +00:00
Volker Ruppert
9ce849e742 Moved ARP processing to netmod.cc to reduce code duplication 2013-08-20 17:43:24 +00:00
Volker Ruppert
11b22c8473 - forgot to remove obsolete stuff 2012-08-16 12:25:55 +00:00
Volker Ruppert
43c1ac48f4 - implemented TFTP support in eth_slirp.cc
* moved TFTP request processing core from eth_vnet.cc to netmod.cc
  * added TFTP handling in eth_slirp.cc similar to DHCP
2012-08-16 11:59:44 +00:00
Volker Ruppert
50de0a12cd - moved the networking stuff to the new subdirectory iodev/network
- TODO: do the same with the sound code and update MSVC workspace files
2012-01-14 17:03:00 +00:00