New stack: Difference between revisions
No edit summary |
|||
Line 1: | Line 1: | ||
;As you may or may not know, I (hidnplayr) am since long time working on a new network stack for KolibriOS<br> | ;As you may or may not know, I (hidnplayr) am since long time working on a new network stack for KolibriOS<br> | ||
;I will use this page | ;I will use this page as an overview of what I have done so far. | ||
== Kernel == | == Kernel == | ||
Line 28: | Line 26: | ||
== Drivers == | == Drivers == | ||
In net-branch, the network drivers are external drivers, as described in [[Writing_drivers_for_KolibriOS]].<br /> | |||
The specifications of the new network drivers can be found in the article [[Writing_network_drivers_for_KolibriOS]].<br /> | |||
(items with a * are being worked on) | (items with a * are being worked on) | ||
*RTL8139: Working (FIXME: error occurs on wrapping of the RX buffer). | *RTL8139: Working (FIXME: error occurs on wrapping of the RX buffer). | ||
*SIS900: Working? (Written by clevermouse) | *SIS900: Working? (Written by clevermouse) | ||
Line 170: | Line 72: | ||
''This program uses network.obj'' | ''This program uses network.obj'' | ||
== Libraries == | == Libraries == | ||
=== network_lib === | |||
The network library for KolibriOS, written by Clevermouse. | |||
== I need your help! == | == I need your help! == | ||
I would really appreciate it if somebody could write some network applications,<br> | I would really appreciate it if somebody could write some network applications,<br> | ||
So I can concentrate on kernel code now :),<br> | |||
If you are interessed please contact me at hidnplayr@kolibrios.org (or find me in #general on irc.kolibrios.org) | If you are interessed please contact me at hidnplayr@kolibrios.org (or find me in #general on irc.kolibrios.org) | ||
[[Category:Coding]] | [[Category:Coding]] | ||
[[Category:System_documentation]] | [[Category:System_documentation]] |
Revision as of 17:31, 19 July 2010
- 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.
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 network drivers to the kernel
- Sending and receiving Ethernet/IPv4/UDP/ICMP packets
- IPv4/UDP/TCP checksum generation and confirmation
- Queuing of packets (altough queing ethernet packets is disabled ATM)
- UDP sockets
- ~Working with multiple network card's (unfortunately, some kernel functions are hardcoded to a specific device ATM)
- TODO (items with a * are currently being worked on)
- Sending fragmented IPv4 packets
- finish TCP code*
- finish ARP code
- IPC sockets (unix-like sockets)
- RAW sockets
- Port trunking (IEEE 802.1AX-2008)
- ..
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.
(items with a * are being worked on)
- RTL8139: Working (FIXME: error occurs on wrapping of the RX buffer).
- SIS900: Working? (Written by clevermouse)
- 3c90x/3c59x: Working (only boomerang for now) (FIXME: may hang on UpUnstall procedure)
- RTL8029: Working
- PCnet32: Working
- DEC21x4x*: Working in Virtual PC, but not on real hardware.
- i8255x*: (Intel eepro 100): Work in progress (hidnplayr)
- i8254x: (Intel eepro 1000): Planned for future (hidnplayr)
- mtd80x: Planned for future (hidnplayr)
Programs
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.
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.
Zeroconf
This program is the newer version of what used to be 'autodhcp', it works with the new network API.
nslookup
Commandline DNS client from CleverMouse
This program uses network.obj
TFTPc
A TFTP client with a GUI.
This program can receive and send files, using libio.obj, network.obj and box_lib.obj
Telnet
A new telnet client, based on the code of nslookup (usefull to test TCP code)
This program uses network.obj
Libraries
network_lib
The network library for KolibriOS, written by Clevermouse.
I need your help!
I would really appreciate it if somebody could write some network applications,
So I can concentrate on kernel code now :),
If you are interessed please contact me at hidnplayr@kolibrios.org (or find me in #general on irc.kolibrios.org)