Kicking out old NAT had some disadvantages: 1) On certain Windows hosts, there are incompatible network drivers (VPNs and Firewalls alike). Those crash with any network kernel code, but work fine with user-space (like old-NAT).
See: Known incompatibilities with 3rd party drivers https://forums.virtualbox.org/viewtopic.php?f=6&t=48044 2) porting VBox to new platforms (Genode OS) is easier, as only "vboxdrv" needs porting. I suggest leaving it out, but if really must, you can hide it inside of "generic" network interface. Basically it comes down to userspace vs kernelspace : avoids trouble in corner cases. On Wed, Apr 1, 2015 at 6:58 PM, Klaus Espenlaub <[email protected]> wrote: > Alexey, > > On 01.04.2015 12:14, Alexey Eromenko wrote: >> >> 1. Yeah, I will look into "include/iprt/tcp.h". Need to figure out how it >> works. > > > It implements a generic TCP socket server for a single client, and the > matching client code. Shouldn't be rocket science, and there's code using > these elsewhere in our sources. I think the TCP server and client stuff is > used by the teleportation code. Not the only place, but probably that's the > place which is easiest to understand. iSCSI uses the client side, but goes > into extremes regarding non-blocking and what not... > >> 2. "Create Pipe" can be renamed into "Create Socket" or "Server Mode". >> "Create Socket" sounds better to my ear. If Oracle agrees, I will >> rename it. Just didn't wanted to touch it for now. > > > Leave it alone for now. That's something we can handle :D It was really > meant as a joke. > >> 3. IPv4-only code is all over the place: >> >> a. NAT > > Old NAT yes (and we want to eventually kick out the old engine and replace > it with the one from NAT Network), NAT Network no. >> >> b. Host-only network (it's DHCP server) > > IPv6 usually doesn't rely on DHCP... >> >> c. UDP Tunnel (my colleague's code) >> d. Telnet Server (my code) >> e. Live Migration (?) <-- needs check. > > That one uses the runtime code, and should handle both, at least in the next > major release. >> >> f. Bridge Mode to host's Wireless NIC > > This one supports IPv6 for quite a while (fixes are in 4.3), only specific > setups have trouble. > > We really try hard to ensure all new features are IPv6 enabled. For some old > features it's tough or outside our control. Even there we're eventually > moving :) > > Klaus > > >> ... >> >> On Wed, Apr 1, 2015 at 12:53 PM, Klaus Espenlaub >> <[email protected]> wrote: >>> >>> Alexey, >>> >>> On 31.03.2015 20:35, Alexey Eromenko wrote: >>>> >>>> Several days of work :) >>>> VirtualBox finally got a serial-telnet-server patch ! >>>> Ugly tricks such as "socat" bridge and "VMware Serial Line Gateway" >>>> out; Patch in ! >>> >>> >>> really a brilliant contribution - with one catch: your code is using the >>> socket API directly (always a risk of subtle bugs on Windows, as winsock >>> is a poor copy of the socket API, with surprises all over the place), >>> and clearly can only handle IPv4. Would you be willing to spend a few >>> extra minutes to convert it to use the TCP server/client functionality >>> available in include/iprt/tcp.h (you choose if you want the callbacks or >>> the other variant) plus include/iprt/socket.h (for the actual >>> reading/writing)? >>> >>> All other issues I found while reviewing the code are idle nagging of a >>> perfectionist - the most prominent one is shown by your screenshot >>> actually: the GUI has a "Create Pipe" checkbox in this case (controlling >>> server mode), which is misleadingly named in this context. Far from >>> urgent. Your contribution's usefulness outweighs such really tiny >>> quirks. It actually might be a task for us, using different wording for >>> this option in all cases, in the light of having a new member in the >>> list of serial port backends. >>> >>>> This is especially useful for GNS3 Network Simulator, where we do >>>> access remote VM's serial port. >>>> >>>> I ask you to include it in the upcoming VirtualBox 4.4, and call it a >>>> "major new feature" in changelog :) >>> >>> >>> I definitely want to get this into the coming release. Actually I >>> wouldn't postpone it even if you said that you don't have time right now >>> to do the socket API cleanup I mentioned above - then it would be IPv4 >>> only until someone does. >>> >>> Just a bit sad as with the coming release we want to squash as many >>> places as possible which are IPv4 only - it is becoming an annoying >>> limitation for some users. >>> >>>> Download patch + screenshot here: >>>> >>>> https://forums.virtualbox.org/viewtopic.php?f=10&t=66893&p=317052#p317052 >>> >>> >>> All in all a really good quality contribution. >>> >>> Thanks so far, and we'll see when in the next week or so someone finds >>> time to include it (let us know if you want to do the cleanup first, >>> would avoid a tiny bit of additional work for is)! >>> >>> Klaus >>> >>>> >>>> Enjoy ! -- -Alexey Eromenko "Technologov" _______________________________________________ vbox-dev mailing list [email protected] https://www.virtualbox.org/mailman/listinfo/vbox-dev
