Vijay <svijayab@in.ibm.com> wrote:
Hi,
I would like to know how TCP/IP stack is in-built into the Operating
System in QNX Real time platform (QNX Neutrino Microkernel). I can see
the usage of npi-ttcpip.so library, io-net resource manager and
dev-n*.so libraries. But where exactly does the TCP/IP stack reside? How
does it communicate with the microkernel ?
The “exactly TCPIP stack” (the one handles ip/udp/tcp) is npm-ttcpip.so.
devn-*.so are “drivers” who hit hardware, tx/rx datas. They are all loads
into io-net, io-net act as a “packet bus”, which passing packet from
…so to .so
There is no “communicate” with microkernel. You must understand everything
is out of “kernel”.
Why do you need anything from “kernel”, if devn-* can passing data to
npm-ttcpip.so, and npm-ttcpip.so could send data (packet) out though devn-* ?
You may want to ask how an applicaton who is doing “socket()/connect()/send()”
can talk to stack. The library is build so that these calles “direct”
to the npm-ttcpip.so. So the application send their request direct to
stack (this time, they using microkernel’s message passing function),
and get answers from tcpip stack.
This give you an idea how tcpip is working under QNX. In fact, everything
under QNX is working like this. (Devb-eide control the harddisk, file
system will talk to devb-eide to read/write from harddisk, user application
will talk to filesystem to open/close file…, all those parts triditionally
in “kernel”, is an out standing appilcation, so you could simply stop/restart
it, or replace it if you want. Also, they are out standing application, so
each one is memory protected, one crash will not effect others. That means you can
crash devb-eide, lost your filesystem, but your network stuff should still
work.)
Also If I want to implement a stack of my own, how do I attach it
to the operating systems.
Basically you have to know 2 things, (assume you have enough knowlodge
about tcpip stack)
-
How you connect your xxx.so into io-net, so io-net know where to deliever
your packet, and what kind of packet to give to you. There is a network
development kit (sth like that) is going to be release. (Not sure it will
release when QRP relase).
-
You also need to know how to service applications when they talk to you.
This thing in Neutrino called “resource manager”, there is lot of manuals,
books talking about this issue.
-xiaodan