New stack
- As you may or may not know, I (hidnplayr) am since long time working on a new network stack for KolibriOS
- I will use this page as an overview of what I have done so far.
You can download an image file with pre-compiled library, applications, kernel and drivers here
If you test it, please send me a bug-report
Kernel
The old kernel functions 52 and 53 have been removed and the New_network_api has been created.
Internally, the stack has been completely rewritten (mostly from scratch)
- What works
- Attaching multiple network drivers/devices to the kernel
- Sending and receiving Ethernet/IPv4/UDP/ICMP/ARP/TCP packets
- Queuing of packets when nescessary
- UDP/TCP/RAW(ICMP/..) sockets (POSIX compatible)
- Under construction
- TCP code
- Sockets code
- network drivers
- programs
- Future plans
- PPPoE
- IPC sockets
- Port trunking
- Routing
- ...
Merging with trunk
- Patch main kernel to use new structs.inc from fasm
- Finish work in progress on NET branch
Drivers
In net-branch, the network drivers are external drivers, as described in Writing_drivers_for_KolibriOS.
The specifications of the new network drivers can be found in the article Writing_network_drivers_for_KolibriOS.
Working (more or less)
- 3c90x/3c59x: only boomerang for now (may hang on UpUnstall procedure, sometimes loops on startup)
- DEC21x4x: Working in Virtual PC (not on most real hardware yet)
- PCnet32: no known bugs
- RTL8029: no known bugs
- RTL8139: no known bugs
- RTL8169: no known bugs (not tested with PCI-express, initialisation takes a loooong time)
- SIS900: debugging in progress
- MTD80x: Only MTD803 aka Surecom EP-320X supported for now
- r6040: no know bugs
Work In Progress
- i8255x (Intel eepro 100)
- VIA rhine
- forcedeth
Planned for future
- i8254x (Intel eepro 1000)
- marvell yukon (i have id5005)
- broadcom netXtreme (bcm57xx)
Unsupported PCI card?
If you have a PCI ethernet card wich is not listed above, and would like to acces internet in KolibriOS, send me the card, and I'll send you one that is supported already.
Programs
ARPcfg
This program allows you to view the ARP entries.
In future, you should be able to add and remove static entry's using this progam.
ICMP
A program to ping a remote host
Only fixed packet size for now
uses network.obj, libini.obj and console.obj
NetCFG
This is a program I wrote to load the drivers.
The program detects all PCI network cards in your computer, and lets you load the appropriate driver for it.
You can run it with paramters 'F' to silently load first detected card,or parameter 'A' to load all cards
Netstat
This program allows you to read some variables from the stack.
nslookup
Commandline DNS client from CleverMouse
This program uses network.obj and console.obj
SynergyC
Software KM-switch, (Synergy - client) for windows/unix/.. versions, see http://synergy2.sourceforge.net/
This version is compatible with version 1.3.1
Only mouse events are accepted in this first version
There is a bug in the loading of librarys wich might cause program to crash
uses network.obj, libini.obj and console.obj
Telnet
A new telnet client, based on the code of nslookup (usefull to test TCP code)
This program uses network.obj and console.obj
TFTPc
A TFTP client with a GUI.
Sending and receiving of files both work
uses libio.obj, network.obj and box_lib.obj
VNCclient
I am working on the re-make of my old VNC client
Zeroconf
This program is the newer version of what used to be 'autodhcp', it works with the new network API.
NetSurf
I am looking for somebody with kowledge of porting C applications, to help me port the NetSurf browser to kolibrios.
Libraries
network_lib
The network library for KolibriOS, written by Clevermouse.
I need your help!
You can contact me at hidnplayr@gmail.com (or find me in #kolibrios on chat.freenode.net)