Thanks for answer.
See inside, please.
Xiaodan Tang <xtang@qnx.com>
vv40in <> vv40in@mail.ru> > wrote:
Hello,
I should like possibility like that (for example) in qnx-nto:
fd = socket(PF_INET, SOCK_PACKET, …);
Unfortunately, it is not possible now >
So, might me ask somebody on following questions:
Is there possibility to implement another tcp/ip stack implementation ?
If yes – where can Ii get that information ?
The answer is yes. The DDK document explained the inside view of
io-net and it’s modules. You are supposingly be able to implement a
“protocol X” on top of “driver Y”, at least, that is the design goal
of io-net interface.
If no – could I insert between ethernet driver and tcp module ip-en converter another
than default ?
You still could insert a module (a filter) between that 2
modules. Again the DDK document explained “filter module”.
If you download the “ipfilter srouce package” from network
(I believe you can find it on qnx.tucows.com), the file
ipf_npi.c is a real example of filter module.
What is interface between socket manager and tcp/ip layers ?
I am not sure what you mean. tcpip module (npm-t[t]cpip.so) is
the one who maintain socket layer. So it is “socket manager”
itself too.
1.
I told about interface with /lib/libsocket*. What about it if we’ll replace nmp-tcpip.so?
2.
In http://qdn.qnx.com/support/docs/neutrino_qrp/lib_ref/r/resmgr_attach.html we see
<<file_type _FTYPE_SOCKET – Reserved for a TCP/IP or UDP Socket manager.>>
What is it?
If i has correct understood – to create my own protocol i should mount my filter (en_en
in that example) with that file_type, dont it ?
And after that I could receive and handle io_open messages from clients how called
socket(PF_INET, SOCK_PACKET, htons(ETH_P_ALL)); (how in Linux) ?
Or no ? IMHO – no. How realy ?
Or i should register some /dev/pack0 and client will call open(…) and read(…) it ?
(it is already implemented, but it is bad realization)
because: Q: what is mechanism of implementing of new protocol families which will work
with socket(…) call ?
Can i replace current routed (route daemon) to my own version ?
Reasons are:
1st: it has a BUG – He die after receiving of some bad packets (zero for example) on
RIP
port.
2nd: it does not support multiple of modern routing protocols (BGP,OSPF…).
routed is just an application using udp/tcp to gathering information,
the question is hwo to feed these routing information into socket.
Triditionaly, “routing socket” is used. So it is a question that
does the “routed” you have, using any “routing socket/command” that
the released “npm-tcpip.so” don’t understand?
Yes, npm-tcpip.so dont understand that info.
And question is: what to do – how to implement new routing protocols ?
Or i cannot understand You ?
And what about that bug in routed (i checked it with nto-PatchA) ?
Respectfully Yours,
Vasili